@vielzeug/vault 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +0 -19
  2. package/dist/_dev.cjs +1 -1
  3. package/dist/_dev.cjs.map +1 -1
  4. package/dist/_dev.js +2 -3
  5. package/dist/_dev.js.map +1 -1
  6. package/dist/adapter-core.cjs +1 -1
  7. package/dist/adapter-core.cjs.map +1 -1
  8. package/dist/adapter-core.d.ts.map +1 -1
  9. package/dist/adapter-core.js +2 -2
  10. package/dist/adapter-core.js.map +1 -1
  11. package/dist/adapters/indexeddb.cjs +1 -1
  12. package/dist/adapters/indexeddb.cjs.map +1 -1
  13. package/dist/adapters/indexeddb.d.ts +46 -2
  14. package/dist/adapters/indexeddb.d.ts.map +1 -1
  15. package/dist/adapters/indexeddb.js +76 -56
  16. package/dist/adapters/indexeddb.js.map +1 -1
  17. package/dist/adapters/memory.cjs.map +1 -1
  18. package/dist/adapters/memory.d.ts.map +1 -1
  19. package/dist/adapters/memory.js.map +1 -1
  20. package/dist/adapters/sqlite.cjs +1 -1
  21. package/dist/adapters/sqlite.cjs.map +1 -1
  22. package/dist/adapters/sqlite.d.ts +2 -2
  23. package/dist/adapters/sqlite.d.ts.map +1 -1
  24. package/dist/adapters/sqlite.js +1 -1
  25. package/dist/adapters/sqlite.js.map +1 -1
  26. package/dist/adapters/webstorage.cjs +1 -1
  27. package/dist/adapters/webstorage.cjs.map +1 -1
  28. package/dist/adapters/webstorage.d.ts +1 -1
  29. package/dist/adapters/webstorage.d.ts.map +1 -1
  30. package/dist/adapters/webstorage.js +1 -1
  31. package/dist/adapters/webstorage.js.map +1 -1
  32. package/dist/errors.cjs +1 -1
  33. package/dist/errors.cjs.map +1 -1
  34. package/dist/errors.d.ts +0 -1
  35. package/dist/errors.d.ts.map +1 -1
  36. package/dist/errors.js +1 -4
  37. package/dist/errors.js.map +1 -1
  38. package/dist/index.cjs +1 -1
  39. package/dist/index.d.ts +2 -2
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +3 -3
  42. package/dist/indexeddb.cjs +1 -1
  43. package/dist/indexeddb.d.ts +3 -4
  44. package/dist/indexeddb.d.ts.map +1 -1
  45. package/dist/indexeddb.js +1 -2
  46. package/dist/internal.cjs.map +1 -1
  47. package/dist/internal.d.ts.map +1 -1
  48. package/dist/internal.js.map +1 -1
  49. package/dist/prune.cjs +1 -1
  50. package/dist/prune.cjs.map +1 -1
  51. package/dist/prune.d.ts +8 -19
  52. package/dist/prune.d.ts.map +1 -1
  53. package/dist/prune.js +9 -13
  54. package/dist/prune.js.map +1 -1
  55. package/dist/query.cjs +1 -1
  56. package/dist/query.cjs.map +1 -1
  57. package/dist/query.d.ts +5 -11
  58. package/dist/query.d.ts.map +1 -1
  59. package/dist/query.js +1 -4
  60. package/dist/query.js.map +1 -1
  61. package/dist/sqlite.d.ts +1 -1
  62. package/dist/sqlite.d.ts.map +1 -1
  63. package/dist/ttl.cjs +1 -1
  64. package/dist/ttl.cjs.map +1 -1
  65. package/dist/ttl.d.ts +8 -19
  66. package/dist/ttl.d.ts.map +1 -1
  67. package/dist/ttl.js +5 -5
  68. package/dist/ttl.js.map +1 -1
  69. package/dist/types.cjs +1 -1
  70. package/dist/types.cjs.map +1 -1
  71. package/dist/types.d.ts +28 -40
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/types.js +14 -19
  74. package/dist/types.js.map +1 -1
  75. package/dist/vault.cjs +1 -1
  76. package/dist/vault.cjs.map +1 -1
  77. package/dist/vault.iife.js +1 -1
  78. package/dist/vault.iife.js.map +1 -1
  79. package/dist/vault.js +1 -1
  80. package/dist/vault.js.map +1 -1
  81. package/package.json +44 -39
  82. package/dist/migration.cjs +0 -2
  83. package/dist/migration.cjs.map +0 -1
  84. package/dist/migration.d.ts +0 -37
  85. package/dist/migration.d.ts.map +0 -1
  86. package/dist/migration.js +0 -25
  87. package/dist/migration.js.map +0 -1
