@vendoai/store 0.4.3 → 0.4.5

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.
@@ -0,0 +1,4 @@
1
+ export declare function validateEncryptionKey(_value: string): never;
2
+ export declare function encryptSecret(_value: string, _key: unknown, _name: string): never;
3
+ export declare function decryptSecret(_value: string, _key: unknown, _name: string): never;
4
+ //# sourceMappingURL=crypto-edge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-edge.d.ts","sourceRoot":"","sources":["../src/crypto-edge.ts"],"names":[],"mappings":"AASA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAE3D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAEjF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAEjF"}
@@ -0,0 +1,16 @@
1
+ /** Edge build of the at-rest secret cipher (see db-edge.ts for the pattern).
2
+ * The cipher rides node:crypto AES and Buffer keys; hosted deployments keep
3
+ * secrets on the console side, so edge builds only need honest failure. */
4
+ import { VendoError } from "@vendoai/core";
5
+ const EDGE_MESSAGE = "store secret encryption (VENDO_STORE_ENCRYPTION_KEY) needs the Node runtime; on edge deployments keep "
6
+ + "secrets on the hosted store or a custom adapter";
7
+ export function validateEncryptionKey(_value) {
8
+ throw new VendoError("validation", EDGE_MESSAGE);
9
+ }
10
+ export function encryptSecret(_value, _key, _name) {
11
+ throw new VendoError("validation", EDGE_MESSAGE);
12
+ }
13
+ export function decryptSecret(_value, _key, _name) {
14
+ throw new VendoError("validation", EDGE_MESSAGE);
15
+ }
16
+ //# sourceMappingURL=crypto-edge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-edge.js","sourceRoot":"","sources":["../src/crypto-edge.ts"],"names":[],"mappings":"AAAA;;4EAE4E;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,YAAY,GAChB,wGAAwG;MACtG,iDAAiD,CAAC;AAEtD,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,IAAI,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAa,EAAE,KAAa;IACxE,MAAM,IAAI,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAa,EAAE,KAAa;IACxE,MAAM,IAAI,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Db, StoreConfig } from "./db.js";
2
+ export type { Db, StoreConfig };
3
+ export declare function createDb(_config?: StoreConfig): Db;
4
+ export declare function withSchemaLock<T>(_db: Db, _work: (query: unknown) => Promise<T>): Promise<T>;
5
+ //# sourceMappingURL=db-edge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-edge.d.ts","sourceRoot":"","sources":["../src/db-edge.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/C,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;AAMhC,wBAAgB,QAAQ,CAAC,OAAO,GAAE,WAAgB,GAAG,EAAE,CAEtD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE5F"}
@@ -0,0 +1,16 @@
1
+ /** Web-standard-runtime build of the store engines, selected by the package's
2
+ * `worker`/`workerd`/`edge-light`/`browser` conditions on `#store/db`. The
3
+ * local engines are Node by nature (PGlite on the filesystem, pg over TCP),
4
+ * so edge deployments must fill the store seam explicitly — hostedStore via
5
+ * VENDO_API_KEY, or a custom adapter. Keep this module free of node builtins;
6
+ * the portability gate bundles it. */
7
+ import { VendoError } from "@vendoai/core";
8
+ const EDGE_MESSAGE = "the local store engines (PGlite on disk, Postgres over TCP) need Node; on this runtime pass `store:` to "
9
+ + "createVendo explicitly — hostedStore via VENDO_API_KEY, or a custom adapter";
10
+ export function createDb(_config = {}) {
11
+ throw new VendoError("validation", EDGE_MESSAGE);
12
+ }
13
+ export function withSchemaLock(_db, _work) {
14
+ return Promise.reject(new VendoError("validation", EDGE_MESSAGE));
15
+ }
16
+ //# sourceMappingURL=db-edge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-edge.js","sourceRoot":"","sources":["../src/db-edge.ts"],"names":[],"mappings":"AAAA;;;;;uCAKuC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C,MAAM,YAAY,GAChB,0GAA0G;MACxG,6EAA6E,CAAC;AAElF,MAAM,UAAU,QAAQ,CAAC,UAAuB,EAAE;IAChD,MAAM,IAAI,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,cAAc,CAAI,GAAO,EAAE,KAAqC;IAC9E,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AACpE,CAAC"}
package/dist/schema.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Db } from "./db.js";
1
+ import type { Db } from "#store/db";
2
2
  /** 02-store §4. v3 (block-actions design §C, ENG-263) historically added the
3
3
  Vendo-owned org tables (`vendo_orgs` + `vendo_org_members`); those tables
4
4
  are cut under the simplify-v2 kill-list (docs/superpowers/specs/2026-07-16
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAGlC;;;;;;;;;;4CAU4C;AAC5C,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,kBAAkB;AAClB,eAAO,MAAM,GAAG,wqHAqEN,CAAC;AAgIX,kBAAkB;AAClB,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAGpC;;;;;;;;;;4CAU4C;AAC5C,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,kBAAkB;AAClB,eAAO,MAAM,GAAG,wqHAqEN,CAAC;AAgIX,kBAAkB;AAClB,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD"}
package/dist/schema.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { VendoError } from "@vendoai/core";
2
- import { randomUUID } from "node:crypto";
3
- import { withSchemaLock } from "./db.js";
2
+ import { withSchemaLock } from "#store/db";
4
3
  /** 02-store §4. v3 (block-actions design §C, ENG-263) historically added the
5
4
  Vendo-owned org tables (`vendo_orgs` + `vendo_org_members`); those tables
6
5
  are cut under the simplify-v2 kill-list (docs/superpowers/specs/2026-07-16
@@ -197,7 +196,7 @@ async function migrate(query) {
197
196
  await query(statement);
198
197
  }
199
198
  await query(`INSERT INTO vendo_meta (key, value) VALUES ('boot_id', $1::jsonb)
200
- ON CONFLICT (key) DO NOTHING`, [JSON.stringify(randomUUID())]);
199
+ ON CONFLICT (key) DO NOTHING`, [JSON.stringify(globalThis.crypto.randomUUID())]);
201
200
  }
202
201
  /** 02-store §4 */
