You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							280 lines
						
					
					
						
							14 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							280 lines
						
					
					
						
							14 KiB
						
					
					
				
								{
							 | 
						|
								  "name": "timesafari",
							 | 
						|
								  "version": "1.1.1-beta",
							 | 
						|
								  "description": "Time Safari Application",
							 | 
						|
								  "author": {
							 | 
						|
								    "name": "Time Safari Team"
							 | 
						|
								  },
							 | 
						|
								  "scripts": {
							 | 
						|
								    "lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore src",
							 | 
						|
								    "lint-fix": "eslint --ext .js,.ts,.vue --ignore-path .gitignore --fix src",
							 | 
						|
								    "type-safety-check": "./scripts/type-safety-check.sh",
							 | 
						|
								    "type-check": "tsc --noEmit",
							 | 
						|
								    "prebuild": "eslint --ext .js,.ts,.vue --ignore-path .gitignore src && node sw_combine.js && node scripts/copy-wasm.js",
							 | 
						|
								    "test:prerequisites": "node scripts/check-prerequisites.js",
							 | 
						|
								    "check:dependencies": "./scripts/check-dependencies.sh",
							 | 
						|
								    "test:all": "npm run lint && tsc && npm run test:web && npm run test:mobile && ./scripts/test-safety-check.sh && echo '\n\n\nGotta add the performance tests'",
							 | 
						|
								    "test:web": "npx playwright test -c playwright.config-local.ts --trace on",
							 | 
						|
								    "test:mobile": "./scripts/test-mobile.sh",
							 | 
						|
								    "test:android": "node scripts/test-android.js",
							 | 
						|
								    "test:ios": "node scripts/test-ios.js",
							 | 
						|
								    "check:android-device": "adb devices | grep -w 'device' || (echo 'No Android device connected' && exit 1)",
							 | 
						|
								    "check:ios-device": "xcrun xctrace list devices 2>&1 | grep -w 'Booted' || (echo 'No iOS simulator running' && exit 1)",
							 | 
						|
								    "auto-run": "./scripts/auto-run.sh",
							 | 
						|
								    "auto-run:test": "./scripts/auto-run.sh --test",
							 | 
						|
								    "auto-run:prod": "./scripts/auto-run.sh --prod",
							 | 
						|
								    "auto-run:ios": "./scripts/auto-run.sh --platform=ios",
							 | 
						|
								    "auto-run:android": "./scripts/auto-run.sh --platform=android",
							 | 
						|
								    "auto-run:electron": "./scripts/auto-run.sh --platform=electron",
							 | 
						|
								    "build:capacitor": "VITE_GIT_HASH=`git log -1 --pretty=format:%h` vite build --mode capacitor --config vite.config.capacitor.mts",
							 | 
						|
								    "build:capacitor:sync": "npm run build:capacitor && npx cap sync",
							 | 
						|
								    "build:native": "vite build && npx cap sync && npx capacitor-assets generate",
							 | 
						|
								    "assets:config": "npx tsx scripts/assets-config.ts",
							 | 
						|
								    "assets:validate": "npx tsx scripts/assets-validator.ts",
							 | 
						|
								    "assets:validate:android": "./scripts/build-android.sh --assets-only",
							 | 
						|
								    "assets:clean": "rimraf android/app/src/main/res/mipmap-* ios/App/App/Assets.xcassets/**/AppIcon*.png ios/App/App/Assets.xcassets/**/Splash*.png || true",
							 | 
						|
								    "build:ios": "./scripts/build-ios.sh",
							 | 
						|
								    "build:ios:dev": "./scripts/build-ios.sh --dev",
							 | 
						|
								    "build:ios:test": "./scripts/build-ios.sh --test",
							 | 
						|
								    "build:ios:test:run": "./scripts/build-ios.sh --test --auto-run",
							 | 
						|
								    "build:ios:prod": "./scripts/build-ios.sh --prod",
							 | 
						|
								    "build:ios:prod:run": "./scripts/build-ios.sh --prod --auto-run",
							 | 
						|
								    "build:ios:debug": "./scripts/build-ios.sh --debug",
							 | 
						|
								    "build:ios:debug:run": "./scripts/build-ios.sh --debug --auto-run",
							 | 
						|
								    "build:ios:release": "./scripts/build-ios.sh --release",
							 | 
						|
								    "build:ios:release:run": "./scripts/build-ios.sh --release --auto-run",
							 | 
						|
								    "build:ios:studio": "./scripts/build-ios.sh --studio",
							 | 
						|
								    "build:ios:ipa": "./scripts/build-ios.sh --ipa",
							 | 
						|
								    "build:ios:clean": "./scripts/build-ios.sh --clean",
							 | 
						|
								    "build:ios:sync": "./scripts/build-ios.sh --sync",
							 | 
						|
								    "build:ios:assets": "./scripts/build-ios.sh --assets",
							 | 
						|
								    "build:ios:deploy": "./scripts/build-ios.sh --deploy",
							 | 
						|
								    "build:ios:dev:custom": "./scripts/build-ios.sh --dev --api-ip",
							 | 
						|
								    "build:ios:test:custom": "./scripts/build-ios.sh --test --api-ip",
							 | 
						|
								    "build:ios:dev:run:custom": "./scripts/build-ios.sh --dev --api-ip --auto-run",
							 | 
						|
								    "build:ios:test:run:custom": "./scripts/build-ios.sh --test --api-ip --auto-run",
							 | 
						|
								    "build:web": "./scripts/build-web.sh",
							 | 
						|
								    "build:web:dev": "./scripts/build-web.sh --dev",
							 | 
						|
								    "build:web:test": "./scripts/build-web.sh --test",
							 | 
						|
								    "build:web:prod": "./scripts/build-web.sh --prod",
							 | 
						|
								    "build:web:docker": "./scripts/build-web.sh --docker",
							 | 
						|
								    "build:web:docker:test": "./scripts/build-web.sh --docker:test",
							 | 
						|
								    "build:web:docker:prod": "./scripts/build-web.sh --docker:prod",
							 | 
						|
								    "build:web:serve": "./scripts/build-web.sh --serve",
							 | 
						|
								    "build:web:serve:test": "./scripts/build-web.sh --serve --test",
							 | 
						|
								    "build:web:serve:prod": "./scripts/build-web.sh --serve --prod",
							 | 
						|
								    "docker:up": "docker-compose up",
							 | 
						|
								    "docker:up:test": "npm run build:web:build -- --mode test && docker-compose up test",
							 | 
						|
								    "docker:up:prod": "npm run build:web:build -- --mode production && docker-compose up production",
							 | 
						|
								    "docker:down": "docker-compose down",
							 | 
						|
								    "docker:logs": "docker-compose logs -f",
							 | 
						|
								    "build:electron": "./scripts/build-electron.sh",
							 | 
						|
								    "build:electron:dev": "./scripts/build-electron.sh --dev",
							 | 
						|
								    "build:electron:dev:run": "./scripts/build-electron.sh --dev --auto-run",
							 | 
						|
								    "build:electron:test": "./scripts/build-electron.sh --test",
							 | 
						|
								    "build:electron:test:run": "./scripts/build-electron.sh --test --auto-run",
							 | 
						|
								    "build:electron:prod": "./scripts/build-electron.sh --prod",
							 | 
						|
								    "build:electron:prod:run": "./scripts/build-electron.sh --prod --auto-run",
							 | 
						|
								    "build:electron:windows": "./scripts/build-electron.sh --prod --windows",
							 | 
						|
								    "build:electron:windows:dev": "./scripts/build-electron.sh --dev --windows",
							 | 
						|
								    "build:electron:windows:test": "./scripts/build-electron.sh --test --windows",
							 | 
						|
								    "build:electron:windows:prod": "./scripts/build-electron.sh --prod --windows",
							 | 
						|
								    "build:electron:mac": "./scripts/build-electron.sh --prod --mac",
							 | 
						|
								    "build:electron:mac:dev": "./scripts/build-electron.sh --dev --mac",
							 | 
						|
								    "build:electron:mac:test": "./scripts/build-electron.sh --test --mac",
							 | 
						|
								    "build:electron:mac:prod": "./scripts/build-electron.sh --prod --mac",
							 | 
						|
								    "build:electron:linux": "./scripts/build-electron.sh --prod --linux",
							 | 
						|
								    "build:electron:linux:dev": "./scripts/build-electron.sh --dev --linux",
							 | 
						|
								    "build:electron:linux:test": "./scripts/build-electron.sh --test --linux",
							 | 
						|
								    "build:electron:linux:prod": "./scripts/build-electron.sh --prod --linux",
							 | 
						|
								    "build:electron:appimage": "./scripts/build-electron.sh --prod --appimage",
							 | 
						|
								    "build:electron:appimage:dev": "./scripts/build-electron.sh --dev --appimage",
							 | 
						|
								    "build:electron:appimage:test": "./scripts/build-electron.sh --test --appimage",
							 | 
						|
								    "build:electron:appimage:prod": "./scripts/build-electron.sh --prod --appimage",
							 | 
						|
								    "build:electron:deb": "./scripts/build-electron.sh --prod --deb",
							 | 
						|
								    "build:electron:deb:dev": "./scripts/build-electron.sh --dev --deb",
							 | 
						|
								    "build:electron:deb:test": "./scripts/build-electron.sh --test --deb",
							 | 
						|
								    "build:electron:deb:prod": "./scripts/build-electron.sh --prod --deb",
							 | 
						|
								    "build:electron:dmg": "./scripts/build-electron.sh --prod --dmg",
							 | 
						|
								    "build:electron:dmg:dev": "./scripts/build-electron.sh --dev --dmg",
							 | 
						|
								    "build:electron:dmg:test": "./scripts/build-electron.sh --test --dmg",
							 | 
						|
								    "build:electron:dmg:prod": "./scripts/build-electron.sh --prod --dmg",
							 | 
						|
								    "markdown:fix": "markdownlint-cli2 --fix",
							 | 
						|
								    "markdown:check": "markdownlint-cli2",
							 | 
						|
								    "markdown:setup": "./scripts/setup-markdown-hooks.sh",
							 | 
						|
								    "prepare": "husky",
							 | 
						|
								    "guard": "bash ./scripts/build-arch-guard.sh",
							 | 
						|
								    "guard:test": "bash ./scripts/build-arch-guard.sh --staged",
							 | 
						|
								    "guard:setup": "npm run prepare && echo '✅ Build Architecture Guard is now active!'",
							 | 
						|
								    "clean:android": "./scripts/uninstall-android.sh",
							 | 
						|
								    "clean:ios": "rm -rf ios/App/build ios/App/Pods ios/App/output ios/App/App/public ios/DerivedData ios/capacitor-cordova-ios-plugins ios/App/App/capacitor.config.json ios/App/App/config.xml || true",
							 | 
						|
								    "clean:electron": "./scripts/build-electron.sh --clean",
							 | 
						|
								    "clean:all": "npm run clean:ios && npm run clean:android && npm run clean:electron",
							 | 
						|
								    "build:android": "./scripts/build-android.sh",
							 | 
						|
								    "build:android:dev": "./scripts/build-android.sh --dev",
							 | 
						|
								    "build:android:test": "./scripts/build-android.sh --test",
							 | 
						|
								    "build:android:test:run": "./scripts/build-android.sh --test --auto-run",
							 | 
						|
								    "build:android:prod": "./scripts/build-android.sh --prod",
							 | 
						|
								    "build:android:prod:run": "./scripts/build-android.sh --prod --auto-run",
							 | 
						|
								    "build:android:debug": "./scripts/build-android.sh --debug",
							 | 
						|
								    "build:android:debug:run": "./scripts/build-android.sh --debug --auto-run",
							 | 
						|
								    "build:android:release": "./scripts/build-android.sh --release",
							 | 
						|
								    "build:android:release:run": "./scripts/build-android.sh --release --auto-run",
							 | 
						|
								    "build:android:studio": "./scripts/build-android.sh --studio",
							 | 
						|
								    "build:android:apk": "./scripts/build-android.sh --apk",
							 | 
						|
								    "build:android:aab": "./scripts/build-android.sh --aab",
							 | 
						|
								    "build:android:clean": "./scripts/build-android.sh --clean",
							 | 
						|
								    "build:android:sync": "./scripts/build-android.sh --sync",
							 | 
						|
								    "build:android:assets": "./scripts/build-android.sh --assets",
							 | 
						|
								    "build:android:deploy": "./scripts/build-android.sh --deploy",
							 | 
						|
								    "build:android:dev:custom": "./scripts/build-android.sh --dev --api-ip",
							 | 
						|
								    "build:android:test:custom": "./scripts/build-android.sh --test --api-ip",
							 | 
						|
								    "build:android:dev:run:custom": "./scripts/build-android.sh --dev --api-ip --auto-run",
							 | 
						|
								    "build:android:test:run:custom": "./scripts/build-android.sh --test --api-ip --auto-run"
							 | 
						|
								  },
							 | 
						|
								  "lint-staged": {
							 | 
						|
								    "*.{js,ts,vue,css,json,yml,yaml}": "eslint --fix || true",
							 | 
						|
								    "*.{md,markdown,mdc}": "markdownlint-cli2 --fix"
							 | 
						|
								  },
							 | 
						|
								  "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",
							 | 
						|
								    "@capacitor/app": "^6.0.0",
							 | 
						|
								    "@capacitor/camera": "^6.0.0",
							 | 
						|
								    "@capacitor/cli": "^6.2.0",
							 | 
						|
								    "@capacitor/clipboard": "^6.0.2",
							 | 
						|
								    "@capacitor/core": "^6.2.0",
							 | 
						|
								    "@capacitor/filesystem": "^6.0.0",
							 | 
						|
								    "@capacitor/ios": "^6.2.0",
							 | 
						|
								    "@capacitor/share": "^6.0.3",
							 | 
						|
								    "@capacitor/status-bar": "^6.0.2",
							 | 
						|
								    "@capawesome/capacitor-file-picker": "^6.2.0",
							 | 
						|
								    "@dicebear/collection": "^5.4.1",
							 | 
						|
								    "@dicebear/core": "^5.4.1",
							 | 
						|
								    "@ethersproject/hdnode": "^5.7.0",
							 | 
						|
								    "@ethersproject/wallet": "^5.8.0",
							 | 
						|
								    "@fortawesome/fontawesome-svg-core": "^6.5.1",
							 | 
						|
								    "@fortawesome/free-regular-svg-icons": "^6.7.2",
							 | 
						|
								    "@fortawesome/free-solid-svg-icons": "^6.5.1",
							 | 
						|
								    "@fortawesome/vue-fontawesome": "^3.0.6",
							 | 
						|
								    "@jlongster/sql.js": "^1.6.7",
							 | 
						|
								    "@nostr/tools": "npm:@jsr/nostr__tools@^2.15.0",
							 | 
						|
								    "@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",
							 | 
						|
								    "absurd-sql": "^0.0.54",
							 | 
						|
								    "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",
							 | 
						|
								    "dotenv": "^16.0.3",
							 | 
						|
								    "electron-builder": "^26.0.12",
							 | 
						|
								    "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",
							 | 
						|
								    "jsqr": "^1.4.0",
							 | 
						|
								    "leaflet": "^1.9.4",
							 | 
						|
								    "localstorage-slim": "^2.7.0",
							 | 
						|
								    "lru-cache": "^10.2.0",
							 | 
						|
								    "luxon": "^3.4.4",
							 | 
						|
								    "merkletreejs": "^0.3.11",
							 | 
						|
								    "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",
							 | 
						|
								    "uint8arrays": "^5.0.0",
							 | 
						|
								    "vue": "3.5.13",
							 | 
						|
								    "vue-axios": "^3.5.2",
							 | 
						|
								    "vue-facing-decorator": "3.0.4",
							 | 
						|
								    "vue-markdown-render": "^2.2.1",
							 | 
						|
								    "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": {
							 | 
						|
								    "@capacitor/assets": "^3.0.5",
							 | 
						|
								    "@commitlint/cli": "^18.6.1",
							 | 
						|
								    "@commitlint/config-conventional": "^18.6.2",
							 | 
						|
								    "@playwright/test": "^1.54.2",
							 | 
						|
								    "@types/dom-webcodecs": "^0.1.7",
							 | 
						|
								    "@types/jest": "^30.0.0",
							 | 
						|
								    "@types/js-yaml": "^4.0.9",
							 | 
						|
								    "@types/leaflet": "^1.9.8",
							 | 
						|
								    "@types/luxon": "^3.4.2",
							 | 
						|
								    "@types/markdown-it": "^14.1.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",
							 | 
						|
								    "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",
							 | 
						|
								    "eslint-plugin-vue": "^9.32.0",
							 | 
						|
								    "fs-extra": "^11.3.0",
							 | 
						|
								    "husky": "^9.0.11",
							 | 
						|
								    "jest": "^30.0.4",
							 | 
						|
								    "lint-staged": "^15.2.2",
							 | 
						|
								    "markdownlint": "^0.37.4",
							 | 
						|
								    "markdownlint-cli": "^0.44.0",
							 | 
						|
								    "markdownlint-cli2": "^0.18.1",
							 | 
						|
								    "npm-check-updates": "^17.1.13",
							 | 
						|
								    "path-browserify": "^1.0.1",
							 | 
						|
								    "postcss": "^8.4.38",
							 | 
						|
								    "prettier": "^3.2.5",
							 | 
						|
								    "rimraf": "^6.0.1",
							 | 
						|
								    "serve": "^14.2.4",
							 | 
						|
								    "tailwindcss": "^3.4.1",
							 | 
						|
								    "ts-jest": "^29.4.0",
							 | 
						|
								    "tsx": "^4.20.4",
							 | 
						|
								    "typescript": "~5.2.2",
							 | 
						|
								    "vite": "^5.2.0"
							 | 
						|
								  }
							 | 
						|
								}
							 | 
						|
								
							 |