@cleocode/lafs 2026.4.0 → 2026.4.4
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/README.md +97 -68
- package/dist/src/a2a/bindings/grpc.d.ts +117 -11
- package/dist/src/a2a/bindings/grpc.d.ts.map +1 -1
- package/dist/src/a2a/bindings/grpc.js +79 -8
- package/dist/src/a2a/bindings/grpc.js.map +1 -1
- package/dist/src/a2a/bindings/http.d.ts +129 -14
- package/dist/src/a2a/bindings/http.d.ts.map +1 -1
- package/dist/src/a2a/bindings/http.js +93 -12
- package/dist/src/a2a/bindings/http.js.map +1 -1
- package/dist/src/a2a/bindings/index.d.ts +80 -7
- package/dist/src/a2a/bindings/index.d.ts.map +1 -1
- package/dist/src/a2a/bindings/index.js +69 -2
- package/dist/src/a2a/bindings/index.js.map +1 -1
- package/dist/src/a2a/bindings/jsonrpc.d.ts +193 -9
- package/dist/src/a2a/bindings/jsonrpc.d.ts.map +1 -1
- package/dist/src/a2a/bindings/jsonrpc.js +152 -9
- package/dist/src/a2a/bindings/jsonrpc.js.map +1 -1
- package/dist/src/a2a/bridge.d.ts +232 -37
- package/dist/src/a2a/bridge.d.ts.map +1 -1
- package/dist/src/a2a/bridge.js +172 -24
- package/dist/src/a2a/bridge.js.map +1 -1
- package/dist/src/a2a/extensions.d.ts +221 -12
- package/dist/src/a2a/extensions.d.ts.map +1 -1
- package/dist/src/a2a/extensions.js +175 -11
- package/dist/src/a2a/extensions.js.map +1 -1
- package/dist/src/a2a/index.d.ts +2 -0
- package/dist/src/a2a/index.d.ts.map +1 -1
- package/dist/src/a2a/index.js +2 -0
- package/dist/src/a2a/index.js.map +1 -1
- package/dist/src/a2a/streaming.d.ts +274 -2
- package/dist/src/a2a/streaming.d.ts.map +1 -1
- package/dist/src/a2a/streaming.js +245 -2
- package/dist/src/a2a/streaming.js.map +1 -1
- package/dist/src/a2a/task-lifecycle.d.ts +339 -19
- package/dist/src/a2a/task-lifecycle.d.ts.map +1 -1
- package/dist/src/a2a/task-lifecycle.js +302 -19
- package/dist/src/a2a/task-lifecycle.js.map +1 -1
- package/dist/src/budgetEnforcement.d.ts +88 -14
- package/dist/src/budgetEnforcement.d.ts.map +1 -1
- package/dist/src/budgetEnforcement.js +132 -19
- package/dist/src/budgetEnforcement.js.map +1 -1
- package/dist/src/circuit-breaker/index.d.ts +254 -9
- package/dist/src/circuit-breaker/index.d.ts.map +1 -1
- package/dist/src/circuit-breaker/index.js +218 -9
- package/dist/src/circuit-breaker/index.js.map +1 -1
- package/dist/src/compliance.d.ts +176 -0
- package/dist/src/compliance.d.ts.map +1 -1
- package/dist/src/compliance.js +100 -0
- package/dist/src/compliance.js.map +1 -1
- package/dist/src/conformance.d.ts +52 -0
- package/dist/src/conformance.d.ts.map +1 -1
- package/dist/src/conformance.js +41 -0
- package/dist/src/conformance.js.map +1 -1
- package/dist/src/conformanceProfiles.d.ts +66 -0
- package/dist/src/conformanceProfiles.d.ts.map +1 -1
- package/dist/src/conformanceProfiles.js +51 -0
- package/dist/src/conformanceProfiles.js.map +1 -1
- package/dist/src/deprecationRegistry.d.ts +80 -0
- package/dist/src/deprecationRegistry.d.ts.map +1 -1
- package/dist/src/deprecationRegistry.js +50 -0
- package/dist/src/deprecationRegistry.js.map +1 -1
- package/dist/src/discovery.d.ts +344 -63
- package/dist/src/discovery.d.ts.map +1 -1
- package/dist/src/discovery.js +67 -13
- package/dist/src/discovery.js.map +1 -1
- package/dist/src/envelope.d.ts +252 -0
- package/dist/src/envelope.d.ts.map +1 -1
- package/dist/src/envelope.js +165 -0
- package/dist/src/envelope.js.map +1 -1
- package/dist/src/errorRegistry.d.ts +159 -0
- package/dist/src/errorRegistry.d.ts.map +1 -1
- package/dist/src/errorRegistry.js +115 -0
- package/dist/src/errorRegistry.js.map +1 -1
- package/dist/src/fieldExtraction.d.ts +125 -25
- package/dist/src/fieldExtraction.d.ts.map +1 -1
- package/dist/src/fieldExtraction.js +85 -16
- package/dist/src/fieldExtraction.js.map +1 -1
- package/dist/src/flagResolver.d.ts +75 -9
- package/dist/src/flagResolver.d.ts.map +1 -1
- package/dist/src/flagResolver.js +20 -4
- package/dist/src/flagResolver.js.map +1 -1
- package/dist/src/flagSemantics.d.ts +76 -1
- package/dist/src/flagSemantics.d.ts.map +1 -1
- package/dist/src/flagSemantics.js +66 -0
- package/dist/src/flagSemantics.js.map +1 -1
- package/dist/src/health/index.d.ts +87 -6
- package/dist/src/health/index.d.ts.map +1 -1
- package/dist/src/health/index.js +54 -6
- package/dist/src/health/index.js.map +1 -1
- package/dist/src/index.d.ts +12 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mviProjection.d.ts +42 -6
- package/dist/src/mviProjection.d.ts.map +1 -1
- package/dist/src/mviProjection.js +31 -5
- package/dist/src/mviProjection.js.map +1 -1
- package/dist/src/native-loader.d.ts +49 -0
- package/dist/src/native-loader.d.ts.map +1 -0
- package/dist/src/native-loader.js +56 -0
- package/dist/src/native-loader.js.map +1 -0
- package/dist/src/problemDetails.d.ts +70 -4
- package/dist/src/problemDetails.d.ts.map +1 -1
- package/dist/src/problemDetails.js +21 -3
- package/dist/src/problemDetails.js.map +1 -1
- package/dist/src/shutdown/index.d.ts +96 -7
- package/dist/src/shutdown/index.d.ts.map +1 -1
- package/dist/src/shutdown/index.js +72 -7
- package/dist/src/shutdown/index.js.map +1 -1
- package/dist/src/tokenEstimator.d.ts +97 -11
- package/dist/src/tokenEstimator.d.ts.map +1 -1
- package/dist/src/tokenEstimator.js +90 -11
- package/dist/src/tokenEstimator.js.map +1 -1
- package/dist/src/types.d.ts +467 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +64 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/validateEnvelope.d.ts +59 -1
- package/dist/src/validateEnvelope.d.ts.map +1 -1
- package/dist/src/validateEnvelope.js +75 -9
- package/dist/src/validateEnvelope.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/lafs.md +3 -4
- package/package.json +6 -3
- package/dist/src/mcpAdapter.d.ts +0 -29
- package/dist/src/mcpAdapter.d.ts.map +0 -1
- package/dist/src/mcpAdapter.js +0 -286
- package/dist/src/mcpAdapter.js.map +0 -1
- package/schemas/v1/conformance-profiles.d.ts +0 -15
- package/schemas/v1/envelope.schema.d.ts +0 -14
- package/schemas/v1/error-registry.d.ts +0 -24
package/dist/src/compliance.js
CHANGED
|
@@ -1,8 +1,32 @@
|
|
|
1
1
|
import { runEnvelopeConformance, runFlagConformance } from './conformance.js';
|
|
2
2
|
import { resolveOutputFormat } from './flagSemantics.js';
|
|
3
3
|
import { assertEnvelope, validateEnvelope, } from './validateEnvelope.js';
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when {@link assertCompliance} or {@link withCompliance} detects failures.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Extends `Error` with a structured `issues` array so callers can
|
|
9
|
+
* programmatically inspect each failure without parsing the message string.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* try {
|
|
14
|
+
* assertCompliance(envelope);
|
|
15
|
+
* } catch (err) {
|
|
16
|
+
* if (err instanceof ComplianceError) {
|
|
17
|
+
* console.log(err.issues);
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
4
22
|
export class ComplianceError extends Error {
|
|
23
|
+
/** The structured list of compliance issues that caused this error. */
|
|
5
24
|
issues;
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new ComplianceError from a list of issues.
|
|
27
|
+
*
|
|
28
|
+
* @param issues - The compliance issues that triggered this error.
|
|
29
|
+
*/
|
|
6
30
|
constructor(issues) {
|
|
7
31
|
super(`LAFS compliance failed: ${issues.map((issue) => issue.message).join('; ')}`);
|
|
8
32
|
this.name = 'ComplianceError';
|
|
@@ -18,6 +42,27 @@ function conformanceIssues(report, stage) {
|
|
|
18
42
|
detail: check.detail,
|
|
19
43
|
}));
|
|
20
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Runs the full LAFS compliance pipeline against an unknown input value.
|
|
47
|
+
*
|
|
48
|
+
* @remarks
|
|
49
|
+
* Executes stages in order: schema validation, envelope conformance,
|
|
50
|
+
* flag conformance, and output-format assertion. Each stage is gated
|
|
51
|
+
* by the corresponding option. Schema validation always runs first;
|
|
52
|
+
* if it fails, later stages are skipped.
|
|
53
|
+
*
|
|
54
|
+
* @param input - The raw value to validate as a LAFS envelope.
|
|
55
|
+
* @param options - Controls which optional stages execute.
|
|
56
|
+
* @returns A {@link ComplianceResult} with the aggregate pass/fail status and per-stage reports.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* const result = enforceCompliance(rawJson, { checkFlags: true, flags: { jsonFlag: true } });
|
|
61
|
+
* if (!result.ok) {
|
|
62
|
+
* console.error(result.issues);
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
21
66
|
export function enforceCompliance(input, options = {}) {
|
|
22
67
|
const { checkConformance = true, checkFlags = false, flags, requireJsonOutput = false } = options;
|
|
23
68
|
const issues = [];
|
|
@@ -68,6 +113,24 @@ export function enforceCompliance(input, options = {}) {
|
|
|
68
113
|
issues,
|
|
69
114
|
};
|
|
70
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Validates input and throws {@link ComplianceError} on any failure.
|
|
118
|
+
*
|
|
119
|
+
* @remarks
|
|
120
|
+
* Thin wrapper around {@link enforceCompliance} that converts a non-ok
|
|
121
|
+
* result into an exception. Useful in pipelines where compliance is a
|
|
122
|
+
* hard gate.
|
|
123
|
+
*
|
|
124
|
+
* @param input - The raw value to validate as a LAFS envelope.
|
|
125
|
+
* @param options - Controls which optional stages execute.
|
|
126
|
+
* @returns The validated {@link LAFSEnvelope} when all stages pass.
|
|
127
|
+
* @throws {@link ComplianceError} When any compliance stage fails.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* const envelope = assertCompliance(rawJson);
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
71
134
|
export function assertCompliance(input, options = {}) {
|
|
72
135
|
const result = enforceCompliance(input, options);
|
|
73
136
|
if (!result.ok || !result.envelope) {
|
|
@@ -75,12 +138,49 @@ export function assertCompliance(input, options = {}) {
|
|
|
75
138
|
}
|
|
76
139
|
return result.envelope;
|
|
77
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Wraps an envelope-producing function with automatic compliance enforcement.
|
|
143
|
+
*
|
|
144
|
+
* @remarks
|
|
145
|
+
* Returns a new async function that calls the producer, then pipes the
|
|
146
|
+
* result through {@link assertCompliance}. If the producer returns a
|
|
147
|
+
* non-compliant envelope, the wrapper throws {@link ComplianceError}.
|
|
148
|
+
*
|
|
149
|
+
* @typeParam TArgs - Argument types forwarded to the producer function.
|
|
150
|
+
* @typeParam TResult - The envelope subtype returned by the producer.
|
|
151
|
+
* @param producer - A sync or async function that produces a LAFS envelope.
|
|
152
|
+
* @param options - Compliance options forwarded to {@link assertCompliance}.
|
|
153
|
+
* @returns An async function with the same signature that enforces compliance on every call.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```ts
|
|
157
|
+
* const safeFetch = withCompliance(fetchEnvelope, { checkConformance: true });
|
|
158
|
+
* const envelope = await safeFetch('/api/data');
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
78
161
|
export function withCompliance(producer, options = {}) {
|
|
79
162
|
return async (...args) => {
|
|
80
163
|
const envelope = await producer(...args);
|
|
81
164
|
return assertCompliance(envelope, options);
|
|
82
165
|
};
|
|
83
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Creates a {@link ComplianceMiddleware} that enforces LAFS compliance on the next handler's output.
|
|
169
|
+
*
|
|
170
|
+
* @remarks
|
|
171
|
+
* The returned middleware calls `next()`, then pipes the candidate envelope
|
|
172
|
+
* through {@link assertCompliance}. Non-compliant envelopes cause a
|
|
173
|
+
* {@link ComplianceError} to propagate.
|
|
174
|
+
*
|
|
175
|
+
* @param options - Compliance options forwarded to {@link assertCompliance}.
|
|
176
|
+
* @returns A middleware function that validates the downstream envelope.
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```ts
|
|
180
|
+
* const mw = createComplianceMiddleware({ checkConformance: true });
|
|
181
|
+
* const result = await mw(currentEnvelope, () => produceEnvelope());
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
84
184
|
export function createComplianceMiddleware(options = {}) {
|
|
85
185
|
return async (_envelope, next) => {
|
|
86
186
|
const candidate = await next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../src/compliance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EACL,cAAc,EAEd,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../src/compliance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,60 @@
|
|
|
1
1
|
import { type ConformanceTier } from './conformanceProfiles.js';
|
|
2
2
|
import type { ConformanceReport, FlagInput } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Options for configuring envelope conformance checking.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* When a tier is specified, only the checks belonging to that tier (and below)
|
|
8
|
+
* are included in the final report.
|
|
9
|
+
*/
|
|
3
10
|
export interface EnvelopeConformanceOptions {
|
|
11
|
+
/**
|
|
12
|
+
* The conformance tier to filter checks by.
|
|
13
|
+
* @defaultValue undefined
|
|
14
|
+
*/
|
|
4
15
|
tier?: ConformanceTier;
|
|
5
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Runs the full suite of LAFS envelope conformance checks.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* Validates schema, envelope invariants, error-code registration,
|
|
22
|
+
* agent-action validity, transport mapping consistency, context mutation
|
|
23
|
+
* rules, MVI level, strict-mode behavior, pagination mode consistency,
|
|
24
|
+
* strict-mode enforcement, and context preservation. When a
|
|
25
|
+
* {@link EnvelopeConformanceOptions.tier} is specified, only checks
|
|
26
|
+
* belonging to that tier are included in the returned report.
|
|
27
|
+
*
|
|
28
|
+
* @param envelope - The raw value to validate as a LAFS envelope.
|
|
29
|
+
* @param options - Optional tier filter for the conformance checks.
|
|
30
|
+
* @returns A {@link ConformanceReport} with individual check results and an overall pass/fail.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* const report = runEnvelopeConformance(parsedJson, { tier: 'core' });
|
|
35
|
+
* if (!report.ok) {
|
|
36
|
+
* console.error(report.checks.filter(c => !c.pass));
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
6
40
|
export declare function runEnvelopeConformance(envelope: unknown, options?: EnvelopeConformanceOptions): ConformanceReport;
|
|
41
|
+
/**
|
|
42
|
+
* Runs LAFS flag-semantics conformance checks against a set of flag inputs.
|
|
43
|
+
*
|
|
44
|
+
* @remarks
|
|
45
|
+
* Verifies that conflicting flags (`--human` + `--json`) are properly rejected,
|
|
46
|
+
* the protocol default resolves to JSON, and project/user config overrides are
|
|
47
|
+
* respected. Catches {@link LAFSFlagError} with code `E_FORMAT_CONFLICT` as a
|
|
48
|
+
* valid conformance outcome.
|
|
49
|
+
*
|
|
50
|
+
* @param flags - The flag input to validate.
|
|
51
|
+
* @returns A {@link ConformanceReport} with individual check results and an overall pass/fail.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* const report = runFlagConformance({ humanFlag: true, jsonFlag: false });
|
|
56
|
+
* console.log(report.ok); // true
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
7
59
|
export declare function runFlagConformance(flags: FlagInput): ConformanceReport;
|
|
8
60
|
//# sourceMappingURL=conformance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/conformance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,0BAA0B,CAAC;AAGlF,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAa/D,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,0BAA+B,GACvC,iBAAiB,CA8UnB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB,CA+CtE"}
|
|
1
|
+
{"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/conformance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,0BAA0B,CAAC;AAGlF,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAa/D;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,0BAA+B,GACvC,iBAAiB,CA8UnB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB,CA+CtE"}
|
package/dist/src/conformance.js
CHANGED
|
@@ -6,6 +6,29 @@ import { validateEnvelope } from './validateEnvelope.js';
|
|
|
6
6
|
function pushCheck(checks, name, pass, detail) {
|
|
7
7
|
checks.push({ name, pass, ...(detail ? { detail } : {}) });
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Runs the full suite of LAFS envelope conformance checks.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* Validates schema, envelope invariants, error-code registration,
|
|
14
|
+
* agent-action validity, transport mapping consistency, context mutation
|
|
15
|
+
* rules, MVI level, strict-mode behavior, pagination mode consistency,
|
|
16
|
+
* strict-mode enforcement, and context preservation. When a
|
|
17
|
+
* {@link EnvelopeConformanceOptions.tier} is specified, only checks
|
|
18
|
+
* belonging to that tier are included in the returned report.
|
|
19
|
+
*
|
|
20
|
+
* @param envelope - The raw value to validate as a LAFS envelope.
|
|
21
|
+
* @param options - Optional tier filter for the conformance checks.
|
|
22
|
+
* @returns A {@link ConformanceReport} with individual check results and an overall pass/fail.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* const report = runEnvelopeConformance(parsedJson, { tier: 'core' });
|
|
27
|
+
* if (!report.ok) {
|
|
28
|
+
* console.error(report.checks.filter(c => !c.pass));
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
9
32
|
export function runEnvelopeConformance(envelope, options = {}) {
|
|
10
33
|
const checks = [];
|
|
11
34
|
const validation = validateEnvelope(envelope);
|
|
@@ -223,6 +246,24 @@ export function runEnvelopeConformance(envelope, options = {}) {
|
|
|
223
246
|
const tierChecks = checks.filter((check) => allowed.has(check.name));
|
|
224
247
|
return { ok: tierChecks.every((check) => check.pass), checks: tierChecks };
|
|
225
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* Runs LAFS flag-semantics conformance checks against a set of flag inputs.
|
|
251
|
+
*
|
|
252
|
+
* @remarks
|
|
253
|
+
* Verifies that conflicting flags (`--human` + `--json`) are properly rejected,
|
|
254
|
+
* the protocol default resolves to JSON, and project/user config overrides are
|
|
255
|
+
* respected. Catches {@link LAFSFlagError} with code `E_FORMAT_CONFLICT` as a
|
|
256
|
+
* valid conformance outcome.
|
|
257
|
+
*
|
|
258
|
+
* @param flags - The flag input to validate.
|
|
259
|
+
* @returns A {@link ConformanceReport} with individual check results and an overall pass/fail.
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```ts
|
|
263
|
+
* const report = runFlagConformance({ humanFlag: true, jsonFlag: false });
|
|
264
|
+
* console.log(report.ok); // true
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
226
267
|
export function runFlagConformance(flags) {
|
|
227
268
|
const checks = [];
|
|
228
269
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/conformance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/conformance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Named conformance tier indicating the breadth of checks applied.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Tiers are cumulative: `core` is a subset of `standard`, which is
|
|
6
|
+
* a subset of `complete`.
|
|
7
|
+
*/
|
|
1
8
|
export type ConformanceTier = 'core' | 'standard' | 'complete';
|
|
9
|
+
/**
|
|
10
|
+
* Schema for the conformance-profiles JSON file.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* Maps each {@link ConformanceTier} to the set of check names it includes.
|
|
14
|
+
*/
|
|
2
15
|
export interface ConformanceProfiles {
|
|
16
|
+
/** Semantic version of the conformance-profiles schema. */
|
|
3
17
|
version: string;
|
|
18
|
+
/** Mapping from tier name to the ordered list of check names in that tier. */
|
|
4
19
|
tiers: Record<ConformanceTier, string[]>;
|
|
5
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Loads the conformance profiles from the bundled JSON schema.
|
|
23
|
+
*
|
|
24
|
+
* @remarks
|
|
25
|
+
* Returns the parsed `conformance-profiles.json` as a typed object.
|
|
26
|
+
* The profiles define which checks belong to each conformance tier.
|
|
27
|
+
*
|
|
28
|
+
* @returns The full {@link ConformanceProfiles} object.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* const profiles = getConformanceProfiles();
|
|
33
|
+
* console.log(profiles.tiers.core);
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
6
36
|
export declare function getConformanceProfiles(): ConformanceProfiles;
|
|
37
|
+
/**
|
|
38
|
+
* Returns the list of check names that belong to the given conformance tier.
|
|
39
|
+
*
|
|
40
|
+
* @remarks
|
|
41
|
+
* Retrieves the tier from the bundled profiles JSON. Returns an empty
|
|
42
|
+
* array when the tier key is not found (defensive fallback).
|
|
43
|
+
*
|
|
44
|
+
* @param tier - The conformance tier to retrieve checks for.
|
|
45
|
+
* @returns An array of check name strings for the specified tier.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* const coreChecks = getChecksForTier('core');
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
7
52
|
export declare function getChecksForTier(tier: ConformanceTier): string[];
|
|
53
|
+
/**
|
|
54
|
+
* Validates that the conformance profiles are internally consistent and reference only known checks.
|
|
55
|
+
*
|
|
56
|
+
* @remarks
|
|
57
|
+
* Verifies two invariants:
|
|
58
|
+
* 1. Tier superset containment: every `core` check appears in `standard`,
|
|
59
|
+
* and every `standard` check appears in `complete`.
|
|
60
|
+
* 2. Known-check coverage: every check name referenced in any tier exists
|
|
61
|
+
* in the provided `availableChecks` list.
|
|
62
|
+
*
|
|
63
|
+
* @param availableChecks - The full list of check names implemented by the conformance runner.
|
|
64
|
+
* @returns An object with `valid` (true when no errors) and an `errors` array of diagnostic strings.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* const result = validateConformanceProfiles(['envelope_schema_valid', 'envelope_invariants']);
|
|
69
|
+
* if (!result.valid) {
|
|
70
|
+
* console.error(result.errors);
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
8
74
|
export declare function validateConformanceProfiles(availableChecks: string[]): {
|
|
9
75
|
valid: boolean;
|
|
10
76
|
errors: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformanceProfiles.d.ts","sourceRoot":"","sources":["../../src/conformanceProfiles.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,CAGhE;AAED,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG;IACtE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAgCA"}
|
|
1
|
+
{"version":3,"file":"conformanceProfiles.d.ts","sourceRoot":"","sources":["../../src/conformanceProfiles.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,CAE5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,CAGhE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG;IACtE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAgCA"}
|
|
@@ -1,11 +1,62 @@
|
|
|
1
1
|
import profilesJson from '../schemas/v1/conformance-profiles.json' with { type: 'json' };
|
|
2
|
+
/**
|
|
3
|
+
* Loads the conformance profiles from the bundled JSON schema.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Returns the parsed `conformance-profiles.json` as a typed object.
|
|
7
|
+
* The profiles define which checks belong to each conformance tier.
|
|
8
|
+
*
|
|
9
|
+
* @returns The full {@link ConformanceProfiles} object.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const profiles = getConformanceProfiles();
|
|
14
|
+
* console.log(profiles.tiers.core);
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
2
17
|
export function getConformanceProfiles() {
|
|
3
18
|
return profilesJson;
|
|
4
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Returns the list of check names that belong to the given conformance tier.
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* Retrieves the tier from the bundled profiles JSON. Returns an empty
|
|
25
|
+
* array when the tier key is not found (defensive fallback).
|
|
26
|
+
*
|
|
27
|
+
* @param tier - The conformance tier to retrieve checks for.
|
|
28
|
+
* @returns An array of check name strings for the specified tier.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* const coreChecks = getChecksForTier('core');
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
5
35
|
export function getChecksForTier(tier) {
|
|
6
36
|
const profiles = getConformanceProfiles();
|
|
7
37
|
return profiles.tiers[tier] ?? [];
|
|
8
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Validates that the conformance profiles are internally consistent and reference only known checks.
|
|
41
|
+
*
|
|
42
|
+
* @remarks
|
|
43
|
+
* Verifies two invariants:
|
|
44
|
+
* 1. Tier superset containment: every `core` check appears in `standard`,
|
|
45
|
+
* and every `standard` check appears in `complete`.
|
|
46
|
+
* 2. Known-check coverage: every check name referenced in any tier exists
|
|
47
|
+
* in the provided `availableChecks` list.
|
|
48
|
+
*
|
|
49
|
+
* @param availableChecks - The full list of check names implemented by the conformance runner.
|
|
50
|
+
* @returns An object with `valid` (true when no errors) and an `errors` array of diagnostic strings.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* const result = validateConformanceProfiles(['envelope_schema_valid', 'envelope_invariants']);
|
|
55
|
+
* if (!result.valid) {
|
|
56
|
+
* console.error(result.errors);
|
|
57
|
+
* }
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
9
60
|
export function validateConformanceProfiles(availableChecks) {
|
|
10
61
|
const profiles = getConformanceProfiles();
|
|
11
62
|
const errors = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformanceProfiles.js","sourceRoot":"","sources":["../../src/conformanceProfiles.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,yCAAyC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"conformanceProfiles.js","sourceRoot":"","sources":["../../src/conformanceProfiles.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,yCAAyC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAwBzF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,YAAmC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAqB;IACpD,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,2BAA2B,CAAC,eAAyB;IAInE,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,8CAA8C,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAEzD,EAAE,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -1,14 +1,94 @@
|
|
|
1
1
|
import type { LAFSEnvelope, Warning } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A single deprecation rule in the registry.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Each entry defines a detector function that inspects an envelope for
|
|
7
|
+
* deprecated usage patterns, along with metadata for generating warnings.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const entry: DeprecationEntry = {
|
|
12
|
+
* id: "meta-mvi-boolean",
|
|
13
|
+
* code: "W_DEPRECATED_META_MVI_BOOLEAN",
|
|
14
|
+
* message: "_meta.mvi boolean values are deprecated",
|
|
15
|
+
* deprecated: "1.0.0",
|
|
16
|
+
* replacement: "Use _meta.mvi as one of: minimal|standard|full|custom",
|
|
17
|
+
* removeBy: "2.0.0",
|
|
18
|
+
* detector: (env) => typeof env._meta.mvi === "boolean",
|
|
19
|
+
* };
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
2
22
|
export interface DeprecationEntry {
|
|
23
|
+
/** Unique identifier for this deprecation rule */
|
|
3
24
|
id: string;
|
|
25
|
+
/** Warning code emitted when detected */
|
|
4
26
|
code: string;
|
|
27
|
+
/** Human-readable deprecation message */
|
|
5
28
|
message: string;
|
|
29
|
+
/** Version where the feature was deprecated */
|
|
6
30
|
deprecated: string;
|
|
31
|
+
/**
|
|
32
|
+
* Suggested replacement or migration path.
|
|
33
|
+
* @defaultValue `undefined`
|
|
34
|
+
*/
|
|
7
35
|
replacement?: string;
|
|
36
|
+
/** Version where the deprecated feature will be removed */
|
|
8
37
|
removeBy: string;
|
|
38
|
+
/** Predicate that returns `true` when the envelope uses the deprecated feature */
|
|
9
39
|
detector: (envelope: LAFSEnvelope) => boolean;
|
|
10
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Retrieve all registered deprecation entries.
|
|
43
|
+
*
|
|
44
|
+
* @returns Array of all {@link DeprecationEntry} rules in the registry
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* Returns the internal registry array by reference. Callers should not
|
|
48
|
+
* mutate the returned array.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const entries = getDeprecationRegistry();
|
|
53
|
+
* console.log(entries.length); // number of registered deprecations
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
11
56
|
export declare function getDeprecationRegistry(): DeprecationEntry[];
|
|
57
|
+
/**
|
|
58
|
+
* Detect deprecated field usage in a LAFS envelope.
|
|
59
|
+
*
|
|
60
|
+
* @param envelope - The LAFS envelope to inspect
|
|
61
|
+
* @returns Array of {@link Warning} objects for each detected deprecation
|
|
62
|
+
*
|
|
63
|
+
* @remarks
|
|
64
|
+
* Runs all registered deprecation detectors against the envelope and returns
|
|
65
|
+
* warnings for each match. Returns an empty array if no deprecations are found.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const warnings = detectDeprecatedEnvelopeFields(envelope);
|
|
70
|
+
* for (const w of warnings) {
|
|
71
|
+
* console.warn(`${w.code}: ${w.message}`);
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
12
75
|
export declare function detectDeprecatedEnvelopeFields(envelope: LAFSEnvelope): Warning[];
|
|
76
|
+
/**
|
|
77
|
+
* Emit deprecation warnings by attaching them to the envelope metadata.
|
|
78
|
+
*
|
|
79
|
+
* @param envelope - The LAFS envelope to augment
|
|
80
|
+
* @returns A new envelope with deprecation warnings appended to `_meta.warnings`
|
|
81
|
+
*
|
|
82
|
+
* @remarks
|
|
83
|
+
* If no deprecations are detected, the original envelope is returned unchanged
|
|
84
|
+
* (no copy is made). Otherwise, a shallow copy is returned with the warnings
|
|
85
|
+
* array extended.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const enriched = emitDeprecationWarnings(envelope);
|
|
90
|
+
* console.log(enriched._meta.warnings); // includes any deprecation warnings
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
13
93
|
export declare function emitDeprecationWarnings(envelope: LAFSEnvelope): LAFSEnvelope;
|
|
14
94
|
//# sourceMappingURL=deprecationRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deprecationRegistry.d.ts","sourceRoot":"","sources":["../../src/deprecationRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC;CAC/C;AAeD,wBAAgB,sBAAsB,IAAI,gBAAgB,EAAE,CAE3D;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,EAAE,CAUhF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAc5E"}
|
|
1
|
+
{"version":3,"file":"deprecationRegistry.d.ts","sourceRoot":"","sources":["../../src/deprecationRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC;CAC/C;AAeD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,EAAE,CAE3D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,EAAE,CAUhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAc5E"}
|
|
@@ -9,9 +9,42 @@ const DEPRECATION_REGISTRY = [
|
|
|
9
9
|
detector: (envelope) => typeof envelope._meta.mvi === 'boolean',
|
|
10
10
|
},
|
|
11
11
|
];
|
|
12
|
+
/**
|
|
13
|
+
* Retrieve all registered deprecation entries.
|
|
14
|
+
*
|
|
15
|
+
* @returns Array of all {@link DeprecationEntry} rules in the registry
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* Returns the internal registry array by reference. Callers should not
|
|
19
|
+
* mutate the returned array.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const entries = getDeprecationRegistry();
|
|
24
|
+
* console.log(entries.length); // number of registered deprecations
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
12
27
|
export function getDeprecationRegistry() {
|
|
13
28
|
return DEPRECATION_REGISTRY;
|
|
14
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Detect deprecated field usage in a LAFS envelope.
|
|
32
|
+
*
|
|
33
|
+
* @param envelope - The LAFS envelope to inspect
|
|
34
|
+
* @returns Array of {@link Warning} objects for each detected deprecation
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* Runs all registered deprecation detectors against the envelope and returns
|
|
38
|
+
* warnings for each match. Returns an empty array if no deprecations are found.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const warnings = detectDeprecatedEnvelopeFields(envelope);
|
|
43
|
+
* for (const w of warnings) {
|
|
44
|
+
* console.warn(`${w.code}: ${w.message}`);
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
15
48
|
export function detectDeprecatedEnvelopeFields(envelope) {
|
|
16
49
|
return getDeprecationRegistry()
|
|
17
50
|
.filter((entry) => entry.detector(envelope))
|
|
@@ -23,6 +56,23 @@ export function detectDeprecatedEnvelopeFields(envelope) {
|
|
|
23
56
|
removeBy: entry.removeBy,
|
|
24
57
|
}));
|
|
25
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Emit deprecation warnings by attaching them to the envelope metadata.
|
|
61
|
+
*
|
|
62
|
+
* @param envelope - The LAFS envelope to augment
|
|
63
|
+
* @returns A new envelope with deprecation warnings appended to `_meta.warnings`
|
|
64
|
+
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* If no deprecations are detected, the original envelope is returned unchanged
|
|
67
|
+
* (no copy is made). Otherwise, a shallow copy is returned with the warnings
|
|
68
|
+
* array extended.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const enriched = emitDeprecationWarnings(envelope);
|
|
73
|
+
* console.log(enriched._meta.warnings); // includes any deprecation warnings
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
26
76
|
export function emitDeprecationWarnings(envelope) {
|
|
27
77
|
const detected = detectDeprecatedEnvelopeFields(envelope);
|
|
28
78
|
if (detected.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deprecationRegistry.js","sourceRoot":"","sources":["../../src/deprecationRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deprecationRegistry.js","sourceRoot":"","sources":["../../src/deprecationRegistry.ts"],"names":[],"mappings":"AA0CA,MAAM,oBAAoB,GAAuB;IAC/C;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,yCAAyC;QAClD,UAAU,EAAE,OAAO;QACnB,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CACrB,OAAQ,QAAwC,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS;KAC3E;CACF,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAsB;IACnE,OAAO,sBAAsB,EAAE;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAsB;IAC5D,MAAM,QAAQ,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvD,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,QAAQ,EAAE,CAAC,GAAG,gBAAgB,EAAE,GAAG,QAAQ,CAAC;SAC7C;KACF,CAAC;AACJ,CAAC"}
|