{
    "name": "obsidian-livesync",
    "version": "1.0.2",
    "description": "Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
    "main": "main.js",
    "type": "module",
    "scripts": {
        "dev": "node --env-file=.env esbuild.config.mjs",
        "build": "node esbuild.config.mjs production",
        "buildVite": "npx dotenv-cli -e .env  -- vite build --mode production",
        "buildViteOriginal": "npx dotenv-cli -e .env  -- vite build --mode original",
        "buildDev": "node esbuild.config.mjs dev",
        "lint": "eslint --cache --cache-strategy content --concurrency off src",
        "lint:community": "eslint --config eslint.community.config.mjs --concurrency off src",
        "lint:community:tools": "eslint --config eslint.community.config.mjs --concurrency off --max-warnings 0 _tools",
        "svelte-check": "svelte-check --tsconfig ./tsconfig.json --fail-on-warnings",
        "tsc-check": "tsc --noEmit",
        "tsc-check:apps": "tsc --noEmit -p src/apps/browser/tsconfig.json && tsc --noEmit -p src/apps/cli/tsconfig.json && tsc --noEmit -p src/apps/webapp/tsconfig.json && tsc --noEmit -p src/apps/webpeer/tsconfig.app.json && tsc --noEmit -p src/apps/webpeer/tsconfig.node.json",
        "pretty:importpath": "cd utilsdeno && deno run -A ./normalise-imports.ts",
        "pretty:json": "prettier --config ./.prettierrc.mjs \"**/*.json\" --write --log-level error",
        "pretty": "npm run prettyNoWrite -- --write --log-level error",
        "prettyCheck": "npm run prettyNoWrite -- --check",
        "prettyNoWrite": "prettier --config ./.prettierrc.mjs \"**/*.js\" \"**/*.ts\" \"**/*.json\" ",
        "precheck:compatibility": "npm run build",
        "check:compatibility": "node utils/check-compatibility.js --file main.js --ios 15",
        "check": "npm run tsc-check && npm run tsc-check:apps && npm run lint && npm run lint:community -- --quiet && npm run lint:community:tools && npm run svelte-check && npm run check:compatibility",
        "i18n:bake": "npm run i18n:yaml2json && npm run i18n:bakejson && npm run i18n:format",
        "i18n:bakejson": "tsx _tools/bakei18n.ts",
        "i18n:format": "prettier --config .prettierrc.mjs --write --log-level error 'src/common/messagesJson/*.json' 'src/common/messages/*.ts'",
        "i18n:json2yaml": "tsx _tools/json2yaml.ts",
        "i18n:yaml2json": "tsx _tools/yaml2json.ts",
        "test:unit": "vitest run --config vitest.config.unit.ts",
        "build:browser-apps": "npm run build --workspace livesync-webapp --workspace webpeer",
        "test:browser-apps": "npm run test:browser --workspace livesync-webapp && npm run test:browser --workspace webpeer",
        "test:browser-apps:pages": "deno test -A --no-check --frozen --config test/browser-apps/deno.json --lock test/browser-apps/deno.lock test/browser-apps/pages/browser-smoke.test.ts",
        "test:e2e:browser-apps": "npm run test:browser-apps",
        "pretest:e2e:browser-apps:interop": "npm run build:browser-apps && npm run build --workspace self-hosted-livesync-cli",
        "test:e2e:browser-apps:interop": "deno run -A --no-check --frozen --config test/browser-apps/deno.json --lock test/browser-apps/deno.lock test/browser-apps/run-compose-interop.ts",
        "inspect:troubleshooting": "tsx _tools/inspect-troubleshooting-docs.ts",
        "test:setup-tools": "bash utils/flyio/setenv.test.sh && deno test -A --config=utils/flyio/deno.jsonc --frozen --lock=utils/flyio/deno.lock utils/livesync-commonlib-version.test.ts utils/couchdb/provision.test.ts utils/setup/generate_setup_uri.test.ts utils/flyio/generate_setupuri.test.ts",
        "test:contract:contexts": "vitest run --config vitest.config.unit.ts src/modules/services/ObsidianServiceContext.unit.spec.ts src/apps/cli/services/NodeServiceContext.unit.spec.ts src/apps/browser/createLiveSyncBrowserServiceHub.unit.spec.ts",
        "test:contract:context:webapp": "vitest run --config vitest.config.unit.ts src/apps/browser/createLiveSyncBrowserServiceHub.unit.spec.ts",
        "test:contract:context:cli": "npm run build --workspace self-hosted-livesync-cli && deno task --cwd src/apps/cli/testdeno test:setup-put-cat",
        "test:contract:context:obsidian": "npm run build && npm run test:e2e:obsidian:smoke",
        "test:e2e:cli": "npm run test:e2e:ci --workspace self-hosted-livesync-cli",
        "test:e2e:cli:p2p": "npm run test:e2e:p2p --workspace self-hosted-livesync-cli",
        "test:e2e:cli:all": "npm run test:e2e:all --workspace self-hosted-livesync-cli",
        "test:integration": "npx dotenv-cli -e .env -e .test.env -- vitest run --config vitest.config.integration.ts",
        "test:unit:coverage": "vitest run --config vitest.config.unit.ts --coverage",
        "test:e2e:obsidian:install-appimage": "tsx test/e2e-obsidian/scripts/install-appimage.ts",
        "test:e2e:obsidian:runner": "vitest run --config vitest.config.e2e-runner.ts",
        "test:e2e:obsidian:discover": "tsx test/e2e-obsidian/scripts/discover.ts",
        "test:e2e:obsidian:cli-help": "tsx test/e2e-obsidian/scripts/cli-help.ts",
        "test:e2e:obsidian:debug-ui": "tsx test/e2e-obsidian/scripts/debug-ui.ts",
        "test:e2e:obsidian:focused": "tsx test/e2e-obsidian/scripts/run-focused.ts",
        "test:e2e:obsidian:smoke": "tsx test/e2e-obsidian/scripts/smoke.ts",
        "test:e2e:obsidian:onboarding-invitation": "tsx test/e2e-obsidian/scripts/onboarding-invitation.ts",
        "test:e2e:obsidian:dialog-mounts": "tsx test/e2e-obsidian/scripts/dialog-mounts.ts",
        "test:e2e:obsidian:conflict-dialog-policy": "tsx test/e2e-obsidian/scripts/conflict-dialog-policy.ts",
        "test:e2e:obsidian:revision-repair": "tsx test/e2e-obsidian/scripts/revision-repair.ts",
        "test:e2e:obsidian:document-history-nav": "tsx test/e2e-obsidian/scripts/document-history-nav.ts",
        "test:e2e:obsidian:settings-ui": "tsx test/e2e-obsidian/scripts/settings-ui.ts",
        "test:e2e:obsidian:review-harness": "tsx test/e2e-obsidian/scripts/review-harness.ts",
        "test:e2e:obsidian:p2p-pane": "tsx test/e2e-obsidian/scripts/p2p-pane.ts",
        "test:e2e:obsidian:vault-reflection": "tsx test/e2e-obsidian/scripts/vault-reflection.ts",
        "test:e2e:obsidian:couchdb-upload": "tsx test/e2e-obsidian/scripts/couchdb-upload.ts",
        "test:e2e:obsidian:couchdb-manual-setup-workflow": "tsx test/e2e-obsidian/scripts/couchdb-manual-setup-workflow.ts",
        "test:e2e:obsidian:cli-to-obsidian-sync": "tsx test/e2e-obsidian/scripts/cli-to-obsidian-sync.ts",
        "test:e2e:obsidian:minio-upload": "tsx test/e2e-obsidian/scripts/minio-upload.ts",
        "test:e2e:obsidian:object-storage-setup-uri-workflow": "tsx test/e2e-obsidian/scripts/object-storage-setup-uri-workflow.ts",
        "test:e2e:obsidian:p2p-setup-uri-workflow": "tsx test/e2e-obsidian/scripts/p2p-setup-uri-workflow.ts",
        "test:e2e:obsidian:startup-scan": "tsx test/e2e-obsidian/scripts/startup-scan.ts",
        "test:e2e:obsidian:setup-uri-workflow": "tsx test/e2e-obsidian/scripts/setup-uri-workflow.ts",
        "test:e2e:obsidian:two-vault-sync": "tsx test/e2e-obsidian/scripts/two-vault-sync.ts",
        "test:e2e:obsidian:security-seed-reconnect": "tsx test/e2e-obsidian/scripts/security-seed-reconnect.ts",
        "test:e2e:obsidian:hidden-file-snippet-sync": "tsx test/e2e-obsidian/scripts/hidden-file-snippet-sync.ts",
        "test:e2e:obsidian:customisation-sync": "tsx test/e2e-obsidian/scripts/customisation-sync.ts",
        "test:e2e:obsidian:setting-markdown-export": "tsx test/e2e-obsidian/scripts/setting-markdown-export.ts",
        "test:e2e:obsidian:upgrade-from-stable": "tsx test/e2e-obsidian/scripts/upgrade-from-stable.ts",
        "test:e2e:obsidian:local-suite": "tsx test/e2e-obsidian/scripts/local-suite.ts",
        "test:e2e:obsidian:local-suite:services": "tsx test/e2e-obsidian/scripts/local-suite.ts --manage-services",
        "test:docker-p2p:start": "docker compose -f test/fixtures/p2p-relay/compose.yml up -d",
        "test:docker-p2p:stop": "docker compose -f test/fixtures/p2p-relay/compose.yml down --volumes",
        "test:docker-couchdb:up": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/couchdb-start.sh",
        "test:docker-couchdb:init": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/couchdb-init.sh",
        "test:docker-couchdb:start": "npm run test:docker-couchdb:up && sleep 5 && npm run test:docker-couchdb:init",
        "test:docker-couchdb:down": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/couchdb-stop.sh",
        "test:docker-couchdb:stop": "npm run test:docker-couchdb:down",
        "test:docker-s3:up": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/minio-start.sh",
        "test:docker-s3:init": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/minio-init.sh",
        "test:docker-s3:start": "npm run test:docker-s3:up && sleep 3 && npm run test:docker-s3:init",
        "test:docker-s3:down": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/minio-stop.sh",
        "test:docker-s3:stop": "npm run test:docker-s3:down",
        "test:docker-all:up": "npm run test:docker-couchdb:up ; npm run test:docker-s3:up",
        "test:docker-all:init": "npm run test:docker-couchdb:init ; npm run test:docker-s3:init",
        "test:docker-all:down": "npm run test:docker-couchdb:down ; npm run test:docker-s3:down",
        "test:docker-all:start": "npm run test:docker-all:up && sleep 5 && npm run test:docker-all:init",
        "test:docker-all:stop": "npm run test:docker-all:down",
        "update-workspaces": "node update-workspaces.mjs",
        "version": "node version-bump.mjs && node update-workspaces.mjs && npm run pretty:json && git add manifest.json versions.json src/apps/cli/package.json src/apps/webpeer/package.json src/apps/webapp/package.json"
    },
    "keywords": [],
    "author": "vorotamoroz",
    "license": "MIT",
    "devDependencies": {
        "@dword-design/eslint-plugin-import-alias": "^8.1.8",
        "@emnapi/core": "1.11.1",
        "@emnapi/runtime": "1.11.1",
        "@eslint/js": "^9.39.3",
        "@sveltejs/vite-plugin-svelte": "^7.1.2",
        "@tsconfig/svelte": "^5.0.8",
        "@types/deno": "^2.5.0",
        "@types/diff-match-patch": "^1.0.36",
        "@types/markdown-it": "^14.1.2",
        "@types/micromatch": "^4.0.10",
        "@types/node": "^24.10.13",
        "@types/pouchdb": "^6.4.2",
        "@types/pouchdb-adapter-http": "^6.1.6",
        "@types/pouchdb-adapter-idb": "^6.1.7",
        "@types/pouchdb-browser": "^6.1.5",
        "@types/pouchdb-core": "^7.0.15",
        "@types/pouchdb-mapreduce": "^6.1.10",
        "@types/pouchdb-replication": "^6.4.7",
        "@types/transform-pouch": "^1.0.6",
        "@typescript-eslint/parser": "8.56.1",
        "@vitest/coverage-v8": "^4.1.8",
        "@vrtmrz/obsidian-test-session": "0.2.6",
        "dotenv-cli": "^11.0.0",
        "esbuild": "0.28.1",
        "esbuild-plugin-inline-worker": "^0.1.1",
        "esbuild-svelte": "^0.9.4",
        "eslint": "^9.39.3",
        "eslint-plugin-obsidianmd": "^0.4.1",
        "eslint-plugin-svelte": "^3.19.0",
        "events": "^3.3.0",
        "globals": "^14.0.0",
        "playwright": "^1.58.2",
        "postcss": "^8.5.6",
        "pouchdb-adapter-http": "^9.0.0",
        "pouchdb-adapter-idb": "^9.0.0",
        "pouchdb-adapter-indexeddb": "^9.0.0",
        "pouchdb-adapter-memory": "^9.0.0",
        "pouchdb-core": "^9.0.0",
        "pouchdb-errors": "^9.0.0",
        "pouchdb-find": "^9.0.0",
        "pouchdb-mapreduce": "^9.0.0",
        "pouchdb-merge": "^9.0.0",
        "pouchdb-replication": "^9.0.0",
        "pouchdb-utils": "^9.0.0",
        "prettier": "3.8.1",
        "rollup-plugin-copy": "^3.5.0",
        "svelte": "5.56.3",
        "svelte-check": "^4.6.0",
        "svelte-eslint-parser": "^1.8.0",
        "svelte-preprocess": "^6.0.3",
        "terser": "^5.39.0",
        "tinyglobby": "^0.2.15",
        "transform-pouch": "^2.0.0",
        "tsx": "^4.21.0",
        "typescript": "5.9.3",
        "typescript-eslint": "^8.61.0",
        "vite": "^8.0.16",
        "vitest": "^4.1.8",
        "webdriverio": "^9.27.0",
        "yaml": "^2.8.2"
    },
    "dependencies": {
        "@aws-sdk/client-s3": "^3.808.0",
        "@smithy/fetch-http-handler": "^5.3.10",
        "@smithy/md5-js": "^4.2.9",
        "@smithy/middleware-apply-body-checksum": "^4.3.9",
        "@smithy/protocol-http": "^5.3.9",
        "@smithy/querystring-builder": "^4.2.9",
        "@smithy/types": "^4.14.3",
        "@smithy/util-retry": "^4.4.5",
        "@vrtmrz/browser-ui-kit": "0.1.0",
        "@vrtmrz/livesync-commonlib": "0.1.0",
        "@vrtmrz/obsidian-plugin-kit": "0.1.3",
        "@vrtmrz/ui-interactions": "0.1.2",
        "diff-match-patch": "^1.0.5",
        "fflate": "^0.8.2",
        "idb": "^8.0.3",
        "markdown-it": "^14.2.0",
        "minimatch": "^10.2.5",
        "obsidian": "^1.13.1",
        "octagonal-wheels": "^0.1.52",
        "qrcode-generator": "^1.4.4",
        "xxhash-wasm-102": "npm:xxhash-wasm@^1.0.2"
    },
    "overrides": {
        "pouchdb-core": {
            "uuid": "11.1.1"
        },
        "pouchdb-utils": {
            "uuid": "11.1.1"
        }
    },
    "workspaces": [
        "src/apps/cli",
        "src/apps/webpeer",
        "src/apps/webapp"
    ]
}
