@substrat-run/contracts 0.146.0 → 0.148.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 (67) hide show
  1. package/dist/assistant-stream.d.ts +311 -0
  2. package/dist/assistant-stream.d.ts.map +1 -0
  3. package/dist/assistant-stream.js +360 -0
  4. package/dist/assistant-stream.js.map +1 -0
  5. package/dist/attachments.d.ts +153 -0
  6. package/dist/attachments.d.ts.map +1 -1
  7. package/dist/attachments.js +115 -1
  8. package/dist/attachments.js.map +1 -1
  9. package/dist/control-plane.d.ts +88 -2
  10. package/dist/control-plane.d.ts.map +1 -1
  11. package/dist/control-plane.js +74 -7
  12. package/dist/control-plane.js.map +1 -1
  13. package/dist/deploy.d.ts +304 -0
  14. package/dist/deploy.d.ts.map +1 -1
  15. package/dist/deploy.js +339 -1
  16. package/dist/deploy.js.map +1 -1
  17. package/dist/errors.d.ts +49 -14
  18. package/dist/errors.d.ts.map +1 -1
  19. package/dist/errors.js +82 -7
  20. package/dist/errors.js.map +1 -1
  21. package/dist/index.d.ts +4 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +5 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/introspection.d.ts +29 -1
  26. package/dist/introspection.d.ts.map +1 -1
  27. package/dist/introspection.js +11 -0
  28. package/dist/introspection.js.map +1 -1
  29. package/dist/kernel-events.d.ts.map +1 -1
  30. package/dist/kernel-events.js +4 -1
  31. package/dist/kernel-events.js.map +1 -1
  32. package/dist/lake.d.ts +109 -0
  33. package/dist/lake.d.ts.map +1 -0
  34. package/dist/lake.js +85 -0
  35. package/dist/lake.js.map +1 -0
  36. package/dist/manifest.d.ts +4 -0
  37. package/dist/manifest.d.ts.map +1 -1
  38. package/dist/manifest.js +5 -0
  39. package/dist/manifest.js.map +1 -1
  40. package/dist/model.d.ts +4 -0
  41. package/dist/model.d.ts.map +1 -1
  42. package/dist/model.js.map +1 -1
  43. package/dist/routing.d.ts +4 -0
  44. package/dist/routing.d.ts.map +1 -1
  45. package/dist/routing.js +7 -0
  46. package/dist/routing.js.map +1 -1
  47. package/dist/scope-store-envelope.d.ts +167 -0
  48. package/dist/scope-store-envelope.d.ts.map +1 -0
  49. package/dist/scope-store-envelope.js +390 -0
  50. package/dist/scope-store-envelope.js.map +1 -0
  51. package/dist/scope-store-transport.d.ts +47 -0
  52. package/dist/scope-store-transport.d.ts.map +1 -0
  53. package/dist/scope-store-transport.js +58 -0
  54. package/dist/scope-store-transport.js.map +1 -0
  55. package/dist/script-names.d.ts +36 -1
  56. package/dist/script-names.d.ts.map +1 -1
  57. package/dist/script-names.js +53 -1
  58. package/dist/script-names.js.map +1 -1
  59. package/dist/sql-in-list.d.ts +39 -0
  60. package/dist/sql-in-list.d.ts.map +1 -0
  61. package/dist/sql-in-list.js +10 -0
  62. package/dist/sql-in-list.js.map +1 -0
  63. package/dist/tenancy.d.ts +1 -1
  64. package/dist/tenancy.d.ts.map +1 -1
  65. package/dist/tenancy.js +10 -1
  66. package/dist/tenancy.js.map +1 -1
  67. package/package.json +9 -1
