{"_id":"@baukit/data-contracts-dexie","_rev":"7-9e422a2f81ca0433182212bbcb438004","name":"@baukit/data-contracts-dexie","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@baukit/data-contracts-dexie","version":"0.1.0","author":"Patrick Koss","license":"MIT","_id":"@baukit/data-contracts-dexie@0.1.0","maintainers":[{"name":"patrickkoss","email":"pati.koss@gmx.de"}],"homepage":"https://github.com/PatrickKoss/baukit#readme","bugs":{"url":"https://github.com/PatrickKoss/baukit/issues"},"dist":{"shasum":"6cb0e1bee43a15f70c184705992020ab2c875878","tarball":"https://registry.npmjs.org/@baukit/data-contracts-dexie/-/data-contracts-dexie-0.1.0.tgz","fileCount":7,"integrity":"sha512-XJRskZjoI4j9J9Hwg5A9YxkBOpfVJI5MBS7dahiS+A993rFxCqzaxm/wPJnUkRRiLTfem0UU4hat/ykPplE0zA==","signatures":[{"sig":"MEUCIHh2CHNfsvZgFvrqgrY9x6VUfUim5MtbppkfoZccHxmEAiEA4W47tYh8WhvwNuJuYrOPZG51HUZufl25isBD8YAQEA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31224},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src --max-warnings=0","test":"vitest run --config ../../vitest.config.ts --exclude 'src/**/*.browser.test.ts'","build":"tsc -p tsconfig.json","check":"pnpm run build && pnpm run lint && pnpm run test && pnpm run format:check && pnpm run test:browser","format:check":"prettier --check src package.json tsconfig.json tsconfig.browser.json vitest.browser.config.ts","test:browser":"tsc -p tsconfig.browser.json && vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"patrickkoss","email":"pati.koss@gmx.de"},"repository":{"url":"git+https://github.com/PatrickKoss/baukit.git","type":"git","directory":"typescript/packages/data-contracts-dexie"},"description":"Dexie 4.x implementation of @baukit/data-contracts for web applications.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dexie":"4.4.5","vitest":"4.1.10","playwright":"1.62.1","typescript":"6.0.3","fake-indexeddb":"6.2.5","@baukit/data-contracts":"0.1.0","@vitest/browser-playwright":"4.1.10"},"peerDependencies":{"dexie":"^4.4.5","@baukit/data-contracts":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/data-contracts-dexie_0.1.0_1787683582174_0.6474569457574144","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@baukit/data-contracts-dexie","version":"0.1.1","author":{"name":"Patrick Koss"},"license":"MIT","_id":"@baukit/data-contracts-dexie@0.1.1","maintainers":[{"name":"patrickkoss","email":"pati.koss@gmx.de"}],"homepage":"https://github.com/PatrickKoss/baukit#readme","bugs":{"url":"https://github.com/PatrickKoss/baukit/issues"},"dist":{"shasum":"825cb6314305ae41e31d5f0213342d0d275ad4b1","tarball":"https://registry.npmjs.org/@baukit/data-contracts-dexie/-/data-contracts-dexie-0.1.1.tgz","fileCount":7,"integrity":"sha512-ebPAiCqcFmXSO9svSfy6Ghz9ce1/2NU1vgXTFDRkj5OAZTbyzl0TvJIG7liqN5FOdQogr2W3oxE8zOn7eTO+SQ==","signatures":[{"sig":"MEYCIQD7dUgkppDDgjqTHBC0fKBjIHQ34P4XgDpDWO9qH7XacQIhAMxUFm630pJDG0RexxAJf9EfFW5CLaHFkAANoVE0HSXf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baukit%2fdata-contracts-dexie@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31264},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6f2299927c02c155eb071e4ece8ab4d84bf5195c","scripts":{"lint":"eslint src --max-warnings=0","test":"vitest run --config ../../vitest.config.ts --exclude 'src/**/*.browser.test.ts'","build":"tsc -p tsconfig.json","check":"pnpm run build && pnpm run lint && pnpm run test && pnpm run format:check && pnpm run test:browser","prepare":"pnpm run build","format:check":"prettier --check src package.json tsconfig.json tsconfig.browser.json vitest.browser.config.ts","test:browser":"tsc -p tsconfig.browser.json && vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ffa1cd38-ddfd-4eb3-9cc0-7e886ec1962c"}},"repository":{"url":"git+https://github.com/PatrickKoss/baukit.git","type":"git","directory":"typescript/packages/data-contracts-dexie"},"_npmVersion":"12.0.2","description":"Dexie 4.x implementation of @baukit/data-contracts for web applications.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dexie":"4.4.5","vitest":"4.1.10","playwright":"1.62.1","typescript":"6.0.3","fake-indexeddb":"6.2.5","@baukit/data-contracts":"workspace:*","@vitest/browser-playwright":"4.1.10"},"peerDependencies":{"dexie":"^4.4.5","@baukit/data-contracts":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/data-contracts-dexie_0.1.1_1788301174554_0.7437884021029841","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@baukit/data-contracts-dexie","version":"0.1.2","author":{"name":"Patrick Koss"},"license":"MIT","_id":"@baukit/data-contracts-dexie@0.1.2","maintainers":[{"name":"patrickkoss","email":"pati.koss@gmx.de"}],"homepage":"https://github.com/PatrickKoss/baukit#readme","bugs":{"url":"https://github.com/PatrickKoss/baukit/issues"},"dist":{"shasum":"218fab503a647d241e29092fa51c9bee6d934e0a","tarball":"https://registry.npmjs.org/@baukit/data-contracts-dexie/-/data-contracts-dexie-0.1.2.tgz","fileCount":7,"integrity":"sha512-91kHd8OE7izhFGW9GIK8TRsMVZtnFrfXwNnq99xwl9ChGDQB1n3DaVlaRjOeeAhYnVSbdOpXxDRpPuUKZiIHXA==","signatures":[{"sig":"MEUCIARj45Fw731uti+gzpFThjJvw6QRDlfN9Sb5G6n3HuxWAiEAhCLAMw8AgNXcmZ9WyyF16p93QMDMyT/uwWmHlBZNUzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baukit%2fdata-contracts-dexie@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31264},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b8dce5e22edf5e3bc4e8fb70b9fc279a9b1f0594","scripts":{"lint":"eslint src --max-warnings=0","test":"vitest run --config ../../vitest.config.ts --exclude 'src/**/*.browser.test.ts'","build":"tsc -p tsconfig.json","check":"pnpm run build && pnpm run lint && pnpm run test && pnpm run format:check && pnpm run test:browser","prepare":"pnpm run build","format:check":"prettier --check src package.json tsconfig.json tsconfig.browser.json vitest.browser.config.ts","test:browser":"tsc -p tsconfig.browser.json && vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ffa1cd38-ddfd-4eb3-9cc0-7e886ec1962c"}},"repository":{"url":"git+https://github.com/PatrickKoss/baukit.git","type":"git","directory":"typescript/packages/data-contracts-dexie"},"_npmVersion":"12.0.2","description":"Dexie 4.x implementation of @baukit/data-contracts for web applications.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dexie":"4.4.5","vitest":"4.1.10","playwright":"1.62.1","typescript":"6.0.3","fake-indexeddb":"6.2.5","@baukit/data-contracts":"workspace:*","@vitest/browser-playwright":"4.1.10"},"peerDependencies":{"dexie":"^4.4.5","@baukit/data-contracts":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/data-contracts-dexie_0.1.2_1788302070601_0.625016756421449","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@baukit/data-contracts-dexie","version":"0.2.0","author":{"name":"Patrick Koss"},"license":"MIT","_id":"@baukit/data-contracts-dexie@0.2.0","maintainers":[{"name":"patrickkoss","email":"pati.koss@gmx.de"}],"homepage":"https://github.com/PatrickKoss/baukit#readme","bugs":{"url":"https://github.com/PatrickKoss/baukit/issues"},"dist":{"shasum":"3b610509f357aa1aa1a29565f83295f32abfab6e","tarball":"https://registry.npmjs.org/@baukit/data-contracts-dexie/-/data-contracts-dexie-0.2.0.tgz","fileCount":7,"integrity":"sha512-RSjTNjDJ4ZCZrXtpqNNfbUsyzoFpA+bSKzeOP88LblgV7XUxNRsnBpSD3SNBEhNW1fSwb2fughskoWjMjSAxfA==","signatures":[{"sig":"MEUCIAoOxZTfwNB+23jyU89GIVFjCK0VcM0RqlphjC8vke1UAiEAudeKV8Jz0j4UIvHu4lQ8EXpABuKicTWroZab3kPFnWw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baukit%2fdata-contracts-dexie@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31264},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"78581ec3ed945955eae06105167bedbb85fd0da7","scripts":{"lint":"eslint src --max-warnings=0","test":"vitest run --config ../../vitest.config.ts --exclude 'src/**/*.browser.test.ts'","build":"tsc -p tsconfig.json","check":"pnpm run build && pnpm run lint && pnpm run test && pnpm run format:check && pnpm run test:browser","prepare":"pnpm run build","format:check":"prettier --check src package.json tsconfig.json tsconfig.browser.json vitest.browser.config.ts","test:browser":"tsc -p tsconfig.browser.json && vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ffa1cd38-ddfd-4eb3-9cc0-7e886ec1962c"}},"repository":{"url":"git+https://github.com/PatrickKoss/baukit.git","type":"git","directory":"typescript/packages/data-contracts-dexie"},"_npmVersion":"12.0.2","description":"Dexie 4.x implementation of @baukit/data-contracts for web applications.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dexie":"4.4.5","vitest":"4.1.10","playwright":"1.62.1","typescript":"6.0.3","fake-indexeddb":"6.2.5","@baukit/data-contracts":"workspace:*","@vitest/browser-playwright":"4.1.10"},"peerDependencies":{"dexie":"^4.4.5","@baukit/data-contracts":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/data-contracts-dexie_0.2.0_1788423759521_0.695299631483556","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@baukit/data-contracts-dexie","version":"0.2.1","author":{"name":"Patrick Koss"},"license":"MIT","_id":"@baukit/data-contracts-dexie@0.2.1","maintainers":[{"name":"patrickkoss","email":"pati.koss@gmx.de"}],"homepage":"https://github.com/PatrickKoss/baukit#readme","bugs":{"url":"https://github.com/PatrickKoss/baukit/issues"},"dist":{"shasum":"96ac6390e9c77881ebf99f44a455f43d213790ec","tarball":"https://registry.npmjs.org/@baukit/data-contracts-dexie/-/data-contracts-dexie-0.2.1.tgz","fileCount":7,"integrity":"sha512-zqTaFW4r9GDC5CBfZH+A2zv422DrvOQV5pg93+PVD1nSp4y1P4z+NtbUW7hibLytcBPk3WnFsj9ibo4QV5ndZw==","signatures":[{"sig":"MEYCIQCNx+ZIfBPRJrebGB3MEe0mXLDq+X706GtkIxQF6Zp5zwIhAMmfKy+qMiqOkOkRu7MEUpgACF49TsC331FwXzkxweZE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baukit%2fdata-contracts-dexie@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31264},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"88f513be8ea771920471c88a0007a479470954a1","scripts":{"lint":"eslint src --max-warnings=0","test":"vitest run --config ../../vitest.config.ts --exclude 'src/**/*.browser.test.ts'","build":"tsc -p tsconfig.json","check":"pnpm run build && pnpm run lint && pnpm run test && pnpm run format:check && pnpm run test:browser","prepare":"pnpm run build","format:check":"prettier --check src package.json tsconfig.json tsconfig.browser.json vitest.browser.config.ts","test:browser":"tsc -p tsconfig.browser.json && vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ffa1cd38-ddfd-4eb3-9cc0-7e886ec1962c"}},"repository":{"url":"git+https://github.com/PatrickKoss/baukit.git","type":"git","directory":"typescript/packages/data-contracts-dexie"},"_npmVersion":"12.0.2","description":"Dexie 4.x implementation of @baukit/data-contracts for web applications.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dexie":"4.4.5","vitest":"4.1.10","playwright":"1.62.1","typescript":"6.0.3","fake-indexeddb":"6.2.5","@baukit/data-contracts":"workspace:*","@vitest/browser-playwright":"4.1.10"},"peerDependencies":{"dexie":"^4.4.5","@baukit/data-contracts":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/data-contracts-dexie_0.2.1_1788436329733_0.6140380226953559","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@baukit/data-contracts-dexie","version":"0.3.0","author":"Patrick Koss","license":"MIT","_id":"@baukit/data-contracts-dexie@0.3.0","maintainers":[{"name":"patrickkoss","email":"pati.koss@gmx.de"}],"homepage":"https://github.com/PatrickKoss/baukit#readme","bugs":{"url":"https://github.com/PatrickKoss/baukit/issues"},"dist":{"shasum":"5f562c23871dddddb330ea7f2bf32c75e37e32b7","tarball":"https://registry.npmjs.org/@baukit/data-contracts-dexie/-/data-contracts-dexie-0.3.0.tgz","fileCount":7,"integrity":"sha512-vi8g+ZPkcpiCLWmLdY6s7lapFAaP1crZWLtVwnajXhLjwZ8H+N7IQWovNkFOa3kw6SLlWy+gMDUG2M+yeoeSZQ==","signatures":[{"sig":"MEQCICHl0rnMmW3bus6BpIyONAFeUKqjU8gSHxjyryLiw0xoAiBYrUsqH6VbuBQPrXBhdlDdvbo+YH7ijgPy+VwNLSh8Pg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31224},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src --max-warnings=0","test":"vitest run --config ../../vitest.config.ts --exclude 'src/**/*.browser.test.ts'","build":"tsc -p tsconfig.json","check":"pnpm run build && pnpm run lint && pnpm run test && pnpm run format:check && pnpm run test:browser","format:check":"prettier --check src package.json tsconfig.json tsconfig.browser.json vitest.browser.config.ts","test:browser":"tsc -p tsconfig.browser.json && vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"patrickkoss","email":"pati.koss@gmx.de"},"repository":{"url":"git+https://github.com/PatrickKoss/baukit.git","type":"git","directory":"typescript/packages/data-contracts-dexie"},"description":"Dexie 4.x implementation of @baukit/data-contracts for web applications.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dexie":"4.4.5","vitest":"4.1.10","playwright":"1.62.1","typescript":"6.0.3","fake-indexeddb":"6.2.5","@baukit/data-contracts":"0.3.0","@vitest/browser-playwright":"4.1.10"},"peerDependencies":{"dexie":"^4.4.5","@baukit/data-contracts":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/data-contracts-dexie_0.3.0_1788544977625_0.9676198245801277","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@baukit/data-contracts-dexie","version":"0.4.0","description":"Dexie 4.x implementation of @baukit/data-contracts for web applications.","license":"MIT","author":"Patrick Koss","homepage":"https://github.com/PatrickKoss/baukit#readme","repository":{"type":"git","url":"git+https://github.com/PatrickKoss/baukit.git","directory":"typescript/packages/data-contracts-dexie"},"bugs":{"url":"https://github.com/PatrickKoss/baukit/issues"},"publishConfig":{"access":"public"},"type":"module","engines":{"node":">=24.0.0"},"types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"devDependencies":{"@vitest/browser-playwright":"4.1.10","dexie":"4.4.5","fake-indexeddb":"6.2.5","playwright":"1.62.1","typescript":"6.0.3","vitest":"4.1.10","@baukit/data-contracts":"0.4.0"},"peerDependencies":{"@baukit/data-contracts":"^0.4.0","dexie":"^4.4.5"},"scripts":{"build":"tsc -p tsconfig.json","test":"vitest run --config ../../vitest.config.ts --exclude 'src/**/*.browser.test.ts'","test:browser":"tsc -p tsconfig.browser.json && vitest run --config vitest.browser.config.ts","check":"pnpm run build && pnpm run lint && pnpm run test && pnpm run format:check && pnpm run test:browser","lint":"eslint src --max-warnings=0","format:check":"prettier --check src package.json tsconfig.json tsconfig.browser.json vitest.browser.config.ts"},"_nodeVersion":"24.20.0","_id":"@baukit/data-contracts-dexie@0.4.0","dist":{"integrity":"sha512-qhwk8D/VnnSeIZTN58bSau9f00roJm1IUsultedlyNQcrmAEutkQ2RWXScaPQp9/ITJkM4xXG/uXwAwadggLHw==","shasum":"5ab4bd662d4ba130b4a6566cffa2fdff932fa066","tarball":"https://registry.npmjs.org/@baukit/data-contracts-dexie/-/data-contracts-dexie-0.4.0.tgz","fileCount":7,"unpackedSize":31224,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGt9oOztYLte/FP1BXEwKKrrrrN15cen0YpZEmvdLrodAiAsUjKYDU7Ea+4YpJKiISaJnGAx2/1qBDgwSiYBN+wUJg=="}]},"_npmUser":{"name":"patrickkoss","email":"pati.koss@gmx.de"},"directories":{},"maintainers":[{"name":"patrickkoss","email":"pati.koss@gmx.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/data-contracts-dexie_0.4.0_1789245103121_0.8701388222634694"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-25T18:46:22.008Z","modified":"2026-09-12T20:31:43.450Z","0.1.0":"2026-08-25T18:46:22.309Z","0.1.1":"2026-09-01T22:19:34.680Z","0.1.2":"2026-09-01T22:34:30.733Z","0.2.0":"2026-09-03T08:22:39.656Z","0.2.1":"2026-09-03T11:52:09.880Z","0.3.0":"2026-09-04T18:02:57.771Z","0.4.0":"2026-09-12T20:31:43.272Z"},"bugs":{"url":"https://github.com/PatrickKoss/baukit/issues"},"author":"Patrick Koss","license":"MIT","homepage":"https://github.com/PatrickKoss/baukit#readme","repository":{"type":"git","url":"git+https://github.com/PatrickKoss/baukit.git","directory":"typescript/packages/data-contracts-dexie"},"description":"Dexie 4.x implementation of @baukit/data-contracts for web applications.","maintainers":[{"name":"patrickkoss","email":"pati.koss@gmx.de"}],"readme":"# `@baukit/data-contracts-dexie`\n\nA product-neutral Dexie 4.x implementation of `@baukit/data-contracts` for web\napplications that need key/value data, ID-ordered records, portable schema\nmetadata, and compound write transactions.\n\n```ts\nimport { openDexieStore } from '@baukit/data-contracts-dexie';\n\ninterface CachedRecord {\n  readonly id: string;\n  readonly value: string;\n}\n\nconst storage = await openDexieStore<CachedRecord>('product-cache');\nawait storage.withTransaction(async (transaction) => {\n  await transaction.records.put({ id: 'record-1', value: 'local' });\n  await transaction.keyValues.set('outbox:mutation-1', {\n    entityId: 'record-1',\n    operation: 'put',\n  });\n});\nawait storage.close();\n```\n\nThe package owns three generic IndexedDB object stores. It does not define\nproduct tables, entity relationships, soft-delete behavior, revisions, sync\nprotocols, or database naming policy.\n\nAuthenticated products should resolve an opaque name with\n`@baukit/data-contracts` before calling `openDexieStore`. The fake-IndexedDB and\nChromium/WebKit suites run the shared offline E→F→E identity-transition cases\nin addition to the transaction contract.\n\n## Transaction model\n\nNested transactions explicitly join the ambient transaction when they are\nstarted through the callback's transaction-scoped context:\n\n```ts\nawait storage.withTransaction((transaction) =>\n  transaction.withTransaction((sameTransaction) => sameTransaction.records.put(record)),\n);\n```\n\nCompose transactional repositories from that scoped context. A call on the\nroot `storage` object is an independent transaction and is serialized behind\ntransactions that already started. Transaction contexts must not be retained\nafter their callback ends.\n\nPrepare network, native, crypto, filesystem, or other external promise results\nbefore opening a write transaction. Dexie tracks its own promise zone, but an\nunrelated promise layer can let the browser's IndexedDB request queue drain and\nauto-commit early. Keep the callback limited to the complete local write set.\n\nDo not blanket-ignore Dexie's `PrematureCommitError`. That error can mean the\nbrowser committed only an early subset of the intended writes. Treating it as\nsuccess without proof can silently split a compound operation. Acceptance\ntests must observe every intended write, the matching outbox entry, and full\nrollback when any step fails.\n\nQuota failures surface as `StorageError` with code\n`storage_quota_exceeded`. After `close()` resolves, operations fail with code\n`storage_closed`.\n\n## Verification\n\n`pnpm test` uses `fake-indexeddb` and stays fast. The browser suite is a\nseparate Chromium and WebKit gate. Install browsers into a repository-local\ncache and run it from the repository root:\n\n```bash\nPLAYWRIGHT_BROWSERS_PATH=\"$PWD/typescript/.playwright-browsers\" \\\n  corepack pnpm --dir typescript --filter @baukit/data-contracts-dexie \\\n  exec playwright install --with-deps chromium webkit\nPLAYWRIGHT_BROWSERS_PATH=\"$PWD/typescript/.playwright-browsers\" \\\n  corepack pnpm --dir typescript --filter @baukit/data-contracts-dexie \\\n  run test:browser\n```\n\nRun `corepack pnpm --dir typescript run check` for the normal workspace gate.\nThe package-local `check` script also includes the browser suite and therefore\nexpects the two browser binaries to be installed. CI should add the same\nrepository-local browser install and `test:browser` commands as a distinct\nstep; the workspace's ordinary `test` task intentionally remains fast.\n","readmeFilename":""}