Files
obsidian-livesync/package.json

149 lines
7.4 KiB
JSON
Raw Normal View History

2021-10-12 23:50:13 +09:00
{
2021-10-15 01:34:03 +09:00
"name": "obsidian-livesync",
2026-03-30 09:20:01 +01:00
"version": "0.25.56",
"description": "Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
2021-10-12 23:50:13 +09:00
"main": "main.js",
"type": "module",
2021-10-12 23:50:13 +09:00
"scripts": {
"bakei18n": "npm run i18n:yaml2json && npm run i18n:bakejson",
"i18n:bakejson": "npx tsx ./src/lib/_tools/bakei18n.ts",
"i18n:yaml2json": "npx tsx ./src/lib/_tools/yaml2json.ts",
"i18n:json2yaml": "npx tsx ./src/lib/_tools/json2yaml.ts",
"prettyjson": "prettier --config ./.prettierrc.mjs ./src/lib/src/common/messagesJson/*.json --write --log-level error",
"postbakei18n": "prettier --config ./.prettierrc.mjs ./src/lib/src/common/messages/*.ts --write --log-level error",
"posti18n:yaml2json": "npm run prettyjson",
"predev": "npm run bakei18n",
"dev": "node --env-file=.env esbuild.config.mjs",
"prebuild": "npm run bakei18n",
2026-01-30 09:36:39 +00:00
"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",
2024-10-16 12:44:07 +01:00
"lint": "eslint src",
"svelte-check": "svelte-check --tsconfig ./tsconfig.json",
"tsc-check": "tsc --noEmit",
chore(format): adds prettier and commands to run it ... including ci/cd check-only commands. The code is quite complex and missing a lot of dev-ops types checks and standards. One of the key problems with codebases like this is on-boarding new developers to the codebase (like myself). When there is a consistent and enforced coding-style (irrespective of what the coding style is) it makes it _significantly_ easier for collaborators and maintainers to get on with the job in hand. It also, from a day-2-day developer perspective, significantly reduces cognitive overhead re reading code. Finally this is a "trial balloon" PR, if this patch is accepted I will likely do more work on testing and docs for the project. - The new prettier config is a non-standard setup, but a close-match to how the code _currently_ looks. - 120 col-width print width (instead of the better and more information-dense 88), this is so the diff after applying prettier to the code is less disruptive, whilst still showing the benefits of using a prettier. - We use `tabWidth` setting of 4 as the code uses that more common setting instead of the more compact 2 spaces - note that 2 often leads to more readable and compact code. - We enforce trailing commas, as that seems to be the norm in this code-base. We choose the `es5` standard here. - We enforce tailing semi-colons (`semi`) as the majority of code used that flavour of `js`/`ts`. - For now we only run on code and not json files. This is designed such that `npm run pretty` re-formats the code for development, and when integrated with ci/cd, `prettyCheck` will return non-zero exit codes when formatting doesn't match the coding standards.
2024-11-11 06:45:24 +00:00
"pretty": "npm run prettyNoWrite -- --write --log-level error",
"prettyCheck": "npm run prettyNoWrite -- --check",
"prettyNoWrite": "prettier --config ./.prettierrc.mjs \"**/*.js\" \"**/*.ts\" \"**/*.json\" ",
v0.25.23.beta1 ### Fixed (This should be backported to 0.25.22 if the beta phase is prolonged) - No longer larger files will not create a chunks during preparing `Reset Synchronisation on This Device`. ### Behaviour changes - Setup wizard is now more `goal-oriented`. Brand-new screens are introduced. - `Fetch everything` and `Rebuild everything` is now `Reset Synchronisation on This Device` and `Overwrite Server Data with This Device's Files`. - Remote configuration and E2EE settings are now separated to each modal dialogue. - Peer-to-Peer settings is also separated into its own modal dialogue. - Setup-URI, and Report for the Issue are now not copied to clipboard automatically. Instead, there are copy dialogue and buttons to copy them explicitly. - No longer optional features are introduced during the setup or `Reset Synchronisation on This Device`, `Overwrite Server Data with This Device's Files`. - We cannot preform `Fetch everything` and `Rebuild everything` (Removed, so the old name) without restarting Obsidian now. ### Miscellaneous - Setup QR Code generation is separated into a src/lib/src/API/processSetting.ts file. Please use it as a subrepository if you want to generate QR codes in your own application. - Setup-URI is also separated into a src/lib/src/API/processSetting.ts - Some direct access to web-APIs are now wrapped into the services layer. ### Dependency updates - Many dependencies are updated. Please see `package.json`. - As upgrading TypeScript, Fixed many UInt8Array<ArrayBuffer> and Uint8Array type mismatches.
2025-10-22 13:56:15 +01:00
"check": "npm run lint && npm run svelte-check",
2026-01-07 08:38:33 +00:00
"unittest": "deno test -A --no-check --coverage=cov_profile --v8-flags=--expose-gc --trace-leaks ./src/",
"test": "vitest run",
2026-01-23 05:45:53 +00:00
"test:unit": "vitest run --config vitest.config.unit.ts",
"test:unit:coverage": "vitest run --config vitest.config.unit.ts --coverage",
2026-01-07 08:38:33 +00:00
"test:install-playwright": "npx playwright install chromium",
2026-01-07 09:00:55 +00:00
"test:install-dependencies": "npm run test:install-playwright",
2026-01-07 08:38:33 +00:00
"test:coverage": "vitest run --coverage",
"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",
2026-01-09 11:46:37 +00:00
"test:docker-couchdb:down": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/couchdb-stop.sh",
2026-01-07 08:38:33 +00:00
"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",
2026-01-09 11:46:37 +00:00
"test:docker-s3:down": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/minio-stop.sh",
2026-01-07 08:38:33 +00:00
"test:docker-s3:stop": "npm run test:docker-s3:down",
2026-01-09 11:46:37 +00:00
"test:docker-p2p:up": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/p2p-start.sh",
"test:docker-p2p:init": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/p2p-init.sh",
2026-02-02 13:00:28 +09:00
"test:docker-p2p:start": "npm run test:docker-p2p:up && sleep 3 && npm run test:docker-p2p:init",
2026-01-09 11:46:37 +00:00
"test:docker-p2p:down": "npx dotenv-cli -e .env -e .test.env -- ./test/shell/p2p-stop.sh",
"test:docker-p2p:stop": "npm run test:docker-p2p:down",
"test:docker-all:up": "npm run test:docker-couchdb:up ; npm run test:docker-s3:up ; npm run test:docker-p2p:up",
"test:docker-all:init": "npm run test:docker-couchdb:init ; npm run test:docker-s3:init ; npm run test:docker-p2p:init",
"test:docker-all:down": "npm run test:docker-couchdb:down ; npm run test:docker-s3:down ; npm run test:docker-p2p:down",
2026-01-07 08:38:33 +00:00
"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",
"test:full": "npm run test:docker-all:start && vitest run --coverage && npm run test:docker-all:stop",
"test:p2p": "bash test/suitep2p/run-p2p-tests.sh"
2021-10-12 23:50:13 +09:00
},
"keywords": [],
2021-10-15 01:34:03 +09:00
"author": "vorotamoroz",
2021-10-12 23:50:13 +09:00
"license": "MIT",
"devDependencies": {
2026-02-24 10:38:35 +00:00
"@chialab/esbuild-plugin-worker": "^0.19.0",
"@eslint/compat": "^2.0.2",
"@eslint/eslintrc": "^3.3.4",
"@eslint/js": "^9.39.3",
"@sveltejs/vite-plugin-svelte": "^6.2.4",
"@tsconfig/svelte": "^5.0.8",
"@types/deno": "^2.5.0",
2024-03-15 10:35:41 +01:00
"@types/diff-match-patch": "^1.0.36",
"@types/markdown-it": "^14.1.2",
2026-02-24 10:38:35 +00:00
"@types/node": "^24.10.13",
2024-03-15 10:35:41 +01:00
"@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",
- 0.23.21: - New Features: - Case-insensitive file handling - Files can now be handled case-insensitively. - This behaviour can be modified in the settings under `Handle files as Case-Sensitive` (Default: Prompt, Enabled for previous behaviour). - Improved chunk revision fixing - Revisions for chunks can now be fixed for faster chunk creation. - This can be adjusted in the settings under `Compute revisions for chunks` (Default: Prompt, Enabled for previous behaviour). - Bulk chunk transfer - Chunks can now be transferred in bulk during uploads. - This feature is enabled by default through `Send chunks in bulk`. - Creation of missing chunks without - Missing chunks can be created without storing notes, enhancing efficiency for first synchronisation or after prolonged periods without synchronisation. - Improvements: - File status scanning on the startup - Quite significant performance improvements. - No more missing scans of some files. - Status in editor enhancements - Significant performance improvements in the status display within the editor. - Notifications for files that will not be synchronised will now be properly communicated. - Encryption and Decryption - These processes are now performed in background threads to ensure fast and stable transfers. - Verify and repair all files - Got faster through parallel checking. - Migration on update - Migration messages and wizards have become more helpful. - Behavioural changes: - Chunk size adjustments - Large chunks will no longer be created for older, stable files, addressing storage consumption issues. - Flag file automation - Confirmation will be shown and we can cancel it. - Fixed: - Database File Scanning - All files in the database will now be enumerated correctly. - Miscellaneous - Dependency updated. - Now, tree shaking is left to terser, from esbuild.
2024-09-07 01:43:21 +09:00
"@types/pouchdb-core": "^7.0.15",
2024-03-15 10:35:41 +01:00
"@types/pouchdb-mapreduce": "^6.1.10",
"@types/pouchdb-replication": "^6.4.7",
"@types/transform-pouch": "^1.0.6",
2026-02-24 10:38:35 +00:00
"@typescript-eslint/eslint-plugin": "8.56.1",
"@typescript-eslint/parser": "8.56.1",
"@vitest/browser": "^4.1.1",
"@vitest/browser-playwright": "^4.1.1",
"@vitest/coverage-v8": "^4.1.1",
"builtin-modules": "5.0.0",
2026-02-24 10:38:35 +00:00
"dotenv": "^17.3.1",
2026-01-07 08:38:33 +00:00
"dotenv-cli": "^11.0.0",
"esbuild": "0.25.0",
2025-10-04 17:49:02 +09:00
"esbuild-plugin-inline-worker": "^0.1.1",
2026-02-24 10:38:35 +00:00
"esbuild-svelte": "^0.9.4",
"eslint": "^9.39.3",
v0.25.23.beta1 ### Fixed (This should be backported to 0.25.22 if the beta phase is prolonged) - No longer larger files will not create a chunks during preparing `Reset Synchronisation on This Device`. ### Behaviour changes - Setup wizard is now more `goal-oriented`. Brand-new screens are introduced. - `Fetch everything` and `Rebuild everything` is now `Reset Synchronisation on This Device` and `Overwrite Server Data with This Device's Files`. - Remote configuration and E2EE settings are now separated to each modal dialogue. - Peer-to-Peer settings is also separated into its own modal dialogue. - Setup-URI, and Report for the Issue are now not copied to clipboard automatically. Instead, there are copy dialogue and buttons to copy them explicitly. - No longer optional features are introduced during the setup or `Reset Synchronisation on This Device`, `Overwrite Server Data with This Device's Files`. - We cannot preform `Fetch everything` and `Rebuild everything` (Removed, so the old name) without restarting Obsidian now. ### Miscellaneous - Setup QR Code generation is separated into a src/lib/src/API/processSetting.ts file. Please use it as a subrepository if you want to generate QR codes in your own application. - Setup-URI is also separated into a src/lib/src/API/processSetting.ts - Some direct access to web-APIs are now wrapped into the services layer. ### Dependency updates - Many dependencies are updated. Please see `package.json`. - As upgrading TypeScript, Fixed many UInt8Array<ArrayBuffer> and Uint8Array type mismatches.
2025-10-22 13:56:15 +01:00
"eslint-plugin-import": "^2.32.0",
2026-02-24 10:38:35 +00:00
"eslint-plugin-svelte": "^3.15.0",
"events": "^3.3.0",
2026-02-24 10:38:35 +00:00
"glob": "^13.0.6",
"obsidian": "^1.12.3",
"playwright": "^1.58.2",
"postcss": "^8.5.6",
"postcss-load-config": "^6.0.1",
"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",
2026-02-24 10:38:35 +00:00
"prettier": "3.8.1",
"rollup-plugin-copy": "^3.5.0",
v0.25.23.beta1 ### Fixed (This should be backported to 0.25.22 if the beta phase is prolonged) - No longer larger files will not create a chunks during preparing `Reset Synchronisation on This Device`. ### Behaviour changes - Setup wizard is now more `goal-oriented`. Brand-new screens are introduced. - `Fetch everything` and `Rebuild everything` is now `Reset Synchronisation on This Device` and `Overwrite Server Data with This Device's Files`. - Remote configuration and E2EE settings are now separated to each modal dialogue. - Peer-to-Peer settings is also separated into its own modal dialogue. - Setup-URI, and Report for the Issue are now not copied to clipboard automatically. Instead, there are copy dialogue and buttons to copy them explicitly. - No longer optional features are introduced during the setup or `Reset Synchronisation on This Device`, `Overwrite Server Data with This Device's Files`. - We cannot preform `Fetch everything` and `Rebuild everything` (Removed, so the old name) without restarting Obsidian now. ### Miscellaneous - Setup QR Code generation is separated into a src/lib/src/API/processSetting.ts file. Please use it as a subrepository if you want to generate QR codes in your own application. - Setup-URI is also separated into a src/lib/src/API/processSetting.ts - Some direct access to web-APIs are now wrapped into the services layer. ### Dependency updates - Many dependencies are updated. Please see `package.json`. - As upgrading TypeScript, Fixed many UInt8Array<ArrayBuffer> and Uint8Array type mismatches.
2025-10-22 13:56:15 +01:00
"svelte": "5.41.1",
2026-02-24 10:38:35 +00:00
"svelte-check": "^4.4.3",
"svelte-preprocess": "^6.0.3",
"terser": "^5.39.0",
"transform-pouch": "^2.0.0",
2025-02-05 01:10:03 +00:00
"tslib": "^2.8.1",
2026-02-24 10:38:35 +00:00
"tsx": "^4.21.0",
v0.25.23.beta1 ### Fixed (This should be backported to 0.25.22 if the beta phase is prolonged) - No longer larger files will not create a chunks during preparing `Reset Synchronisation on This Device`. ### Behaviour changes - Setup wizard is now more `goal-oriented`. Brand-new screens are introduced. - `Fetch everything` and `Rebuild everything` is now `Reset Synchronisation on This Device` and `Overwrite Server Data with This Device's Files`. - Remote configuration and E2EE settings are now separated to each modal dialogue. - Peer-to-Peer settings is also separated into its own modal dialogue. - Setup-URI, and Report for the Issue are now not copied to clipboard automatically. Instead, there are copy dialogue and buttons to copy them explicitly. - No longer optional features are introduced during the setup or `Reset Synchronisation on This Device`, `Overwrite Server Data with This Device's Files`. - We cannot preform `Fetch everything` and `Rebuild everything` (Removed, so the old name) without restarting Obsidian now. ### Miscellaneous - Setup QR Code generation is separated into a src/lib/src/API/processSetting.ts file. Please use it as a subrepository if you want to generate QR codes in your own application. - Setup-URI is also separated into a src/lib/src/API/processSetting.ts - Some direct access to web-APIs are now wrapped into the services layer. ### Dependency updates - Many dependencies are updated. Please see `package.json`. - As upgrading TypeScript, Fixed many UInt8Array<ArrayBuffer> and Uint8Array type mismatches.
2025-10-22 13:56:15 +01:00
"typescript": "5.9.3",
2026-02-24 10:38:35 +00:00
"vite": "^7.3.1",
2026-03-18 11:55:50 +01:00
"vite-plugin-istanbul": "^8.0.0",
"vitest": "^4.1.1",
"webdriverio": "^9.27.0",
2026-02-24 10:38:35 +00:00
"yaml": "^2.8.2"
2021-10-14 19:27:08 +09:00
},
"dependencies": {
"@aws-sdk/client-s3": "^3.808.0",
2026-02-24 10:38:35 +00:00
"@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",
"@trystero-p2p/nostr": "^0.23.0",
"commander": "^14.0.3",
2021-10-15 17:58:42 +09:00
"diff-match-patch": "^1.0.5",
"fflate": "^0.8.2",
"idb": "^8.0.3",
"markdown-it": "^14.1.1",
2026-02-24 10:38:35 +00:00
"minimatch": "^10.2.2",
"octagonal-wheels": "^0.1.45",
"pouchdb-adapter-leveldb": "^9.0.0",
"qrcode-generator": "^1.4.4",
"werift": "^0.22.9",
"xxhash-wasm-102": "npm:xxhash-wasm@^1.0.2"
2021-10-12 23:50:13 +09:00
}
2024-10-17 09:57:42 +01:00
}