@@ -0,0 +1,58 @@
1
+ import { z } from 'zod';
2
+ import { scopeId } from './ids.js';
3
+ import { RESERVED_STORE_OPERATIONS, storeOperationName } from './deploy.js';
4
+ /**
5
+ * The hosted transport for a scope-store call (#2207).
6
+ *
7
+ * A vertical fetches `store.substrat.internal`. It names a binding, an operation
8
+ * and an input. It does not name a script, an object or a key: the egress worker
9
+ * hands the call to the router with the dispatch parameters the router set, and
10
+ * the router is what signs the envelope and addresses the store script.
11
+ * `*.substrat.internal` is in no DNS zone, so a call from inside a Durable Object
12
+ * — which an outbound worker does not see — fails instead of leaving the isolate.
13
+ */
14
+ /** The one reserved host a scope-store call is addressed to. */
15
+ export const STORE_CALL_HOST = 'store.substrat.internal';
16
+ /** The address a platform-transport `getScopeStore` fetches. The caller does not build it. */
17
+ export const STORE_CALL_URL = `https://${STORE_CALL_HOST}/invoke`;
18
+ /** An exact host match. A suffix would admit a name the platform does not own. */
19
+ export const isStoreCallHost = (hostname) => hostname.toLowerCase() === STORE_CALL_HOST;
20
+ /**
21
+ * What the vertical puts in the body. The scope it may name is the one the
22
+ * router dispatched it for; the router refuses any other. Strict, so a body
23
+ * that tries to carry a signature or a script name is not a request.
24
+ */
25
+ export const storeCallRequest = z
26
+ .object({
27
+ scopeId,
28
+ binding: z.string().regex(/^[A-Z][A-Z0-9_]*$/),
29
+ // The same fixed-label rule a log line and a kind's catalog hold (#2245).
30
+ operation: storeOperationName,
31
+ input: z.unknown().optional(),
32
+ })
33
+ .strict();
34
+ /** Who the signature was made for. A reserved operation accepts only the platform's. */
35
+ export const storeCallAudience = z.enum(['caller', 'platform']);
36
+ const reserved = new Set(RESERVED_STORE_OPERATIONS);
37
+ /** A `substrat.*` operation is the platform's. A caller signature does not open it. */
38
+ export function storeAudienceAllows(operation, audience) {
39
+ if (reserved.has(operation))
40
+ return audience === 'platform';
41
+ return audience === 'caller';
42
+ }
43
+ /**
44
+ * The name an object keeps.
45
+ *
46
+ * The first accepted name is stored. A later call whose name differs is not
47
+ * this object's call, even when the signature over that other name is valid.
48
+ * That is the check that stops a signature for one tenant's object being
49
+ * presented to another's.
50
+ */
51
+ export function rememberStoreObjectName(remembered, presented) {
52
+ if (presented.length === 0)
53
+ return undefined;
54
+ if (remembered === null)
55
+ return presented;
56
+ return remembered === presented ? remembered : undefined;
57
+ }
58
+ //# sourceMappingURL=scope-store-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-store-transport.js","sourceRoot":"","sources":["../src/scope-store-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE5E;;;;;;;;;GASG;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAEzD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,eAAe,SAAS,CAAC;AAElE,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAW,EAAE,CAC3D,QAAQ,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,OAAO;IACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC9C,0EAA0E;IAC1E,SAAS,EAAE,kBAAkB;IAC7B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,wFAAwF;AACxF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAGhE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,yBAAyB,CAAC,CAAC;AAE5D,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,QAA2B;IAChF,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,KAAK,UAAU,CAAC;IAC5D,OAAO,QAAQ,KAAK,QAAQ,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAyB,EAAE,SAAiB;IAClF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC"}
@@ -22,10 +22,45 @@ export declare const PLATFORM_SCRIPT_NAMES: ReadonlySet<string>;
22
22
  * is exactly this; a per-version script is this plus `-<ulid>`.
23
23
  */
24
24
  export declare function verticalScriptStem(slug: string): string;
