Browse Source

feat: Add Electron dependencies and development scripts

- Added Electron dependencies to package.json:
  * @capacitor-community/electron ^5.0.1
  * electron-builder ^26.0.12
  * better-sqlite3-multiple-ciphers ^12.1.1
  * electron-json-storage ^4.6.0

- Added Electron development scripts:
  * electron:dev - Build and run Electron in development mode
  * electron:setup - Initialize Electron environment
  * electron:dev-full - Full development workflow script

- Updated .gitignore to exclude sql-wasm.wasm file

- Updated package-lock.json with new dependency resolutions

Note: Main app source files (router, platform service, views) also
have minor modifications from previous development work
streamline-attempt
Matthew Raymer 1 week ago
parent
commit
9f7ceab1f1
  1. 3
      .gitignore
  2. 1486
      package-lock.json
  3. 7
      package.json
  4. 1
      src/router/index.ts
  5. 2
      src/services/platforms/CapacitorPlatformService.ts
  6. 5
      src/views/NewEditProjectView.vue

3
.gitignore

@ -55,4 +55,5 @@ build_logs/
icons
*.log
android/app/src/main/res/
android/app/src/main/res/
sql-wasm.wasm

1486
package-lock.json

File diff suppressed because it is too large

7
package.json

@ -22,6 +22,9 @@
"check:ios-device": "xcrun xctrace list devices 2>&1 | grep -w 'Booted' || (echo 'No iOS simulator running' && exit 1)",
"build:capacitor": "VITE_GIT_HASH=`git log -1 --pretty=format:%h` vite build --mode capacitor --config vite.config.capacitor.mts",
"build:web": "VITE_GIT_HASH=`git log -1 --pretty=format:%h` vite build --config vite.config.web.mts",
"electron:dev": "npm run build:capacitor && npx cap copy electron && cd electron && npm run electron:start",
"electron:setup": "./scripts/setup-electron.sh",
"electron:dev-full": "./scripts/electron-dev.sh",
"clean:android": "adb uninstall app.timesafari.app || true",
"build:android": "./scripts/build-android.sh",
"fastlane:ios:beta": "cd ios && fastlane beta",
@ -30,6 +33,7 @@
"fastlane:android:release": "cd android && fastlane release"
},
"dependencies": {
"@capacitor-community/electron": "^5.0.1",
"@capacitor-community/sqlite": "6.0.2",
"@capacitor-mlkit/barcode-scanning": "^6.0.0",
"@capacitor/android": "^6.2.0",
@ -78,6 +82,7 @@
"did-jwt": "^7.4.7",
"did-resolver": "^4.1.0",
"dotenv": "^16.0.3",
"electron-builder": "^26.0.12",
"ethereum-cryptography": "^2.1.3",
"ethereumjs-util": "^7.1.5",
"jdenticon": "^3.2.0",
@ -131,9 +136,11 @@
"@vitejs/plugin-vue": "^5.2.1",
"@vue/eslint-config-typescript": "^11.0.3",
"autoprefixer": "^10.4.19",
"better-sqlite3-multiple-ciphers": "^12.1.1",
"browserify-fs": "^1.0.0",
"concurrently": "^8.2.2",
"crypto-browserify": "^3.12.1",
"electron-json-storage": "^4.6.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.2.1",

1
src/router/index.ts

@ -1,7 +1,6 @@
import {
createRouter,
createWebHistory,
createMemoryHistory,
RouteLocationNormalized,
RouteRecordRaw,
} from "vue-router";

2
src/services/platforms/CapacitorPlatformService.ts

@ -245,7 +245,7 @@ export class CapacitorPlatformService implements PlatformService {
*/
getCapabilities(): PlatformCapabilities {
const platform = Capacitor.getPlatform();
return {
hasFileSystem: true,
hasCamera: true,

5
src/views/NewEditProjectView.vue

@ -251,7 +251,7 @@ import {
VerifiedEvent,
serializeEvent,
} from "@nostr/tools";
// @ts-ignore
import { logger } from "../utils/logger";
@Component({
components: { ImageMethodDialog, LMap, LMarker, LTileLayer, QuickNav },
@ -673,7 +673,8 @@ export default class NewEditProjectView extends Vue {
const publicExtendedKey: string = extPubPri?.publicExtendedKey;
const privateExtendedKey = extPubPri?.privateExtendedKey;
const privateBytes: Uint8Array =
accountFromExtendedKey(privateExtendedKey).privateKey;
accountFromExtendedKey(privateExtendedKey).privateKey ||
(() => { throw new Error("Failed to derive private key"); })();
// No real content is necessary, we just want something signed,
// so we might as well use nostr libs for nostr functions.
// Besides: someday we may create real content that we can relay.

Loading…
Cancel
Save