203
202
  export async function ensureSchema(db) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/secrets.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VendoError } from "@vendoai/core";
2
- import { decryptSecret, encryptSecret } from "./crypto.js";
2
+ import { decryptSecret, encryptSecret } from "#store/crypto";
3
3
  import { dbFor, secretsConfigFor } from "./store.js";
4
4
  import { text } from "./helpers/utils.js";
5
5
  /** 02-store §1 */
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { StoreAdapter } from "@vendoai/core";
2
- import { type Db, type StoreConfig } from "./db.js";
2
+ import { type Db, type StoreConfig } from "#store/db";
3
3
  /** 02-store §1 */
4
4
  export interface VendoStore extends StoreAdapter {
5
5
  ensureSchema(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,YAAY,EAAE,MAAM,eAAe,CAAC;AAG1E,OAAO,EAAY,KAAK,EAAE,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAK9D,kBAAkB;AAClB,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,IAAI,OAAO,CAAC;CAChB;AAED;sEACsE;AACtE,UAAU,cAAc;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAID,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE,CAI3C;AAED;;gDAEgD;AAChD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,GAAG,uBAAuB,CAAC,CAEnH;AAED,kBAAkB;AAClB,wBAAgB,WAAW,CAAC,MAAM,GAAE,WAAgB,GAAG,UAAU,CA2BhE"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,YAAY,EAAE,MAAM,eAAe,CAAC;AAG1E,OAAO,EAAY,KAAK,EAAE,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAKhE,kBAAkB;AAClB,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,IAAI,OAAO,CAAC;CAChB;AAED;sEACsE;AACtE,UAAU,cAAc;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAID,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE,CAI3C;AAED;;gDAEgD;AAChD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,GAAG,uBAAuB,CAAC,CAEnH;AAED,kBAAkB;AAClB,wBAAgB,WAAW,CAAC,MAAM,GAAE,WAAgB,GAAG,UAAU,CA2BhE"}
package/dist/store.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createBlobStore } from "./blobs.js";
2
- import { validateEncryptionKey } from "./crypto.js";
3
- import { createDb } from "./db.js";
2
+ import { validateEncryptionKey } from "#store/crypto";
3
+ import { createDb } from "#store/db";
4
4
  import { createRecordStore } from "./records.js";
