@relkit/compiler 0.0.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 +21 -0
- package/README.md +5 -0
- package/dist/config-loader-deployment.d.ts +7 -0
- package/dist/config-loader-deployment.d.ts.map +1 -0
- package/dist/config-loader-deployment.js +36 -0
- package/dist/config-loader-deployment.js.map +1 -0
- package/dist/config-loader-runtime.d.ts +30 -0
- package/dist/config-loader-runtime.d.ts.map +1 -0
- package/dist/config-loader-runtime.js +105 -0
- package/dist/config-loader-runtime.js.map +1 -0
- package/dist/config-loader-types.d.ts +107 -0
- package/dist/config-loader-types.d.ts.map +1 -0
- package/dist/config-loader-types.js +37 -0
- package/dist/config-loader-types.js.map +1 -0
- package/dist/config-loader-utils.d.ts +10 -0
- package/dist/config-loader-utils.d.ts.map +1 -0
- package/dist/config-loader-utils.js +88 -0
- package/dist/config-loader-utils.js.map +1 -0
- package/dist/config-loader.d.ts +12 -0
- package/dist/config-loader.d.ts.map +1 -0
- package/dist/config-loader.js +89 -0
- package/dist/config-loader.js.map +1 -0
- package/dist/context-registry.d.ts +7 -0
- package/dist/context-registry.d.ts.map +1 -0
- package/dist/context-registry.js +55 -0
- package/dist/context-registry.js.map +1 -0
- package/dist/conventions.d.ts +32 -0
- package/dist/conventions.d.ts.map +1 -0
- package/dist/conventions.js +125 -0
- package/dist/conventions.js.map +1 -0
- package/dist/discovery/ast-prefilter-utils.d.ts +4 -0
- package/dist/discovery/ast-prefilter-utils.d.ts.map +1 -0
- package/dist/discovery/ast-prefilter-utils.js +186 -0
- package/dist/discovery/ast-prefilter-utils.js.map +1 -0
- package/dist/discovery/ast-prefilter.d.ts +36 -0
- package/dist/discovery/ast-prefilter.d.ts.map +1 -0
- package/dist/discovery/ast-prefilter.js +33 -0
- package/dist/discovery/ast-prefilter.js.map +1 -0
- package/dist/discovery/data-model-isolation.d.ts +8 -0
- package/dist/discovery/data-model-isolation.d.ts.map +1 -0
- package/dist/discovery/data-model-isolation.js +52 -0
- package/dist/discovery/data-model-isolation.js.map +1 -0
- package/dist/discovery/evaluator-child-utils.d.ts +4 -0
- package/dist/discovery/evaluator-child-utils.d.ts.map +1 -0
- package/dist/discovery/evaluator-child-utils.js +48 -0
- package/dist/discovery/evaluator-child-utils.js.map +1 -0
- package/dist/discovery/evaluator-child.d.ts +2 -0
- package/dist/discovery/evaluator-child.d.ts.map +1 -0
- package/dist/discovery/evaluator-child.js +139 -0
- package/dist/discovery/evaluator-child.js.map +1 -0
- package/dist/discovery/evaluator-detector-files.d.ts +9 -0
- package/dist/discovery/evaluator-detector-files.d.ts.map +1 -0
- package/dist/discovery/evaluator-detector-files.js +105 -0
- package/dist/discovery/evaluator-detector-files.js.map +1 -0
- package/dist/discovery/evaluator-detector-network.d.ts +6 -0
- package/dist/discovery/evaluator-detector-network.d.ts.map +1 -0
- package/dist/discovery/evaluator-detector-network.js +109 -0
- package/dist/discovery/evaluator-detector-network.js.map +1 -0
- package/dist/discovery/evaluator-detector-timers.d.ts +9 -0
- package/dist/discovery/evaluator-detector-timers.d.ts.map +1 -0
- package/dist/discovery/evaluator-detector-timers.js +105 -0
- package/dist/discovery/evaluator-detector-timers.js.map +1 -0
- package/dist/discovery/evaluator-detectors.d.ts +18 -0
- package/dist/discovery/evaluator-detectors.d.ts.map +1 -0
- package/dist/discovery/evaluator-detectors.js +54 -0
- package/dist/discovery/evaluator-detectors.js.map +1 -0
- package/dist/discovery/evaluator-protocol.d.ts +94 -0
- package/dist/discovery/evaluator-protocol.d.ts.map +1 -0
- package/dist/discovery/evaluator-protocol.js +89 -0
- package/dist/discovery/evaluator-protocol.js.map +1 -0
- package/dist/discovery/evaluator-request.d.ts +18 -0
- package/dist/discovery/evaluator-request.d.ts.map +1 -0
- package/dist/discovery/evaluator-request.js +49 -0
- package/dist/discovery/evaluator-request.js.map +1 -0
- package/dist/discovery/evaluator-snapshot.d.ts +12 -0
- package/dist/discovery/evaluator-snapshot.d.ts.map +1 -0
- package/dist/discovery/evaluator-snapshot.js +87 -0
- package/dist/discovery/evaluator-snapshot.js.map +1 -0
- package/dist/discovery/evaluator.d.ts +8 -0
- package/dist/discovery/evaluator.d.ts.map +1 -0
- package/dist/discovery/evaluator.js +123 -0
- package/dist/discovery/evaluator.js.map +1 -0
- package/dist/discovery/extract.d.ts +21 -0
- package/dist/discovery/extract.d.ts.map +1 -0
- package/dist/discovery/extract.js +60 -0
- package/dist/discovery/extract.js.map +1 -0
- package/dist/discovery/source-facts-factory.d.ts +5 -0
- package/dist/discovery/source-facts-factory.d.ts.map +1 -0
- package/dist/discovery/source-facts-factory.js +109 -0
- package/dist/discovery/source-facts-factory.js.map +1 -0
- package/dist/discovery/source-facts-types.d.ts +52 -0
- package/dist/discovery/source-facts-types.d.ts.map +1 -0
- package/dist/discovery/source-facts-types.js +2 -0
- package/dist/discovery/source-facts-types.js.map +1 -0
- package/dist/discovery/source-facts.d.ts +6 -0
- package/dist/discovery/source-facts.d.ts.map +1 -0
- package/dist/discovery/source-facts.js +141 -0
- package/dist/discovery/source-facts.js.map +1 -0
- package/dist/discovery/source-id-route.d.ts +3 -0
- package/dist/discovery/source-id-route.d.ts.map +1 -0
- package/dist/discovery/source-id-route.js +61 -0
- package/dist/discovery/source-id-route.js.map +1 -0
- package/dist/discovery/source-id.d.ts +36 -0
- package/dist/discovery/source-id.d.ts.map +1 -0
- package/dist/discovery/source-id.js +146 -0
- package/dist/discovery/source-id.js.map +1 -0
- package/dist/discovery/source-map-utils.d.ts +10 -0
- package/dist/discovery/source-map-utils.d.ts.map +1 -0
- package/dist/discovery/source-map-utils.js +29 -0
- package/dist/discovery/source-map-utils.js.map +1 -0
- package/dist/discovery/source-map.d.ts +26 -0
- package/dist/discovery/source-map.d.ts.map +1 -0
- package/dist/discovery/source-map.js +119 -0
- package/dist/discovery/source-map.js.map +1 -0
- package/dist/event-registry.d.ts +9 -0
- package/dist/event-registry.d.ts.map +1 -0
- package/dist/event-registry.js +43 -0
- package/dist/event-registry.js.map +1 -0
- package/dist/generate-manifest-event.d.ts +5 -0
- package/dist/generate-manifest-event.d.ts.map +1 -0
- package/dist/generate-manifest-event.js +81 -0
- package/dist/generate-manifest-event.js.map +1 -0
- package/dist/generate-manifest-expressions.d.ts +12 -0
- package/dist/generate-manifest-expressions.d.ts.map +1 -0
- package/dist/generate-manifest-expressions.js +141 -0
- package/dist/generate-manifest-expressions.js.map +1 -0
- package/dist/generate-manifest-format.d.ts +4 -0
- package/dist/generate-manifest-format.d.ts.map +1 -0
- package/dist/generate-manifest-format.js +74 -0
- package/dist/generate-manifest-format.js.map +1 -0
- package/dist/generate-manifest-identities.d.ts +6 -0
- package/dist/generate-manifest-identities.d.ts.map +1 -0
- package/dist/generate-manifest-identities.js +115 -0
- package/dist/generate-manifest-identities.js.map +1 -0
- package/dist/generate-manifest-utils.d.ts +23 -0
- package/dist/generate-manifest-utils.d.ts.map +1 -0
- package/dist/generate-manifest-utils.js +125 -0
- package/dist/generate-manifest-utils.js.map +1 -0
- package/dist/generate-manifest.d.ts +30 -0
- package/dist/generate-manifest.d.ts.map +1 -0
- package/dist/generate-manifest.js +89 -0
- package/dist/generate-manifest.js.map +1 -0
- package/dist/generated-artifacts.d.ts +69 -0
- package/dist/generated-artifacts.d.ts.map +1 -0
- package/dist/generated-artifacts.js +124 -0
- package/dist/generated-artifacts.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware-coverage.d.ts +12 -0
- package/dist/middleware-coverage.d.ts.map +1 -0
- package/dist/middleware-coverage.js +90 -0
- package/dist/middleware-coverage.js.map +1 -0
- package/dist/normalize-compat.d.ts +26 -0
- package/dist/normalize-compat.d.ts.map +1 -0
- package/dist/normalize-compat.js +155 -0
- package/dist/normalize-compat.js.map +1 -0
- package/dist/normalize-event-listener.d.ts +11 -0
- package/dist/normalize-event-listener.d.ts.map +1 -0
- package/dist/normalize-event-listener.js +123 -0
- package/dist/normalize-event-listener.js.map +1 -0
- package/dist/normalize-event-validation.d.ts +4 -0
- package/dist/normalize-event-validation.d.ts.map +1 -0
- package/dist/normalize-event-validation.js +137 -0
- package/dist/normalize-event-validation.js.map +1 -0
- package/dist/normalize-generated-function.d.ts +10 -0
- package/dist/normalize-generated-function.d.ts.map +1 -0
- package/dist/normalize-generated-function.js +20 -0
- package/dist/normalize-generated-function.js.map +1 -0
- package/dist/normalize-graph-app.d.ts +8 -0
- package/dist/normalize-graph-app.d.ts.map +1 -0
- package/dist/normalize-graph-app.js +71 -0
- package/dist/normalize-graph-app.js.map +1 -0
- package/dist/normalize-graph-config.d.ts +5 -0
- package/dist/normalize-graph-config.d.ts.map +1 -0
- package/dist/normalize-graph-config.js +97 -0
- package/dist/normalize-graph-config.js.map +1 -0
- package/dist/normalize-graph-edges.d.ts +3 -0
- package/dist/normalize-graph-edges.d.ts.map +1 -0
- package/dist/normalize-graph-edges.js +139 -0
- package/dist/normalize-graph-edges.js.map +1 -0
- package/dist/normalize-graph-nodes.d.ts +3 -0
- package/dist/normalize-graph-nodes.d.ts.map +1 -0
- package/dist/normalize-graph-nodes.js +184 -0
- package/dist/normalize-graph-nodes.js.map +1 -0
- package/dist/normalize-graph-providers.d.ts +4 -0
- package/dist/normalize-graph-providers.d.ts.map +1 -0
- package/dist/normalize-graph-providers.js +63 -0
- package/dist/normalize-graph-providers.js.map +1 -0
- package/dist/normalize-graph-services.d.ts +2 -0
- package/dist/normalize-graph-services.d.ts.map +1 -0
- package/dist/normalize-graph-services.js +23 -0
- package/dist/normalize-graph-services.js.map +1 -0
- package/dist/normalize-graph-types.d.ts +26 -0
- package/dist/normalize-graph-types.d.ts.map +1 -0
- package/dist/normalize-graph-types.js +2 -0
- package/dist/normalize-graph-types.js.map +1 -0
- package/dist/normalize-graph-utils.d.ts +4 -0
- package/dist/normalize-graph-utils.d.ts.map +1 -0
- package/dist/normalize-graph-utils.js +29 -0
- package/dist/normalize-graph-utils.js.map +1 -0
- package/dist/normalize-graph.d.ts +4 -0
- package/dist/normalize-graph.d.ts.map +1 -0
- package/dist/normalize-graph.js +21 -0
- package/dist/normalize-graph.js.map +1 -0
- package/dist/normalize-http-validation.d.ts +8 -0
- package/dist/normalize-http-validation.d.ts.map +1 -0
- package/dist/normalize-http-validation.js +86 -0
- package/dist/normalize-http-validation.js.map +1 -0
- package/dist/normalize-identity-rewrite.d.ts +3 -0
- package/dist/normalize-identity-rewrite.d.ts.map +1 -0
- package/dist/normalize-identity-rewrite.js +30 -0
- package/dist/normalize-identity-rewrite.js.map +1 -0
- package/dist/normalize-job-validation.d.ts +3 -0
- package/dist/normalize-job-validation.d.ts.map +1 -0
- package/dist/normalize-job-validation.js +31 -0
- package/dist/normalize-job-validation.js.map +1 -0
- package/dist/normalize-model-selection.d.ts +17 -0
- package/dist/normalize-model-selection.d.ts.map +1 -0
- package/dist/normalize-model-selection.js +103 -0
- package/dist/normalize-model-selection.js.map +1 -0
- package/dist/normalize-output.d.ts +4 -0
- package/dist/normalize-output.d.ts.map +1 -0
- package/dist/normalize-output.js +42 -0
- package/dist/normalize-output.js.map +1 -0
- package/dist/normalize-pass-core.d.ts +9 -0
- package/dist/normalize-pass-core.d.ts.map +1 -0
- package/dist/normalize-pass-core.js +113 -0
- package/dist/normalize-pass-core.js.map +1 -0
- package/dist/normalize-pass-semantic.d.ts +11 -0
- package/dist/normalize-pass-semantic.d.ts.map +1 -0
- package/dist/normalize-pass-semantic.js +149 -0
- package/dist/normalize-pass-semantic.js.map +1 -0
- package/dist/normalize-pass-utils.d.ts +12 -0
- package/dist/normalize-pass-utils.d.ts.map +1 -0
- package/dist/normalize-pass-utils.js +116 -0
- package/dist/normalize-pass-utils.js.map +1 -0
- package/dist/normalize-passes.d.ts +3 -0
- package/dist/normalize-passes.d.ts.map +1 -0
- package/dist/normalize-passes.js +3 -0
- package/dist/normalize-passes.js.map +1 -0
- package/dist/normalize-provider-validation.d.ts +4 -0
- package/dist/normalize-provider-validation.d.ts.map +1 -0
- package/dist/normalize-provider-validation.js +34 -0
- package/dist/normalize-provider-validation.js.map +1 -0
- package/dist/normalize-public-types.d.ts +13 -0
- package/dist/normalize-public-types.d.ts.map +1 -0
- package/dist/normalize-public-types.js +2 -0
- package/dist/normalize-public-types.js.map +1 -0
- package/dist/normalize-rate-limit.d.ts +4 -0
- package/dist/normalize-rate-limit.d.ts.map +1 -0
- package/dist/normalize-rate-limit.js +35 -0
- package/dist/normalize-rate-limit.js.map +1 -0
- package/dist/normalize-reference-index.d.ts +6 -0
- package/dist/normalize-reference-index.d.ts.map +1 -0
- package/dist/normalize-reference-index.js +82 -0
- package/dist/normalize-reference-index.js.map +1 -0
- package/dist/normalize-reference-validation.d.ts +4 -0
- package/dist/normalize-reference-validation.d.ts.map +1 -0
- package/dist/normalize-reference-validation.js +88 -0
- package/dist/normalize-reference-validation.js.map +1 -0
- package/dist/normalize-route-file.d.ts +4 -0
- package/dist/normalize-route-file.d.ts.map +1 -0
- package/dist/normalize-route-file.js +41 -0
- package/dist/normalize-route-file.js.map +1 -0
- package/dist/normalize-route-inference.d.ts +4 -0
- package/dist/normalize-route-inference.d.ts.map +1 -0
- package/dist/normalize-route-inference.js +117 -0
- package/dist/normalize-route-inference.js.map +1 -0
- package/dist/normalize-schema-validation.d.ts +3 -0
- package/dist/normalize-schema-validation.d.ts.map +1 -0
- package/dist/normalize-schema-validation.js +50 -0
- package/dist/normalize-schema-validation.js.map +1 -0
- package/dist/normalize-source-identities.d.ts +3 -0
- package/dist/normalize-source-identities.d.ts.map +1 -0
- package/dist/normalize-source-identities.js +158 -0
- package/dist/normalize-source-identities.js.map +1 -0
- package/dist/normalize-types.d.ts +130 -0
- package/dist/normalize-types.d.ts.map +1 -0
- package/dist/normalize-types.js +99 -0
- package/dist/normalize-types.js.map +1 -0
- package/dist/normalize-utils.d.ts +24 -0
- package/dist/normalize-utils.d.ts.map +1 -0
- package/dist/normalize-utils.js +139 -0
- package/dist/normalize-utils.js.map +1 -0
- package/dist/normalize.d.ts +9 -0
- package/dist/normalize.d.ts.map +1 -0
- package/dist/normalize.js +106 -0
- package/dist/normalize.js.map +1 -0
- package/dist/project-typecheck.d.ts +4 -0
- package/dist/project-typecheck.d.ts.map +1 -0
- package/dist/project-typecheck.js +49 -0
- package/dist/project-typecheck.js.map +1 -0
- package/dist/route-file.d.ts +29 -0
- package/dist/route-file.d.ts.map +1 -0
- package/dist/route-file.js +97 -0
- package/dist/route-file.js.map +1 -0
- package/dist/watch.d.ts +27 -0
- package/dist/watch.d.ts.map +1 -0
- package/dist/watch.js +117 -0
- package/dist/watch.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { isErrorDescriptorLike } from "./normalize-utils.js";
|
|
2
|
+
/** Replaces executable/non-JSON fields with deterministic nulls for graph data. */
|
|
3
|
+
export function clean(value) {
|
|
4
|
+
if (value === undefined || typeof value === "symbol")
|
|
5
|
+
return null;
|
|
6
|
+
if (typeof value === "function") {
|
|
7
|
+
if (!isErrorDescriptorLike(value))
|
|
8
|
+
return null;
|
|
9
|
+
const descriptor = {};
|
|
10
|
+
const source = value;
|
|
11
|
+
for (const key of Object.keys(source))
|
|
12
|
+
descriptor[key] = source[key];
|
|
13
|
+
return clean(descriptor);
|
|
14
|
+
}
|
|
15
|
+
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
16
|
+
return value;
|
|
17
|
+
if (typeof value === "number")
|
|
18
|
+
return Number.isFinite(value) ? value : null;
|
|
19
|
+
if (Array.isArray(value))
|
|
20
|
+
return value.map(clean);
|
|
21
|
+
if (typeof value === "object") {
|
|
22
|
+
const output = {};
|
|
23
|
+
for (const key of Object.keys(value).sort())
|
|
24
|
+
output[key] = clean(value[key]);
|
|
25
|
+
return output;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=normalize-graph-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-utils.js","sourceRoot":"","sources":["../src/normalize-graph-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,mFAAmF;AACnF,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,KAA2C,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACrE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5F,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;YACzC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAE,KAAiC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { NormalizedGraph, NormalizationWork } from "./normalize-types.js";
|
|
2
|
+
export declare function buildGraph(work: NormalizationWork): NormalizedGraph;
|
|
3
|
+
export declare function hashGraph(graph: NormalizedGraph): string;
|
|
4
|
+
//# sourceMappingURL=normalize-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph.d.ts","sourceRoot":"","sources":["../src/normalize-graph.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,eAAe,CAenE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { GRAPH_VERSION } from "@relkit/contracts";
|
|
2
|
+
import { canonicalizeGraph, hashGraph as hashCanonicalGraph } from "@relkit/graph";
|
|
3
|
+
import { buildGraphEdges } from "./normalize-graph-edges.js";
|
|
4
|
+
import { buildGraphNodes } from "./normalize-graph-nodes.js";
|
|
5
|
+
export function buildGraph(work) {
|
|
6
|
+
const app = work.descriptors.find((descriptor) => descriptor.kind === "app");
|
|
7
|
+
const nodes = buildGraphNodes(work);
|
|
8
|
+
work.nodes = nodes;
|
|
9
|
+
const edges = buildGraphEdges(work);
|
|
10
|
+
work.edges = edges;
|
|
11
|
+
return canonicalizeGraph({
|
|
12
|
+
contractVersion: GRAPH_VERSION,
|
|
13
|
+
...(app === undefined ? {} : { appId: app.id }),
|
|
14
|
+
nodes,
|
|
15
|
+
edges,
|
|
16
|
+
}, work.input.projectRoot === undefined ? {} : { projectRoot: work.input.projectRoot });
|
|
17
|
+
}
|
|
18
|
+
export function hashGraph(graph) {
|
|
19
|
+
return hashCanonicalGraph(graph);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=normalize-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph.js","sourceRoot":"","sources":["../src/normalize-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,OAAO,iBAAiB,CACtB;QACE,eAAe,EAAE,aAAa;QAC9B,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QAC/C,KAAK;QACL,KAAK;KACN,EACD,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CACjE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type NormalizationWork } from "./normalize-types.js";
|
|
2
|
+
/** Checks route inputs, responses, and function-backed middleware contracts. */
|
|
3
|
+
export declare function validateHttpCompatibility(work: NormalizationWork): void;
|
|
4
|
+
/** Canonicalizes path parameters so `/orders/:id` and `/orders/:orderId` collide. */
|
|
5
|
+
export declare function routeCollisionKey(value: unknown): string;
|
|
6
|
+
/** Returns every normalized runtime method/path variant for collision checks. */
|
|
7
|
+
export declare function routeCollisionKeys(value: unknown): readonly string[];
|
|
8
|
+
//# sourceMappingURL=normalize-http-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-http-validation.d.ts","sourceRoot":"","sources":["../src/normalize-http-validation.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAG9B,gFAAgF;AAChF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAavE;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CASpE"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { add } from "./normalize-pass-utils.js";
|
|
2
|
+
import { referenceFor } from "./normalize-reference-index.js";
|
|
3
|
+
import { mappingCompatible, schema, schemaEquivalent } from "./normalize-compat.js";
|
|
4
|
+
import { isErrorDescriptorLike, isRecord } from "./normalize-utils.js";
|
|
5
|
+
import { NORMALIZE_CODES, } from "./normalize-types.js";
|
|
6
|
+
const RESERVED_ROUTE_MESSAGE = 'Routes under "/_relkit" are framework-reserved.';
|
|
7
|
+
/** Checks route inputs, responses, and function-backed middleware contracts. */
|
|
8
|
+
export function validateHttpCompatibility(work) {
|
|
9
|
+
for (const route of work.descriptors.filter((entry) => entry.kind === "route")) {
|
|
10
|
+
const value = isRecord(route.value) ? route.value : {};
|
|
11
|
+
const path = typeof value.path === "string" ? value.path : "";
|
|
12
|
+
if (path === "/_relkit" || path.startsWith("/_relkit/"))
|
|
13
|
+
add(work, route, NORMALIZE_CODES.reservedRoute, RESERVED_ROUTE_MESSAGE);
|
|
14
|
+
if (value.raw === true)
|
|
15
|
+
continue;
|
|
16
|
+
const target = referenceFor(work, value.target, "function");
|
|
17
|
+
const targetValue = isRecord(target?.value) ? target.value : undefined;
|
|
18
|
+
const inputReason = mappingCompatible(value.request, targetValue?.input);
|
|
19
|
+
if (inputReason !== undefined)
|
|
20
|
+
add(work, route, NORMALIZE_CODES.mapping, inputReason);
|
|
21
|
+
validateResponses(work, route, targetValue);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** Canonicalizes path parameters so `/orders/:id` and `/orders/:orderId` collide. */
|
|
25
|
+
export function routeCollisionKey(value) {
|
|
26
|
+
return routeCollisionKeys(value)[0] ?? " ";
|
|
27
|
+
}
|
|
28
|
+
/** Returns every normalized runtime method/path variant for collision checks. */
|
|
29
|
+
export function routeCollisionKeys(value) {
|
|
30
|
+
if (!isRecord(value))
|
|
31
|
+
return [" "];
|
|
32
|
+
const method = typeof value.method === "string" ? value.method : "";
|
|
33
|
+
const routePaths = Array.isArray(value.runtimePaths)
|
|
34
|
+
? value.runtimePaths.filter((entry) => typeof entry === "string")
|
|
35
|
+
: [typeof value.path === "string" ? value.path : ""];
|
|
36
|
+
return [
|
|
37
|
+
...new Set(routePaths.map((routePath) => `${method} ${normalizeRuntimePath(routePath)}`)),
|
|
38
|
+
];
|
|
39
|
+
}
|
|
40
|
+
function normalizeRuntimePath(routePath) {
|
|
41
|
+
const pattern = routePath
|
|
42
|
+
.split("/")
|
|
43
|
+
.map((segment) => {
|
|
44
|
+
if (/^:[^{]+\{\.\+\}$/.test(segment) || segment.startsWith("*"))
|
|
45
|
+
return ":*";
|
|
46
|
+
return segment.startsWith(":") ? ":" : segment;
|
|
47
|
+
})
|
|
48
|
+
.join("/");
|
|
49
|
+
return pattern;
|
|
50
|
+
}
|
|
51
|
+
function validateResponses(work, route, target) {
|
|
52
|
+
const responses = isRecord(route.value) && Array.isArray(route.value.responses) ? route.value.responses : [];
|
|
53
|
+
const seen = new Set();
|
|
54
|
+
for (const response of responses) {
|
|
55
|
+
if (!isRecord(response))
|
|
56
|
+
continue;
|
|
57
|
+
const responseId = typeof response.id === "string" ? response.id : "";
|
|
58
|
+
if (seen.has(responseId))
|
|
59
|
+
add(work, route, NORMALIZE_CODES.response, `Route response "${responseId}" is repeated.`);
|
|
60
|
+
seen.add(responseId);
|
|
61
|
+
if (response.kind === "error") {
|
|
62
|
+
const errorId = typeof response.errorId === "string" ? response.errorId : "";
|
|
63
|
+
const errors = Array.isArray(target?.errors) ? target.errors : [];
|
|
64
|
+
const declared = errors.find((error) => isErrorDescriptorLike(error) && error.id === errorId);
|
|
65
|
+
if (declared === undefined) {
|
|
66
|
+
add(work, route, NORMALIZE_CODES.response, `Route response error "${errorId}" is not declared by its target.`);
|
|
67
|
+
}
|
|
68
|
+
else if (response.schema !== undefined &&
|
|
69
|
+
isErrorDescriptorLike(declared) &&
|
|
70
|
+
schema(response.schema).ok &&
|
|
71
|
+
schema(declared.data).ok &&
|
|
72
|
+
!schemaEquivalent(response.schema, declared.data)) {
|
|
73
|
+
add(work, route, NORMALIZE_CODES.response, `Route response "${responseId}" does not match its declared error schema.`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else if (response.schema !== undefined &&
|
|
77
|
+
(response.kind === "success" || response.kind === "response") &&
|
|
78
|
+
target?.output !== undefined &&
|
|
79
|
+
schema(response.schema).ok &&
|
|
80
|
+
schema(target.output).ok &&
|
|
81
|
+
!schemaEquivalent(response.schema, target.output)) {
|
|
82
|
+
add(work, route, NORMALIZE_CODES.response, `Route response "${responseId}" does not match target output.`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=normalize-http-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-http-validation.js","sourceRoot":"","sources":["../src/normalize-http-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function rewriteIdentityValues(value: unknown, identities: ReadonlyMap<string, string>, active: Set<object>): unknown;
|
|
2
|
+
export declare function rewriteIdentityRef(value: unknown, identities: ReadonlyMap<string, string>, kind: string, fallback: string): unknown;
|
|
3
|
+
//# sourceMappingURL=normalize-identity-rewrite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-identity-rewrite.d.ts","sourceRoot":"","sources":["../src/normalize-identity-rewrite.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAClB,OAAO,CAqBT;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAIT"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isRecord } from "./normalize-utils.js";
|
|
2
|
+
export function rewriteIdentityValues(value, identities, active) {
|
|
3
|
+
if (Array.isArray(value)) {
|
|
4
|
+
const result = value.map((entry) => rewriteIdentityValues(entry, identities, active));
|
|
5
|
+
return result.some((entry, index) => entry !== value[index]) ? result : value;
|
|
6
|
+
}
|
|
7
|
+
if (!isRecord(value) || active.has(value))
|
|
8
|
+
return value;
|
|
9
|
+
active.add(value);
|
|
10
|
+
let changed = false;
|
|
11
|
+
const result = { ...value };
|
|
12
|
+
for (const [key, child] of Object.entries(value)) {
|
|
13
|
+
const mapped = (key === "id" || key === "transformId" || key === "errorId") && typeof child === "string"
|
|
14
|
+
? (identities.get(child) ?? child)
|
|
15
|
+
: rewriteIdentityValues(child, identities, active);
|
|
16
|
+
if (mapped !== child) {
|
|
17
|
+
result[key] = mapped;
|
|
18
|
+
changed = true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
active.delete(value);
|
|
22
|
+
return changed ? result : value;
|
|
23
|
+
}
|
|
24
|
+
export function rewriteIdentityRef(value, identities, kind, fallback) {
|
|
25
|
+
const ref = rewriteIdentityValues(value, identities, new Set());
|
|
26
|
+
if (!isRecord(ref))
|
|
27
|
+
return { kind, id: fallback };
|
|
28
|
+
return { ...ref, kind: typeof ref.kind === "string" ? ref.kind : kind, id: ref.id ?? fallback };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=normalize-identity-rewrite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-identity-rewrite.js","sourceRoot":"","sources":["../src/normalize-identity-rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,UAAU,qBAAqB,CACnC,KAAc,EACd,UAAuC,EACvC,MAAmB;IAEnB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,MAAM,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,MAAM,GACV,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,SAAS,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ;YACvF,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAClC,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,UAAuC,EACvC,IAAY,EACZ,QAAgB;IAEhB,MAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IAClD,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC;AAClG,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type NormalizedDescriptor, type NormalizationWork } from "./normalize-types.js";
|
|
2
|
+
export declare function validateJob(work: NormalizationWork, descriptor: NormalizedDescriptor, value: Record<string, any>): void;
|
|
3
|
+
//# sourceMappingURL=normalize-job-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-job-validation.d.ts","sourceRoot":"","sources":["../src/normalize-job-validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAG9B,wBAAgB,WAAW,CACzB,IAAI,EAAE,iBAAiB,EACvB,UAAU,EAAE,oBAAoB,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,IAAI,CAgCN"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cronLike } from "./normalize-compat.js";
|
|
2
|
+
import { add } from "./normalize-pass-utils.js";
|
|
3
|
+
import { NORMALIZE_CODES, } from "./normalize-types.js";
|
|
4
|
+
import { id, isRecord, json, positive, text } from "./normalize-utils.js";
|
|
5
|
+
export function validateJob(work, descriptor, value) {
|
|
6
|
+
if (value.schedule !== undefined) {
|
|
7
|
+
if (!Array.isArray(value.schedule))
|
|
8
|
+
add(work, descriptor, NORMALIZE_CODES.schedule, "Schedules must be an array.");
|
|
9
|
+
const ids = new Set();
|
|
10
|
+
for (const schedule of Array.isArray(value.schedule) ? value.schedule : []) {
|
|
11
|
+
const scheduleId = isRecord(schedule) ? id(schedule.id) : undefined;
|
|
12
|
+
const unique = scheduleId !== undefined && !ids.has(scheduleId);
|
|
13
|
+
if (scheduleId !== undefined)
|
|
14
|
+
ids.add(scheduleId);
|
|
15
|
+
const valid = unique &&
|
|
16
|
+
isRecord(schedule) &&
|
|
17
|
+
cronLike(schedule.cron) &&
|
|
18
|
+
text(schedule.timezone) !== undefined &&
|
|
19
|
+
["skip", "allow"].includes(schedule.overlap) &&
|
|
20
|
+
json(schedule.input);
|
|
21
|
+
if (!valid)
|
|
22
|
+
add(work, descriptor, NORMALIZE_CODES.schedule, "Schedule must have a five-field cron, timezone, overlap policy, and JSON input.");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (value.idempotency !== undefined &&
|
|
26
|
+
(!isRecord(value.idempotency) ||
|
|
27
|
+
text(value.idempotency.key) === undefined ||
|
|
28
|
+
!positive(value.idempotency.retentionMs)))
|
|
29
|
+
add(work, descriptor, NORMALIZE_CODES.idempotency, "Idempotency definition is invalid.");
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=normalize-job-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-job-validation.js","sourceRoot":"","sources":["../src/normalize-job-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EACL,eAAe,GAGhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,UAAU,WAAW,CACzB,IAAuB,EACvB,UAAgC,EAChC,KAA0B;IAE1B,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;YAChC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,MAAM,MAAM,GAAG,UAAU,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,UAAU,KAAK,SAAS;gBAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,KAAK,GACT,MAAM;gBACN,QAAQ,CAAC,QAAQ,CAAC;gBAClB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS;gBACrC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK;gBACR,GAAG,CACD,IAAI,EACJ,UAAU,EACV,eAAe,CAAC,QAAQ,EACxB,iFAAiF,CAClF,CAAC;QACN,CAAC;IACH,CAAC;IACD,IACE,KAAK,CAAC,WAAW,KAAK,SAAS;QAC/B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS;YACzC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAE3C,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NormalizedDescriptor } from "./normalize-types.js";
|
|
2
|
+
export interface CompileModelConfiguration {
|
|
3
|
+
readonly defaultProvider: string;
|
|
4
|
+
readonly defaultModel: string;
|
|
5
|
+
readonly providers: ReadonlyMap<string, string | undefined>;
|
|
6
|
+
}
|
|
7
|
+
export interface ModelSelectionDiagnostic {
|
|
8
|
+
readonly code: "RELKIT_MODEL_PROVIDER_CONFIGURATION_INVALID" | "RELKIT_MODEL_SELECTOR_INVALID" | "RELKIT_MODEL_PROVIDER_UNKNOWN" | "RELKIT_MODEL_PROVIDER_DEFAULT_MISSING";
|
|
9
|
+
readonly message: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function readModelConfigurations(descriptors: readonly NormalizedDescriptor[]): readonly {
|
|
12
|
+
readonly configuration?: CompileModelConfiguration;
|
|
13
|
+
readonly error?: ModelSelectionDiagnostic;
|
|
14
|
+
}[];
|
|
15
|
+
export declare function resolveCompiledModel(selector: unknown, configuration: CompileModelConfiguration): ModelSelectionDiagnostic | undefined;
|
|
16
|
+
export declare function normalizeSelector(value: unknown): string | undefined;
|
|
17
|
+
//# sourceMappingURL=normalize-model-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-model-selection.d.ts","sourceRoot":"","sources":["../src/normalize-model-selection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EACT,6CAA6C,GAC7C,+BAA+B,GAC/B,+BAA+B,GAC/B,uCAAuC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS;IAC9F,QAAQ,CAAC,aAAa,CAAC,EAAE,yBAAyB,CAAC;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC;CAC3C,EAAE,CAYF;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EACjB,aAAa,EAAE,yBAAyB,GACvC,wBAAwB,GAAG,SAAS,CAsBtC;AAyCD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUpE"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { normalizeId } from "@relkit/contracts";
|
|
2
|
+
import { isRecord } from "./normalize-utils.js";
|
|
3
|
+
export function readModelConfigurations(descriptors) {
|
|
4
|
+
return descriptors
|
|
5
|
+
.filter((descriptor) => descriptor.kind === "app")
|
|
6
|
+
.flatMap((descriptor) => {
|
|
7
|
+
const value = isRecord(descriptor.value) ? descriptor.value : {};
|
|
8
|
+
const models = isRecord(value.models) ? value.models : {};
|
|
9
|
+
return Object.values(models).flatMap((binding) => {
|
|
10
|
+
const adapter = isRecord(binding) && isRecord(binding.adapter) ? binding.adapter : {};
|
|
11
|
+
if (adapter.adapter !== "ai-sdk" || !isRecord(adapter.configuration))
|
|
12
|
+
return [];
|
|
13
|
+
return [parseModelConfiguration(adapter.configuration)];
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export function resolveCompiledModel(selector, configuration) {
|
|
18
|
+
const normalized = normalizeSelector(selector);
|
|
19
|
+
if (selector !== undefined && normalized === undefined) {
|
|
20
|
+
return { code: "RELKIT_MODEL_SELECTOR_INVALID", message: "Model selector is invalid." };
|
|
21
|
+
}
|
|
22
|
+
const selected = normalized ?? `${configuration.defaultProvider}:${configuration.defaultModel}`;
|
|
23
|
+
const separator = selected.indexOf(":");
|
|
24
|
+
const provider = separator < 0 ? selected : selected.slice(0, separator);
|
|
25
|
+
const defaultModel = configuration.providers.get(provider);
|
|
26
|
+
if (defaultModel === undefined && !configuration.providers.has(provider)) {
|
|
27
|
+
return {
|
|
28
|
+
code: "RELKIT_MODEL_PROVIDER_UNKNOWN",
|
|
29
|
+
message: `Model provider "${provider}" is not configured.`,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (separator < 0 && defaultModel === undefined) {
|
|
33
|
+
return {
|
|
34
|
+
code: "RELKIT_MODEL_PROVIDER_DEFAULT_MISSING",
|
|
35
|
+
message: `Model provider "${provider}" has no default model.`,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
function parseModelConfiguration(value) {
|
|
41
|
+
if (!isRecord(value))
|
|
42
|
+
return configurationError("modelProviders must be an object");
|
|
43
|
+
const defaultProvider = text(value.defaultProvider);
|
|
44
|
+
const defaultModel = text(value.defaultModel);
|
|
45
|
+
if (defaultProvider === undefined || defaultModel === undefined) {
|
|
46
|
+
return configurationError("modelProviders requires defaultProvider and defaultModel");
|
|
47
|
+
}
|
|
48
|
+
const providers = new Map();
|
|
49
|
+
for (const name of Object.keys(value).filter((key) => key !== "defaultProvider" && key !== "defaultModel")) {
|
|
50
|
+
const provider = stableId(name);
|
|
51
|
+
if (provider === undefined)
|
|
52
|
+
return configurationError("modelProviders has an invalid provider name");
|
|
53
|
+
const entry = value[name];
|
|
54
|
+
if (!isRecord(entry))
|
|
55
|
+
return configurationError(`modelProviders.${name} must be an object`);
|
|
56
|
+
const model = entry.defaultModel === undefined ? undefined : text(entry.defaultModel);
|
|
57
|
+
if (entry.defaultModel !== undefined && model === undefined) {
|
|
58
|
+
return configurationError(`modelProviders.${name}.defaultModel must be non-empty text`);
|
|
59
|
+
}
|
|
60
|
+
providers.set(provider, model);
|
|
61
|
+
}
|
|
62
|
+
const normalizedDefaultProvider = stableId(defaultProvider);
|
|
63
|
+
if (normalizedDefaultProvider === undefined || !providers.has(normalizedDefaultProvider)) {
|
|
64
|
+
return configurationError("modelProviders.defaultProvider is not configured");
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
configuration: {
|
|
68
|
+
defaultProvider: normalizedDefaultProvider,
|
|
69
|
+
defaultModel,
|
|
70
|
+
providers,
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export function normalizeSelector(value) {
|
|
75
|
+
if (value === undefined)
|
|
76
|
+
return undefined;
|
|
77
|
+
if (typeof value !== "string" || value.trim() === "")
|
|
78
|
+
return undefined;
|
|
79
|
+
const selector = value.trim();
|
|
80
|
+
const separator = selector.indexOf(":");
|
|
81
|
+
if (separator < 0)
|
|
82
|
+
return stableId(selector);
|
|
83
|
+
if (separator === 0 || separator !== selector.lastIndexOf(":"))
|
|
84
|
+
return undefined;
|
|
85
|
+
const provider = stableId(selector.slice(0, separator));
|
|
86
|
+
const model = selector.slice(separator + 1).trim();
|
|
87
|
+
return provider === undefined || model === "" ? undefined : `${provider}:${model}`;
|
|
88
|
+
}
|
|
89
|
+
function configurationError(message) {
|
|
90
|
+
return { error: { code: "RELKIT_MODEL_PROVIDER_CONFIGURATION_INVALID", message } };
|
|
91
|
+
}
|
|
92
|
+
function stableId(value) {
|
|
93
|
+
try {
|
|
94
|
+
return normalizeId(value);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function text(value) {
|
|
101
|
+
return typeof value === "string" && value.trim() !== "" ? value.trim() : undefined;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=normalize-model-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-model-selection.js","sourceRoot":"","sources":["../src/normalize-model-selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type GeneratedManifest } from "./generate-manifest.js";
|
|
2
|
+
import type { GeneratedOutputs, NormalizedGraph, NormalizationWork } from "./normalize-types.js";
|
|
3
|
+
export declare function makeOutputs(graph: NormalizedGraph, hash: string, diagnostics: readonly unknown[], work: NormalizationWork, manifest?: GeneratedManifest): GeneratedOutputs;
|
|
4
|
+
//# sourceMappingURL=normalize-output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-output.d.ts","sourceRoot":"","sources":["../src/normalize-output.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,SAAS,OAAO,EAAE,EAC/B,IAAI,EAAE,iBAAiB,EACvB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,gBAAgB,CA0BlB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { generateClient, generateClientContractDocument, generateContract, } from "@relkit/client-generator";
|
|
2
|
+
import { canonicalJson } from "@relkit/contracts";
|
|
3
|
+
import { generateOpenApiJson } from "@relkit/openapi";
|
|
4
|
+
import { canonicalGraphJson } from "@relkit/graph";
|
|
5
|
+
import { generateManifest } from "./generate-manifest.js";
|
|
6
|
+
import { isRecord } from "./normalize-utils.js";
|
|
7
|
+
export function makeOutputs(graph, hash, diagnostics, work, manifest) {
|
|
8
|
+
const generatedManifest = manifest ??
|
|
9
|
+
generateManifest({
|
|
10
|
+
graph,
|
|
11
|
+
graphHash: hash,
|
|
12
|
+
descriptors: work.descriptors,
|
|
13
|
+
middleware: [...work.middlewareReferences.values()],
|
|
14
|
+
transforms: [...work.transformReferences.values()],
|
|
15
|
+
diagnostics: diagnostics.filter(isDiagnostic),
|
|
16
|
+
...(work.input.projectRoot === undefined ? {} : { projectRoot: work.input.projectRoot }),
|
|
17
|
+
});
|
|
18
|
+
return Object.freeze({
|
|
19
|
+
graph: `${canonicalGraphJson(graph, work.input.projectRoot === undefined ? {} : { projectRoot: work.input.projectRoot })}\n`,
|
|
20
|
+
manifest: generatedManifest.activatable ? generatedManifest.source : "",
|
|
21
|
+
diagnostics: `${canonicalJson(diagnostics)}\n`,
|
|
22
|
+
openapi: generatedOpenApi(graph, diagnostics),
|
|
23
|
+
client: generatedClient(graph, diagnostics),
|
|
24
|
+
contract: hasErrors(diagnostics) ? "" : generateContract(graph),
|
|
25
|
+
clientContract: hasErrors(diagnostics)
|
|
26
|
+
? ""
|
|
27
|
+
: generateClientContractDocument(graph, hash),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function isDiagnostic(value) {
|
|
31
|
+
return isRecord(value) && typeof value.code === "string" && typeof value.severity === "string";
|
|
32
|
+
}
|
|
33
|
+
function generatedOpenApi(graph, diagnostics) {
|
|
34
|
+
return hasErrors(diagnostics) ? "" : generateOpenApiJson(graph);
|
|
35
|
+
}
|
|
36
|
+
function generatedClient(graph, diagnostics) {
|
|
37
|
+
return hasErrors(diagnostics) ? "" : generateClient(graph);
|
|
38
|
+
}
|
|
39
|
+
function hasErrors(diagnostics) {
|
|
40
|
+
return diagnostics.some((diagnostic) => isRecord(diagnostic) && diagnostic.severity === "error");
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=normalize-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-output.js","sourceRoot":"","sources":["../src/normalize-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type NormalizationWork } from "./normalize-types.js";
|
|
2
|
+
export { passSchemas } from "./normalize-schema-validation.js";
|
|
3
|
+
export declare function passExtract(work: NormalizationWork): void;
|
|
4
|
+
export declare function passSources(work: NormalizationWork): void;
|
|
5
|
+
export declare function passNormalize(work: NormalizationWork): void;
|
|
6
|
+
export declare function passLocal(work: NormalizationWork): void;
|
|
7
|
+
export { passIndex } from "./normalize-reference-index.js";
|
|
8
|
+
export { passReferences } from "./normalize-reference-validation.js";
|
|
9
|
+
//# sourceMappingURL=normalize-pass-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-pass-core.d.ts","sourceRoot":"","sources":["../src/normalize-pass-core.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI/E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAYzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAKzD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAgD3D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAwCvD;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { extractDescriptors } from "./discovery/extract.js";
|
|
2
|
+
import { id, isRecord, locationFor, method, path, positive, profile, text, } from "./normalize-utils.js";
|
|
3
|
+
import { add, isDescriptorLike, normalizeRetry, normalizeSchedule, toDescriptor, validateRetry, } from "./normalize-pass-utils.js";
|
|
4
|
+
import { validateJob } from "./normalize-job-validation.js";
|
|
5
|
+
import { bindRouteFile } from "./normalize-route-file.js";
|
|
6
|
+
import { inferRouteContract } from "./normalize-route-inference.js";
|
|
7
|
+
import { validateRateLimit } from "./normalize-rate-limit.js";
|
|
8
|
+
import { normalizeEventListeners } from "./normalize-event-listener.js";
|
|
9
|
+
import { normalizeSourceIdentities } from "./normalize-source-identities.js";
|
|
10
|
+
import { NORMALIZE_CODES } from "./normalize-types.js";
|
|
11
|
+
import { normalizeSelector } from "./normalize-model-selection.js";
|
|
12
|
+
import { isMiddlewarePath } from "./middleware-coverage.js";
|
|
13
|
+
export { passSchemas } from "./normalize-schema-validation.js";
|
|
14
|
+
export function passExtract(work) {
|
|
15
|
+
const input = work.input;
|
|
16
|
+
const extracted = input.extracted ??
|
|
17
|
+
(input.evaluator !== undefined
|
|
18
|
+
? extractDescriptors(input.evaluator, input)
|
|
19
|
+
: input.modules !== undefined
|
|
20
|
+
? extractDescriptors(input.modules, input)
|
|
21
|
+
: undefined);
|
|
22
|
+
work.descriptors = (extracted ?? input.descriptors ?? []).map((entry, index) => toDescriptor(entry, input, index));
|
|
23
|
+
}
|
|
24
|
+
export function passSources(work) {
|
|
25
|
+
work.descriptors = work.descriptors.map((descriptor) => ({
|
|
26
|
+
...descriptor,
|
|
27
|
+
source: locationFor(descriptor, work.input),
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
export function passNormalize(work) {
|
|
31
|
+
const prepared = work.descriptors.map((descriptor) => {
|
|
32
|
+
const value = isRecord(descriptor.value) ? { ...descriptor.value } : {};
|
|
33
|
+
if (descriptor.kind === "route")
|
|
34
|
+
bindRouteFile(work, descriptor, value);
|
|
35
|
+
return { ...descriptor, value };
|
|
36
|
+
});
|
|
37
|
+
const identified = normalizeSourceIdentities(work, prepared);
|
|
38
|
+
work.descriptors = normalizeEventListeners(work, identified.map((descriptor) => {
|
|
39
|
+
const value = isRecord(descriptor.value) ? { ...descriptor.value } : {};
|
|
40
|
+
const nextId = id(value.id ?? descriptor.id);
|
|
41
|
+
if (nextId === undefined)
|
|
42
|
+
add(work, descriptor, NORMALIZE_CODES.id, "Descriptor ID is not a valid stable ID.");
|
|
43
|
+
value.id = nextId ?? descriptor.id;
|
|
44
|
+
if (descriptor.kind === "route")
|
|
45
|
+
inferRouteContract(work, descriptor, value);
|
|
46
|
+
for (const key of ["profile"]) {
|
|
47
|
+
if (value[key] !== undefined) {
|
|
48
|
+
const nextProfile = profile(value[key]);
|
|
49
|
+
if (nextProfile === undefined) {
|
|
50
|
+
add(work, descriptor, NORMALIZE_CODES.profile, `${key} is not a valid stable profile ID.`);
|
|
51
|
+
if (key === "profile")
|
|
52
|
+
delete value[key];
|
|
53
|
+
else
|
|
54
|
+
value[key] = "";
|
|
55
|
+
}
|
|
56
|
+
else
|
|
57
|
+
value[key] = nextProfile;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (value.model !== undefined) {
|
|
61
|
+
const model = normalizeSelector(value.model);
|
|
62
|
+
if (model === undefined) {
|
|
63
|
+
add(work, descriptor, NORMALIZE_CODES.model, "Model selector is invalid.");
|
|
64
|
+
delete value.model;
|
|
65
|
+
}
|
|
66
|
+
else
|
|
67
|
+
value.model = model;
|
|
68
|
+
}
|
|
69
|
+
if (isRecord(value.retry))
|
|
70
|
+
value.retry = normalizeRetry(value.retry);
|
|
71
|
+
if (Array.isArray(value.schedule))
|
|
72
|
+
value.schedule = value.schedule.map(normalizeSchedule);
|
|
73
|
+
if (isRecord(value.idempotency))
|
|
74
|
+
value.idempotency = {
|
|
75
|
+
...value.idempotency,
|
|
76
|
+
key: text(value.idempotency.key) ?? value.idempotency.key,
|
|
77
|
+
};
|
|
78
|
+
return { ...descriptor, id: nextId ?? descriptor.id, value };
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
export function passLocal(work) {
|
|
82
|
+
for (const descriptor of work.descriptors) {
|
|
83
|
+
const value = isRecord(descriptor.value) ? descriptor.value : {};
|
|
84
|
+
if (!isDescriptorLike(descriptor)) {
|
|
85
|
+
add(work, descriptor, NORMALIZE_CODES.descriptor, "Exported value is not a RelKit descriptor.");
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (descriptor.kind === "route") {
|
|
89
|
+
if (method(value.method) === undefined)
|
|
90
|
+
add(work, descriptor, NORMALIZE_CODES.method, "HTTP method is invalid.");
|
|
91
|
+
if (path(value.path) === undefined)
|
|
92
|
+
add(work, descriptor, NORMALIZE_CODES.path, "HTTP path is invalid.");
|
|
93
|
+
validateRateLimit(work, descriptor, value.rateLimit);
|
|
94
|
+
}
|
|
95
|
+
if (descriptor.kind === "middleware" && !isMiddlewarePath(value.path)) {
|
|
96
|
+
add(work, descriptor, NORMALIZE_CODES.path, "Middleware path is invalid.");
|
|
97
|
+
}
|
|
98
|
+
if (descriptor.kind === "job" || descriptor.kind === "event-trigger")
|
|
99
|
+
validateRetry(work, descriptor, value, descriptor.kind === "job");
|
|
100
|
+
if (descriptor.kind === "job")
|
|
101
|
+
validateJob(work, descriptor, value);
|
|
102
|
+
if (descriptor.kind === "event" && !positive(value.version))
|
|
103
|
+
add(work, descriptor, NORMALIZE_CODES.descriptor, "Event version must be a positive integer.");
|
|
104
|
+
if (descriptor.kind === "agent" &&
|
|
105
|
+
(!positive(value.limits?.maxSteps) ||
|
|
106
|
+
!positive(value.limits?.maxToolCalls) ||
|
|
107
|
+
!positive(value.limits?.timeoutMs)))
|
|
108
|
+
add(work, descriptor, NORMALIZE_CODES.descriptor, "Agent limits must be positive integers.");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export { passIndex } from "./normalize-reference-index.js";
|
|
112
|
+
export { passReferences } from "./normalize-reference-validation.js";
|
|
113
|
+
//# sourceMappingURL=normalize-pass-core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-pass-core.js","sourceRoot":"","sources":["../src/normalize-pass-core.ts"],"names":[],"mappings":"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"}
|