25
+ /**
26
+ * The name space scope-store scripts are uploaded into (RFC scope-stores §10.7, L20). Store
27
+ * scripts share the dispatch namespace with every vertical's scripts, so no vertical script may
28
+ * be named inside it: {@link platformScriptCollision} refuses a slug whose stem is the bare
29
+ * prefix or starts with it, which covers its stable, jurisdictional and per-version scripts.
30
+ */
31
+ export declare const SCOPE_STORE_SCRIPT_PREFIX = "substrat-store-";
32
+ /** A store kind id (L20). No `-` and no `_`, which is what keeps {@link scopeStoreScriptName} injective. */
33
+ export declare const STORE_KIND_ID: RegExp;
34
+ /**
35
+ * The script a scope-store kind is uploaded as, for one vertical (#2210).
36
+ *
37
+ * Stable across releases and across the vertical's own pushes: a new release of the kind
38
+ * replaces this script in place, and the objects stay where `scopeStoreObjectName` addresses
39
+ * them, since that carries no version either.
40
+ *
41
+ * Injective over (kind, vertical) (L20): `substrat-store-<kind>-<vertical>`, with the `/` of a
42
+ * `<tenant>/<name>` slug written as `_`. A slug never contains `_` and a kind never contains `-`,
43
+ * so the kind ends at the first `-` after the prefix and the rest maps back to exactly one slug.
44
+ * A vertical's own stem flattens `/` to `-`, which is not injective; this name does not reuse it.
45
+ * Anything outside those two grammars is refused rather than flattened.
46
+ */
47
+ export declare function scopeStoreScriptName(vertical: string, kind: string): string;
48
+ /**
49
+ * The vertical segment of the platform's canary script and objects (D-63, #2300). It starts with
50
+ * `-`, which no vertical slug does, so no vertical's store script or store object is named with it.
51
+ */
52
+ export declare const SCOPE_STORE_CANARY = "-canary";
53
+ /**
54
+ * The script a kind's release is canaried in before any vertical runs it (D-63, #2300): the
55
+ * platform's own, `substrat-store-<kind>--canary`. {@link scopeStoreScriptName} cannot produce it,
56
+ * because the part after the kind would be a slug starting with `-`.
57
+ */
58
+ export declare function scopeStoreCanaryScriptName(kind: string): string;
25
59
  /**
26
60
  * The platform script name a vertical with this slug would deploy under, or `null`. Checks the
27
61
  * stable script and its jurisdictional variants. A per-version script ends in a 26-character
28
- * ULID, which no platform name does.
62
+ * ULID, which no platform name does. A stem inside the scope-store name space is returned as
63
+ * itself: every script the slug could deploy under would fall in it.
29
64
  */
30
65
  export declare function platformScriptCollision(slug: string): string | null;
31
66
  /** The refusal a registration or a deploy gives for {@link platformScriptCollision}. */
