@telorun/analyzer 0.72.0 → 0.74.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.map +1 -1
- package/dist/analyzer.js +76 -20
- package/dist/artifact-axes.d.ts +14 -0
- package/dist/artifact-axes.d.ts.map +1 -0
- package/dist/artifact-axes.js +12 -0
- package/dist/artifact-layer-index.d.ts +2 -2
- package/dist/artifact-layer-index.d.ts.map +1 -1
- package/dist/artifact-layer-index.js +9 -4
- package/dist/artifact-selector.d.ts +47 -21
- package/dist/artifact-selector.d.ts.map +1 -1
- package/dist/artifact-selector.js +85 -16
- package/dist/builtins.d.ts.map +1 -1
- package/dist/builtins.js +144 -113
- package/dist/call-graph.d.ts +12 -1
- package/dist/call-graph.d.ts.map +1 -1
- package/dist/call-graph.js +22 -0
- package/dist/catch-scope.js +1 -1
- package/dist/cel-scope-query.d.ts.map +1 -1
- package/dist/cel-scope-query.js +32 -11
- package/dist/cel-scope.d.ts.map +1 -1
- package/dist/cel-scope.js +1 -0
- package/dist/eval-paths.d.ts +36 -5
- package/dist/eval-paths.d.ts.map +1 -1
- package/dist/eval-paths.js +47 -6
- package/dist/extends-resolution.d.ts +12 -0
- package/dist/extends-resolution.d.ts.map +1 -1
- package/dist/extends-resolution.js +23 -0
- package/dist/forwarded-declaration.d.ts +26 -0
- package/dist/forwarded-declaration.d.ts.map +1 -0
- package/dist/forwarded-declaration.js +31 -0
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/kernel-globals.d.ts.map +1 -1
- package/dist/kernel-globals.js +21 -5
- package/dist/module-alias-scope.d.ts +11 -0
- package/dist/module-alias-scope.d.ts.map +1 -1
- package/dist/module-alias-scope.js +10 -0
- package/dist/module-file-claims.d.ts +17 -1
- package/dist/module-file-claims.d.ts.map +1 -1
- package/dist/module-file-claims.js +38 -3
- package/dist/module-named-files.d.ts +72 -0
- package/dist/module-named-files.d.ts.map +1 -0
- package/dist/module-named-files.js +115 -0
- package/dist/native-entries.d.ts +83 -0
- package/dist/native-entries.d.ts.map +1 -0
- package/dist/native-entries.js +169 -0
- package/dist/nearest-name.d.ts +22 -0
- package/dist/nearest-name.d.ts.map +1 -0
- package/dist/nearest-name.js +43 -0
- package/dist/normalize-inline-resources.d.ts +41 -13
- package/dist/normalize-inline-resources.d.ts.map +1 -1
- package/dist/normalize-inline-resources.js +236 -54
- package/dist/reference-field-map.d.ts +59 -1
- package/dist/reference-field-map.d.ts.map +1 -1
- package/dist/reference-field-map.js +200 -34
- package/dist/release/destinations.d.ts +59 -0
- package/dist/release/destinations.d.ts.map +1 -0
- package/dist/release/destinations.js +75 -0
- package/dist/release/index.d.ts +6 -2
- package/dist/release/index.d.ts.map +1 -1
- package/dist/release/index.js +3 -1
- package/dist/release/ledger.d.ts +20 -11
- package/dist/release/ledger.d.ts.map +1 -1
- package/dist/release/ledger.js +43 -14
- package/dist/release/payload-digest.d.ts +2 -1
- package/dist/release/payload-digest.d.ts.map +1 -1
- package/dist/release/payload-digest.js +2 -1
- package/dist/release/release-plan.d.ts +3 -2
- package/dist/release/release-plan.d.ts.map +1 -1
- package/dist/release/release-plan.js +12 -19
- package/dist/release/workspace-config.d.ts +114 -34
- package/dist/release/workspace-config.d.ts.map +1 -1
- package/dist/release/workspace-config.js +322 -38
- package/dist/release/workspace-schema.d.ts +41 -0
- package/dist/release/workspace-schema.d.ts.map +1 -0
- package/dist/release/workspace-schema.js +77 -0
- package/dist/resolve-ref-sentinels.d.ts.map +1 -1
- package/dist/resolve-ref-sentinels.js +8 -5
- package/dist/resolve-throws-union.d.ts +25 -4
- package/dist/resolve-throws-union.d.ts.map +1 -1
- package/dist/resolve-throws-union.js +62 -32
- package/dist/resolve-zone-requirements.d.ts.map +1 -1
- package/dist/resolve-zone-requirements.js +2 -1
- package/dist/rewrite-synthetic-origins.d.ts +6 -1
- package/dist/rewrite-synthetic-origins.d.ts.map +1 -1
- package/dist/rewrite-synthetic-origins.js +107 -13
- package/dist/schema-compat.d.ts.map +1 -1
- package/dist/schema-compat.js +18 -5
- package/dist/schema-error-report.d.ts +7 -0
- package/dist/schema-error-report.d.ts.map +1 -1
- package/dist/schema-error-report.js +9 -4
- package/dist/schema-walk.d.ts +47 -13
- package/dist/schema-walk.d.ts.map +1 -1
- package/dist/schema-walk.js +150 -30
- package/dist/scope-declarations.d.ts +59 -0
- package/dist/scope-declarations.d.ts.map +1 -0
- package/dist/scope-declarations.js +45 -0
- package/dist/source-entries.d.ts +119 -0
- package/dist/source-entries.d.ts.map +1 -0
- package/dist/source-entries.js +349 -0
- package/dist/step-bodies.d.ts +24 -0
- package/dist/step-bodies.d.ts.map +1 -0
- package/dist/step-bodies.js +28 -0
- package/dist/telo-version.d.ts +1 -1
- package/dist/telo-version.js +1 -1
- package/dist/template-body.d.ts +10 -0
- package/dist/template-body.d.ts.map +1 -1
- package/dist/template-body.js +25 -0
- package/dist/validate-cel-context.d.ts +23 -8
- package/dist/validate-cel-context.d.ts.map +1 -1
- package/dist/validate-cel-context.js +51 -18
- package/dist/validate-exports.d.ts +28 -0
- package/dist/validate-exports.d.ts.map +1 -0
- package/dist/validate-exports.js +146 -0
- package/dist/validate-extends.d.ts.map +1 -1
- package/dist/validate-extends.js +37 -1
- package/dist/validate-module-artifact.d.ts +4 -2
- package/dist/validate-module-artifact.d.ts.map +1 -1
- package/dist/validate-module-artifact.js +43 -4
- package/dist/validate-native-entries.d.ts +15 -0
- package/dist/validate-native-entries.d.ts.map +1 -0
- package/dist/validate-native-entries.js +103 -0
- package/dist/validate-observed-state.d.ts +7 -1
- package/dist/validate-observed-state.d.ts.map +1 -1
- package/dist/validate-observed-state.js +24 -6
- package/dist/validate-provider-coherence.d.ts +4 -8
- package/dist/validate-provider-coherence.d.ts.map +1 -1
- package/dist/validate-provider-coherence.js +12 -123
- package/dist/validate-reference-forms.d.ts.map +1 -1
- package/dist/validate-reference-forms.js +2 -2
- package/dist/validate-references.d.ts.map +1 -1
- package/dist/validate-references.js +152 -65
- package/dist/validate-scope-reach.d.ts +31 -0
- package/dist/validate-scope-reach.d.ts.map +1 -0
- package/dist/validate-scope-reach.js +180 -0
- package/dist/validate-source-entries.d.ts +16 -0
- package/dist/validate-source-entries.d.ts.map +1 -0
- package/dist/validate-source-entries.js +90 -0
- package/dist/validate-template-body.d.ts +36 -0
- package/dist/validate-template-body.d.ts.map +1 -0
- package/dist/validate-template-body.js +246 -0
- package/dist/validate-throws-coverage.d.ts.map +1 -1
- package/dist/validate-throws-coverage.js +21 -39
- package/dist/value-type-keyword.d.ts +22 -5
- package/dist/value-type-keyword.d.ts.map +1 -1
- package/dist/value-type-keyword.js +16 -7
- package/package.json +4 -3
- package/src/analyzer.ts +97 -20
- package/src/artifact-axes.ts +24 -0
- package/src/artifact-layer-index.ts +9 -6
- package/src/artifact-selector.ts +110 -35
- package/src/builtins.ts +160 -113
- package/src/call-graph.ts +30 -0
- package/src/catch-scope.ts +1 -1
- package/src/cel-scope-query.ts +28 -9
- package/src/cel-scope.ts +1 -0
- package/src/eval-paths.ts +53 -6
- package/src/extends-resolution.ts +24 -0
- package/src/forwarded-declaration.ts +32 -0
- package/src/index.ts +37 -1
- package/src/kernel-globals.ts +28 -5
- package/src/migrations/CLAUDE.md +35 -0
- package/src/module-alias-scope.ts +17 -0
- package/src/module-file-claims.ts +63 -4
- package/src/module-named-files.ts +162 -0
- package/src/native-entries.ts +227 -0
- package/src/nearest-name.ts +47 -0
- package/src/normalize-inline-resources.ts +326 -70
- package/src/reference-field-map.ts +257 -52
- package/src/release/CLAUDE.md +32 -0
- package/src/release/destinations.ts +105 -0
- package/src/release/index.ts +33 -2
- package/src/release/ledger.ts +51 -21
- package/src/release/payload-digest.ts +2 -1
- package/src/release/release-plan.ts +16 -26
- package/src/release/workspace-config.ts +483 -47
- package/src/release/workspace-schema.ts +99 -0
- package/src/resolve-ref-sentinels.ts +7 -6
- package/src/resolve-throws-union.ts +87 -32
- package/src/resolve-zone-requirements.ts +2 -1
- package/src/rewrite-synthetic-origins.ts +107 -16
- package/src/schema-compat.ts +18 -4
- package/src/schema-error-report.ts +16 -4
- package/src/schema-walk.ts +162 -34
- package/src/scope-declarations.ts +98 -0
- package/src/source-entries.ts +502 -0
- package/src/step-bodies.ts +55 -0
- package/src/telo-version.ts +1 -1
- package/src/template-body.ts +25 -0
- package/src/validate-cel-context.ts +60 -18
- package/src/validate-exports.ts +185 -0
- package/src/validate-extends.ts +43 -0
- package/src/validate-module-artifact.ts +46 -3
- package/src/validate-native-entries.ts +147 -0
- package/src/validate-observed-state.ts +36 -7
- package/src/validate-provider-coherence.ts +17 -127
- package/src/validate-reference-forms.ts +2 -3
- package/src/validate-references.ts +151 -66
- package/src/validate-scope-reach.ts +213 -0
- package/src/validate-source-entries.ts +120 -0
- package/src/validate-template-body.ts +274 -0
- package/src/validate-throws-coverage.ts +24 -31
- package/src/value-type-keyword.ts +35 -9
- package/dist/validate-template-dispatch.d.ts +0 -27
- package/dist/validate-template-dispatch.d.ts.map +0 -1
- package/dist/validate-template-dispatch.js +0 -95
- package/src/validate-template-dispatch.ts +0 -99
package/dist/builtins.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PLATFORM_AXES } from "./artifact-axes.js";
|
|
1
2
|
import { manifestFragment, manifestFragmentRef, withSchemaFragments } from "./manifest-schemas.js";
|
|
2
3
|
/** A slot holding author-written JSON Schema. Localized and hoisted by
|
|
3
4
|
* {@link withSchemaFragments} on the enclosing schema, which is what makes the
|
|
@@ -20,6 +21,60 @@ const observedStateSlot = {
|
|
|
20
21
|
description: "What a resource of this kind reports while running, published at `resources.<name>.status.<field>`.",
|
|
21
22
|
$ref: manifestFragmentRef("JsonSchema7"),
|
|
22
23
|
};
|
|
24
|
+
/** The `self`-only CEL scope a dispatch slot's name template is written in. */
|
|
25
|
+
const dispatchSelfContext = {
|
|
26
|
+
type: "object",
|
|
27
|
+
additionalProperties: false,
|
|
28
|
+
properties: { self: { "x-telo-context-from-root": "schema" } },
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* A `Telo.Definition` dispatch slot: which `resources:` entry receives the call.
|
|
32
|
+
*
|
|
33
|
+
* Three shapes, and the union is what keeps the slot CONSTRAINED for manifests
|
|
34
|
+
* no pass walks — `validate-template-body` resolves the target and its
|
|
35
|
+
* capability, but it is entry-scoped, so a dependency's definition would
|
|
36
|
+
* otherwise have nothing checking this slot at all. An array or a number fails
|
|
37
|
+
* every branch here, which is the floor AJV used to provide.
|
|
38
|
+
*
|
|
39
|
+
* `anyOf`, never `oneOf`: a `!ref` sentinel is an object, so it would match both
|
|
40
|
+
* the sentinel branch and any permissive object branch and then fail for
|
|
41
|
+
* matching twice. That is also how the sentinel used to pass — the legacy object
|
|
42
|
+
* branch required nothing, so it accepted one by accident; here it is a branch
|
|
43
|
+
* of its own that says so.
|
|
44
|
+
*/
|
|
45
|
+
function dispatchSlot(title, description) {
|
|
46
|
+
return {
|
|
47
|
+
title,
|
|
48
|
+
description,
|
|
49
|
+
anyOf: [
|
|
50
|
+
// `!ref <entry>` — the spelling to write.
|
|
51
|
+
{
|
|
52
|
+
type: "object",
|
|
53
|
+
required: ["__tagged", "engine", "source"],
|
|
54
|
+
properties: {
|
|
55
|
+
__tagged: { const: true },
|
|
56
|
+
engine: { const: "ref" },
|
|
57
|
+
source: { type: "string", minLength: 1 },
|
|
58
|
+
},
|
|
59
|
+
additionalProperties: false,
|
|
60
|
+
},
|
|
61
|
+
// Legacy: a name template expanded against `self`. Read forever, because
|
|
62
|
+
// published artifacts carry it; `DEPRECATED_TEMPLATE_DISPATCH_FORM` is
|
|
63
|
+
// what moves an author off it.
|
|
64
|
+
{ type: "string", "x-telo-context": dispatchSelfContext },
|
|
65
|
+
// Legacy: `{ kind?, name }`, where `name` is that same template.
|
|
66
|
+
{
|
|
67
|
+
type: "object",
|
|
68
|
+
required: ["name"],
|
|
69
|
+
properties: {
|
|
70
|
+
kind: { type: "string" },
|
|
71
|
+
name: { type: "string", "x-telo-context": dispatchSelfContext },
|
|
72
|
+
},
|
|
73
|
+
additionalProperties: true,
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
23
78
|
/** Descriptive provenance a module declares about itself, shared by
|
|
24
79
|
* `Telo.Application` and `Telo.Library`.
|
|
25
80
|
*
|
|
@@ -93,9 +148,68 @@ const LIBRARY_CANDIDATES_SCHEMA = {
|
|
|
93
148
|
format: { type: "string" },
|
|
94
149
|
path: { type: "string" },
|
|
95
150
|
source: { type: "string" },
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
151
|
+
...Object.fromEntries(PLATFORM_AXES.map((axis) => [axis, { type: "string" }])),
|
|
152
|
+
},
|
|
153
|
+
additionalProperties: false,
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
/** `native:` — the module's platform-specific files, one entry per logical name
|
|
157
|
+
* per platform tuple. Closed, so a mistyped axis is a schema violation rather
|
|
158
|
+
* than a platform-neutral entry. Grammar and rules live in
|
|
159
|
+
* `analyzer/nodejs/src/native-entries.ts` and `validate-native-entries.ts`. */
|
|
160
|
+
const NATIVE_ENTRIES_SCHEMA = {
|
|
161
|
+
type: "array",
|
|
162
|
+
items: {
|
|
163
|
+
type: "object",
|
|
164
|
+
required: ["name", "format", "os", "arch", "path"],
|
|
165
|
+
properties: {
|
|
166
|
+
name: { type: "string" },
|
|
167
|
+
format: { type: "string" },
|
|
168
|
+
path: { type: "string" },
|
|
169
|
+
...Object.fromEntries(PLATFORM_AXES.map((axis) => [axis, { type: "string" }])),
|
|
170
|
+
},
|
|
171
|
+
additionalProperties: false,
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
/** `sources:` — where every staged file comes from, keyed by source name, each
|
|
175
|
+
* entry keyed by the module-relative path it produces. Closed at every level.
|
|
176
|
+
* An entry is a file (`upstream` + `member`, pinned with `sha256` +
|
|
177
|
+
* `executable`) or a link (`target`); a mix of the two, and every other rule,
|
|
178
|
+
* is reported by `analyzer/nodejs/src/validate-source-entries.ts`. `archive`
|
|
179
|
+
* names the upstream's format. A source built in the repo names its build under
|
|
180
|
+
* `build`, keyed by build system (`cargo: <crate dir>`), with the digest of its
|
|
181
|
+
* build inputs (`inputs`). */
|
|
182
|
+
const SOURCES_SCHEMA = {
|
|
183
|
+
type: "object",
|
|
184
|
+
additionalProperties: {
|
|
185
|
+
type: "object",
|
|
186
|
+
required: ["version", "url", "archive", "notices", "entries"],
|
|
187
|
+
properties: {
|
|
188
|
+
version: { type: "string" },
|
|
189
|
+
url: { type: "string" },
|
|
190
|
+
archive: { enum: ["tar.gz"] },
|
|
191
|
+
notices: { type: "array", minItems: 1, items: { type: "string" } },
|
|
192
|
+
build: {
|
|
193
|
+
type: "object",
|
|
194
|
+
required: ["cargo"],
|
|
195
|
+
properties: { cargo: { type: "string" }, inputs: { type: "string" } },
|
|
196
|
+
additionalProperties: false,
|
|
197
|
+
},
|
|
198
|
+
entries: {
|
|
199
|
+
type: "object",
|
|
200
|
+
additionalProperties: {
|
|
201
|
+
type: "object",
|
|
202
|
+
anyOf: [{ required: ["upstream", "member"] }, { required: ["target"] }],
|
|
203
|
+
properties: {
|
|
204
|
+
upstream: { type: "string" },
|
|
205
|
+
member: { type: "string" },
|
|
206
|
+
sha256: { type: "string" },
|
|
207
|
+
executable: { type: "boolean" },
|
|
208
|
+
target: { type: "string" },
|
|
209
|
+
},
|
|
210
|
+
additionalProperties: false,
|
|
211
|
+
},
|
|
212
|
+
},
|
|
99
213
|
},
|
|
100
214
|
additionalProperties: false,
|
|
101
215
|
},
|
|
@@ -104,25 +218,18 @@ const LIBRARY_CANDIDATES_SCHEMA = {
|
|
|
104
218
|
* One entry per layer except the manifest layer, which cannot list its own hash
|
|
105
219
|
* inside itself and is pinned by the importer's `#sha256-...` instead. Shape and
|
|
106
220
|
* matching rules are normative in kernel/specs/module-artifact.md; the parser
|
|
107
|
-
* that enforces them is `artifact-layer-index.ts`.
|
|
221
|
+
* that enforces them is `artifact-layer-index.ts`. `role` stays open and
|
|
222
|
+
* `selector` unconstrained: an entry for a newer runtime is skipped, not
|
|
223
|
+
* rejected, and its selector is not examined (spec §3.1). A known role's
|
|
224
|
+
* selector is validated by the parser, which `telo check` runs. */
|
|
108
225
|
const LAYER_INDEX_SCHEMA = {
|
|
109
226
|
type: "array",
|
|
110
227
|
items: {
|
|
111
228
|
type: "object",
|
|
112
229
|
required: ["role", "blob", "integrity"],
|
|
113
230
|
properties: {
|
|
114
|
-
role: { type: "string",
|
|
115
|
-
selector: {
|
|
116
|
-
type: "object",
|
|
117
|
-
required: ["format"],
|
|
118
|
-
properties: {
|
|
119
|
-
format: { type: "string" },
|
|
120
|
-
os: { type: "string" },
|
|
121
|
-
arch: { type: "string" },
|
|
122
|
-
libc: { type: "string" },
|
|
123
|
-
},
|
|
124
|
-
additionalProperties: false,
|
|
125
|
-
},
|
|
231
|
+
role: { type: "string", minLength: 1 },
|
|
232
|
+
selector: {},
|
|
126
233
|
blob: { type: "string", pattern: "^sha256:[0-9a-f]{64}$" },
|
|
127
234
|
integrity: { type: "string", pattern: "^sha256-[A-Za-z0-9_-]{43}$" },
|
|
128
235
|
},
|
|
@@ -459,99 +566,19 @@ export const KERNEL_BUILTINS = [
|
|
|
459
566
|
},
|
|
460
567
|
},
|
|
461
568
|
},
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
type: "object",
|
|
476
|
-
additionalProperties: true,
|
|
477
|
-
properties: {
|
|
478
|
-
kind: { type: "string" },
|
|
479
|
-
name: {
|
|
480
|
-
type: "string",
|
|
481
|
-
"x-telo-context": {
|
|
482
|
-
type: "object",
|
|
483
|
-
additionalProperties: false,
|
|
484
|
-
properties: {
|
|
485
|
-
self: { "x-telo-context-from-root": "schema" },
|
|
486
|
-
},
|
|
487
|
-
},
|
|
488
|
-
},
|
|
489
|
-
},
|
|
490
|
-
},
|
|
491
|
-
],
|
|
492
|
-
},
|
|
493
|
-
provide: {
|
|
494
|
-
type: "object",
|
|
495
|
-
additionalProperties: true,
|
|
496
|
-
properties: {
|
|
497
|
-
kind: { type: "string" },
|
|
498
|
-
name: {
|
|
499
|
-
type: "string",
|
|
500
|
-
"x-telo-context": {
|
|
501
|
-
type: "object",
|
|
502
|
-
additionalProperties: false,
|
|
503
|
-
properties: {
|
|
504
|
-
self: { "x-telo-context-from-root": "schema" },
|
|
505
|
-
},
|
|
506
|
-
},
|
|
507
|
-
},
|
|
508
|
-
},
|
|
509
|
-
},
|
|
510
|
-
run: {
|
|
511
|
-
type: "string",
|
|
512
|
-
"x-telo-context": {
|
|
513
|
-
type: "object",
|
|
514
|
-
additionalProperties: false,
|
|
515
|
-
properties: {
|
|
516
|
-
self: { "x-telo-context-from-root": "schema" },
|
|
517
|
-
},
|
|
518
|
-
},
|
|
519
|
-
},
|
|
520
|
-
// Mount dispatch: names the `resources:` entry (a Telo.Mount, e.g. an
|
|
521
|
-
// Http.Api) whose `register()` this definition delegates to. Same
|
|
522
|
-
// string / { kind, name } grammar as `invoke:`. The named child stays
|
|
523
|
-
// persistent so the produced mount's routes can `!ref` its siblings.
|
|
524
|
-
mount: {
|
|
525
|
-
oneOf: [
|
|
526
|
-
{
|
|
527
|
-
type: "string",
|
|
528
|
-
"x-telo-context": {
|
|
529
|
-
type: "object",
|
|
530
|
-
additionalProperties: false,
|
|
531
|
-
properties: {
|
|
532
|
-
self: { "x-telo-context-from-root": "schema" },
|
|
533
|
-
},
|
|
534
|
-
},
|
|
535
|
-
},
|
|
536
|
-
{
|
|
537
|
-
type: "object",
|
|
538
|
-
additionalProperties: true,
|
|
539
|
-
properties: {
|
|
540
|
-
kind: { type: "string" },
|
|
541
|
-
name: {
|
|
542
|
-
type: "string",
|
|
543
|
-
"x-telo-context": {
|
|
544
|
-
type: "object",
|
|
545
|
-
additionalProperties: false,
|
|
546
|
-
properties: {
|
|
547
|
-
self: { "x-telo-context-from-root": "schema" },
|
|
548
|
-
},
|
|
549
|
-
},
|
|
550
|
-
},
|
|
551
|
-
},
|
|
552
|
-
},
|
|
553
|
-
],
|
|
554
|
-
},
|
|
569
|
+
// A dispatch slot names the `resources:` entry that receives the call,
|
|
570
|
+
// as `!ref <entry>` — the one spelling every reference in Telo has. The
|
|
571
|
+
// string and `{ kind, name }` forms it used to admit (a CEL name
|
|
572
|
+
// template matched against CEL-named entries) were the removed
|
|
573
|
+
// reference object surviving in the one place nothing resolved it;
|
|
574
|
+
// `validate-template-body` is what resolves this slot, so the schema
|
|
575
|
+
// stays open here rather than reporting the same defect twice.
|
|
576
|
+
invoke: dispatchSlot("Invoke target", "The `resources:` entry whose `invoke()` this kind dispatches to, as `!ref <entry>`."),
|
|
577
|
+
provide: dispatchSlot("Provide target", "The `resources:` entry whose `invoke()` produces this provider's value, as `!ref <entry>`."),
|
|
578
|
+
run: dispatchSlot("Run target", "The `resources:` entry whose `run()` this kind dispatches to, as `!ref <entry>`."),
|
|
579
|
+
// The named child stays persistent so the produced mount's routes can
|
|
580
|
+
// `!ref` its siblings.
|
|
581
|
+
mount: dispatchSlot("Mount target", "The `resources:` entry (a Telo.Mount, e.g. an Http.Api) whose `register()` this kind delegates to, as `!ref <entry>`."),
|
|
555
582
|
inputs: {
|
|
556
583
|
type: "object",
|
|
557
584
|
additionalProperties: true,
|
|
@@ -572,11 +599,11 @@ export const KERNEL_BUILTINS = [
|
|
|
572
599
|
additionalProperties: false,
|
|
573
600
|
properties: {
|
|
574
601
|
self: { "x-telo-context-from-root": "schema" },
|
|
602
|
+
// Typed from the dispatch target's declared output: the slot
|
|
603
|
+
// holds a `!ref` to a `resources:` entry, resolved to that
|
|
604
|
+
// entry's kind (or its own `outputType`, where it narrows one).
|
|
575
605
|
result: {
|
|
576
|
-
"x-telo-context-from-ref-kind": [
|
|
577
|
-
"provide/kind#outputType",
|
|
578
|
-
"invoke/kind#outputType",
|
|
579
|
-
],
|
|
606
|
+
"x-telo-context-from-ref-kind": ["provide#outputType", "invoke#outputType"],
|
|
580
607
|
},
|
|
581
608
|
},
|
|
582
609
|
},
|
|
@@ -742,6 +769,8 @@ export const KERNEL_BUILTINS = [
|
|
|
742
769
|
items: { type: "string" },
|
|
743
770
|
},
|
|
744
771
|
assets: ASSETS_FILES_SCHEMA,
|
|
772
|
+
native: NATIVE_ENTRIES_SCHEMA,
|
|
773
|
+
sources: SOURCES_SCHEMA,
|
|
745
774
|
layers: LAYER_INDEX_SCHEMA,
|
|
746
775
|
filesIntegrity: LEGACY_FILES_INTEGRITY_SCHEMA,
|
|
747
776
|
// Inline imports — name-keyed map sugar for separate `Telo.Import`
|
|
@@ -915,6 +944,8 @@ export const KERNEL_BUILTINS = [
|
|
|
915
944
|
items: { type: "string" },
|
|
916
945
|
},
|
|
917
946
|
assets: ASSETS_FILES_SCHEMA,
|
|
947
|
+
native: NATIVE_ENTRIES_SCHEMA,
|
|
948
|
+
sources: SOURCES_SCHEMA,
|
|
918
949
|
layers: LAYER_INDEX_SCHEMA,
|
|
919
950
|
filesIntegrity: LEGACY_FILES_INTEGRITY_SCHEMA,
|
|
920
951
|
// Inline imports — same name-keyed map sugar as Telo.Application; the
|
package/dist/call-graph.d.ts
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
import type { ResourceManifest } from "@telorun/sdk";
|
|
42
42
|
import type { AliasResolver } from "./alias-resolver.js";
|
|
43
43
|
import type { DefinitionRegistry } from "./definition-registry.js";
|
|
44
|
-
import { type RefUse, type RefUseCases } from "./ref-slot.js";
|
|
44
|
+
import { type RefSlot, type RefUse, type RefUseCases } from "./ref-slot.js";
|
|
45
45
|
export interface ResourceGraphNode {
|
|
46
46
|
type: "resource";
|
|
47
47
|
id: string;
|
|
@@ -220,6 +220,17 @@ export declare function nodeIdFor(manifest: ResourceManifest): string;
|
|
|
220
220
|
* other, which is exactly the collision it exists to prevent.
|
|
221
221
|
*/
|
|
222
222
|
export declare function resolveScopedName<T>(candidates: readonly T[] | undefined, moduleOf: (item: T) => string | undefined, fromModule: string | undefined): T | undefined;
|
|
223
|
+
/**
|
|
224
|
+
* A slot's use at one concrete site of one resource, for a consumer that walks
|
|
225
|
+
* the kind's schema itself rather than reading the graph's edges.
|
|
226
|
+
*
|
|
227
|
+
* The same rule the graph applies to a resource-level edge — the same enclosing
|
|
228
|
+
* object, the same schema default — so a consumer and an edge cannot disagree
|
|
229
|
+
* about which case of a case map holds. `concretePath` is the site
|
|
230
|
+
* (`routes[0].handler`); `fieldPath` is the declaration it resolved from
|
|
231
|
+
* (`routes[].handler`), which is what the schema default is read against.
|
|
232
|
+
*/
|
|
233
|
+
export declare function resolveSlotUseAt(slot: RefSlot, resource: unknown, rootSchema: Record<string, any> | undefined, concretePath: string, fieldPath: string): Pick<CallGraphEdge, "use" | "unresolved" | "unresolvedReason">;
|
|
223
234
|
export interface BuildCallGraphOptions {
|
|
224
235
|
aliases?: AliasResolver;
|
|
225
236
|
aliasesByModule?: Map<string, AliasResolver>;
|
package/dist/call-graph.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-graph.d.ts","sourceRoot":"","sources":["../src/call-graph.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"call-graph.d.ts","sourceRoot":"","sources":["../src/call-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/call-graph.js
CHANGED
|
@@ -178,6 +178,28 @@ function resolveUseAtSite(entry, root, concretePath, schemaDefault) {
|
|
|
178
178
|
: "unmatched";
|
|
179
179
|
return { use: possibleUses(slot), unresolved: entry.useCases, unresolvedReason };
|
|
180
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* A slot's use at one concrete site of one resource, for a consumer that walks
|
|
183
|
+
* the kind's schema itself rather than reading the graph's edges.
|
|
184
|
+
*
|
|
185
|
+
* The same rule the graph applies to a resource-level edge — the same enclosing
|
|
186
|
+
* object, the same schema default — so a consumer and an edge cannot disagree
|
|
187
|
+
* about which case of a case map holds. `concretePath` is the site
|
|
188
|
+
* (`routes[0].handler`); `fieldPath` is the declaration it resolved from
|
|
189
|
+
* (`routes[].handler`), which is what the schema default is read against.
|
|
190
|
+
*/
|
|
191
|
+
export function resolveSlotUseAt(slot, resource, rootSchema, concretePath, fieldPath) {
|
|
192
|
+
const entry = {
|
|
193
|
+
refs: slot.kinds,
|
|
194
|
+
uses: slot.uses,
|
|
195
|
+
isArray: false,
|
|
196
|
+
...(slot.useCases ? { useCases: slot.useCases } : {}),
|
|
197
|
+
};
|
|
198
|
+
const schemaDefault = rootSchema
|
|
199
|
+
? schemaDefaultOf(enclosingSchemaOf(rootSchema, fieldPath))
|
|
200
|
+
: NO_DEFAULT;
|
|
201
|
+
return resolveUseAtSite(entry, resource, concretePath, schemaDefault);
|
|
202
|
+
}
|
|
181
203
|
/** A resolved plain reference value (`{kind, name}`, optionally `alias`) — the
|
|
182
204
|
* shape `resolveRefSentinels` leaves at a ref site. NOT a step: a bare boot
|
|
183
205
|
* target written `!ref X` must not mint a step node. */
|
package/dist/catch-scope.js
CHANGED
|
@@ -31,7 +31,7 @@ export function buildEnclosers(manifests, definitionOf, moduleOf, ctx) {
|
|
|
31
31
|
if (!definition?.schema)
|
|
32
32
|
continue;
|
|
33
33
|
forEachDrivenSlot(definition.schema, manifest, (driven) => {
|
|
34
|
-
if (driven.kind !== "ref" || !driven.slot.throwsThrough)
|
|
34
|
+
if (driven.kind !== "ref" || !driven.slots.some(({ slot }) => slot.throwsThrough))
|
|
35
35
|
return;
|
|
36
36
|
const target = resolveRefManifest(driven.data, ctx, moduleOf(manifest));
|
|
37
37
|
if (!target || target === manifest)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cel-scope-query.d.ts","sourceRoot":"","sources":["../src/cel-scope-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAsB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"cel-scope-query.d.ts","sourceRoot":"","sources":["../src/cel-scope-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAsB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAmB9D;;;sCAGsC;AACtC,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;;iEAI6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoBD;gEACgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,qBAAa,aAAa;IActB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C;;oDAEgD;IAChD,OAAO,CAAC,OAAO,CAA+B;IAC9C;;;;sEAIkE;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsD;gBAG9D,SAAS,EAAE,gBAAgB,EAAE,EAC9C,GAAG,EAAE,oBAAoB,EACzB,MAAM,CAAC,EAAE,WAAW;IAgCtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuB;IAE3C;+DAC2D;IAC3D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;IAI7F;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ;IAe3D;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,CACpB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,GACd,sBAAsB,GAAG,SAAS;IA0CrC;oFACgF;IAChF,OAAO,CAAC,QAAQ;IAkGhB;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAqBrF;;;;;;;sDAOkD;IAClD,OAAO,CAAC,aAAa;IAOrB;wEACoE;IACpE,OAAO,CAAC,YAAY;CAarB"}
|
package/dist/cel-scope-query.js
CHANGED
|
@@ -4,6 +4,7 @@ import { buildKernelGlobalsIndex } from "./kernel-globals.js";
|
|
|
4
4
|
import { moduleAliasScope } from "./module-alias-scope.js";
|
|
5
5
|
import { isModuleKind } from "./module-kinds.js";
|
|
6
6
|
import { navigateConcretePath } from "./manifest-path.js";
|
|
7
|
+
import { kindAtPath } from "./validate-cel-context.js";
|
|
7
8
|
import { findManifest } from "./find-manifest.js";
|
|
8
9
|
import { resolveLocalRef, walkStepArray } from "./schema-walk.js";
|
|
9
10
|
import { readStepSlot } from "./step-slot.js";
|
|
@@ -200,16 +201,30 @@ export class CelScopeQuery {
|
|
|
200
201
|
return { manifest: target, path: refFrom.slice(slash + 1).split("/").join("."), propertyMap: false };
|
|
201
202
|
}
|
|
202
203
|
// A kind's own declaration: the target is the `Telo.Definition` document,
|
|
203
|
-
// which is an ordinary manifest in the set.
|
|
204
|
+
// which is an ordinary manifest in the set. The slot holds a `!ref` to a
|
|
205
|
+
// `resources:` entry; the entry's own field wins where it narrows one, else
|
|
206
|
+
// the declaration is the entry's KIND. The first slot that resolves to an
|
|
207
|
+
// entry is the one the type resolver reads, so it is the one navigated.
|
|
204
208
|
const fromRefKind = annotated["x-telo-context-from-ref-kind"];
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
|
|
209
|
+
const slots = Array.isArray(fromRefKind) ? fromRefKind : [fromRefKind];
|
|
210
|
+
for (const slotSpec of slots) {
|
|
211
|
+
if (typeof slotSpec !== "string")
|
|
212
|
+
continue;
|
|
213
|
+
const hash = slotSpec.indexOf("#");
|
|
214
|
+
// `continue`, never `return`: a malformed spec is one entry of a list the
|
|
215
|
+
// type resolver walks to the end, and aborting here made the two answer
|
|
216
|
+
// differently for the same annotation.
|
|
208
217
|
if (hash <= 0)
|
|
209
|
-
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
218
|
+
continue;
|
|
219
|
+
const field = slotSpec.slice(hash + 1);
|
|
220
|
+
const namedKind = kindAtPath(root, slotSpec.slice(0, hash));
|
|
221
|
+
if (!namedKind)
|
|
222
|
+
continue;
|
|
223
|
+
if (namedKind.entry?.[field] !== undefined) {
|
|
224
|
+
const index = root.resources.indexOf(namedKind.entry);
|
|
225
|
+
return { manifest: resource, path: `resources[${index}].${field}`, propertyMap: false };
|
|
226
|
+
}
|
|
227
|
+
const kindValue = namedKind.kind;
|
|
213
228
|
// The kind was read off THIS resource, so it is spelled in the alias scope
|
|
214
229
|
// of the module that declared it — not the entry's.
|
|
215
230
|
const scope = moduleAliasScope(resource.metadata, this.ctx.aliases, this.ctx.aliasesByModule);
|
|
@@ -229,10 +244,16 @@ export class CelScopeQuery {
|
|
|
229
244
|
const target = (owningModule
|
|
230
245
|
? named.find((m) => m.metadata?.module === owningModule)
|
|
231
246
|
: undefined) ?? (owningModule && named.length > 1 ? undefined : named[0]);
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
247
|
+
// Fall through to the next spec when this one names no kind, or names one
|
|
248
|
+
// that does not declare the field — the same order the TYPE resolver
|
|
249
|
+
// takes, so go-to-declaration lands where the type came from instead of on
|
|
250
|
+
// a field the target never had.
|
|
251
|
+
if (!target || target[field] === undefined)
|
|
252
|
+
continue;
|
|
253
|
+
return { manifest: target, path: field, propertyMap: false };
|
|
235
254
|
}
|
|
255
|
+
if (slots.some((s) => typeof s === "string"))
|
|
256
|
+
return undefined;
|
|
236
257
|
// `x-telo-context-element-from` / `-collection-from` type a binding from an
|
|
237
258
|
// EXPRESSION, so there is no declaration to navigate to.
|
|
238
259
|
return undefined;
|
package/dist/cel-scope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cel-scope.d.ts","sourceRoot":"","sources":["../src/cel-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAO9D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAuE7B;;;;;;;;;;;oEAWoE;AACpE,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtB,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACnC,MAAM,EAAE,YAAY,GACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAQrB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACnC,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,YAAY,GACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAqGjC;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GACzC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAmClC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GACvC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAWjC;AAED;;;+DAG+D;AAC/D,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAcrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,wDAAwD;IACxD,GAAG,EAAE,WAAW,CAAC;IACjB;+EAC2E;IAC3E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED;+CAC+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,aAAa,EAAE,kBAAkB,CAAC;IAClC,sEAAsE;IACtE,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,+EAA+E;IAC/E,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CAClD;AAED;;;6BAG6B;AAC7B,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAsBf,OAAO,CAAC,QAAQ,CAAC,MAAM;IArBnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4C;IAE/E,4DAA4D;IAC5D,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,WAAW,CAA+C;IAClE;;0EAEsE;IACtE,OAAO,CAAC,UAAU,CAMV;IACR;;8EAE0E;IAC1E,OAAO,CAAC,UAAU,CAAkC;gBAEvB,MAAM,EAAE,cAAc;IAEnD;;;uDAGmD;IACnD,IAAI,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAEvD;IAED,sEAAsE;IACtE,IAAI,kBAAkB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAEjE;IAED;;;+CAG2C;IAC3C,IAAI,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAE7D;IAED,oDAAoD;IACpD,aAAa,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI;IA6CpF;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ;IAoCpC;;sEAEkE;IAClE,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"cel-scope.d.ts","sourceRoot":"","sources":["../src/cel-scope.ts"],"names":[],"mappings":"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"}
|
package/dist/cel-scope.js
CHANGED
|
@@ -444,6 +444,7 @@ export class CelScopeResolver {
|
|
|
444
444
|
manifestRoot: rootForResolver,
|
|
445
445
|
defs,
|
|
446
446
|
aliases,
|
|
447
|
+
aliasesByModule: scopes?.aliasesByModule,
|
|
447
448
|
allManifests: allManifests,
|
|
448
449
|
});
|
|
449
450
|
return mergeKernelGlobalsIntoContext(withBindingNames(resolved, rootManifest),
|
package/dist/eval-paths.d.ts
CHANGED
|
@@ -73,6 +73,32 @@ export interface CelEvalSites {
|
|
|
73
73
|
}
|
|
74
74
|
export declare const NO_CEL_EVAL_SITES: CelEvalSites;
|
|
75
75
|
export declare function celEvalSites(schema: Record<string, any> | undefined): CelEvalSites;
|
|
76
|
+
/**
|
|
77
|
+
* A BASE-FORM CHILD'S OWN FIELDS ARE COMPILE-EVAL WITHOUT ANNOTATION.
|
|
78
|
+
*
|
|
79
|
+
* A definition with `base:` has no controller of its own: the kernel evaluates
|
|
80
|
+
* the mapping once, at `create()`, against `self` — the instance's config — and
|
|
81
|
+
* hands the result to the inherited controller as the parent's config. The
|
|
82
|
+
* child's own schema fields never reach a controller; they exist to be read by
|
|
83
|
+
* `base:`, and the mapping expands whatever compiled value it reads. So every
|
|
84
|
+
* own field is evaluated exactly once at creation against the startup scope,
|
|
85
|
+
* which is what compile-eval IS. Declared here as the rule rather than left as a
|
|
86
|
+
* property of the mapping walk — the `Telo.Provider` posture, where a
|
|
87
|
+
* construction-time-only surface declares compile-eval once for all its fields
|
|
88
|
+
* rather than per field. Without it the rule was off for every inheritance kind
|
|
89
|
+
* (its capability is inherited, so the gate read `undefined`) and the
|
|
90
|
+
* expressions were never typed either: a `!cel "variables.whoo"` passed `telo
|
|
91
|
+
* check` and failed at boot.
|
|
92
|
+
*
|
|
93
|
+
* Read by the kernel's instance production and the analyzer's coverage decision,
|
|
94
|
+
* so the two cannot disagree about which fields a base child evaluates. An
|
|
95
|
+
* explicitly `runtime` own field still wins, through the same overlap rule a
|
|
96
|
+
* root `x-telo-eval: compile` follows.
|
|
97
|
+
*/
|
|
98
|
+
export declare const IMPLICIT_COMPILE_SITES: CelEvalSites;
|
|
99
|
+
export declare function implicitEvalSites(definition: {
|
|
100
|
+
base?: unknown;
|
|
101
|
+
} | undefined): CelEvalSites;
|
|
76
102
|
/** The union of several schemas' sites — a kind's own and its capability
|
|
77
103
|
* abstract's, which is how a `Telo.Provider`'s implicit compile-eval reaches
|
|
78
104
|
* fields the provider never annotated. */
|
|
@@ -81,11 +107,16 @@ export declare function mergeCelEvalSites(...sites: CelEvalSites[]): CelEvalSite
|
|
|
81
107
|
* Whether the value at `path` is evaluated, and when — null for a field whose
|
|
82
108
|
* value is read as a literal.
|
|
83
109
|
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
110
|
+
* An annotated field wins over the region it sits in — a field's own annotation
|
|
111
|
+
* is more specific than an enclosing one, and a region resolves to `runtime`
|
|
112
|
+
* because that is what a region IS, a per-invocation scope naming what its
|
|
113
|
+
* expressions can read. Between the two annotations, `runtime` wins wherever
|
|
114
|
+
* they OVERLAP and `compile` answers everywhere else.
|
|
115
|
+
*
|
|
116
|
+
* That overlap rule is the kernel's, read back: its compile expansion skips any
|
|
117
|
+
* compile path a runtime path contains or is contained by, and under a root
|
|
118
|
+
* `**` it skips per top-level key — so a runtime-annotated field under an
|
|
119
|
+
* implicit compile root stays runtime, here as at dispatch.
|
|
89
120
|
*
|
|
90
121
|
* `path` is the `walkCelExpressions` spelling (`routes[0].returns[1].when`).
|
|
91
122
|
*/
|
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;;;;;;;;;;;;;;;;;;;;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
|
|
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;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB,EAAE,YAA4D,CAAC;AAElG,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GACzC,YAAY,CAEd;AAED;;2CAE2C;AAC3C,wBAAgB,iBAAiB,CAAC,GAAG,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,CAMxE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,GACX,SAAS,GAAG,SAAS,GAAG,IAAI,CAY9B"}
|