forked from jsnbuchanan/crowd-funder-for-time-pwa
- Add admin keypair (DID + private key) for proper registration signing - Remove SQLite database dependency for admin DID lookup - Update both TypeScript and Python implementations to use admin credentials - Enhance documentation with detailed usage, options, and security notes - Fix JWT signing to use admin's key as issuer - Standardize API URL handling with defaults - Add command-line options for admin DID and API URL override Both implementations now successfully register new DIDs using the admin's credentials to sign the registration claims. The admin acts as both the agent in the claim and the issuer of the JWT.
174 lines
6.5 KiB
JSON
174 lines
6.5 KiB
JSON
{
|
|
"name": "timesafari",
|
|
"version": "0.4.4",
|
|
"description": "TimeSafari Desktop Application",
|
|
"author": {
|
|
"name": "TimeSafari Team"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite --config vite.config.dev.mts",
|
|
"serve": "vite preview",
|
|
"build": "VITE_GIT_HASH=`git log -1 --pretty=format:%h` vite build",
|
|
"lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore src",
|
|
"lint-fix": "eslint --ext .js,.ts,.vue --ignore-path .gitignore --fix src",
|
|
"prebuild": "eslint --ext .js,.ts,.vue --ignore-path .gitignore src && node sw_combine.js",
|
|
"test-local": "npx playwright test -c playwright.config-local.ts --trace on",
|
|
"test-all": "npm run build && npx playwright test -c playwright.config-local.ts --trace on",
|
|
"clean:electron": "rimraf dist-electron",
|
|
"build:pywebview": "vite build --config vite.config.pywebview.mts",
|
|
"build:electron": "npm run clean:electron && vite build --config vite.config.electron.mts && node scripts/build-electron.js",
|
|
"build:capacitor": "vite build --config vite.config.capacitor.mts",
|
|
"build:web": "vite build --config vite.config.web.mts",
|
|
"electron:dev": "npm run build && electron dist-electron",
|
|
"electron:start": "electron dist-electron",
|
|
"electron:build-linux": "npm run build:electron && electron-builder --linux AppImage",
|
|
"electron:build-linux-deb": "npm run build:electron && electron-builder --linux deb",
|
|
"electron:build-linux-prod": "NODE_ENV=production npm run build:electron && electron-builder --linux AppImage",
|
|
"build:electron-prod": "NODE_ENV=production npm run build:electron",
|
|
"pywebview:dev": "vite build --config vite.config.pywebview.mts && .venv/bin/python src/pywebview/main.py",
|
|
"pywebview:build": "vite build --config vite.config.pywebview.mts && .venv/bin/python src/pywebview/main.py",
|
|
"pywebview:package-linux": "vite build --mode pywebview --config vite.config.pywebview.mts && .venv/bin/python -m PyInstaller --name TimeSafari --add-data 'dist:www' src/pywebview/main.py",
|
|
"pywebview:package-win": "vite build --mode pywebview --config vite.config.pywebview.mts && .venv/Scripts/python -m PyInstaller --name TimeSafari --add-data 'dist;www' src/pywebview/main.py",
|
|
"pywebview:package-mac": "vite build --mode pywebview --config vite.config.pywebview.mts && .venv/bin/python -m PyInstaller --name TimeSafari --add-data 'dist:www' src/pywebview/main.py",
|
|
"build:did-generator": "tsc -p test-scripts/tsconfig.json",
|
|
"generate-did": "node test-scripts/dist/did_generator.js"
|
|
},
|
|
"dependencies": {
|
|
"@capacitor/android": "^6.2.0",
|
|
"@capacitor/app": "^6.0.0",
|
|
"@capacitor/cli": "^6.2.0",
|
|
"@capacitor/core": "^6.2.0",
|
|
"@capacitor/ios": "^6.2.0",
|
|
"@dicebear/collection": "^5.4.1",
|
|
"@dicebear/core": "^5.4.1",
|
|
"@ethersproject/hdnode": "^5.7.0",
|
|
"@fortawesome/fontawesome-svg-core": "^6.5.1",
|
|
"@fortawesome/free-solid-svg-icons": "^6.5.1",
|
|
"@fortawesome/vue-fontawesome": "^3.0.6",
|
|
"@peculiar/asn1-ecc": "^2.3.8",
|
|
"@peculiar/asn1-schema": "^2.3.8",
|
|
"@pvermeer/dexie-encrypted-addon": "^3.0.0",
|
|
"@simplewebauthn/browser": "^10.0.0",
|
|
"@simplewebauthn/server": "^10.0.0",
|
|
"@tweenjs/tween.js": "^21.1.1",
|
|
"@types/qrcode": "^1.5.5",
|
|
"@veramo/core": "^5.6.0",
|
|
"@veramo/credential-w3c": "^5.6.0",
|
|
"@veramo/data-store": "^5.6.0",
|
|
"@veramo/did-manager": "^5.6.0",
|
|
"@veramo/did-provider-ethr": "^5.6.0",
|
|
"@veramo/did-provider-peer": "^6.0.0",
|
|
"@veramo/did-resolver": "^5.6.0",
|
|
"@veramo/key-manager": "^5.6.0",
|
|
"@vue-leaflet/vue-leaflet": "^0.10.1",
|
|
"@vueuse/core": "^12.3.0",
|
|
"@zxing/text-encoding": "^0.9.0",
|
|
"asn1-ber": "^1.2.2",
|
|
"axios": "^1.6.8",
|
|
"cbor-x": "^1.5.9",
|
|
"class-transformer": "^0.5.1",
|
|
"dexie": "^3.2.7",
|
|
"dexie-export-import": "^4.1.4",
|
|
"did-jwt": "^7.4.7",
|
|
"did-resolver": "^4.1.0",
|
|
"ethereum-cryptography": "^2.1.3",
|
|
"ethereumjs-util": "^7.1.5",
|
|
"jdenticon": "^3.2.0",
|
|
"js-generate-password": "^0.1.9",
|
|
"js-yaml": "^4.1.0",
|
|
"leaflet": "^1.9.4",
|
|
"localstorage-slim": "^2.7.0",
|
|
"lru-cache": "^10.2.0",
|
|
"luxon": "^3.4.4",
|
|
"merkletreejs": "^0.3.11",
|
|
"nostr-tools": "^2.10.4",
|
|
"notiwind": "^2.0.2",
|
|
"papaparse": "^5.4.1",
|
|
"pina": "^0.20.2204228",
|
|
"pinia-plugin-persistedstate": "^3.2.1",
|
|
"qr-code-generator-vue3": "^1.4.21",
|
|
"qrcode": "^1.5.4",
|
|
"ramda": "^0.29.1",
|
|
"readable-stream": "^4.5.2",
|
|
"reflect-metadata": "^0.1.14",
|
|
"register-service-worker": "^1.7.2",
|
|
"simple-vue-camera": "^1.1.3",
|
|
"sqlite3": "^5.1.7",
|
|
"stream-browserify": "^3.0.0",
|
|
"three": "^0.156.1",
|
|
"ua-parser-js": "^1.0.37",
|
|
"vue": "^3.5.13",
|
|
"vue-axios": "^3.5.2",
|
|
"vue-facing-decorator": "^3.0.4",
|
|
"vue-picture-cropper": "^0.7.0",
|
|
"vue-qrcode-reader": "^5.5.3",
|
|
"vue-router": "^4.5.0",
|
|
"web-did-resolver": "^2.0.27",
|
|
"zod": "^3.24.2"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.45.2",
|
|
"@types/dom-webcodecs": "^0.1.7",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/leaflet": "^1.9.8",
|
|
"@types/luxon": "^3.4.2",
|
|
"@types/node": "^20.14.11",
|
|
"@types/node-fetch": "^2.6.12",
|
|
"@types/ramda": "^0.29.11",
|
|
"@types/sqlite3": "^3.1.11",
|
|
"@types/three": "^0.155.1",
|
|
"@types/ua-parser-js": "^0.7.39",
|
|
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
"@typescript-eslint/parser": "^6.21.0",
|
|
"@vitejs/plugin-vue": "^5.2.1",
|
|
"@vue/eslint-config-typescript": "^11.0.3",
|
|
"autoprefixer": "^10.4.19",
|
|
"concurrently": "^8.2.2",
|
|
"electron": "^33.2.1",
|
|
"electron-builder": "^25.1.8",
|
|
"eslint": "^8.57.0",
|
|
"eslint-config-prettier": "^9.1.0",
|
|
"eslint-plugin-prettier": "^5.2.1",
|
|
"eslint-plugin-vue": "^9.32.0",
|
|
"fs-extra": "^11.3.0",
|
|
"markdownlint": "^0.37.4",
|
|
"markdownlint-cli": "^0.44.0",
|
|
"npm-check-updates": "^17.1.13",
|
|
"postcss": "^8.4.38",
|
|
"prettier": "^3.2.5",
|
|
"rimraf": "^6.0.1",
|
|
"tailwindcss": "^3.4.1",
|
|
"typescript": "~5.2.2",
|
|
"vite": "^5.2.0",
|
|
"vite-plugin-pwa": "^0.19.8"
|
|
},
|
|
"main": "./dist-electron/main.js",
|
|
"build": {
|
|
"appId": "org.timesafari.app",
|
|
"productName": "TimeSafari",
|
|
"directories": {
|
|
"output": "dist-electron-packages"
|
|
},
|
|
"files": [
|
|
"dist-electron/**/*",
|
|
"src/electron/**/*",
|
|
"main.js"
|
|
],
|
|
"extraResources": [
|
|
{
|
|
"from": "dist-electron",
|
|
"to": "."
|
|
}
|
|
],
|
|
"linux": {
|
|
"target": [
|
|
"AppImage",
|
|
"deb"
|
|
],
|
|
"category": "Office",
|
|
"icon": "build/icon.png"
|
|
},
|
|
"asar": true
|
|
}
|
|
}
|