Something went wrong. Try again.
experiments in a post-browser web
Something went wrong. Try again.
peek package.json
22 kB · 254 lines
JSON
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255{ "name": "Peek", "version": "0.0.1", "description": "Peek is a web user agent for working with the web in a more agent-ish fashion than a browser.", "main": "apps/desktop/dist/main/entry.js", "author": { "name": "dietrich ayala", "email": "me@burrito.space" }, "license": "MIT", "engines": { "node": "24.11.1" }, "type": "module", "repository": { "type": "git", "url": "https://tangled.org/burrito.space/peek" }, "build": { "extends": "apps/desktop/electron-builder.yml" }, "scripts": { "//-- Development (BACKEND=electron|tauri, defaults to electron) --//": "", "dev": "[ \"${BACKEND:-}\" = \"tauri\" ] && yarn dev:tauri || yarn dev:electron", "dev:electron": "yarn workspace @peek/desktop run dev", "dev:tauri": "./scripts/timed.sh sh -c 'cd apps/tauri-desktop/src-tauri && cargo run'", "dev:hot": "yarn workspace @peek/desktop run dev:hot", "//-- Production --//": "", "start": "[ \"${BACKEND:-}\" = \"tauri\" ] && yarn start:tauri || yarn start:electron", "start:electron": "yarn workspace @peek/desktop run start", "start:tauri": "./scripts/timed.sh sh -c 'cd apps/tauri-desktop/src-tauri && cargo run --release'", "start:tauri:log": "cd apps/tauri-desktop/src-tauri && ./target/release/peek-tauri 2>&1", "start:tauri:test": "pkill -INT -f peek-tauri 2>/dev/null; sleep 1; cd apps/tauri-desktop/src-tauri && ./target/release/peek-tauri &> /tmp/tauri.log & sleep 5 && tail -50 /tmp/tauri.log && pkill -INT -f peek-tauri", "//-- Build --//": "", "build": "yarn workspace @peek/desktop run build", "build:watch": "yarn workspace @peek/desktop run build:watch", "build:electron": "yarn workspace @peek/desktop run build:electron", "build:electron:install": "yarn workspace @peek/desktop run build:electron:install", "build:electron:install:linux": "yarn workspace @peek/desktop run build:electron:install:linux", "build:electron:install:linux:test": "yarn workspace @peek/desktop run build:electron:install:linux:test", "build:electron:dist": "yarn workspace @peek/desktop run build:electron:dist", "build:tauri": "./scripts/timed.sh sh -c 'cd apps/tauri-desktop/src-tauri && cargo tauri build'", "build:tauri:check": "./scripts/timed.sh sh -c 'cd apps/tauri-desktop/src-tauri && cargo check'", "//-- Tauri Mobile (peek-save app in apps/mobile) --//": "", "mobile:build": "cd apps/mobile && npm run build", "mobile:ios:assets": "cd apps/mobile && npm run build && rm -rf src-tauri/gen/apple/assets && cp -R dist src-tauri/gen/apple/assets", "mobile:ios:dev": "cd apps/mobile && npm run dev:ios:sim", "mobile:ios:build": "cd apps/mobile && ./build-ios.sh", "mobile:ios:build:release": "cd apps/mobile && ./build-release.sh", "mobile:ios:xcode": "open apps/mobile/src-tauri/gen/apple/peek-save.xcodeproj", "mobile:ios:xcodebuild:list": "xcodebuild -project apps/mobile/src-tauri/gen/apple/peek-save.xcodeproj -list", "mobile:ios:xcodebuild": "rm -rf /tmp/peek-xcodebuild-sim && cd apps/mobile/src-tauri/gen/apple && xcodebuild -scheme peek-save_iOS -configuration Debug -sdk iphonesimulator -derivedDataPath /tmp/peek-xcodebuild-sim -destination 'platform=iOS Simulator,name=iPhone 17 Pro' clean build", "mobile:ios:xcodebuild:release": "rm -rf /tmp/peek-xcodebuild-sim && cd apps/mobile/src-tauri/gen/apple && xcodebuild -scheme peek-save_iOS -configuration release -sdk iphonesimulator -derivedDataPath /tmp/peek-xcodebuild-sim -destination 'platform=iOS Simulator,name=iPhone 17 Pro' clean build", "mobile:ios:xcodebuild:install": "xcrun simctl install booted '/tmp/peek-xcodebuild-sim/Build/Products/debug-iphonesimulator/Peek Save.app'", "mobile:ios:xcodebuild:install:release": "xcrun simctl install booted '/tmp/peek-xcodebuild-sim/Build/Products/release-iphonesimulator/Peek Save.app'", "mobile:ios:xcodebuild:full": "yarn mobile:ios:build && yarn mobile:ios:xcodebuild && yarn mobile:ios:xcodebuild:install", "mobile:ios:xcodebuild:release:full": "yarn mobile:ios:build && yarn mobile:ios:xcodebuild:release && yarn mobile:ios:xcodebuild:install:release", "mobile:ios:xcodebuild:device": "rm -rf /tmp/peek-xcodebuild-device && cd apps/mobile/src-tauri/gen/apple && xcodebuild -scheme peek-save_iOS -configuration release -sdk iphoneos -derivedDataPath /tmp/peek-xcodebuild-device -destination 'generic/platform=iOS' ONLY_ACTIVE_ARCH=NO clean build", "mobile:ios:device:list": "xcrun devicectl list devices", "mobile:ios:xcodebuild:device:install": "DEVICE_ID=$(xcrun devicectl list devices 2>/dev/null | grep 'iPhone' | awk '{for(i=1;i<=NF;i++)if($i~/^[0-9A-F-]{36}$/)print $i}' | head -1) && [ -n \"$DEVICE_ID\" ] || { echo 'Error: No iOS device connected'; exit 1; } && echo \"Installing to device: $DEVICE_ID\" && xcrun devicectl device install app --device \"$DEVICE_ID\" '/tmp/peek-xcodebuild-device/Build/Products/release-iphoneos/Peek Save.app'", "mobile:ios:xcodebuild:device:full": "yarn mobile:ios:build:release && yarn mobile:ios:xcodebuild:device && yarn mobile:ios:xcodebuild:device:install", "mobile:ios:device:launch": "DEVICE_ID=$(xcrun devicectl list devices 2>/dev/null | grep 'iPhone' | awk '{for(i=1;i<=NF;i++)if($i~/^[0-9A-F-]{36}$/)print $i}' | head -1) && [ -n \"$DEVICE_ID\" ] || { echo 'Error: No iOS device connected'; exit 1; } && xcrun devicectl device process launch --device \"$DEVICE_ID\" com.dietrich.peek-mobile", "mobile:ios:device:terminate": "DEVICE_ID=$(xcrun devicectl list devices 2>/dev/null | grep 'iPhone' | awk '{for(i=1;i<=NF;i++)if($i~/^[0-9A-F-]{36}$/)print $i}' | head -1) && [ -n \"$DEVICE_ID\" ] || { echo 'Error: No iOS device connected'; exit 1; } && xcrun devicectl device process terminate --device \"$DEVICE_ID\" --bundle-id com.dietrich.peek-mobile 2>/dev/null || echo 'App not running'", "mobile:ios:device:run": "yarn mobile:ios:device:terminate; yarn mobile:ios:xcodebuild:device:install && yarn mobile:ios:device:launch", "mobile:ios:sim:boot": "xcrun simctl boot 'iPhone 17 Pro' 2>/dev/null || echo 'Simulator already booted or not found'", "mobile:ios:sim:open": "open -a Simulator", "mobile:ios:sim:launch": "xcrun simctl launch booted com.dietrich.peek-mobile", "mobile:ios:sim:run": "yarn mobile:ios:sim:boot && yarn mobile:ios:sim:open && yarn mobile:ios:xcodebuild:full && yarn mobile:ios:sim:launch", "mobile:ios:sim:db:path": "find ~/Library/Developer/CoreSimulator/Devices -name 'com.dietrich.peek-mobile' -path '*/AppGroup/*' 2>/dev/null | head -1 | xargs dirname | xargs ls -la", "mobile:ios:sim:db:info": "DB=$(find ~/Library/Developer/CoreSimulator/Devices -name 'peek*.db' -path '*/AppGroup/*' 2>/dev/null | head -1) && echo \"Database: $DB\" && sqlite3 \"$DB\" 'SELECT * FROM settings; SELECT COUNT(*) as items FROM items WHERE deleted_at IS NULL; SELECT COUNT(*) as tags FROM tags; SELECT COUNT(*) as item_tags FROM item_tags;'", "mobile:ios:sim:db:schema": "DB=$(find ~/Library/Developer/CoreSimulator/Devices -name 'peek*.db' -path '*/AppGroup/*' 2>/dev/null | head -1) && sqlite3 \"$DB\" '.schema tags' '.schema item_tags'", "mobile:ios:sim:db:items": "DB=$(find ~/Library/Developer/CoreSimulator/Devices -name 'peek*.db' -path '*/AppGroup/*' 2>/dev/null | head -1) && sqlite3 \"$DB\" 'SELECT id, type, substr(url,1,50) as url, deleted_at FROM items LIMIT 20;'", "mobile:ios:sim:db:tags": "DB=$(find ~/Library/Developer/CoreSimulator/Devices -name 'peek*.db' -path '*/AppGroup/*' 2>/dev/null | head -1) && sqlite3 \"$DB\" 'SELECT * FROM tags LIMIT 20;'", "mobile:ios:sim:db:backup": "DST=/tmp/peek-sim-backup-$(date +%Y%m%d-%H%M%S) && mkdir -p $DST && APP_GROUP=$(find ~/Library/Developer/CoreSimulator/Devices -path '*/Booted/*/AppGroup/*' -name 'com.dietrich.peek-mobile' 2>/dev/null | head -1 | xargs dirname) && cp -r \"$APP_GROUP\"/* $DST/ && echo \"Backed up to: $DST\" && ls -la $DST/", "mobile:ios:sim:appgroup": "DEVICE_ID=$(xcrun simctl list devices booted -j | grep -oE '[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}' | head -1); grep -rl peek-mobile \"$HOME/Library/Developer/CoreSimulator/Devices/$DEVICE_ID/data/Containers/Shared/AppGroup/\"*/.com.apple.mobile_container_manager.metadata.plist 2>/dev/null | head -1 | xargs dirname", "mobile:ios:sim:appgroup:debug": "DEVICE_ID=$(xcrun simctl list devices booted -j | grep -oE '[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}' | head -1); echo \"Device: $DEVICE_ID\"; grep -rl peek-mobile \"$HOME/Library/Developer/CoreSimulator/Devices/$DEVICE_ID/data/Containers/Shared/AppGroup/\"*/.com.apple.mobile_container_manager.metadata.plist 2>/dev/null | head -3; echo 'Contents:'; ls \"$HOME/Library/Developer/CoreSimulator/Devices/$DEVICE_ID/data/Containers/Shared/AppGroup/\"*/ 2>/dev/null | head -20", "mobile:ios:sim:clean": "xcrun simctl terminate booted com.dietrich.peek-mobile 2>/dev/null; DEVICE_ID=$(xcrun simctl list devices booted -j | grep -oE '[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}' | head -1); APP_GROUP=$(grep -rl peek-mobile \"$HOME/Library/Developer/CoreSimulator/Devices/$DEVICE_ID/data/Containers/Shared/AppGroup/\"*/.com.apple.mobile_container_manager.metadata.plist 2>/dev/null | head -1 | xargs dirname); echo \"AppGroup: $APP_GROUP\"; find \"$APP_GROUP\" -maxdepth 1 \\( -name 'profiles.json' -o -name '*.db' -o -name '*.db-shm' -o -name '*.db-wal' \\) -delete -print; echo 'Remaining:'; ls \"$APP_GROUP/\"", "mobile:ios:sim:fresh": "yarn mobile:ios:sim:clean; xcrun simctl terminate booted com.dietrich.peek-mobile 2>/dev/null; xcrun simctl launch booted com.dietrich.peek-mobile; sleep 2; yarn mobile:ios:sim:status", "mobile:ios:sim:status": "DEVICE_ID=$(xcrun simctl list devices booted -j | grep -oE '[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}' | head -1); APP_GROUP=$(grep -rl peek-mobile \"$HOME/Library/Developer/CoreSimulator/Devices/$DEVICE_ID/data/Containers/Shared/AppGroup/\"*/.com.apple.mobile_container_manager.metadata.plist 2>/dev/null | head -1 | xargs dirname); echo \"AppGroup: $APP_GROUP\"; echo '=== profiles.json ==='; cat \"$APP_GROUP/profiles.json\" 2>/dev/null || echo '(not found)'; echo ''; echo '=== Databases ==='; ls -la \"$APP_GROUP/\"*.db 2>/dev/null || echo '(none)'", "mobile:ios:sim:build-fresh": "yarn mobile:ios:xcodebuild:full && yarn mobile:ios:sim:fresh", "mobile:ios:test": "cd apps/mobile && ./dev-setup.sh", "mobile:both:dev": "cd apps/mobile && npm run dev:both", "mobile:android:init": "cd apps/mobile/src-tauri && cargo tauri android init", "mobile:android:dev": "cd apps/mobile/src-tauri && cargo tauri android dev", "mobile:android:build": "cd apps/mobile/src-tauri && cargo tauri android build", "mobile:linux:build": "apps/mobile/build-linux.sh", "mobile:linux:install": "apps/mobile/linux/install.sh", "//-- Server (webhook API backend in apps/server) --//": "", "server:start": "cd apps/server && npm start", "server:dev": "cd apps/server && npm run dev", "server:dev:data": "./scripts/dev-server-with-data.sh", "server:test": "cd apps/server && npm test", "server:test:api": "cd apps/server && npm run test:api", "server:healthcheck": "cd apps/server && npm run healthcheck", "//-- Schema Codegen --//": "", "schema:codegen": "node packages/schema/codegen.js", "schema:test": "node --test packages/schema/fidelity.test.js", "schema:check": "node packages/schema/check-freshness.js", "//-- Capabilities Codegen --//": "", "capabilities:codegen": "node packages/capabilities/codegen.js", "capabilities:check": "node packages/capabilities/check-freshness.js", "//-- Sync Tests --//": "", "test:sync": "node packages/integration-tests/sync-integration.test.js", "test:sync:verbose": "VERBOSE=1 node packages/integration-tests/sync-integration.test.js", "test:sync:e2e": "ELECTRON_RUN_AS_NODE=1 npx electron packages/integration-tests/sync-e2e.test.js", "test:sync:e2e:verbose": "VERBOSE=1 ELECTRON_RUN_AS_NODE=1 npx electron packages/integration-tests/sync-e2e.test.js", "test:sync:auth": "ELECTRON_RUN_AS_NODE=1 npx electron packages/integration-tests/sync-auth-e2e.test.js", "test:sync:auth:verbose": "VERBOSE=1 ELECTRON_RUN_AS_NODE=1 npx electron packages/integration-tests/sync-auth-e2e.test.js", "test:sync:e2e:prod": "node packages/integration-tests/sync-e2e-prod.test.js", "test:sync:e2e:prod:verbose": "VERBOSE=1 node packages/integration-tests/sync-e2e-prod.test.js", "test:sync:verify-logs": "node packages/integration-tests/verify-railway-logs.js", "test:sync:desktop": "./scripts/test-sync-desktop.sh", "test:sync:three-way": "node packages/integration-tests/sync-three-way.test.js", "test:sync:three-way:verbose": "VERBOSE=1 node packages/integration-tests/sync-three-way.test.js", "test:sync:ios": "./scripts/ios-sync-test.sh", "test:sync:e2e:mobile": "cargo test --manifest-path apps/mobile/peek-core/Cargo.toml --test sync_e2e_mobile -- --ignored --nocapture --test-threads=1", "test:version-compat": "node packages/integration-tests/sync-version-compat.test.js", "test:sync:all": "yarn test:sync && yarn test:sync:three-way && yarn test:version-compat && yarn test:sync:e2e && yarn test:sync:auth", "test:version-compat:e2e": "./scripts/version-compat-e2e.sh", "test:e2e:version": "./scripts/e2e-version-test.sh", "test:e2e:version:phase": "./scripts/e2e-version-test.sh --phase", "test:e2e:server": "./scripts/e2e-server.sh", "interactive-test:e2e:full-sync": "./scripts/e2e-full-sync-test.sh", "interactive-test:e2e:full-sync:auto": "./scripts/e2e-full-sync-test.sh --headless --build", "test:e2e:mobile": "LOCAL_IP=localhost ./scripts/e2e-full-sync-test.sh --headless --build", "test:mobile": "cd apps/mobile && npm test", "test:extension": "node --test apps/extension/tests/*.test.js", "test:extension:e2e": "node --test apps/extension/tests/sync-e2e.test.js", "test:extension:e2e:verbose": "VERBOSE=1 node --test apps/extension/tests/sync-e2e.test.js", "test:extension:chrome": "BROWSER=chrome npx playwright test --config apps/desktop/playwright.config.ts apps/desktop/tests/extension/ --project=extension-chrome", "test:extension:chrome:visible": "HEADLESS=0 BROWSER=chrome npx playwright test --config apps/desktop/playwright.config.ts apps/desktop/tests/extension/ --project=extension-chrome --headed", "extension:chrome": "apps/extension/scripts/launch-chrome.sh", "extension:firefox": "web-ext run --source-dir apps/extension --firefox-profile /tmp/peek-firefox-profile --keep-profile-changes --no-reload", "extension:package:firefox": "web-ext build --source-dir apps/extension --artifacts-dir out/extension --overwrite-dest --ignore-files 'tests/*' 'scripts/*'", "//-- Packaged Electron (delegators) --//": "", "kill:packaged": "yarn workspace @peek/desktop run kill:packaged", "kill:prod": "yarn workspace @peek/desktop run kill:prod", "run:packaged": "yarn workspace @peek/desktop run run:packaged", "run:packaged:debug": "yarn workspace @peek/desktop run run:packaged:debug", "run:packaged:bg": "yarn workspace @peek/desktop run run:packaged:bg", "run:packaged:debug:bg": "yarn workspace @peek/desktop run run:packaged:debug:bg", "run:packaged:check": "yarn workspace @peek/desktop run run:packaged:check", "run:prod": "yarn workspace @peek/desktop run run:prod", "run:prod:debug": "yarn workspace @peek/desktop run run:prod:debug", "run:prod:bg": "yarn workspace @peek/desktop run run:prod:bg", "prod:log": "yarn workspace @peek/desktop run prod:log", "packaged:log": "yarn workspace @peek/desktop run packaged:log", "test:packaged": "yarn workspace @peek/desktop run test:packaged", "test:packaged:debug": "yarn workspace @peek/desktop run test:packaged:debug", "//-- Testing (delegators) --//": "", "test:desktop:electron": "yarn workspace @peek/desktop run test:desktop:electron", "test:unit": "yarn workspace @peek/desktop run test:unit", "test:unit:modes": "yarn workspace @peek/desktop run test:unit:modes", "test:unit:shortcuts": "yarn workspace @peek/desktop run test:unit:shortcuts", "test:unit:datastore": "yarn workspace @peek/desktop run test:unit:datastore", "test:desktop:electron:source": "yarn workspace @peek/desktop run test:desktop:electron:source", "test:desktop:electron:x": "yarn workspace @peek/desktop run test:desktop:electron:x", "test:desktop:disruptive": "yarn workspace @peek/desktop run test:desktop:disruptive", "test:desktop:tauri": "./scripts/timed.sh sh -c 'yarn test:desktop:tauri:frontend; yarn test:desktop:tauri:rust'", "test:desktop:tauri:frontend": "./scripts/timed.sh sh -c 'HEADLESS=1 BACKEND=tauri ./scripts/playwright-with-display.sh test --config apps/desktop/playwright.config.ts apps/desktop/tests/desktop/'", "test:desktop:tauri:rust": "./scripts/timed.sh sh -c 'cd apps/tauri-desktop/src-tauri && cargo test --test smoke -- --nocapture'", "test:visible": "yarn workspace @peek/desktop run test:visible", "test:debug": "yarn workspace @peek/desktop run test:debug", "test:grep": "yarn workspace @peek/desktop run test:grep", "test:desktop:electron:grep": "yarn workspace @peek/desktop run test:desktop:electron:grep", "test:desktop:electron:spec": "yarn workspace @peek/desktop run test:desktop:electron:spec", "test:desktop:electron:spec:bg": "yarn workspace @peek/desktop run test:desktop:electron:spec:bg", "test:desktop:electron:bg": "yarn workspace @peek/desktop run test:desktop:electron:bg", "test:desktop:electron:grep:bg": "yarn workspace @peek/desktop run test:desktop:electron:grep:bg", "test:log": "yarn workspace @peek/desktop run test:log", "test:default-browser:linux": "yarn workspace @peek/desktop run test:default-browser:linux", "test:default-browser:linux:bg": "yarn workspace @peek/desktop run test:default-browser:linux:bg", "//-- Manual debugging harness --//": "", "harness": "yarn workspace @peek/desktop run harness", "harness:stop": "yarn workspace @peek/desktop run harness:stop", "//-- Misc (BACKEND=electron|tauri, defaults to electron) --//": "", "kill": "[ \"${BACKEND:-}\" = \"tauri\" ] && yarn kill:tauri || yarn kill:electron", "kill:electron": "yarn workspace @peek/desktop run kill:electron", "kill:tauri": "pkill -INT -f peek-tauri 2>/dev/null || true", "debug": "[ \"${BACKEND:-}\" = \"tauri\" ] && yarn debug:tauri || yarn debug:electron", "debug:headless": "yarn workspace @peek/desktop run debug:headless", "debug:electron": "yarn workspace @peek/desktop run debug", "debug:electron:headless": "yarn workspace @peek/desktop run debug:electron:headless", "debug:electron:log": "yarn workspace @peek/desktop run debug:electron:log", "debug:electron:bg": "yarn workspace @peek/desktop run debug:electron:bg", "electron:log": "yarn workspace @peek/desktop run electron:log", "tauri": "cd apps/tauri-desktop/src-tauri && cargo run 2>&1", "tauri:build": "cd apps/tauri-desktop/src-tauri && cargo build 2>&1", "tauri:check": "cd apps/tauri-desktop/src-tauri && cargo check 2>&1", "debug:tauri": "cd apps/tauri-desktop/src-tauri && DEBUG=1 cargo run 2>&1", "debug:tauri:headless": "cd apps/tauri-desktop/src-tauri && PEEK_HEADLESS=1 cargo run 2>&1", "debug:tauri:log": "yarn kill:tauri; sleep 1; cd apps/tauri-desktop/src-tauri && cargo run 2>&1 | tee /tmp/tauri-debug.log", "debug:tauri:bg": "yarn kill:tauri; sleep 1; cd apps/tauri-desktop/src-tauri && cargo run > /tmp/tauri-debug.log 2>&1 &", "tauri:log": "tail -f /tmp/tauri-debug.log", "restart": "[ \"${BACKEND:-}\" = \"tauri\" ] && yarn restart:tauri || yarn restart:electron", "restart:headless": "yarn kill && yarn debug:headless", "restart:electron": "yarn kill:electron && sleep 1 && yarn debug:electron", "restart:tauri": "yarn kill:tauri && sleep 1 && yarn debug:tauri", "lint": "echo \"No linting configured\"", "rss": "node scripts/changelog-to-rss.js", "changelog:bump": "node scripts/changelog-bump.js", "//-- Prod profile backup/restore (desktop, macOS) --//": "", "profile:backup": "scripts/backup-prod-profile.sh", "profile:backup:datastore": "scripts/backup-prod-profile.sh --datastore", "profile:restore": "scripts/restore-prod-profile.sh" }, "workspaces": [ "apps/desktop", "apps/mobile", "apps/server", "packages/*" ], "dependencies": { "@atproto/crypto": "^0.5.1", "@codemirror/commands": "^6.10.1", "@codemirror/lang-markdown": "^6.5.0", "@codemirror/language": "^6.12.1", "@codemirror/search": "^6.6.0", "@codemirror/state": "^6.5.4", "@codemirror/theme-one-dark": "^6.1.3", "@codemirror/view": "^6.39.11", "@ghostery/adblocker-electron": "^2.13.4", "@ipld/dag-cbor": "^10.0.1", "@replit/codemirror-vim": "^6.3.0", "archiver": "^7.0.0", "cross-fetch": "^4.1.0", "electron-unhandled": "^5.0.0", "lit": "^3.3.2" }, "devDependencies": { "@electron/rebuild": "^4.1.0", "@playwright/test": "^1.57.0", "@types/archiver": "^6.0.0", "@types/node": "^25.0.3", "electron": "43.0.0", "electron-builder": "^26.15.3", "fake-indexeddb": "^6.2.5", "linkedom": "^0.18.12", "playwright": "^1.57.0", "playwright-webextext": "^0.0.4", "tslib": "^2.8.1", "typescript": "^5.9.3", "web-ext": "^9.2.0" }, "resolutions": { "tmp": "^0.2.5", "node-abi": "^4.33.0", "glob@^11.0.0": "^11.1.0", "@tauri-apps/api": "2.10.1", "@tauri-apps/plugin-opener": "2.5.3", "@tauri-apps/plugin-store": "2.4.2" }, "packageManager": "yarn@4.13.0"}