CI / Node 24 (push) Successful in 15s
CI / Node 26 (push) Successful in 16s
CI / Node 22 (pull_request) Successful in 13s
CI / Node 24 (pull_request) Failing after 3s
CI / Node 26 (pull_request) Failing after 4s
CI / Chromium (push) Failing after 1m8s
CI / Publish to staging registry (push) Skipped
CI / Chromium (pull_request) Failing after 1m3s
CI / Publish to staging registry (pull_request) Skipped
CI / Node 22 (push) Failing after 4s
- KVStorageEncrypted: AES-GCM per value (fresh IV, storage key as AAD), keys stay readable; decrypts and re-emits pushed changes and passes subscriptions through, so it can be a composite source. generateKey / exportKey / importKey / deriveKey (PBKDF2). - KVStorageHttpServer: allowOrigins (CORS), including cache-control for SSE preflights. - Chromium tests (Vitest browser mode + Playwright) against a real cross-origin server: conformance for IndexedDB, encrypted, HTTP and composite stores; signed requests and SSE; two devices syncing, offline writes surviving a reload. New CI job. - Composite fixes found by those tests: sync() during a running sync schedules one more (changes between the first scan and the stream connecting were missed); a queued write the source refuses is dropped, restored and reported (onError) instead of blocking the queue forever. - README with examples, mirrored in test/readme.test.ts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Qxbkp4tA7G5SCWjzWuxmE
46 lines
1.1 KiB
JSON
46 lines
1.1 KiB
JSON
{
|
|
"name": "@harvmaster/storage",
|
|
"version": "0.1.0",
|
|
"description": "Layered TypeScript storage: KV -> Events -> Documents",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.ts",
|
|
"import": "./dist/index.js"
|
|
}
|
|
},
|
|
"publishConfig": {
|
|
"registry": "https://verdaccio.harvmaster.com/"
|
|
},
|
|
"files": [
|
|
"dist"
|
|
],
|
|
"scripts": {
|
|
"build": "tsc -p tsconfig.build.json",
|
|
"prepack": "npm run build",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "tsc --noEmit && vitest run",
|
|
"test:watch": "vitest",
|
|
"bench": "vitest bench --run",
|
|
"test:only": "vitest run",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check .",
|
|
"test:browser": "vitest run --config vitest.browser.config.ts"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.20.5",
|
|
"@vitest/browser": "^3.2.7",
|
|
"fake-indexeddb": "^6.2.6",
|
|
"fast-check": "^4.10.2",
|
|
"playwright": "^1.56.1",
|
|
"prettier": "^3.9.10",
|
|
"typescript": "^5.9.3",
|
|
"vitest": "^3.2.7"
|
|
}
|
|
}
|