@@ -1 +1 @@
1
- {"version":3,"file":"script-names.d.ts","sourceRoot":"","sources":["../src/script-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAgD,CAAC;AAElG,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAapD,CAAC;AAKH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMnE;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E"}
1
+ {"version":3,"file":"script-names.d.ts","sourceRoot":"","sources":["../src/script-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAgD,CAAC;AAElG,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAapD,CAAC;AAKH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAE3D,4GAA4G;AAC5G,eAAO,MAAM,aAAa,QAAgB,CAAC;AAK3C;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ3E;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOnE;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E"}
@@ -39,13 +39,65 @@ const JURISDICTION_SUFFIXES = ['eu', 'us'];
39
39
  export function verticalScriptStem(slug) {
40
40
  return slug.toLowerCase().replace(/[^a-z0-9_-]+/g, '-').replace(/^-+|-+$/g, '');
41
41
  }
42
+ /**
43
+ * The name space scope-store scripts are uploaded into (RFC scope-stores §10.7, L20). Store
44
+ * scripts share the dispatch namespace with every vertical's scripts, so no vertical script may
45
+ * be named inside it: {@link platformScriptCollision} refuses a slug whose stem is the bare
46
+ * prefix or starts with it, which covers its stable, jurisdictional and per-version scripts.
47
+ */
48
+ export const SCOPE_STORE_SCRIPT_PREFIX = 'substrat-store-';
49
+ /** A store kind id (L20). No `-` and no `_`, which is what keeps {@link scopeStoreScriptName} injective. */
50
+ export const STORE_KIND_ID = /^[a-z0-9]+$/;
51
+ /** The registry id grammar `verticalSlug` parses (ids.ts), repeated so this file imports nothing. */
52
+ const VERTICAL_SLUG = /^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?\/)?[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
53
+ /**
54
+ * The script a scope-store kind is uploaded as, for one vertical (#2210).
55
+ *
56
+ * Stable across releases and across the vertical's own pushes: a new release of the kind
57
+ * replaces this script in place, and the objects stay where `scopeStoreObjectName` addresses
58
+ * them, since that carries no version either.
59
+ *
60
+ * Injective over (kind, vertical) (L20): `substrat-store-<kind>-<vertical>`, with the `/` of a
61
+ * `<tenant>/<name>` slug written as `_`. A slug never contains `_` and a kind never contains `-`,
62
+ * so the kind ends at the first `-` after the prefix and the rest maps back to exactly one slug.
63
+ * A vertical's own stem flattens `/` to `-`, which is not injective; this name does not reuse it.
64
+ * Anything outside those two grammars is refused rather than flattened.
65
+ */
66
+ export function scopeStoreScriptName(vertical, kind) {
67
+ if (!STORE_KIND_ID.test(kind)) {
68
+ throw new Error(`not a scope-store kind id: '${kind}' (expected [a-z0-9]+)`);
69
+ }
70
+ if (!VERTICAL_SLUG.test(vertical)) {
71
+ throw new Error(`not a vertical slug: '${vertical}'`);
72
+ }
73
+ return `${SCOPE_STORE_SCRIPT_PREFIX}${kind}-${vertical.replace('/', '_')}`;
74
+ }
75
+ /**
76
+ * The vertical segment of the platform's canary script and objects (D-63, #2300). It starts with
77
+ * `-`, which no vertical slug does, so no vertical's store script or store object is named with it.
78
+ */
79
+ export const SCOPE_STORE_CANARY = '-canary';
80
+ /**
81
+ * The script a kind's release is canaried in before any vertical runs it (D-63, #2300): the
82
+ * platform's own, `substrat-store-<kind>--canary`. {@link scopeStoreScriptName} cannot produce it,
83
+ * because the part after the kind would be a slug starting with `-`.
84
+ */
85
+ export function scopeStoreCanaryScriptName(kind) {
86
+ if (!STORE_KIND_ID.test(kind)) {
87
+ throw new Error(`not a scope-store kind id: '${kind}' (expected [a-z0-9]+)`);
88
+ }
89
+ return `${SCOPE_STORE_SCRIPT_PREFIX}${kind}-${SCOPE_STORE_CANARY}`;
90
+ }
42
91
  /**
43
92
  * The platform script name a vertical with this slug would deploy under, or `null`. Checks the
44
93
  * stable script and its jurisdictional variants. A per-version script ends in a 26-character
45
- * ULID, which no platform name does.
94
+ * ULID, which no platform name does. A stem inside the scope-store name space is returned as
95
+ * itself: every script the slug could deploy under would fall in it.
46
96
  */
47
97
  export function platformScriptCollision(slug) {
48
98
  const stem = verticalScriptStem(slug);
99
+ if (`${stem}-`.startsWith(SCOPE_STORE_SCRIPT_PREFIX))
100
+ return stem;
49
101
  for (const name of [stem, ...JURISDICTION_SUFFIXES.map((j) => `${stem}-${j}`)]) {
50
102
  if (PLATFORM_SCRIPT_NAMES.has(name))
51
103
  return name;
@@ -1 +1 @@
1
- {"version":3,"file":"script-names.js","sourceRoot":"","sources":["../src/script-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAsB,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;AAElG,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,GAAG,mBAAmB;IACtB,sBAAsB;IACtB,kBAAkB;IAClB,wBAAwB;IACxB,6BAA6B;IAC7B,oBAAoB;IACpB,yBAAyB;IACzB,eAAe;IACf,uBAAuB;IACvB,4BAA4B;IAC5B,0BAA0B;IAC1B,+BAA+B;CAChC,CAAC,CAAC;AAEH,sGAAsG;AACtG,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/E,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,SAAiB;IACnE,OAAO,kBAAkB,IAAI,yBAAyB,SAAS,iDAAiD,CAAC;AACnH,CAAC"}
1
+ {"version":3,"file":"script-names.js","sourceRoot":"","sources":["../src/script-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAsB,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;AAElG,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,GAAG,mBAAmB;IACtB,sBAAsB;IACtB,kBAAkB;IAClB,wBAAwB;IACxB,6BAA6B;IAC7B,oBAAoB;IACpB,yBAAyB;IACzB,eAAe;IACf,uBAAuB;IACvB,4BAA4B;IAC5B,0BAA0B;IAC1B,+BAA+B;CAChC,CAAC,CAAC;AAEH,sGAAsG;AACtG,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAE3D,4GAA4G;AAC5G,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C,qGAAqG;AACrG,MAAM,aAAa,GAAG,uEAAuE,CAAC;AAE9F;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,IAAY;IACjE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,wBAAwB,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,yBAAyB,GAAG,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,wBAAwB,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,GAAG,yBAAyB,GAAG,IAAI,IAAI,kBAAkB,EAAE,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/E,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,SAAiB;IACnE,OAAO,kBAAkB,IAAI,yBAAyB,SAAS,iDAAiD,CAAC;AACnH,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Filter by a list of any length in ONE bound parameter (#2248).
3
+ *
4
+ * A Durable Object's SQLite refuses a statement binding more than 100 parameters, so the
5
+ * natural spelling — `WHERE id IN (${ids.map(() => '?').join(', ')})` — passes every small
6
+ * fixture and fails the first hosted call whose list outgrew it. The list goes in as one JSON
7
+ * array instead, read back with `json_each`, which is SQLite's own JSON1 table-valued function
8
+ * and runs the same on both adapters (better-sqlite3 and the Durable Object):
9
+ *
10
+ * ```ts
11
+ * const ids = inList(usedIds);
12
+ * ctx.sql.exec(`UPDATE acme_items SET used = used + 1 WHERE id IN ${ids.sql}`, [now, ...ids.params]);
13
+ * ```
14
+ *
15
+ * `IN` stays in the caller's SQL, so the statement still reads as what it is. An empty list
16
+ * matches nothing, which is what `IN` of nothing means (a hand-built `IN ()` is a syntax
17
+ * error).
18
+ *
19
+ * **Pass values in the column's own type.** A `json_each` value carries no affinity, so only a
20
+ * numeric column converts: `inList(['123'])` matches an INTEGER `123`, but `inList([1])` matches
21
+ * NO row of a TEXT column — not `'1'`, and not the `'1.0'` a bound `1` would match. A TEXT id is
22
+ * passed as a string (`ids.map(String)`), or the comparison is cast (`CAST(col AS INTEGER)`).
23
+ *
24
+ * Only strings and finite numbers: JSON has no `bigint` or blob, and it writes `NaN` and
25
+ * `Infinity` as `null`, which would drop the value from the list without a word — so a
26
+ * non-finite number throws instead.
27
+ *
28
+ * boundary-lint R12 refuses the hand-built placeholder list in module code and points here.
29
+ */
30
+ export interface InList {
31
+ /** `(SELECT value FROM json_each(?))` — write it after `IN` / `NOT IN`. */
32
+ readonly sql: typeof IN_LIST_SQL;
33
+ /** The one parameter `sql` binds, in its position among the statement's others. */
34
+ readonly params: readonly [string];
35
+ }
36
+ declare const IN_LIST_SQL = "(SELECT value FROM json_each(?))";
37
+ export declare function inList(values: readonly (string | number)[]): InList;
38
+ export {};
39
+ //# sourceMappingURL=sql-in-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-in-list.d.ts","sourceRoot":"","sources":["../src/sql-in-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,MAAM;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,OAAO,WAAW,CAAC;IACjC,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,QAAA,MAAM,WAAW,qCAAqC,CAAC;AAEvD,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAOnE"}
@@ -0,0 +1,10 @@
1
+ const IN_LIST_SQL = '(SELECT value FROM json_each(?))';
2
+ export function inList(values) {
3
+ for (const v of values) {
4
+ if (typeof v === 'number' ? !Number.isFinite(v) : typeof v !== 'string') {
5
+ throw new TypeError(`inList: ${String(v)} is not a string or a finite number`);
6
+ }
7
+ }
8
+ return { sql: IN_LIST_SQL, params: [JSON.stringify(values)] };
9
+ }
10
+ //# sourceMappingURL=sql-in-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-in-list.js","sourceRoot":"","sources":["../src/sql-in-list.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,GAAG,kCAAkC,CAAC;AAEvD,MAAM,UAAU,MAAM,CAAC,MAAoC;IACzD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxE,MAAM,IAAI,SAAS,CAAC,WAAW,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC"}
package/dist/tenancy.d.ts CHANGED
@@ -23,8 +23,8 @@ export declare const tenant: z.ZodObject<{
23
23
  export type Tenant = z.infer<typeof tenant>;
24
24
  export declare const createTenantInput: z.ZodObject<{
25
25
  id: z.core.$ZodBranded<z.ZodString, "TenantId", "out">;
26
- slug: z.ZodString;
27
26
  name: z.ZodString;
27
+ slug: z.ZodString;
28
28
  provisionedByTenant: z.ZodOptional<z.ZodNullable<z.core.$ZodBranded<z.ZodString, "TenantId", "out">>>;
29
29
  }, z.core.$strip>;
30
30
  export type CreateTenantInput = z.infer<typeof createTenantInput>;
@@ -1 +1 @@
1
- {"version":3,"file":"tenancy.d.ts","sourceRoot":"","sources":["../src/tenancy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tenancy.d.ts","sourceRoot":"","sources":["../src/tenancy.ts"],"names":[],"mappings":"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"}
package/dist/tenancy.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { instant, orgId, scopeId, slug, tenantId } from './ids.js';
3
+ import { SCOPE_STORE_SCRIPT_PREFIX } from './script-names.js';
3
4
  export const tenantStatus = z.enum([
4
5
  'active',
5
6
  'suspended',
@@ -40,7 +41,15 @@ export const tenant = z.object({
40
41
  // create omits it (→ null).
41
42
  export const createTenantInput = tenant
42
43
  .pick({ id: true, slug: true, name: true })
43
- .extend({ provisionedByTenant: tenantId.nullable().optional() });
44
+ .extend({
45
+ // L20: every vertical this tenant owns has a script stem starting with its slug, so a slug
46
+ // inside the scope-store script name space could register nothing. Refused at the claim, on
47
+ // the input only: a stored tenant is read back with the plain `tenant` schema.
48
+ slug: slug.refine((value) => !`${value}-`.startsWith(SCOPE_STORE_SCRIPT_PREFIX), {
49
+ message: `a tenant slug cannot start with '${SCOPE_STORE_SCRIPT_PREFIX}': that script name space is the platform's`,
50
+ }),
51
+ provisionedByTenant: tenantId.nullable().optional(),
52
+ });
44
53
  /**
45
54
  * An organization inside a tenant (K-22) — who membership tuples point at and what
46
55
  * `grantToOrg` targets. Portal customers, staff groups, partner companies.
@@ -1 +1 @@
1
- {"version":3,"file":"tenancy.js","sourceRoot":"","sources":["../src/tenancy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tenancy.js","sourceRoot":"","sources":["../src/tenancy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/contracts",
3
- "version": "0.146.0",
3
+ "version": "0.148.0",
4
4
  "description": "Substrat kernel contract schemas — Zod is the source of truth (master plan D-22); OAS/JSON Schema are emitted artifacts",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -21,6 +21,10 @@
21
21
  "types": "./dist/invocation-record.d.ts",
22
22
  "default": "./dist/invocation-record.js"
23
23
  },
24
+ "./scope-store-envelope": {
25
+ "types": "./dist/scope-store-envelope.d.ts",
26
+ "default": "./dist/scope-store-envelope.js"
27
+ },
24
28
  "./wire-headers": {
25
29
  "types": "./dist/wire-headers.d.ts",
26
30
  "default": "./dist/wire-headers.js"
@@ -28,6 +32,10 @@
28
32
  "./wire-auth": {
29
33
  "types": "./dist/wire-auth.d.ts",
30
34
  "default": "./dist/wire-auth.js"
35
+ },
36
+ "./assistant-stream": {
37
+ "types": "./dist/assistant-stream.d.ts",
38
+ "default": "./dist/assistant-stream.js"
31
39
  }
32
40
  },
33
41
  "files": [