package/package.json CHANGED
@@ -1,8 +1,16 @@
1
1
  {
2
2
  "name": "@vielzeug/vault",
3
- "version": "2.1.0",
3
+ "version": "2.3.0",
4
4
  "description": "Typed storage core with explicit browser and SQLite adapter entry points",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/helmuthdu/vielzeug",
8
+ "directory": "packages/vault"
9
+ },
5
10
  "type": "module",
11
+ "engines": {
12
+ "node": ">=22"
13
+ },
6
14
  "files": [
7
15
  "dist"
8
16
  ],
@@ -11,62 +19,36 @@
11
19
  "types": "dist/index.d.ts",
12
20
  "exports": {
13
21
  ".": {
14
- "types": "./dist/index.d.ts",
15
22
  "import": "./dist/index.js",
16
- "require": "./dist/index.cjs"
23
+ "require": "./dist/index.cjs",
24
+ "types": "./dist/index.d.ts"
17
25
  },
18
26
  "./indexeddb": {
19
- "types": "./dist/indexeddb.d.ts",
20
27
  "import": "./dist/indexeddb.js",
21
- "require": "./dist/indexeddb.cjs"
28
+ "require": "./dist/indexeddb.cjs",
29
+ "types": "./dist/indexeddb.d.ts"
22
30
  },
23
31
  "./local-storage": {
24
- "types": "./dist/local-storage.d.ts",
25
32
  "import": "./dist/local-storage.js",
26
- "require": "./dist/local-storage.cjs"
33
+ "require": "./dist/local-storage.cjs",
34
+ "types": "./dist/local-storage.d.ts"
27
35
  },
28
36
  "./memory": {
29
- "types": "./dist/memory.d.ts",
30
37
  "import": "./dist/memory.js",
31
- "require": "./dist/memory.cjs"
38
+ "require": "./dist/memory.cjs",
39
+ "types": "./dist/memory.d.ts"
32
40
  },
33
41
  "./session-storage": {
34
- "types": "./dist/session-storage.d.ts",
35
42
  "import": "./dist/session-storage.js",
36
- "require": "./dist/session-storage.cjs"
43
+ "require": "./dist/session-storage.cjs",
44
+ "types": "./dist/session-storage.d.ts"
37
45
  },
38
46
  "./sqlite": {
39
- "types": "./dist/sqlite.d.ts",
40
47
  "import": "./dist/sqlite.js",
41
- "require": "./dist/sqlite.cjs"
48
+ "require": "./dist/sqlite.cjs",
49
+ "types": "./dist/sqlite.d.ts"
42
50
  }
43
51
  },
