{
  "name": "timesafari",
  "version": "1.0.8-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": "./scripts/fix-markdown.sh",
    "markdown:check": "./scripts/validate-markdown.sh",
    "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/clean-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,md,json,yml,yaml}": "eslint --fix || true"
  },
  "commitlint": { 
    "extends": ["@commitlint/config-conventional"] 
  },
  "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/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-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-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",
    "@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/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",
    "jest": "^30.0.4",
    "markdownlint": "^0.37.4",
    "markdownlint-cli": "^0.44.0",
    "husky": "^9.0.11",
    "lint-staged": "^15.2.2",
    "@commitlint/cli": "^18.6.1",
    "@commitlint/config-conventional": "^18.6.2",
    "npm-check-updates": "^17.1.13",
    "path-browserify": "^1.0.1",
    "postcss": "^8.4.38",
    "prettier": "^3.2.5",
    "rimraf": "^6.0.1",
    "tailwindcss": "^3.4.1",
    "ts-jest": "^29.4.0",
    "tsx": "^4.20.4",
    "typescript": "~5.2.2",
    "vite": "^5.2.0"
  }
}
