@telorun/analyzer 0.65.0 → 0.66.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.
- package/dist/analyzer.d.ts +1 -1
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +157 -63
- package/dist/call-graph.d.ts.map +1 -1
- package/dist/call-graph.js +7 -1
- package/dist/cel-environment.d.ts +12 -0
- package/dist/cel-environment.d.ts.map +1 -1
- package/dist/cel-environment.js +35 -19
- package/dist/cel-scope.d.ts.map +1 -1
- package/dist/cel-scope.js +24 -4
- package/dist/definition-registry.d.ts +24 -0
- package/dist/definition-registry.d.ts.map +1 -1
- package/dist/definition-registry.js +41 -0
- package/dist/eval-paths.d.ts +68 -0
- package/dist/eval-paths.d.ts.map +1 -1
- package/dist/eval-paths.js +138 -0
- package/dist/flatten-for-analyzer.d.ts +1 -1
- package/dist/flatten-for-analyzer.js +1 -1
- package/dist/import-resolution-diagnostics.d.ts +1 -1
- package/dist/import-resolution-diagnostics.js +1 -1
- package/dist/index.d.ts +9 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -5
- package/dist/manifest-visitor.d.ts.map +1 -1
- package/dist/manifest-visitor.js +8 -1
- package/dist/migrations/entries/index.d.ts.map +1 -1
- package/dist/migrations/entries/index.js +2 -0
- package/dist/migrations/entries/schema-prepare-bucket.json +27 -0
- package/dist/peer-binding.d.ts +232 -0
- package/dist/peer-binding.d.ts.map +1 -0
- package/dist/peer-binding.js +418 -0
- package/dist/ref-slot.d.ts +13 -0
- package/dist/ref-slot.d.ts.map +1 -1
- package/dist/ref-slot.js +26 -0
- package/dist/reference-field-map.d.ts +28 -0
- package/dist/reference-field-map.d.ts.map +1 -1
- package/dist/reference-field-map.js +25 -0
- package/dist/referrer-rule.d.ts +17 -0
- package/dist/referrer-rule.d.ts.map +1 -1
- package/dist/referrer-rule.js +4 -1
- package/dist/release/index.d.ts +1 -1
- package/dist/release/index.js +1 -1
- package/dist/resource-rule.d.ts +40 -27
- package/dist/resource-rule.d.ts.map +1 -1
- package/dist/resource-rule.js +61 -7
- package/dist/rule-condition.d.ts +11 -0
- package/dist/rule-condition.d.ts.map +1 -1
- package/dist/rule-condition.js +13 -0
- package/dist/schema-projection.d.ts +106 -4
- package/dist/schema-projection.d.ts.map +1 -1
- package/dist/schema-projection.js +206 -18
- package/dist/telo-version.d.ts +1 -1
- package/dist/telo-version.js +1 -1
- package/dist/validate-cel-context.d.ts +1 -17
- package/dist/validate-cel-context.d.ts.map +1 -1
- package/dist/validate-cel-context.js +5 -70
- package/dist/validate-reference-forms.d.ts +10 -0
- package/dist/validate-reference-forms.d.ts.map +1 -1
- package/dist/validate-reference-forms.js +23 -0
- package/dist/validate-references.d.ts.map +1 -1
- package/dist/validate-references.js +9 -2
- package/dist/validate-referrer-rules.d.ts +38 -4
- package/dist/validate-referrer-rules.d.ts.map +1 -1
- package/dist/validate-referrer-rules.js +139 -31
- package/dist/validate-resource-rules.d.ts +11 -2
- package/dist/validate-resource-rules.d.ts.map +1 -1
- package/dist/validate-resource-rules.js +18 -12
- package/dist/validate-schema-projection.d.ts.map +1 -1
- package/dist/validate-schema-projection.js +33 -2
- package/dist/with-synthetic-positions.d.ts +1 -1
- package/dist/with-synthetic-positions.js +1 -1
- package/package.json +3 -3
- package/src/analyzer.ts +191 -68
- package/src/call-graph.ts +7 -1
- package/src/cel-environment.ts +48 -19
- package/src/cel-scope.ts +24 -6
- package/src/definition-registry.ts +42 -0
- package/src/eval-paths.ts +152 -0
- package/src/flatten-for-analyzer.ts +1 -1
- package/src/import-resolution-diagnostics.ts +1 -1
- package/src/index.ts +45 -4
- package/src/manifest-visitor.ts +8 -1
- package/src/migrations/entries/index.ts +2 -0
- package/src/migrations/entries/schema-prepare-bucket.json +27 -0
- package/src/peer-binding.ts +641 -0
- package/src/ref-slot.ts +36 -0
- package/src/reference-field-map.ts +42 -0
- package/src/referrer-rule.ts +20 -1
- package/src/release/index.ts +1 -1
- package/src/resource-rule.ts +69 -7
- package/src/rule-condition.ts +15 -0
- package/src/schema-projection.ts +283 -20
- package/src/telo-version.ts +1 -1
- package/src/validate-cel-context.ts +6 -71
- package/src/validate-reference-forms.ts +22 -0
- package/src/validate-references.ts +15 -2
- package/src/validate-referrer-rules.ts +215 -28
- package/src/validate-resource-rules.ts +26 -12
- package/src/validate-schema-projection.ts +50 -1
- package/src/with-synthetic-positions.ts +1 -1
|
@@ -18,6 +18,9 @@ export declare class DefinitionRegistry {
|
|
|
18
18
|
private readonly fieldMaps;
|
|
19
19
|
/** Reverse inheritance index: parent kind → direct child kinds. */
|
|
20
20
|
private readonly extendedBy;
|
|
21
|
+
/** Memoized inheritance-resolved schemas. `null` records "resolved to
|
|
22
|
+
* nothing", so a kind with no schema is not re-walked on every resource. */
|
|
23
|
+
private readonly effectiveSchemas;
|
|
21
24
|
/** DEPRECATED module identity table: identity string → canonical module name
|
|
22
25
|
* ("std/pipeline" → "pipeline"). Serves only the legacy
|
|
23
26
|
* `<namespace>/<module>#<Kind>` form of `x-telo-ref`, kept resolvable for
|
|
@@ -131,6 +134,27 @@ export declare class DefinitionRegistry {
|
|
|
131
134
|
* never registered. */
|
|
132
135
|
resolveRef(xTeloRef: string): string | undefined;
|
|
133
136
|
resolve(kind: string): ResourceDefinition | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* The kind's AUTHOR-FACING schema — its own merged with everything it
|
|
139
|
+
* inherits along `extends` — memoized per kind.
|
|
140
|
+
*
|
|
141
|
+
* This is what every consumer reading a kind's schema to interpret an
|
|
142
|
+
* INSTANCE must use, because that is the schema the instance was authored
|
|
143
|
+
* against and the one the kernel stamps at definition registration. Reading
|
|
144
|
+
* `resolve(kind).schema` instead sees only what the leaf declared, so an
|
|
145
|
+
* annotation on a parent — a CEL context region, a step body, an error
|
|
146
|
+
* context — is invisible on every child, silently and per consumer. Sharing
|
|
147
|
+
* one memo is what keeps those consumers from drifting apart.
|
|
148
|
+
*
|
|
149
|
+
* Lazy for the same reason `getFieldMap` is: a child registered before its
|
|
150
|
+
* parent still sees the inherited half once both are present.
|
|
151
|
+
*/
|
|
152
|
+
effectiveSchema(kind: string): Record<string, unknown> | undefined;
|
|
153
|
+
/** The effective schema for a definition, by the kind it is registered under.
|
|
154
|
+
* Falls back to the definition's own schema when it is not in this registry
|
|
155
|
+
* (a synthesized or not-yet-registered kind), which is the pre-inheritance
|
|
156
|
+
* behaviour and the safe direction: it types less, never wrongly. */
|
|
157
|
+
effectiveSchemaOf(definition: ResourceDefinition | undefined): Record<string, unknown> | undefined;
|
|
134
158
|
/** Returns the reference field map for the given kind, computed lazily from the
|
|
135
159
|
* kind's AUTHOR-FACING (inheritance-resolved) schema and memoized. Lazy so a
|
|
136
160
|
* child registered before its parent still sees the parent's inherited ref
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-registry.d.ts","sourceRoot":"","sources":["../src/definition-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAOlC,qBAAa,kBAAkB;;IAK7B;;sFAEkF;IAClF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyD;IAC5F;;mFAE+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IAEzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAClE,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D;;;;wEAIoE;IACpE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"definition-registry.d.ts","sourceRoot":"","sources":["../src/definition-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,9 @@ export class DefinitionRegistry {
|
|
|
23
23
|
fieldMaps = new Map();
|
|
24
24
|
/** Reverse inheritance index: parent kind → direct child kinds. */
|
|
25
25
|
extendedBy = new Map();
|
|
26
|
+
/** Memoized inheritance-resolved schemas. `null` records "resolved to
|
|
27
|
+
* nothing", so a kind with no schema is not re-walked on every resource. */
|
|
28
|
+
effectiveSchemas = new Map();
|
|
26
29
|
/** DEPRECATED module identity table: identity string → canonical module name
|
|
27
30
|
* ("std/pipeline" → "pipeline"). Serves only the legacy
|
|
28
31
|
* `<namespace>/<module>#<Kind>` form of `x-telo-ref`, kept resolvable for
|
|
@@ -38,6 +41,7 @@ export class DefinitionRegistry {
|
|
|
38
41
|
// so any already-computed map recomputes against the now-larger def set; the
|
|
39
42
|
// maps rebuild lazily on first `getFieldMap` (after all defs are registered).
|
|
40
43
|
this.fieldMaps.clear();
|
|
44
|
+
this.effectiveSchemas.clear();
|
|
41
45
|
// `capability` populates extendedBy for backward-compat with the legacy pattern where
|
|
42
46
|
// a concrete definition overloaded `capability: <AbstractKind>` to mean "implements
|
|
43
47
|
// this abstract." The canonical pattern is `extends` (below). Both populate the index,
|
|
@@ -263,6 +267,43 @@ export class DefinitionRegistry {
|
|
|
263
267
|
resolve(kind) {
|
|
264
268
|
return this.defs.get(kind);
|
|
265
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* The kind's AUTHOR-FACING schema — its own merged with everything it
|
|
272
|
+
* inherits along `extends` — memoized per kind.
|
|
273
|
+
*
|
|
274
|
+
* This is what every consumer reading a kind's schema to interpret an
|
|
275
|
+
* INSTANCE must use, because that is the schema the instance was authored
|
|
276
|
+
* against and the one the kernel stamps at definition registration. Reading
|
|
277
|
+
* `resolve(kind).schema` instead sees only what the leaf declared, so an
|
|
278
|
+
* annotation on a parent — a CEL context region, a step body, an error
|
|
279
|
+
* context — is invisible on every child, silently and per consumer. Sharing
|
|
280
|
+
* one memo is what keeps those consumers from drifting apart.
|
|
281
|
+
*
|
|
282
|
+
* Lazy for the same reason `getFieldMap` is: a child registered before its
|
|
283
|
+
* parent still sees the inherited half once both are present.
|
|
284
|
+
*/
|
|
285
|
+
effectiveSchema(kind) {
|
|
286
|
+
const cached = this.effectiveSchemas.get(kind);
|
|
287
|
+
if (cached !== undefined)
|
|
288
|
+
return cached ?? undefined;
|
|
289
|
+
const def = this.defs.get(kind);
|
|
290
|
+
if (!def)
|
|
291
|
+
return undefined;
|
|
292
|
+
const schema = effectiveAuthorSchema(def, (k) => this.resolve(k));
|
|
293
|
+
this.effectiveSchemas.set(kind, schema ?? null);
|
|
294
|
+
return schema;
|
|
295
|
+
}
|
|
296
|
+
/** The effective schema for a definition, by the kind it is registered under.
|
|
297
|
+
* Falls back to the definition's own schema when it is not in this registry
|
|
298
|
+
* (a synthesized or not-yet-registered kind), which is the pre-inheritance
|
|
299
|
+
* behaviour and the safe direction: it types less, never wrongly. */
|
|
300
|
+
effectiveSchemaOf(definition) {
|
|
301
|
+
if (!definition)
|
|
302
|
+
return undefined;
|
|
303
|
+
const { name, module: mod } = definition.metadata;
|
|
304
|
+
const resolved = this.effectiveSchema(mod ? `${mod}.${name}` : name);
|
|
305
|
+
return resolved ?? definition.schema;
|
|
306
|
+
}
|
|
266
307
|
/** Returns the reference field map for the given kind, computed lazily from the
|
|
267
308
|
* kind's AUTHOR-FACING (inheritance-resolved) schema and memoized. Lazy so a
|
|
268
309
|
* child registered before its parent still sees the parent's inherited ref
|
package/dist/eval-paths.d.ts
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WHERE IS CEL EVALUATED — the one reader, and the one decision built on it.
|
|
3
|
+
*
|
|
4
|
+
* Two independent ways a value is evaluated, and every consumer needs both:
|
|
5
|
+
* `x-telo-eval` names a field directly, while a REGION annotation
|
|
6
|
+
* (`x-telo-context` / `x-telo-step-context` / `x-telo-error-context`, or a step
|
|
7
|
+
* body) covers everything beneath it — which is how `Run.Choice`'s rows and an
|
|
8
|
+
* `Http.Api` route's `returns:` entries hold expressions while declaring no
|
|
9
|
+
* annotation of their own.
|
|
10
|
+
*
|
|
11
|
+
* The consumers are on both sides of the runtime: `telo check` decides whether a
|
|
12
|
+
* `!cel` here is live (`CEL_IN_NON_EVAL_FIELD`) or resolved at startup
|
|
13
|
+
* (`OBSERVED_STATE_IN_STARTUP_FIELD`), the kernel decides what to expand, and
|
|
14
|
+
* the editor decides whether to offer an expression at all. The editor's answer
|
|
15
|
+
* is a CLAIM that `telo check` will accept what it writes, so a second
|
|
16
|
+
* implementation there is a promise nothing keeps — it read `x-telo-eval` alone
|
|
17
|
+
* and left every predicate inside a region as a bare checkbox, with no way to
|
|
18
|
+
* write the expression the field exists to hold.
|
|
19
|
+
*
|
|
20
|
+
* Browser-safe: no Node built-ins.
|
|
21
|
+
*/
|
|
1
22
|
/**
|
|
2
23
|
* The single containment rule for `x-telo-eval` paths, shared by every matcher so
|
|
3
24
|
* the analyzer's coverage decision and the kernel's expansion/exclusion can't
|
|
@@ -22,4 +43,51 @@ export declare function buildEvalPaths(schema: Record<string, any>): {
|
|
|
22
43
|
compile: string[];
|
|
23
44
|
runtime: string[];
|
|
24
45
|
};
|
|
46
|
+
/** True when this schema node declares a CEL-bearing region. Node-level, so a
|
|
47
|
+
* consumer holding one schema (an editor rendering one field) asks it directly
|
|
48
|
+
* rather than deriving scopes it would then have to match against. */
|
|
49
|
+
export declare function declaresCelRegion(schema: unknown): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Walk a JSON Schema tree and collect the JSONPath scopes of every field that
|
|
52
|
+
* declares a CEL-bearing region (`x-telo-context` / `x-telo-step-context` /
|
|
53
|
+
* `x-telo-error-context`). Used — alongside `x-telo-eval` paths — to decide
|
|
54
|
+
* whether a `!cel` expression sits in a slot the runtime actually evaluates.
|
|
55
|
+
* Scopes use the same `$.a.b[*]` form as `extractContextsFromSchema`, matched
|
|
56
|
+
* against expression paths with `pathMatchesScope`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function extractCelRegionScopes(schema: Record<string, any>, path?: string): string[];
|
|
59
|
+
/**
|
|
60
|
+
* Returns true when a CEL expression path (from walkCelExpressions, e.g. "routes[0].inputs.q")
|
|
61
|
+
* falls within the scope of a context (e.g. "$.routes[*].inputs").
|
|
62
|
+
*
|
|
63
|
+
* The scope is matched directly (no sibling sharing): a context at "$.routes[*].inputs" only
|
|
64
|
+
* applies to expressions whose path starts with "routes[N].inputs", not to other sibling fields.
|
|
65
|
+
*/
|
|
66
|
+
export declare function pathMatchesScope(exprPath: string, scope: string): boolean;
|
|
67
|
+
/** Every place a schema says its values are evaluated: the `x-telo-eval` paths,
|
|
68
|
+
* by mode, plus the scopes of the regions that cover their contents. */
|
|
69
|
+
export interface CelEvalSites {
|
|
70
|
+
compile: readonly string[];
|
|
71
|
+
runtime: readonly string[];
|
|
72
|
+
regions: readonly string[];
|
|
73
|
+
}
|
|
74
|
+
export declare const NO_CEL_EVAL_SITES: CelEvalSites;
|
|
75
|
+
export declare function celEvalSites(schema: Record<string, any> | undefined): CelEvalSites;
|
|
76
|
+
/** The union of several schemas' sites — a kind's own and its capability
|
|
77
|
+
* abstract's, which is how a `Telo.Provider`'s implicit compile-eval reaches
|
|
78
|
+
* fields the provider never annotated. */
|
|
79
|
+
export declare function mergeCelEvalSites(...sites: CelEvalSites[]): CelEvalSites;
|
|
80
|
+
/**
|
|
81
|
+
* Whether the value at `path` is evaluated, and when — null for a field whose
|
|
82
|
+
* value is read as a literal.
|
|
83
|
+
*
|
|
84
|
+
* `compile` wins over `runtime`, and both win over a region: a field's own
|
|
85
|
+
* annotation is more specific than the region it sits in, which is the same
|
|
86
|
+
* precedence a nested annotation has over an enclosing one. A region resolves to
|
|
87
|
+
* `runtime` because that is what a region IS — a per-invocation scope naming
|
|
88
|
+
* what its expressions can read.
|
|
89
|
+
*
|
|
90
|
+
* `path` is the `walkCelExpressions` spelling (`routes[0].returns[1].when`).
|
|
91
|
+
*/
|
|
92
|
+
export declare function celEvalModeAt(sites: CelEvalSites, path: string): "compile" | "runtime" | null;
|
|
25
93
|
//# sourceMappingURL=eval-paths.d.ts.map
|
package/dist/eval-paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-paths.d.ts","sourceRoot":"","sources":["../src/eval-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKxE;AAED;+BAC+B;AAC/B,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAcA"}
|
|
1
|
+
{"version":3,"file":"eval-paths.d.ts","sourceRoot":"","sources":["../src/eval-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKxE;AAED;+BAC+B;AAC/B,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAcA;AAiCD;;uEAEuE;AACvE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAI1D;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,SAAM,GAAG,MAAM,EAAE,CAqBxF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAoBzE;AAED;yEACyE;AACzE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAwD,CAAC;AAEzF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,YAAY,CAIlF;AAED;;2CAE2C;AAC3C,wBAAgB,iBAAiB,CAAC,GAAG,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,CAMxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,GACX,SAAS,GAAG,SAAS,GAAG,IAAI,CAK9B"}
|
package/dist/eval-paths.js
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WHERE IS CEL EVALUATED — the one reader, and the one decision built on it.
|
|
3
|
+
*
|
|
4
|
+
* Two independent ways a value is evaluated, and every consumer needs both:
|
|
5
|
+
* `x-telo-eval` names a field directly, while a REGION annotation
|
|
6
|
+
* (`x-telo-context` / `x-telo-step-context` / `x-telo-error-context`, or a step
|
|
7
|
+
* body) covers everything beneath it — which is how `Run.Choice`'s rows and an
|
|
8
|
+
* `Http.Api` route's `returns:` entries hold expressions while declaring no
|
|
9
|
+
* annotation of their own.
|
|
10
|
+
*
|
|
11
|
+
* The consumers are on both sides of the runtime: `telo check` decides whether a
|
|
12
|
+
* `!cel` here is live (`CEL_IN_NON_EVAL_FIELD`) or resolved at startup
|
|
13
|
+
* (`OBSERVED_STATE_IN_STARTUP_FIELD`), the kernel decides what to expand, and
|
|
14
|
+
* the editor decides whether to offer an expression at all. The editor's answer
|
|
15
|
+
* is a CLAIM that `telo check` will accept what it writes, so a second
|
|
16
|
+
* implementation there is a promise nothing keeps — it read `x-telo-eval` alone
|
|
17
|
+
* and left every predicate inside a region as a bare checkbox, with no way to
|
|
18
|
+
* write the expression the field exists to hold.
|
|
19
|
+
*
|
|
20
|
+
* Browser-safe: no Node built-ins.
|
|
21
|
+
*/
|
|
22
|
+
import { isStepSlot } from "./step-slot.js";
|
|
1
23
|
/**
|
|
2
24
|
* The single containment rule for `x-telo-eval` paths, shared by every matcher so
|
|
3
25
|
* the analyzer's coverage decision and the kernel's expansion/exclusion can't
|
|
@@ -53,3 +75,119 @@ function collectEvalPathsNode(node, path, compile, runtime) {
|
|
|
53
75
|
}
|
|
54
76
|
}
|
|
55
77
|
}
|
|
78
|
+
/** Schema keys that declare a CEL-bearing region: a field carrying any of these
|
|
79
|
+
* is evaluated at runtime, so a `!cel` inside it (or a descendant) is live. A
|
|
80
|
+
* STEP BODY is one too, and says so through the grammar its items point at
|
|
81
|
+
* rather than through a key — {@link isStepSlot} reads either spelling. */
|
|
82
|
+
const CEL_REGION_KEYS = [
|
|
83
|
+
"x-telo-context",
|
|
84
|
+
"x-telo-step-context",
|
|
85
|
+
"x-telo-error-context",
|
|
86
|
+
];
|
|
87
|
+
/** True when this schema node declares a CEL-bearing region. Node-level, so a
|
|
88
|
+
* consumer holding one schema (an editor rendering one field) asks it directly
|
|
89
|
+
* rather than deriving scopes it would then have to match against. */
|
|
90
|
+
export function declaresCelRegion(schema) {
|
|
91
|
+
if (!schema || typeof schema !== "object")
|
|
92
|
+
return false;
|
|
93
|
+
const node = schema;
|
|
94
|
+
return CEL_REGION_KEYS.some((key) => node[key] !== undefined) || isStepSlot(node);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Walk a JSON Schema tree and collect the JSONPath scopes of every field that
|
|
98
|
+
* declares a CEL-bearing region (`x-telo-context` / `x-telo-step-context` /
|
|
99
|
+
* `x-telo-error-context`). Used — alongside `x-telo-eval` paths — to decide
|
|
100
|
+
* whether a `!cel` expression sits in a slot the runtime actually evaluates.
|
|
101
|
+
* Scopes use the same `$.a.b[*]` form as `extractContextsFromSchema`, matched
|
|
102
|
+
* against expression paths with `pathMatchesScope`.
|
|
103
|
+
*/
|
|
104
|
+
export function extractCelRegionScopes(schema, path = "$") {
|
|
105
|
+
if (!schema || typeof schema !== "object")
|
|
106
|
+
return [];
|
|
107
|
+
const out = [];
|
|
108
|
+
if (declaresCelRegion(schema))
|
|
109
|
+
out.push(path);
|
|
110
|
+
if (schema.properties) {
|
|
111
|
+
for (const [key, value] of Object.entries(schema.properties)) {
|
|
112
|
+
out.push(...extractCelRegionScopes(value, `${path}.${key}`));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (schema.items && typeof schema.items === "object") {
|
|
116
|
+
out.push(...extractCelRegionScopes(schema.items, `${path}[*]`));
|
|
117
|
+
}
|
|
118
|
+
for (const key of ["oneOf", "anyOf", "allOf"]) {
|
|
119
|
+
if (Array.isArray(schema[key])) {
|
|
120
|
+
for (const subschema of schema[key])
|
|
121
|
+
out.push(...extractCelRegionScopes(subschema, path));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Returns true when a CEL expression path (from walkCelExpressions, e.g. "routes[0].inputs.q")
|
|
128
|
+
* falls within the scope of a context (e.g. "$.routes[*].inputs").
|
|
129
|
+
*
|
|
130
|
+
* The scope is matched directly (no sibling sharing): a context at "$.routes[*].inputs" only
|
|
131
|
+
* applies to expressions whose path starts with "routes[N].inputs", not to other sibling fields.
|
|
132
|
+
*/
|
|
133
|
+
export function pathMatchesScope(exprPath, scope) {
|
|
134
|
+
const stripped = scope.startsWith("$.") ? scope.slice(2) : scope;
|
|
135
|
+
if (!stripped)
|
|
136
|
+
return false;
|
|
137
|
+
// Split on wildcard array segments; each [*] must match a concrete [N] in exprPath
|
|
138
|
+
const parts = stripped.split("[*]");
|
|
139
|
+
let remaining = exprPath;
|
|
140
|
+
for (let i = 0; i < parts.length; i++) {
|
|
141
|
+
const part = parts[i];
|
|
142
|
+
if (!remaining.startsWith(part))
|
|
143
|
+
return false;
|
|
144
|
+
remaining = remaining.slice(part.length);
|
|
145
|
+
if (i < parts.length - 1) {
|
|
146
|
+
// Expect a concrete array index like [0], [12], ...
|
|
147
|
+
const m = remaining.match(/^\[\d+\]/);
|
|
148
|
+
if (!m)
|
|
149
|
+
return false;
|
|
150
|
+
remaining = remaining.slice(m[0].length);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Expression must end here or continue into a child path
|
|
154
|
+
return remaining === "" || remaining[0] === "." || remaining[0] === "[";
|
|
155
|
+
}
|
|
156
|
+
export const NO_CEL_EVAL_SITES = { compile: [], runtime: [], regions: [] };
|
|
157
|
+
export function celEvalSites(schema) {
|
|
158
|
+
if (!schema)
|
|
159
|
+
return NO_CEL_EVAL_SITES;
|
|
160
|
+
const { compile, runtime } = buildEvalPaths(schema);
|
|
161
|
+
return { compile, runtime, regions: extractCelRegionScopes(schema) };
|
|
162
|
+
}
|
|
163
|
+
/** The union of several schemas' sites — a kind's own and its capability
|
|
164
|
+
* abstract's, which is how a `Telo.Provider`'s implicit compile-eval reaches
|
|
165
|
+
* fields the provider never annotated. */
|
|
166
|
+
export function mergeCelEvalSites(...sites) {
|
|
167
|
+
return {
|
|
168
|
+
compile: sites.flatMap((s) => s.compile),
|
|
169
|
+
runtime: sites.flatMap((s) => s.runtime),
|
|
170
|
+
regions: sites.flatMap((s) => s.regions),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Whether the value at `path` is evaluated, and when — null for a field whose
|
|
175
|
+
* value is read as a literal.
|
|
176
|
+
*
|
|
177
|
+
* `compile` wins over `runtime`, and both win over a region: a field's own
|
|
178
|
+
* annotation is more specific than the region it sits in, which is the same
|
|
179
|
+
* precedence a nested annotation has over an enclosing one. A region resolves to
|
|
180
|
+
* `runtime` because that is what a region IS — a per-invocation scope naming
|
|
181
|
+
* what its expressions can read.
|
|
182
|
+
*
|
|
183
|
+
* `path` is the `walkCelExpressions` spelling (`routes[0].returns[1].when`).
|
|
184
|
+
*/
|
|
185
|
+
export function celEvalModeAt(sites, path) {
|
|
186
|
+
if (evalPathsCover(sites.compile, path))
|
|
187
|
+
return "compile";
|
|
188
|
+
if (evalPathsCover(sites.runtime, path))
|
|
189
|
+
return "runtime";
|
|
190
|
+
if (sites.regions.some((scope) => pathMatchesScope(path, scope)))
|
|
191
|
+
return "runtime";
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
@@ -15,7 +15,7 @@ export interface ParsedExportEntry {
|
|
|
15
15
|
* the empty prefix isn't a valid alias. */
|
|
16
16
|
export declare function parseExportEntry(entry: string): ParsedExportEntry;
|
|
17
17
|
/** The import-boundary forwarding rule, shared by `flattenForAnalyzer` (the
|
|
18
|
-
* CLI / kernel loader path) and
|
|
18
|
+
* CLI / kernel loader path) and telo studio's workspace projection so the
|
|
19
19
|
* two cannot drift. Given one module's stamped manifests and whether that
|
|
20
20
|
* module is the analysis entry (root), returns the manifests that cross into
|
|
21
21
|
* the consumer's flat analysis list:
|
|
@@ -9,7 +9,7 @@ export function parseExportEntry(entry) {
|
|
|
9
9
|
return dot > 0 ? { name: entry.slice(dot + 1), alias: entry.slice(0, dot) } : { name: entry };
|
|
10
10
|
}
|
|
11
11
|
/** The import-boundary forwarding rule, shared by `flattenForAnalyzer` (the
|
|
12
|
-
* CLI / kernel loader path) and
|
|
12
|
+
* CLI / kernel loader path) and telo studio's workspace projection so the
|
|
13
13
|
* two cannot drift. Given one module's stamped manifests and whether that
|
|
14
14
|
* module is the analysis entry (root), returns the manifests that cross into
|
|
15
15
|
* the consumer's flat analysis list:
|
|
@@ -3,7 +3,7 @@ import { type AnalysisDiagnostic } from "./types.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Convert a graph's import failures (`graph.errors`) into structured, coded
|
|
5
5
|
* diagnostics. This is the single source of truth for surfacing a broken
|
|
6
|
-
* import — every host (CLI, VS Code, telo
|
|
6
|
+
* import — every host (CLI, VS Code, telo studio) routes these instead of each
|
|
7
7
|
* re-deriving the channel and drifting (the VS Code extension used to drop it
|
|
8
8
|
* entirely, showing nothing for a broken import).
|
|
9
9
|
*
|
|
@@ -38,7 +38,7 @@ function messageFor(e, code) {
|
|
|
38
38
|
/**
|
|
39
39
|
* Convert a graph's import failures (`graph.errors`) into structured, coded
|
|
40
40
|
* diagnostics. This is the single source of truth for surfacing a broken
|
|
41
|
-
* import — every host (CLI, VS Code, telo
|
|
41
|
+
* import — every host (CLI, VS Code, telo studio) routes these instead of each
|
|
42
42
|
* re-deriving the channel and drifting (the VS Code extension used to drop it
|
|
43
43
|
* entirely, showing nothing for a broken import).
|
|
44
44
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,8 @@ export { StaticAnalyzer } from "./analyzer.js";
|
|
|
4
4
|
export { importResolutionDiagnostics } from "./import-resolution-diagnostics.js";
|
|
5
5
|
export type { GraphLoadError, ImportEdge, LoadedFile, LoadedGraph, LoadedModule, ParseError, } from "./loaded-types.js";
|
|
6
6
|
export { collectZoneModuleDocuments, flattenForAnalyzer, flattenLoadedModule, forwardReExportManifests, parseExportEntry, reExportSpecsFromExports, resolveExportedKinds, selectModuleManifestsForAnalysis, stampExportedKinds, stampReExportedKinds, type ParsedExportEntry, type ReExportSpec, } from "./flatten-for-analyzer.js";
|
|
7
|
-
export { buildEvalPaths, evalPathCovers } from "./eval-paths.js";
|
|
7
|
+
export { buildEvalPaths, celEvalModeAt, celEvalSites, declaresCelRegion, evalPathCovers, mergeCelEvalSites, NO_CEL_EVAL_SITES, } from "./eval-paths.js";
|
|
8
|
+
export type { CelEvalSites } from "./eval-paths.js";
|
|
8
9
|
export { BINDINGS_ANNOTATION, bindingContextProperties, bindingDependencies, findBindingSites, resolveBindingOrder, } from "./cel-bindings.js";
|
|
9
10
|
export type { BindingSites } from "./cel-bindings.js";
|
|
10
11
|
export { CEL_RESERVED_WORDS, TYPE_LEVEL_DOC_KINDS, checkName, } from "./identifier-name.js";
|
|
@@ -21,8 +22,8 @@ export { hasIntermediateWildcard, parseRedactionPath, RedactionPathError, } from
|
|
|
21
22
|
export type { RedactionSegment } from "./redaction-path.js";
|
|
22
23
|
export { buildCallGraph, projectToPairs, resourceId } from "./call-graph.js";
|
|
23
24
|
export type { BuildCallGraphOptions, CallGraph, CallGraphEdge, CallGraphNode, ResourceGraphNode, StepGraphNode, } from "./call-graph.js";
|
|
24
|
-
export { buildReferenceFieldMap, isRefEntry, isScopeEntry } from "./reference-field-map.js";
|
|
25
|
-
export type { ReferenceFieldMap, RefFieldEntry } from "./reference-field-map.js";
|
|
25
|
+
export { buildReferenceFieldMap, isRefEntry, isScopeEntry, satisfiesValueBranch, } from "./reference-field-map.js";
|
|
26
|
+
export type { ReferenceFieldMap, RefFieldEntry, ValueBranchValidator, } from "./reference-field-map.js";
|
|
26
27
|
export { hasDeclaredUse, isRefSlot, isRefUse, possibleUses, readRefSlot, REF_USES, refSlotAnnotation, rewriteRefSlotKinds, transfersControl, } from "./ref-slot.js";
|
|
27
28
|
export type { RefSlot, RefUse, RefUseCases } from "./ref-slot.js";
|
|
28
29
|
export { isStepSlot, readStepSlot, STEP_FRAGMENT } from "./step-slot.js";
|
|
@@ -45,12 +46,13 @@ export { deriveLibraryExportRequirements, projectZoneRequirements, runZoneAnalys
|
|
|
45
46
|
export type { ZoneExportCache, ZoneExportCacheEntry, ZoneExportRequirements, ZoneRequirementSpec, } from "./resolve-zone-requirements.js";
|
|
46
47
|
export type { ZoneModuleDocuments } from "./zone-module-documents.js";
|
|
47
48
|
export { validateZoneSlotDeclarations } from "./validate-zone-slots.js";
|
|
48
|
-
export { RESOURCE_RULES_ANNOTATION, readResourceRules, readRawResourceRules, resolveRuleSubjects, findDynamicLeaf, type ResourceRule, type ResourceRuleSeverity, type RuleSubject, } from "./resource-rule.js";
|
|
49
|
+
export { RESOURCE_RULES_ANNOTATION, readResourceRules, readRawResourceRules, resolveRuleSubjects, findDynamicLeaf, dynamicNode, type DynamicLeaf, type ResourceRule, type ResourceRuleSeverity, type RuleSubject, } from "./resource-rule.js";
|
|
49
50
|
export { validateResourceRuleDeclarations, evaluateResourceRules, ruleExercised, RESOURCE_RULE_BUDGET_MS, type ResourceRuleIssue, type ResourceRuleFinding, } from "./validate-resource-rules.js";
|
|
50
51
|
export { REFERRER_RULES_ANNOTATION, readReferrerRules, readRawReferrerRules, hasReferrerRules, rewriteReferrerRuleKinds, type ReferrerRule, } from "./referrer-rule.js";
|
|
51
|
-
export { validateReferrerRuleDeclarations, evaluateReferrerRules, referrerRuleExercised, reportReferrerRules, reportUnexercisedReferrerRule, type Referrer, type ReferrerRuleIssue, type ReferrerRuleFinding, type ReferrerRuleDiagnostic, } from "./validate-referrer-rules.js";
|
|
52
|
-
export {
|
|
53
|
-
export {
|
|
52
|
+
export { validateReferrerRuleDeclarations, evaluateReferrerRules, referrerRuleExercised, reportReferrerRules, reportUnexercisedReferrerRule, type Referrer, type ReferrerRuleIssue, type ReferrerRuleFinding, type ReferrerRuleDiagnostic, type ReferrerRuleContext, type ReferrerRuleDeclarationContext, } from "./validate-referrer-rules.js";
|
|
53
|
+
export { PeerBinder, analyzerPeerBinder, analyzerPeersTarget, entryBoundary, navigatePath, referenceValueOf, shapeMatches, type DeclarationLookup, type PeerAliasScope, type PeerBinderEnv, type PeerBinderRegistry, type PeerBinding, type PeerBindingFailure, type PeerBindingResult, type PeersTarget, } from "./peer-binding.js";
|
|
54
|
+
export { RULE_BUDGET_MS, UNTAGGED_CONDITION } from "./rule-condition.js";
|
|
55
|
+
export { readSchemaProjection, type ProjectionReference, readSchemaMap, schemaMapBranch, readProjectionFrom, readProjectionRef, manifestListScope, projectionKeyMap, projectEntries, resolveSchemaProjections, describeProjectionFailure, type SchemaProjection, type SchemaMap, type ProjectionRef, type ProjectionLookup, type ProjectionScope, type ProjectionFailure, } from "./schema-projection.js";
|
|
54
56
|
export { validateSchemaProjection, type SchemaProjectionIssue } from "./validate-schema-projection.js";
|
|
55
57
|
export { validateDurableRegions } from "./validate-durable-regions.js";
|
|
56
58
|
export { validateZoneViolations } from "./validate-zone-violations.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,YAAY,EACR,cAAc,EACd,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,UAAU,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,gCAAgC,EAChC,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,YAAY,EACR,cAAc,EACd,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,UAAU,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,gCAAgC,EAChC,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iCAAiC,EACjC,wBAAwB,EACxB,iBAAiB,EACjB,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7E,YAAY,EACV,qBAAqB,EACrB,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,YAAY,EACZ,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,cAAc,EACd,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,EACZ,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,eAAe,EACf,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gCAAgC,EAChC,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,GACpC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAChG,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC/F,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EACR,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACH,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACnB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,WAAW,EACX,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAIvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3E,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAKxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1F,YAAY,EACR,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,QAAQ,EACR,aAAa,EACb,KAAK,EACR,MAAM,YAAY,CAAC;AACpB,cAAc,uBAAuB,CAAC;AAGtC,cAAc,sBAAsB,CAAC;AAIrC,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export { AnalysisRegistry } from "./analysis-registry.js";
|
|
|
2
2
|
export { StaticAnalyzer } from "./analyzer.js";
|
|
3
3
|
export { importResolutionDiagnostics } from "./import-resolution-diagnostics.js";
|
|
4
4
|
export { collectZoneModuleDocuments, flattenForAnalyzer, flattenLoadedModule, forwardReExportManifests, parseExportEntry, reExportSpecsFromExports, resolveExportedKinds, selectModuleManifestsForAnalysis, stampExportedKinds, stampReExportedKinds, } from "./flatten-for-analyzer.js";
|
|
5
|
-
export { buildEvalPaths, evalPathCovers } from "./eval-paths.js";
|
|
5
|
+
export { buildEvalPaths, celEvalModeAt, celEvalSites, declaresCelRegion, evalPathCovers, mergeCelEvalSites, NO_CEL_EVAL_SITES, } from "./eval-paths.js";
|
|
6
6
|
export { BINDINGS_ANNOTATION, bindingContextProperties, bindingDependencies, findBindingSites, resolveBindingOrder, } from "./cel-bindings.js";
|
|
7
7
|
export { CEL_RESERVED_WORDS, TYPE_LEVEL_DOC_KINDS, checkName, } from "./identifier-name.js";
|
|
8
8
|
export { applyObservedStateNode, buildObservedStateIndex, buildObservedStateResourcesSchema, collectRunReachableNames, observedStateRead, validateObservedStateDeclarations, OBSERVED_STATE_SCHEMA, } from "./validate-observed-state.js";
|
|
@@ -11,7 +11,7 @@ export { ancestorChain, contractDeclarer, controllerBearingAncestor, effectiveAu
|
|
|
11
11
|
export { defaultBearingPaths, declaredScalarPaths, PERMISSIVE_CONTRACT, resolveContract, resolveContractSchema, withLiveValuesSkipped, } from "./invocation-contract.js";
|
|
12
12
|
export { hasIntermediateWildcard, parseRedactionPath, RedactionPathError, } from "./redaction-path.js";
|
|
13
13
|
export { buildCallGraph, projectToPairs, resourceId } from "./call-graph.js";
|
|
14
|
-
export { buildReferenceFieldMap, isRefEntry, isScopeEntry } from "./reference-field-map.js";
|
|
14
|
+
export { buildReferenceFieldMap, isRefEntry, isScopeEntry, satisfiesValueBranch, } from "./reference-field-map.js";
|
|
15
15
|
export { hasDeclaredUse, isRefSlot, isRefUse, possibleUses, readRefSlot, REF_USES, refSlotAnnotation, rewriteRefSlotKinds, transfersControl, } from "./ref-slot.js";
|
|
16
16
|
export { isStepSlot, readStepSlot, STEP_FRAGMENT } from "./step-slot.js";
|
|
17
17
|
export { ANNOTATION_KEYWORDS, registerTeloKeywords, valueTypeKeyword, } from "./value-type-keyword.js";
|
|
@@ -24,12 +24,13 @@ export { isUnsatisfiable, lowerBound, parseVersionRange, rangeAccepts, upperBoun
|
|
|
24
24
|
export { hasProvidesZone, hasRequiresZone, providedZoneAttributes, readProvidesZone, readRequiresZone, readViolatesZone, rewriteRequiresZoneKind, } from "./zone-slot.js";
|
|
25
25
|
export { deriveLibraryExportRequirements, projectZoneRequirements, runZoneAnalysis, zoneDocumentsSignature, } from "./resolve-zone-requirements.js";
|
|
26
26
|
export { validateZoneSlotDeclarations } from "./validate-zone-slots.js";
|
|
27
|
-
export { RESOURCE_RULES_ANNOTATION, readResourceRules, readRawResourceRules, resolveRuleSubjects, findDynamicLeaf, } from "./resource-rule.js";
|
|
27
|
+
export { RESOURCE_RULES_ANNOTATION, readResourceRules, readRawResourceRules, resolveRuleSubjects, findDynamicLeaf, dynamicNode, } from "./resource-rule.js";
|
|
28
28
|
export { validateResourceRuleDeclarations, evaluateResourceRules, ruleExercised, RESOURCE_RULE_BUDGET_MS, } from "./validate-resource-rules.js";
|
|
29
29
|
export { REFERRER_RULES_ANNOTATION, readReferrerRules, readRawReferrerRules, hasReferrerRules, rewriteReferrerRuleKinds, } from "./referrer-rule.js";
|
|
30
30
|
export { validateReferrerRuleDeclarations, evaluateReferrerRules, referrerRuleExercised, reportReferrerRules, reportUnexercisedReferrerRule, } from "./validate-referrer-rules.js";
|
|
31
|
-
export {
|
|
32
|
-
export {
|
|
31
|
+
export { PeerBinder, analyzerPeerBinder, analyzerPeersTarget, entryBoundary, navigatePath, referenceValueOf, shapeMatches, } from "./peer-binding.js";
|
|
32
|
+
export { RULE_BUDGET_MS, UNTAGGED_CONDITION } from "./rule-condition.js";
|
|
33
|
+
export { readSchemaProjection, readSchemaMap, schemaMapBranch, readProjectionFrom, readProjectionRef, manifestListScope, projectionKeyMap, projectEntries, resolveSchemaProjections, describeProjectionFailure, } from "./schema-projection.js";
|
|
33
34
|
export { validateSchemaProjection } from "./validate-schema-projection.js";
|
|
34
35
|
export { validateDurableRegions } from "./validate-durable-regions.js";
|
|
35
36
|
export { validateZoneViolations } from "./validate-zone-violations.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-visitor.d.ts","sourceRoot":"","sources":["../src/manifest-visitor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manifest-visitor.d.ts","sourceRoot":"","sources":["../src/manifest-visitor.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest-visitor.js
CHANGED
|
@@ -188,7 +188,14 @@ export function visitManifest(resources, registry, visitor, options = {}) {
|
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
if (wantsCel) {
|
|
191
|
-
|
|
191
|
+
// The INHERITANCE-RESOLVED schema: an `extends` child is authored against
|
|
192
|
+
// merge(parent, own), so a context region the parent declares is in force
|
|
193
|
+
// on the child. Reading the child's own schema typed the region on
|
|
194
|
+
// whichever kind happened to declare it and left every descendant's
|
|
195
|
+
// expressions unchecked — silently, which for a typing rule means the
|
|
196
|
+
// check simply stops existing.
|
|
197
|
+
const authorSchema = registry.effectiveSchemaOf(definition);
|
|
198
|
+
const contexts = authorSchema ? extractContextsFromSchema(authorSchema) : [];
|
|
192
199
|
walkCelExpressions(r, "", (expr, path, engineName, surface) => {
|
|
193
200
|
let contextSchema;
|
|
194
201
|
let matchedScope;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/entries/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/entries/index.ts"],"names":[],"mappings":"AAMA,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAIvF,CAAC"}
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
// Source: analyzer/migrations/*.json (lexically ordered).
|
|
3
3
|
import e0 from "./normalize-value-types.json" with { type: "json" };
|
|
4
4
|
import e1 from "./ref-slot-scalar-type.json" with { type: "json" };
|
|
5
|
+
import e2 from "./schema-prepare-bucket.json" with { type: "json" };
|
|
5
6
|
/** Every entry file, in the order the driver applies them. */
|
|
6
7
|
export const MIGRATION_ENTRY_FILES = [
|
|
7
8
|
["normalize-value-types.json", e0],
|
|
8
9
|
["ref-slot-scalar-type.json", e1],
|
|
10
|
+
["schema-prepare-bucket.json", e2],
|
|
9
11
|
];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "`inKind` names the two backend schema kinds by their canonical `<module>.<Kind>` spelling, which is what a document's `kind:` carries after alias resolution. `under` is the key itself: the bucket is a top-level field of the resource, so the region and the match are the same node \u2014 the tightest containment this vocabulary can state. NAMING A MODULE'S KIND FROM A CORE ENTRY IS A DEBT, not a pattern: it is the one place the analyzer knows a standard-library kind by name. It is contained because `inKind` is a filter \u2014 an entry naming an absent kind matches nothing \u2014 and it MOVES into `modules/postgres` and `modules/sqlite` when the module-migration surface lands. Do not add another; see analyzer/migrations/README.md.",
|
|
3
|
+
"id": "schema-prepare-bucket",
|
|
4
|
+
"code": "SQL_BEFORE_MIGRATIONS_RENAMED",
|
|
5
|
+
"severity": "warning",
|
|
6
|
+
"reason": "`beforeMigrations:` is now `prepare:`. Every documented use of it was data preparation for a narrowing the reconciliation pass is about to attempt \u2014 backfill before NOT NULL, make values fit before a length reduction, convert before a non-widening type change \u2014 and each is what a refusal already tells the author to write. The old name said where it ran relative to the OTHER bucket; the new one says what it is for, which is what those refusals need to name. Nothing re-runs: the ledger stores the migration key alone, so moving an entry between the two maps changes no history.",
|
|
7
|
+
"rules": [
|
|
8
|
+
{
|
|
9
|
+
"match": {
|
|
10
|
+
"key": "beforeMigrations",
|
|
11
|
+
"inKind": [
|
|
12
|
+
"Postgres.Schema",
|
|
13
|
+
"SQLite.Schema"
|
|
14
|
+
],
|
|
15
|
+
"under": [
|
|
16
|
+
"beforeMigrations"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"patch": [
|
|
20
|
+
{
|
|
21
|
+
"op": "rename-key",
|
|
22
|
+
"to": "prepare"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|