44
- "scripts": {
45
- "build": "vite build && pnpm run build:bundle && pnpm run build:types",
46
- "build:types": "tsc -p tsconfig.declarations.json",
47
- "fix": "eslint --fix src",
48
- "lint": "eslint src",
49
- "prepublishOnly": "pnpm run build",
50
- "preview": "vite preview",
51
- "test": "vitest",
52
- "test:sqlite:bun": "bun test runtime-smoke/bun-sqlite.ts",
53
- "test:sqlite:deno": "deno test --allow-read --allow-env --allow-ffi runtime-smoke/deno-sqlite.ts",
54
- "build:bundle": "vite build --config vite.bundle.config.ts"
55
- },
56
- "publishConfig": {
57
- "access": "public",
58
- "registry": "https://registry.npmjs.org/"
59
- },
60
- "engines": {
61
- "node": ">=22"
62
- },
63
- "devDependencies": {
64
- "@types/node": "^26.1.2",
65
- "fake-indexeddb": "^6.2.5",
66
- "typescript": "^6.0.3",
67
- "vite": "^8.2.0",
68
- "vitest": "^4.1.10"
69
- },
70
52
  "typesVersions": {
71
53
  "*": {
72
54
  "indexeddb": [
@@ -85,5 +67,28 @@
85
67
  "dist/sqlite.d.ts"
86
68
  ]
87
69
  }
70
+ },
71
+ "publishConfig": {
72
+ "access": "public",
73
+ "registry": "https://registry.npmjs.org/"
74
+ },
75
+ "scripts": {
76
+ "build": "vite build && pnpm run build:bundle && pnpm run build:types",
77
+ "build:bundle": "vite build --config vite.bundle.config.ts",
78
+ "build:types": "tsc -p tsconfig.declarations.json",
79
+ "fix": "biome check --write src",
80
+ "lint": "biome ci src",
81
+ "prepublishOnly": "pnpm run build",
82
+ "preview": "vite preview",
83
+ "test": "vitest",
84
+ "test:sqlite:bun": "bun test runtime-smoke/bun-sqlite.ts",
85
+ "test:sqlite:deno": "deno test --allow-read --allow-env --allow-ffi runtime-smoke/deno-sqlite.ts"
86
+ },
87
+ "devDependencies": {
88
+ "@types/node": "^26.2.0",
89
+ "fake-indexeddb": "^6.2.5",
90
+ "typescript": "^6.0.3",
91
+ "vite": "^8.2.1",
92
+ "vitest": "^4.1.10"
88
93
  }
89
94
  }