5
5
  import { createReservedRecordStore } from "./routing.js";
6
6
  import { ensureSchema as migrateSchema } from "./schema.js";
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,QAAQ,EAA6B,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAiB5D,MAAM,SAAS,GAAG,IAAI,OAAO,EAA0B,CAAC;AAExD,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,EAAE,CAAC;AAClB,CAAC;AAED;;gDAEgD;AAChD,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAChD,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;AAC5F,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,WAAW,CAAC,SAAsB,EAAE;IAClD,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAe;QACxB,OAAO,CAAC,UAAkB;YACxB,OAAO,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACxF,CAAC;QACD,KAAK,CAAC,SAAiB;YACrB,OAAO,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,KAAK;YACT,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QACD,GAAG;YACD,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;IACF,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;QACnB,EAAE;QACF,aAAa;QACb,qBAAqB,EAAE,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,uBAAuB,KAAK,IAAI;KAC9F,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,QAAQ,EAA6B,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAiB5D,MAAM,SAAS,GAAG,IAAI,OAAO,EAA0B,CAAC;AAExD,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,EAAE,CAAC;AAClB,CAAC;AAED;;gDAEgD;AAChD,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAChD,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;AAC5F,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,WAAW,CAAC,SAAsB,EAAE;IAClD,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAe;QACxB,OAAO,CAAC,UAAkB;YACxB,OAAO,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACxF,CAAC;QACD,KAAK,CAAC,SAAiB;YACrB,OAAO,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,KAAK;YACT,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QACD,GAAG;YACD,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;IACF,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;QACnB,EAAE;QACF,aAAa;QACb,qBAAqB,EAAE,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,uBAAuB,KAAK,IAAI;KAC9F,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendoai/store",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "Persistence under everything: core's StoreAdapter on Postgres — PGlite zero-config default, real Postgres in prod, one schema.",
5
5
  "keywords": [
6
6
  "ai",
@@ -41,7 +41,7 @@
41
41
  "dependencies": {
42
42
  "@electric-sql/pglite": "^0.5.4",
43
43
  "pg": "^8.22.0",
44
- "@vendoai/core": "0.4.3"
44
+ "@vendoai/core": "0.4.5"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^22.0.0",
@@ -49,6 +49,22 @@
49
49
  "typescript": "^5.6.0",
50
50
  "vitest": "^2.1.0"
51
51
  },
52
+ "imports": {
53
+ "#store/db": {
54
+ "workerd": "./dist/db-edge.js",
55
+ "worker": "./dist/db-edge.js",
56
+ "edge-light": "./dist/db-edge.js",
57
+ "browser": "./dist/db-edge.js",
58
+ "default": "./dist/db.js"
59
+ },
60
+ "#store/crypto": {
61
+ "workerd": "./dist/crypto-edge.js",
62
+ "worker": "./dist/crypto-edge.js",
63
+ "edge-light": "./dist/crypto-edge.js",
64
+ "browser": "./dist/crypto-edge.js",
65
+ "default": "./dist/crypto.js"
66
+ }
67
+ },
52
68
  "scripts": {
53
69
  "build": "tsc -p tsconfig.json",
54
70
  "conformance": "tsc -p tsconfig.json && vitest run src/conformance.test.ts src/contract-routing.conformance.test.ts src/security/audit-append-only.conformance.test.ts src/security/secrets-aad.conformance.test.ts src/flip-guards.conformance.test.ts src/erase.conformance.test.ts src/postgres-gate.test.ts",