@rayspec/spec 1.5.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/LICENSE +105 -0
- package/dist/brace-params.d.ts +32 -0
- package/dist/brace-params.d.ts.map +1 -0
- package/dist/brace-params.js +89 -0
- package/dist/brace-params.js.map +1 -0
- package/dist/detect.d.ts +44 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +72 -0
- package/dist/detect.js.map +1 -0
- package/dist/errors.d.ts +204 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +165 -0
- package/dist/errors.js.map +1 -0
- package/dist/export.d.ts +54 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +121 -0
- package/dist/export.js.map +1 -0
- package/dist/grammar.d.ts +569 -0
- package/dist/grammar.d.ts.map +1 -0
- package/dist/grammar.js +503 -0
- package/dist/grammar.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/lint.d.ts +79 -0
- package/dist/lint.d.ts.map +1 -0
- package/dist/lint.js +823 -0
- package/dist/lint.js.map +1 -0
- package/dist/parse.d.ts +8 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +118 -0
- package/dist/parse.js.map +1 -0
- package/dist/product-events.d.ts +73 -0
- package/dist/product-events.d.ts.map +1 -0
- package/dist/product-events.js +42 -0
- package/dist/product-events.js.map +1 -0
- package/dist/product-grammar.d.ts +948 -0
- package/dist/product-grammar.d.ts.map +1 -0
- package/dist/product-grammar.js +581 -0
- package/dist/product-grammar.js.map +1 -0
- package/dist/product-lint.d.ts +74 -0
- package/dist/product-lint.d.ts.map +1 -0
- package/dist/product-lint.js +821 -0
- package/dist/product-lint.js.map +1 -0
- package/dist/product-parse.d.ts +8 -0
- package/dist/product-parse.d.ts.map +1 -0
- package/dist/product-parse.js +119 -0
- package/dist/product-parse.js.map +1 -0
- package/dist/product-scope.d.ts +53 -0
- package/dist/product-scope.d.ts.map +1 -0
- package/dist/product-scope.js +55 -0
- package/dist/product-scope.js.map +1 -0
- package/dist/product-views-lint.d.ts +14 -0
- package/dist/product-views-lint.d.ts.map +1 -0
- package/dist/product-views-lint.js +669 -0
- package/dist/product-views-lint.js.map +1 -0
- package/dist/product-views.d.ts +426 -0
- package/dist/product-views.d.ts.map +1 -0
- package/dist/product-views.js +317 -0
- package/dist/product-views.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-lint.js","sourceRoot":"","sources":["../src/product-lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Result, type SpecError } from './errors.js';
|
|
2
|
+
import { ProductSpec } from './product-grammar.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parse + validate a raw Product-YAML spec. Returns the typed `ProductSpec` on success, or the FULL
|
|
5
|
+
* aggregated list of fail-closed violations.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseProductSpec(rawYamlText: string): Result<ProductSpec, SpecError>;
|
|
8
|
+
//# sourceMappingURL=product-parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-parse.d.ts","sourceRoot":"","sources":["../src/product-parse.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAiCnD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CA0EpF"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `parseProductSpec` — the two-phase, fail-closed Product-YAML entry point: raw YAML text →
|
|
3
|
+
* a validated `ProductSpec` or the FULL list of `SpecError`s. Mirrors `parseSpec` (parse.ts) for the
|
|
4
|
+
* RaySpec family; the two are dispatched by document kind in `detect.ts`.
|
|
5
|
+
*
|
|
6
|
+
* Pipeline (each stage aggregates; the value is NEVER returned partially):
|
|
7
|
+
* 1. YAML safe-load — `yaml@2.9.0` `parse()` (safe by default). A syntax error → `yaml_parse_error`.
|
|
8
|
+
* 2. VERSION CHECK FIRST — a product document declares `version:'1.0'` with a `product:` section;
|
|
9
|
+
* a missing/unsupported version → one clean `unsupported_version`.
|
|
10
|
+
* 3. NO-CODE GUARDRAILS — `scanProductGuardrails` over the RAW object: specific,
|
|
11
|
+
* explaining `no_code_in_yaml`/`provider_native_leak` errors. If ANY fire,
|
|
12
|
+
* they are returned WITHOUT running the shape/lint passes — a doc smuggling
|
|
13
|
+
* code/handlers/provider blobs is categorically rejected; shape-checking the
|
|
14
|
+
* rest proves nothing (and the guardrail message is the actionable one).
|
|
15
|
+
* 4. STRICT ZOD PARSE — `ProductSpec.safeParse`. Every Zod issue → a `SpecError` (unknown key →
|
|
16
|
+
* `unknown_field`, else `schema_violation`). Returns the FULL issue list.
|
|
17
|
+
* 5. SEMANTIC LINT — `lintProductSpec` (cross-refs, dups, capability status, contract vocab).
|
|
18
|
+
* Only run when the shape parse SUCCEEDS.
|
|
19
|
+
*/
|
|
20
|
+
import { parse as parseYaml } from 'yaml';
|
|
21
|
+
import { specError } from './errors.js';
|
|
22
|
+
import { SPEC_VERSION } from './grammar.js';
|
|
23
|
+
import { ProductSpec } from './product-grammar.js';
|
|
24
|
+
import { lintProductSpec, scanProductGuardrails } from './product-lint.js';
|
|
25
|
+
/** Render a Zod issue path as a JSON path (identical convention to parse.ts). */
|
|
26
|
+
function renderPath(path) {
|
|
27
|
+
if (path.length === 0)
|
|
28
|
+
return undefined;
|
|
29
|
+
let out = '';
|
|
30
|
+
for (const seg of path) {
|
|
31
|
+
if (typeof seg === 'number')
|
|
32
|
+
out += `[${seg}]`;
|
|
33
|
+
else
|
|
34
|
+
out += out.length === 0 ? String(seg) : `.${String(seg)}`;
|
|
35
|
+
}
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
function joinKey(base, key) {
|
|
39
|
+
return base === undefined ? key : `${base}.${key}`;
|
|
40
|
+
}
|
|
41
|
+
/** Map a single Zod issue to one or more SpecErrors (an unrecognized-keys issue fans out per key). */
|
|
42
|
+
function issueToSpecErrors(issue) {
|
|
43
|
+
const base = renderPath(issue.path);
|
|
44
|
+
if (issue.code === 'unrecognized_keys') {
|
|
45
|
+
return issue.keys.map((key) => specError('unknown_field', `unknown field '${key}' (unknown keys are rejected)`, joinKey(base, key)));
|
|
46
|
+
}
|
|
47
|
+
return [specError('schema_violation', issue.message, base)];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parse + validate a raw Product-YAML spec. Returns the typed `ProductSpec` on success, or the FULL
|
|
51
|
+
* aggregated list of fail-closed violations.
|
|
52
|
+
*/
|
|
53
|
+
export function parseProductSpec(rawYamlText) {
|
|
54
|
+
// ---- 1. YAML SAFE-LOAD ----------------------------------------------------------------
|
|
55
|
+
let loaded;
|
|
56
|
+
try {
|
|
57
|
+
loaded = parseYaml(rawYamlText);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
return {
|
|
61
|
+
ok: false,
|
|
62
|
+
errors: [
|
|
63
|
+
specError('yaml_parse_error', `YAML parse error: ${String(e instanceof Error ? e.message : e)}`),
|
|
64
|
+
],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (loaded === null || typeof loaded !== 'object' || Array.isArray(loaded)) {
|
|
68
|
+
return {
|
|
69
|
+
ok: false,
|
|
70
|
+
errors: [
|
|
71
|
+
specError('unsupported_version', 'spec root must be a mapping with a `version` field (got an empty or non-object document)'),
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// ---- 2. VERSION CHECK FIRST -----------------------------------------------------------
|
|
76
|
+
// A product document declares exactly `version:'1.0'` with a `product:` section; anything else fails
|
|
77
|
+
// closed with a single clean `unsupported_version` SpecError before the strict-shape parse runs.
|
|
78
|
+
const doc = loaded;
|
|
79
|
+
const version = doc.version;
|
|
80
|
+
if (version !== SPEC_VERSION) {
|
|
81
|
+
let message;
|
|
82
|
+
if (version === undefined) {
|
|
83
|
+
message =
|
|
84
|
+
`product version is missing; a product document declares version '${SPEC_VERSION}' with a ` +
|
|
85
|
+
'`product:` section';
|
|
86
|
+
}
|
|
87
|
+
else if (typeof version !== 'string') {
|
|
88
|
+
message =
|
|
89
|
+
`product version must be the quoted string '${SPEC_VERSION}' ` +
|
|
90
|
+
`(got the YAML ${typeof version} ${String(version)} — wrap it in quotes)`;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
message =
|
|
94
|
+
`unsupported product version '${version}'; a product document declares version '${SPEC_VERSION}' ` +
|
|
95
|
+
'with a `product:` section';
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
ok: false,
|
|
99
|
+
errors: [specError('unsupported_version', message, 'version')],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
// ---- 3. NO-CODE GUARDRAILS (raw scan; short-circuit on any hit) -----------------------
|
|
103
|
+
const guardrailErrors = scanProductGuardrails(loaded);
|
|
104
|
+
if (guardrailErrors.length > 0) {
|
|
105
|
+
return { ok: false, errors: guardrailErrors };
|
|
106
|
+
}
|
|
107
|
+
// ---- 4. STRICT ZOD PARSE (full issue list) --------------------------------------------
|
|
108
|
+
const parsed = ProductSpec.safeParse(loaded);
|
|
109
|
+
if (!parsed.success) {
|
|
110
|
+
return { ok: false, errors: parsed.error.issues.flatMap(issueToSpecErrors) };
|
|
111
|
+
}
|
|
112
|
+
// ---- 5. SEMANTIC LINT -----------------------------------------------------------------
|
|
113
|
+
const lintErrors = lintProductSpec(parsed.data);
|
|
114
|
+
if (lintErrors.length > 0) {
|
|
115
|
+
return { ok: false, errors: lintErrors };
|
|
116
|
+
}
|
|
117
|
+
return { ok: true, value: parsed.data };
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=product-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-parse.js","sourceRoot":"","sources":["../src/product-parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `assertProductScope` — the fail-closed boot-scope gate for a product-profile document.
|
|
3
|
+
*
|
|
4
|
+
*
|
|
5
|
+
* A `ProductSpec` can be grammar-valid (parseProductSpec-clean) yet declare a shape the composable v1
|
|
6
|
+
* envelope does NOT support end-to-end — a sufficiency finding named these. This gate is the
|
|
7
|
+
* boot FRONT-DOOR: `deployProductYamlSpec` runs it right after parse (before any compose/derive/DBOS
|
|
8
|
+
* work) so an operator gets ONE actionable message instead of a deep, less-legible internal error (the
|
|
9
|
+
* single-scope law) or a green-but-surprising boot (a non-capability POST view mounts + boots today).
|
|
10
|
+
*
|
|
11
|
+
* WHAT IT REJECTS (fail-closed, aggregated — the whole list in one throw):
|
|
12
|
+
*
|
|
13
|
+
* A. MULTI-SCOPE PERSISTENCE — persisted artifacts (`lifecycle.persist !== false`) declaring 2+
|
|
14
|
+
* DISTINCT non-empty `scope`s. The materializer scopes every collection row by ONE `<scope>_id`
|
|
15
|
+
* column per deployment (the single-scope law, enforced 3× downstream in derive-stores/compose/
|
|
16
|
+
* nodes). A two-scope document therefore cannot be materialized; this front-doors that law with an
|
|
17
|
+
* actionable message BEFORE the deeper machinery. (A single-scope doc — e.g. support-triage is
|
|
18
|
+
* all `ticket` — passes. A `persist:false` artifact is excluded, exactly as the
|
|
19
|
+
* derivation excludes it.)
|
|
20
|
+
*
|
|
21
|
+
* B. PRODUCT-DECLARED WRITE/ADMIN SURFACE — a POST view whose `source.kind` is NOT `capability`. The
|
|
22
|
+
* grammar already bans PUT/DELETE/PATCH (a mutating verb implies a handler; the product profile has none). Within
|
|
23
|
+
* GET/POST, a POST view is a COMMAND; the ONLY supported command is a capability-backed one (e.g.
|
|
24
|
+
* the playback-token mint — `source.kind: capability`). A POST view over a `store`/`artifact_query`
|
|
25
|
+
* read source (or with NO source) is a would-be write/admin surface: the views runtime is
|
|
26
|
+
* read-only, so today it silently mounts an interpreted READ served on POST — a surprising surface
|
|
27
|
+
* nothing else rejects. Product writes flow through the ingress capability + workflow ONLY, and
|
|
28
|
+
* reads are GET views. (A capability-backed POST view — e.g. a media playback-token mint — is a
|
|
29
|
+
* capability command, so it passes.)
|
|
30
|
+
*
|
|
31
|
+
* NOTE this gate does NOT re-validate anything parse/lint already covers; it inspects only the
|
|
32
|
+
* scope/write-surface envelope. It is pure (no I/O), so it is unit-tested standalone and reused by the
|
|
33
|
+
* boot verbatim.
|
|
34
|
+
*/
|
|
35
|
+
import type { ProductSpec } from './product-grammar.js';
|
|
36
|
+
/** A fail-closed product-scope violation set (thrown by `assertProductScope`). */
|
|
37
|
+
export declare class ProductScopeError extends Error {
|
|
38
|
+
/** The individual, actionable violation messages (one per out-of-scope shape). */
|
|
39
|
+
readonly violations: readonly string[];
|
|
40
|
+
constructor(violations: readonly string[]);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Collect the out-of-scope violations of a parsed `ProductSpec` (empty ⇒ in-scope). Pure — the boot
|
|
44
|
+
* throws `ProductScopeError` on a non-empty result via `assertProductScope`.
|
|
45
|
+
*/
|
|
46
|
+
export declare function collectProductScopeViolations(spec: ProductSpec): string[];
|
|
47
|
+
/**
|
|
48
|
+
* The boot-scope gate: throw `ProductScopeError` (aggregating EVERY violation) when a parsed
|
|
49
|
+
* `ProductSpec` declares a shape outside the composable v1 envelope. A no-op for an in-scope document
|
|
50
|
+
* (support-triage and the acceptance product all pass).
|
|
51
|
+
*/
|
|
52
|
+
export declare function assertProductScope(spec: ProductSpec): void;
|
|
53
|
+
//# sourceMappingURL=product-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-scope.d.ts","sourceRoot":"","sources":["../src/product-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,kFAAkF;AAClF,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;gBAC3B,UAAU,EAAE,SAAS,MAAM,EAAE;CAS1C;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CAoCzE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAG1D"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** A fail-closed product-scope violation set (thrown by `assertProductScope`). */
|
|
2
|
+
export class ProductScopeError extends Error {
|
|
3
|
+
/** The individual, actionable violation messages (one per out-of-scope shape). */
|
|
4
|
+
violations;
|
|
5
|
+
constructor(violations) {
|
|
6
|
+
super(`the Product-YAML document declares ${violations.length} shape(s) outside the composable v1 ` +
|
|
7
|
+
`envelope — the deployment cannot serve them end-to-end (fail-closed):\n` +
|
|
8
|
+
violations.map((v) => ` - ${v}`).join('\n'));
|
|
9
|
+
this.name = 'ProductScopeError';
|
|
10
|
+
this.violations = violations;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Collect the out-of-scope violations of a parsed `ProductSpec` (empty ⇒ in-scope). Pure — the boot
|
|
15
|
+
* throws `ProductScopeError` on a non-empty result via `assertProductScope`.
|
|
16
|
+
*/
|
|
17
|
+
export function collectProductScopeViolations(spec) {
|
|
18
|
+
const violations = [];
|
|
19
|
+
// ── A. multi-scope persistence ────────────────────────────────────────────────────────────────
|
|
20
|
+
const persisting = spec.artifacts.filter((a) => a.lifecycle?.persist !== false);
|
|
21
|
+
const scopes = [
|
|
22
|
+
...new Set(persisting
|
|
23
|
+
.map((a) => a.scope)
|
|
24
|
+
.filter((s) => typeof s === 'string' && s.length > 0)),
|
|
25
|
+
];
|
|
26
|
+
if (scopes.length > 1) {
|
|
27
|
+
violations.push(`multi-scope persistence: persisted artifacts declare ${scopes.length} distinct scopes ` +
|
|
28
|
+
`(${scopes.join(', ')}), but a Product-YAML deployment materializes ONE '<scope>_id' column ` +
|
|
29
|
+
`per collection (the single-scope law) — every persisted artifact kind must share ONE scope. ` +
|
|
30
|
+
`Split this into separate products, or align the artifacts on a single scope.`);
|
|
31
|
+
}
|
|
32
|
+
// ── B. product-declared write/admin surface (a non-capability POST view) ────────────────────────
|
|
33
|
+
for (const view of spec.views) {
|
|
34
|
+
if (view.route.method === 'POST' && view.source?.kind !== 'capability') {
|
|
35
|
+
const src = view.source?.kind ?? '(none)';
|
|
36
|
+
violations.push(`write/admin surface: view '${view.id}' is a POST over a '${src}' source. A POST view is a ` +
|
|
37
|
+
`COMMAND, and the only supported command is a capability-backed one (source.kind: capability, ` +
|
|
38
|
+
`e.g. a playback-token mint). The product profile has no product-declared write/admin surface — reads are GET ` +
|
|
39
|
+
`views and product writes flow through the ingress capability + workflow. Use method GET for a ` +
|
|
40
|
+
`read, or source.kind: capability for a command.`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return violations;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The boot-scope gate: throw `ProductScopeError` (aggregating EVERY violation) when a parsed
|
|
47
|
+
* `ProductSpec` declares a shape outside the composable v1 envelope. A no-op for an in-scope document
|
|
48
|
+
* (support-triage and the acceptance product all pass).
|
|
49
|
+
*/
|
|
50
|
+
export function assertProductScope(spec) {
|
|
51
|
+
const violations = collectProductScopeViolations(spec);
|
|
52
|
+
if (violations.length > 0)
|
|
53
|
+
throw new ProductScopeError(violations);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=product-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-scope.js","sourceRoot":"","sources":["../src/product-scope.ts"],"names":[],"mappings":"AAoCA,kFAAkF;AAClF,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,kFAAkF;IACzE,UAAU,CAAoB;IACvC,YAAY,UAA6B;QACvC,KAAK,CACH,sCAAsC,UAAU,CAAC,MAAM,sCAAsC;YAC3F,yEAAyE;YACzE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/C,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAiB;IAC7D,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,iGAAiG;IACjG,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG;QACb,GAAG,IAAI,GAAG,CACR,UAAU;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACnB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CACrE;KACF,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CACb,wDAAwD,MAAM,CAAC,MAAM,mBAAmB;YACtF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,wEAAwE;YAC7F,8FAA8F;YAC9F,8EAA8E,CACjF,CAAC;IACJ,CAAC;IAED,mGAAmG;IACnG,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YACvE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,QAAQ,CAAC;YAC1C,UAAU,CAAC,IAAI,CACb,8BAA8B,IAAI,CAAC,EAAE,uBAAuB,GAAG,6BAA6B;gBAC1F,+FAA+F;gBAC/F,+GAA+G;gBAC/G,gGAAgG;gBAChG,iDAAiD,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,MAAM,UAAU,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type SpecError } from './errors.js';
|
|
2
|
+
import type { ArtifactSpec, CapabilitySpec, ContractsSpec, ProductViewSpec } from './product-grammar.js';
|
|
3
|
+
/** The narrow structural slice of a ProductSpec the view lint needs (mount re-uses it). */
|
|
4
|
+
export interface ViewLintInput {
|
|
5
|
+
views: readonly ProductViewSpec[];
|
|
6
|
+
contracts: ContractsSpec;
|
|
7
|
+
artifacts: readonly ArtifactSpec[];
|
|
8
|
+
capabilities: readonly CapabilitySpec[];
|
|
9
|
+
}
|
|
10
|
+
/** Extract `{param}` names from a declared route path (shared linear, no-regex scan). */
|
|
11
|
+
export declare function viewPathParams(path: string): string[];
|
|
12
|
+
/** Validate every view declaration. Returns the FULL violation list (never the first). */
|
|
13
|
+
export declare function lintProductViews(input: ViewLintInput): SpecError[];
|
|
14
|
+
//# sourceMappingURL=product-views-lint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-views-lint.d.ts","sourceRoot":"","sources":["../src/product-views-lint.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAc9B,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAClC,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IACnC,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;CACzC;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAErD;AA6HD,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,EAAE,CAkWlE"}
|