@@ -1,2 +0,0 @@
1
- function e(e){return({db:t,tx:n})=>{for(let r of e)switch(r.type){case`addIndex`:{let e=n.objectStore(r.table);e.indexNames.contains(r.field)||e.createIndex(r.field,`value.${r.field}`);break}case`addTable`:t.objectStoreNames.contains(r.name)||t.createObjectStore(r.name);break;case`removeIndex`:{let e=n.objectStore(r.table);e.indexNames.contains(r.field)&&e.deleteIndex(r.field);break}case`removeTable`:t.objectStoreNames.contains(r.name)&&t.deleteObjectStore(r.name)}}}exports.defineMigration=e;
2
- //# sourceMappingURL=migration.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.cjs","names":[],"sources":["../src/migration.ts"],"sourcesContent":["import type { MigrationFn } from './types';\n\n/**\n * A single step in a typed migration definition.\n * Compose multiple steps to describe the full schema change between two versions.\n */\nexport type MigrationStep =\n | { field: string; table: string; type: 'addIndex' }\n | { field: string; table: string; type: 'removeIndex' }\n | { name: string; type: 'addTable' }\n | { name: string; type: 'removeTable' };\n\n/**\n * Builds a typed `MigrationFn` from a declarative list of schema change steps.\n * Each step is applied in order and is idempotent (safe to run when the target\n * already exists or has already been removed).\n *\n * ```ts\n * const migrate = defineMigration([\n * { type: 'addTable', name: 'sessions' },\n * { type: 'addIndex', table: 'users', field: 'email' },\n * { type: 'removeTable', name: 'legacyTokens' },\n * ]);\n *\n * const db = createIndexedDB({ name: 'app', version: 2, schema, migrate });\n * ```\n */\nexport function defineMigration(steps: MigrationStep[]): MigrationFn {\n return ({ db, tx }) => {\n for (const step of steps) {\n switch (step.type) {\n case 'addIndex': {\n const store = tx.objectStore(step.table);\n\n // keyPath mirrors the vault storage envelope: { value: T, expiresAt?: number }\n if (!store.indexNames.contains(step.field)) {\n store.createIndex(step.field, `value.${step.field}`);\n }\n\n break;\n }\n case 'addTable':\n if (!db.objectStoreNames.contains(step.name)) {\n db.createObjectStore(step.name);\n }\n\n break;\n case 'removeIndex': {\n const store = tx.objectStore(step.table);\n\n if (store.indexNames.contains(step.field)) {\n store.deleteIndex(step.field);\n }\n\n break;\n }\n case 'removeTable':\n if (db.objectStoreNames.contains(step.name)) {\n db.deleteObjectStore(step.name);\n }\n\n break;\n }\n }\n };\n}\n"],"mappings":"AA2BA,SAAgB,EAAgB,EAAqC,CACnE,OAAQ,CAAE,KAAI,QAAS,CACrB,IAAK,IAAM,KAAQ,EACjB,OAAQ,EAAK,KAAb,CACE,IAAK,WAAY,CACf,IAAM,EAAQ,EAAG,YAAY,EAAK,KAAK,EAGlC,EAAM,WAAW,SAAS,EAAK,KAAK,GACvC,EAAM,YAAY,EAAK,MAAO,SAAS,EAAK,OAAO,EAGrD,KACF,CACA,IAAK,WACE,EAAG,iBAAiB,SAAS,EAAK,IAAI,GACzC,EAAG,kBAAkB,EAAK,IAAI,EAGhC,MACF,IAAK,cAAe,CAClB,IAAM,EAAQ,EAAG,YAAY,EAAK,KAAK,EAEnC,EAAM,WAAW,SAAS,EAAK,KAAK,GACtC,EAAM,YAAY,EAAK,KAAK,EAG9B,KACF,CACA,IAAK,cACC,EAAG,iBAAiB,SAAS,EAAK,IAAI,GACxC,EAAG,kBAAkB,EAAK,IAAI,CAIpC,CAEJ,CACF"}
@@ -1,37 +0,0 @@
1
- import type { MigrationFn } from './types';
2
- /**
3
- * A single step in a typed migration definition.
4
- * Compose multiple steps to describe the full schema change between two versions.
5
- */
6
- export type MigrationStep = {
7
- field: string;
8
- table: string;
9
- type: 'addIndex';
10
- } | {
11
- field: string;
12
- table: string;
13
- type: 'removeIndex';
14
- } | {
15
- name: string;
16
- type: 'addTable';
17
- } | {
18
- name: string;
19
- type: 'removeTable';
20
- };
21
- /**
22
- * Builds a typed `MigrationFn` from a declarative list of schema change steps.
23
- * Each step is applied in order and is idempotent (safe to run when the target
24
- * already exists or has already been removed).
25
- *
26
- * ```ts
27
- * const migrate = defineMigration([
28
- * { type: 'addTable', name: 'sessions' },
29
- * { type: 'addIndex', table: 'users', field: 'email' },
30
- * { type: 'removeTable', name: 'legacyTokens' },
31
- * ]);
32
- *
33
- * const db = createIndexedDB({ name: 'app', version: 2, schema, migrate });
34
- * ```
35
- */
36
- export declare function defineMigration(steps: MigrationStep[]): MigrationFn;
37
- //# sourceMappingURL=migration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAClD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,WAAW,CAsCnE"}
package/dist/migration.js DELETED
@@ -1,25 +0,0 @@
1
- //#region src/migration.ts
2
- function e(e) {
3
- return ({ db: t, tx: n }) => {
4
- for (let r of e) switch (r.type) {
5
- case "addIndex": {
6
- let e = n.objectStore(r.table);
7
- e.indexNames.contains(r.field) || e.createIndex(r.field, `value.${r.field}`);
8
- break;
9
- }
10
- case "addTable":
11
- t.objectStoreNames.contains(r.name) || t.createObjectStore(r.name);
12
- break;
13
- case "removeIndex": {
14
- let e = n.objectStore(r.table);
15
- e.indexNames.contains(r.field) && e.deleteIndex(r.field);
16
- break;
17
- }
18
- case "removeTable": t.objectStoreNames.contains(r.name) && t.deleteObjectStore(r.name);
19
- }
20
- };
21
- }
22
- //#endregion
23
- export { e as defineMigration };
24
-
25
- //# sourceMappingURL=migration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.js","names":[],"sources":["../src/migration.ts"],"sourcesContent":["import type { MigrationFn } from './types';\n\n/**\n * A single step in a typed migration definition.\n * Compose multiple steps to describe the full schema change between two versions.\n */\nexport type MigrationStep =\n | { field: string; table: string; type: 'addIndex' }\n | { field: string; table: string; type: 'removeIndex' }\n | { name: string; type: 'addTable' }\n | { name: string; type: 'removeTable' };\n\n/**\n * Builds a typed `MigrationFn` from a declarative list of schema change steps.\n * Each step is applied in order and is idempotent (safe to run when the target\n * already exists or has already been removed).\n *\n * ```ts\n * const migrate = defineMigration([\n * { type: 'addTable', name: 'sessions' },\n * { type: 'addIndex', table: 'users', field: 'email' },\n * { type: 'removeTable', name: 'legacyTokens' },\n * ]);\n *\n * const db = createIndexedDB({ name: 'app', version: 2, schema, migrate });\n * ```\n */\nexport function defineMigration(steps: MigrationStep[]): MigrationFn {\n return ({ db, tx }) => {\n for (const step of steps) {\n switch (step.type) {\n case 'addIndex': {\n const store = tx.objectStore(step.table);\n\n // keyPath mirrors the vault storage envelope: { value: T, expiresAt?: number }\n if (!store.indexNames.contains(step.field)) {\n store.createIndex(step.field, `value.${step.field}`);\n }\n\n break;\n }\n case 'addTable':\n if (!db.objectStoreNames.contains(step.name)) {\n db.createObjectStore(step.name);\n }\n\n break;\n case 'removeIndex': {\n const store = tx.objectStore(step.table);\n\n if (store.indexNames.contains(step.field)) {\n store.deleteIndex(step.field);\n }\n\n break;\n }\n case 'removeTable':\n if (db.objectStoreNames.contains(step.name)) {\n db.deleteObjectStore(step.name);\n }\n\n break;\n }\n }\n };\n}\n"],"mappings":";AA2BA,SAAgB,EAAgB,GAAqC;CACnE,QAAQ,EAAE,OAAI,YAAS;EACrB,KAAK,IAAM,KAAQ,GACjB,QAAQ,EAAK,MAAb;GACE,KAAK,YAAY;IACf,IAAM,IAAQ,EAAG,YAAY,EAAK,KAAK;IAGvC,AAAK,EAAM,WAAW,SAAS,EAAK,KAAK,KACvC,EAAM,YAAY,EAAK,OAAO,SAAS,EAAK,OAAO;IAGrD;GACF;GACA,KAAK;IACH,AAAK,EAAG,iBAAiB,SAAS,EAAK,IAAI,KACzC,EAAG,kBAAkB,EAAK,IAAI;IAGhC;GACF,KAAK,eAAe;IAClB,IAAM,IAAQ,EAAG,YAAY,EAAK,KAAK;IAEvC,AAAI,EAAM,WAAW,SAAS,EAAK,KAAK,KACtC,EAAM,YAAY,EAAK,KAAK;IAG9B;GACF;GACA,KAAK,eACH,AAAI,EAAG,iBAAiB,SAAS,EAAK,IAAI,KACxC,EAAG,kBAAkB,EAAK,IAAI;EAIpC;CAEJ;AACF"}