@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,97 @@
|
|
|
1
|
+
import { selectorEntries } from "./normalize-compat.js";
|
|
2
|
+
import { clean } from "./normalize-graph-utils.js";
|
|
3
|
+
import { middlewareForRoute } from "./middleware-coverage.js";
|
|
4
|
+
import { isRecord, refId } from "./normalize-utils.js";
|
|
5
|
+
import { selectedProviderProfile } from "./normalize-graph-app.js";
|
|
6
|
+
export function httpConfig(descriptor, value, work) {
|
|
7
|
+
return clean({
|
|
8
|
+
method: value.method,
|
|
9
|
+
path: value.path,
|
|
10
|
+
...(value.raw === true ? { rawHandler: true } : {}),
|
|
11
|
+
...(typeof value.title === "string" ? { title: value.title } : {}),
|
|
12
|
+
...(typeof value.description === "string" ? { description: value.description } : {}),
|
|
13
|
+
...(Array.isArray(value.tags) ? { tags: clean(value.tags) } : {}),
|
|
14
|
+
runtimePaths: value.runtimePaths,
|
|
15
|
+
request: value.request,
|
|
16
|
+
responses: responses(value.responses, descriptor.id, work),
|
|
17
|
+
middleware: middlewareForRoute(descriptor, work),
|
|
18
|
+
transforms: transforms(value.request, work),
|
|
19
|
+
rateLimit: rateLimit(value.rateLimit),
|
|
20
|
+
maxBodyBytes: value.maxBodyBytes,
|
|
21
|
+
timeoutMs: value.timeoutMs,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function rateLimit(value) {
|
|
25
|
+
if (!isRecord(value))
|
|
26
|
+
return undefined;
|
|
27
|
+
return clean({
|
|
28
|
+
limit: value.limit,
|
|
29
|
+
windowMs: value.windowMs,
|
|
30
|
+
key: value.key,
|
|
31
|
+
storeId: refId(value.store),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export function eventConfig(descriptor, value, work) {
|
|
35
|
+
const expansion = work.selectorExpansions.get(descriptor.id) ?? selectorEntries(value.selector);
|
|
36
|
+
const application = work.descriptors.find((entry) => entry.kind === "app")?.value;
|
|
37
|
+
return clean({
|
|
38
|
+
selector: value.selector,
|
|
39
|
+
expansion: sortEventPairs(expansion),
|
|
40
|
+
delivery: value.delivery,
|
|
41
|
+
profile: selectedProviderProfile(application, "events", typeof value.profile === "string" ? value.profile : undefined),
|
|
42
|
+
retry: value.retry,
|
|
43
|
+
concurrency: value.concurrency,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function responses(value, descriptorId, work) {
|
|
47
|
+
if (!Array.isArray(value))
|
|
48
|
+
return [];
|
|
49
|
+
return value.map((entry) => {
|
|
50
|
+
if (!isRecord(entry))
|
|
51
|
+
return clean(entry);
|
|
52
|
+
const responseId = typeof entry.id === "string" ? entry.id : "";
|
|
53
|
+
return clean({
|
|
54
|
+
...entry,
|
|
55
|
+
schema: work.schemas.get(`${descriptorId}:response:${responseId}`) ?? null,
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function transforms(value, work) {
|
|
60
|
+
const ids = [];
|
|
61
|
+
collectTransforms(value, ids);
|
|
62
|
+
return [...new Set(ids)].map((id) => ({
|
|
63
|
+
id,
|
|
64
|
+
schema: work.schemas.get(`${id}:transform`) ?? null,
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
function collectTransforms(value, ids) {
|
|
68
|
+
if (!isRecord(value))
|
|
69
|
+
return;
|
|
70
|
+
if (value.kind === "transform" && typeof value.transformId === "string") {
|
|
71
|
+
ids.push(value.transformId);
|
|
72
|
+
collectTransforms(value.value, ids);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if ((value.kind === "input" || value.kind === "nested") && isRecord(value.fields)) {
|
|
76
|
+
Object.values(value.fields).forEach((field) => collectTransforms(field, ids));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (value.kind === "optional" || value.kind === "default")
|
|
80
|
+
collectTransforms(value.value, ids);
|
|
81
|
+
}
|
|
82
|
+
function sortEventPairs(values) {
|
|
83
|
+
return [...new Set(values)].sort((left, right) => {
|
|
84
|
+
const a = splitEventPair(left);
|
|
85
|
+
const b = splitEventPair(right);
|
|
86
|
+
return a.id.localeCompare(b.id) || a.version - b.version || left.localeCompare(right);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function splitEventPair(value) {
|
|
90
|
+
const at = value.lastIndexOf("@");
|
|
91
|
+
const version = Number(value.slice(at + 1));
|
|
92
|
+
return {
|
|
93
|
+
id: at < 0 ? value : value.slice(0, at),
|
|
94
|
+
version: Number.isFinite(version) ? version : 0,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=normalize-graph-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-config.js","sourceRoot":"","sources":["../src/normalize-graph-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-edges.d.ts","sourceRoot":"","sources":["../src/normalize-graph-edges.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAwB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS/F,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,EAAE,CA8CpE"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { isRecord, refId } from "./normalize-utils.js";
|
|
2
|
+
import { middlewareForRoute } from "./middleware-coverage.js";
|
|
3
|
+
import { selectedProviderProfile } from "./normalize-graph-app.js";
|
|
4
|
+
const dependencyEdges = {
|
|
5
|
+
jobs: "enqueues-job",
|
|
6
|
+
events: "publishes-event",
|
|
7
|
+
buckets: "uses-bucket",
|
|
8
|
+
cache: "uses-cache",
|
|
9
|
+
agents: "invokes-agent",
|
|
10
|
+
};
|
|
11
|
+
export function buildGraphEdges(work) {
|
|
12
|
+
const edges = [];
|
|
13
|
+
const seen = new Set();
|
|
14
|
+
const add = (kind, from, to, metadata) => {
|
|
15
|
+
if (!to)
|
|
16
|
+
return;
|
|
17
|
+
const key = `${kind}\0${from}\0${to}\0${JSON.stringify(metadata ?? null)}`;
|
|
18
|
+
if (seen.has(key))
|
|
19
|
+
return;
|
|
20
|
+
seen.add(key);
|
|
21
|
+
edges.push({
|
|
22
|
+
kind,
|
|
23
|
+
from,
|
|
24
|
+
to,
|
|
25
|
+
...(typeof metadata === "string" ? { role: metadata } : (metadata ?? {})),
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
for (const descriptor of work.descriptors) {
|
|
29
|
+
const value = isRecord(descriptor.value) ? descriptor.value : {};
|
|
30
|
+
const target = refId(value.target);
|
|
31
|
+
if (target && isTargetingDescriptor(descriptor.kind))
|
|
32
|
+
add("targets-function", descriptor.id, target, "primary");
|
|
33
|
+
if (descriptor.kind === "route") {
|
|
34
|
+
for (const middleware of middlewareForRoute(descriptor, work)) {
|
|
35
|
+
add("uses-middleware", descriptor.id, middleware.id, {
|
|
36
|
+
order: middleware.order,
|
|
37
|
+
match: middleware.match,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const store = isRecord(value.rateLimit) ? refId(value.rateLimit.store) : undefined;
|
|
41
|
+
if (store !== undefined)
|
|
42
|
+
add("uses-cache", descriptor.id, store);
|
|
43
|
+
}
|
|
44
|
+
if (descriptor.kind === "event-trigger")
|
|
45
|
+
addEventEdges(add, descriptor, work);
|
|
46
|
+
if (descriptor.kind === "tool" && target)
|
|
47
|
+
add("exposes-as-tool", target, descriptor.id);
|
|
48
|
+
if (descriptor.kind === "agent")
|
|
49
|
+
addToolEdges(add, descriptor.id, value.tools);
|
|
50
|
+
if (descriptor.kind === "service")
|
|
51
|
+
addServiceEdges(add, descriptor.id, value);
|
|
52
|
+
if (descriptor.kind === "function")
|
|
53
|
+
addDependencyEdges(add, descriptor, value.dependencies);
|
|
54
|
+
if (descriptor.kind === "function" || descriptor.kind === "tool") {
|
|
55
|
+
addHookEdges(add, descriptor, value);
|
|
56
|
+
}
|
|
57
|
+
addProviderEdge(add, descriptor, value, work);
|
|
58
|
+
}
|
|
59
|
+
return edges;
|
|
60
|
+
}
|
|
61
|
+
function addProviderEdge(add, descriptor, value, work) {
|
|
62
|
+
const capability = providerCapability(descriptor.kind);
|
|
63
|
+
if (capability === undefined)
|
|
64
|
+
return;
|
|
65
|
+
const application = work.descriptors.find((entry) => entry.kind === "app")?.value;
|
|
66
|
+
const profile = selectedProviderProfile(application, capability, typeof value.profile === "string" ? value.profile : undefined) ?? "default";
|
|
67
|
+
const bindingId = `provider.${capability}.${profile}`;
|
|
68
|
+
if (work.nodes.some((node) => node.kind === "provider" && node.id === bindingId)) {
|
|
69
|
+
add("uses-provider-profile", descriptor.id, bindingId);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function providerCapability(kind) {
|
|
73
|
+
return {
|
|
74
|
+
bucket: "buckets",
|
|
75
|
+
cache: "cache",
|
|
76
|
+
job: "jobs",
|
|
77
|
+
event: "events",
|
|
78
|
+
"event-trigger": "events",
|
|
79
|
+
agent: "models",
|
|
80
|
+
}[kind];
|
|
81
|
+
}
|
|
82
|
+
function isTargetingDescriptor(kind) {
|
|
83
|
+
return kind === "route" || kind === "event-trigger" || kind === "job" || kind === "tool";
|
|
84
|
+
}
|
|
85
|
+
function addHookEdges(add, descriptor, value) {
|
|
86
|
+
for (const phase of ["before", "after"]) {
|
|
87
|
+
const hook = value[phase === "before" ? "onBefore" : "onAfter"];
|
|
88
|
+
if (typeof hook === "function" || (isRecord(hook) && hook.$relkit === "function")) {
|
|
89
|
+
add("uses-hook", descriptor.id, `${descriptor.id}.${phase}`, { phase });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function addEventEdges(add, descriptor, work) {
|
|
94
|
+
const expansion = work.selectorExpansions.get(descriptor.id) ?? [];
|
|
95
|
+
for (const pair of expansion) {
|
|
96
|
+
const at = pair.lastIndexOf("@");
|
|
97
|
+
add("listens-to-event", descriptor.id, at < 0 ? pair : pair.slice(0, at));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function addDependencyEdges(add, descriptor, dependencies) {
|
|
101
|
+
if (!isRecord(dependencies))
|
|
102
|
+
return;
|
|
103
|
+
for (const [name, refs] of Object.entries(dependencies)) {
|
|
104
|
+
const kind = dependencyEdges[name];
|
|
105
|
+
if (kind === undefined || !isRecord(refs))
|
|
106
|
+
continue;
|
|
107
|
+
for (const reference of Object.values(refs)) {
|
|
108
|
+
const target = refId(reference);
|
|
109
|
+
if (target)
|
|
110
|
+
add(kind, descriptor.id, target);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function addToolEdges(add, agentId, tools) {
|
|
115
|
+
if (!Array.isArray(tools))
|
|
116
|
+
return;
|
|
117
|
+
for (const tool of tools) {
|
|
118
|
+
const toolId = refId(tool);
|
|
119
|
+
if (toolId)
|
|
120
|
+
add("uses-tool", agentId, toolId);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function addServiceEdges(add, serviceId, value) {
|
|
124
|
+
if (isRecord(value.functions)) {
|
|
125
|
+
for (const [order, [member, target]] of Object.entries(value.functions).entries()) {
|
|
126
|
+
const functionId = refId(target);
|
|
127
|
+
if (functionId !== undefined)
|
|
128
|
+
add("contains-function", serviceId, functionId, { member, order });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (Array.isArray(value.middleware)) {
|
|
132
|
+
for (const [order, entry] of value.middleware.entries()) {
|
|
133
|
+
const middlewareId = refId(entry);
|
|
134
|
+
if (middlewareId !== undefined)
|
|
135
|
+
add("uses-service-middleware", serviceId, middlewareId, { order });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=normalize-graph-edges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-edges.js","sourceRoot":"","sources":["../src/normalize-graph-edges.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-nodes.d.ts","sourceRoot":"","sources":["../src/normalize-graph-nodes.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAwB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,EAAE,CAgBpE"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { clean } from "./normalize-graph-utils.js";
|
|
2
|
+
import { environmentMetadata, environmentNodes, providerBindingIds, } from "./normalize-graph-app.js";
|
|
3
|
+
import { eventConfig, httpConfig } from "./normalize-graph-config.js";
|
|
4
|
+
import { providerNodes } from "./normalize-graph-providers.js";
|
|
5
|
+
import { selectedProviderProfile } from "./normalize-graph-app.js";
|
|
6
|
+
import { generatedAgentMarker, generatedFunctionNode } from "./normalize-generated-function.js";
|
|
7
|
+
import { serviceNodeData } from "./normalize-graph-services.js";
|
|
8
|
+
import { isRecord, refId } from "./normalize-utils.js";
|
|
9
|
+
export function buildGraphNodes(work) {
|
|
10
|
+
const nodes = [];
|
|
11
|
+
const middlewareOrder = new Map([...work.middlewareReferences.keys()].sort().map((id, order) => [id, order]));
|
|
12
|
+
for (const descriptor of work.descriptors) {
|
|
13
|
+
const node = nodeFor(descriptor, work, middlewareOrder);
|
|
14
|
+
if (node !== undefined)
|
|
15
|
+
nodes.push(node);
|
|
16
|
+
nodes.push(...hookNodes(descriptor));
|
|
17
|
+
if (descriptor.kind === "agent")
|
|
18
|
+
nodes.push(generatedFunctionNode(descriptor, work));
|
|
19
|
+
if (descriptor.kind === "app") {
|
|
20
|
+
nodes.push(...environmentNodes(descriptor));
|
|
21
|
+
nodes.push(...providerNodes(descriptor));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return nodes;
|
|
25
|
+
}
|
|
26
|
+
function nodeFor(descriptor, work, middlewareOrder) {
|
|
27
|
+
const value = isRecord(descriptor.value) ? descriptor.value : {};
|
|
28
|
+
const base = { id: descriptor.id, source: descriptor.source };
|
|
29
|
+
const application = work.descriptors.find((entry) => entry.kind === "app")?.value;
|
|
30
|
+
switch (descriptor.kind) {
|
|
31
|
+
case "app":
|
|
32
|
+
return {
|
|
33
|
+
...base,
|
|
34
|
+
kind: "app",
|
|
35
|
+
environment: environmentMetadata(value.env),
|
|
36
|
+
providerBindings: providerBindingIds(value),
|
|
37
|
+
defaults: clean(value.defaults),
|
|
38
|
+
};
|
|
39
|
+
case "route":
|
|
40
|
+
return {
|
|
41
|
+
...base,
|
|
42
|
+
kind: "trigger",
|
|
43
|
+
triggerType: "http",
|
|
44
|
+
targetFunctionId: value.raw === true ? descriptor.id : (refId(value.target) ?? ""),
|
|
45
|
+
config: httpConfig(descriptor, value, work),
|
|
46
|
+
};
|
|
47
|
+
case "event-trigger":
|
|
48
|
+
return {
|
|
49
|
+
...base,
|
|
50
|
+
kind: "trigger",
|
|
51
|
+
triggerType: "event",
|
|
52
|
+
targetFunctionId: refId(value.target) ?? "",
|
|
53
|
+
config: eventConfig(descriptor, value, work),
|
|
54
|
+
};
|
|
55
|
+
case "function":
|
|
56
|
+
return {
|
|
57
|
+
...base,
|
|
58
|
+
kind: "function",
|
|
59
|
+
input: schema(work, descriptor, "input"),
|
|
60
|
+
output: schema(work, descriptor, "output"),
|
|
61
|
+
errors: clean(value.errors),
|
|
62
|
+
dependencies: clean(value.dependencies),
|
|
63
|
+
timeoutMs: clean(value.timeoutMs),
|
|
64
|
+
concurrency: clean(value.concurrency),
|
|
65
|
+
generated: clean(value.generated),
|
|
66
|
+
};
|
|
67
|
+
case "job":
|
|
68
|
+
return {
|
|
69
|
+
...base,
|
|
70
|
+
kind: "job",
|
|
71
|
+
input: schema(work, descriptor, "input"),
|
|
72
|
+
targetFunctionId: refId(value.target) ?? "",
|
|
73
|
+
profile: selectedProviderProfile(application, "jobs", text(value.profile)) ?? "default",
|
|
74
|
+
retry: clean(value.retry),
|
|
75
|
+
timeoutMs: clean(value.timeoutMs),
|
|
76
|
+
concurrency: clean(value.concurrency),
|
|
77
|
+
schedule: clean(value.schedule),
|
|
78
|
+
idempotency: clean(value.idempotency),
|
|
79
|
+
};
|
|
80
|
+
case "event":
|
|
81
|
+
return {
|
|
82
|
+
...base,
|
|
83
|
+
kind: "event",
|
|
84
|
+
version: typeof value.version === "number" ? value.version : 0,
|
|
85
|
+
payload: schema(work, descriptor, "payload"),
|
|
86
|
+
sensitiveFields: clean(value.sensitiveFields),
|
|
87
|
+
profile: selectedProviderProfile(application, "events", text(value.profile)) ?? "default",
|
|
88
|
+
};
|
|
89
|
+
case "bucket":
|
|
90
|
+
return {
|
|
91
|
+
...base,
|
|
92
|
+
kind: "bucket",
|
|
93
|
+
profile: selectedProviderProfile(application, "buckets", text(value.profile)) ?? "default",
|
|
94
|
+
visibility: value.visibility ?? "private",
|
|
95
|
+
maxObjectBytes: clean(value.maxObjectBytes),
|
|
96
|
+
allowedContentTypes: clean(value.allowedContentTypes),
|
|
97
|
+
};
|
|
98
|
+
case "cache":
|
|
99
|
+
return {
|
|
100
|
+
...base,
|
|
101
|
+
kind: "cache",
|
|
102
|
+
key: schema(work, descriptor, "key"),
|
|
103
|
+
value: schema(work, descriptor, "value"),
|
|
104
|
+
profile: selectedProviderProfile(application, "cache", text(value.profile)) ?? "default",
|
|
105
|
+
defaultTtlMs: clean(value.defaultTtlMs),
|
|
106
|
+
maxTtlMs: clean(value.maxTtlMs),
|
|
107
|
+
};
|
|
108
|
+
case "tool":
|
|
109
|
+
return {
|
|
110
|
+
...base,
|
|
111
|
+
kind: "tool",
|
|
112
|
+
targetFunctionId: refId(value.target) ?? "",
|
|
113
|
+
description: typeof value.description === "string" ? value.description : "",
|
|
114
|
+
sideEffect: value.sideEffect ?? "none",
|
|
115
|
+
approval: value.approval ?? "never",
|
|
116
|
+
mcp: value.mcp !== false,
|
|
117
|
+
timeoutMs: clean(value.timeoutMs),
|
|
118
|
+
};
|
|
119
|
+
case "agent":
|
|
120
|
+
return {
|
|
121
|
+
...base,
|
|
122
|
+
kind: "agent",
|
|
123
|
+
input: schema(work, descriptor, "input"),
|
|
124
|
+
output: schema(work, descriptor, "output"),
|
|
125
|
+
...(typeof value.model === "string" ? { model: value.model } : {}),
|
|
126
|
+
instructions: isRecord(value.instructions) && value.instructions.kind === "prompt"
|
|
127
|
+
? { promptId: refId(value.instructions) ?? "" }
|
|
128
|
+
: clean(value.instructions),
|
|
129
|
+
toolIds: toolIds(value.tools),
|
|
130
|
+
limits: clean(value.limits),
|
|
131
|
+
generatedFunction: generatedAgentMarker(descriptor.id),
|
|
132
|
+
profile: selectedProviderProfile(application, "models", text(value.profile)) ?? "default",
|
|
133
|
+
};
|
|
134
|
+
case "service":
|
|
135
|
+
return { ...base, kind: "service", ...serviceNodeData(value) };
|
|
136
|
+
case "middleware":
|
|
137
|
+
return {
|
|
138
|
+
...base,
|
|
139
|
+
kind: "middleware",
|
|
140
|
+
path: typeof value.path === "string" ? value.path : "",
|
|
141
|
+
order: middlewareOrder.get(descriptor.id) ?? 0,
|
|
142
|
+
};
|
|
143
|
+
default:
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
function text(value) {
|
|
148
|
+
return typeof value === "string" ? value : undefined;
|
|
149
|
+
}
|
|
150
|
+
function hookNodes(descriptor) {
|
|
151
|
+
if (descriptor.kind !== "function" && descriptor.kind !== "tool")
|
|
152
|
+
return [];
|
|
153
|
+
const value = isRecord(descriptor.value) ? descriptor.value : {};
|
|
154
|
+
return ["before", "after"].flatMap((phase) => {
|
|
155
|
+
const hook = value[phase === "before" ? "onBefore" : "onAfter"];
|
|
156
|
+
if (!isExecutableMarker(hook))
|
|
157
|
+
return [];
|
|
158
|
+
return [
|
|
159
|
+
{
|
|
160
|
+
kind: "hook",
|
|
161
|
+
id: `${descriptor.id}.${phase}`,
|
|
162
|
+
source: descriptor.source,
|
|
163
|
+
ownerId: descriptor.id,
|
|
164
|
+
ownerKind: descriptor.kind,
|
|
165
|
+
phase,
|
|
166
|
+
},
|
|
167
|
+
];
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
function isExecutableMarker(value) {
|
|
171
|
+
return typeof value === "function" || (isRecord(value) && value.$relkit === "function");
|
|
172
|
+
}
|
|
173
|
+
function schema(work, descriptor, field) {
|
|
174
|
+
return work.schemas.get(`${descriptor.id}:${field}`) ?? null;
|
|
175
|
+
}
|
|
176
|
+
function toolIds(value) {
|
|
177
|
+
return Array.isArray(value)
|
|
178
|
+
? value.flatMap((entry) => {
|
|
179
|
+
const id = refId(entry);
|
|
180
|
+
return id === undefined ? [] : [id];
|
|
181
|
+
})
|
|
182
|
+
: [];
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=normalize-graph-nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-nodes.js","sourceRoot":"","sources":["../src/normalize-graph-nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GraphNode, NormalizedDescriptor } from "./normalize-types.js";
|
|
2
|
+
export declare function providerNodes(descriptor: NormalizedDescriptor): GraphNode[];
|
|
3
|
+
export declare function providerBindingId(capability: string, profile: string): string;
|
|
4
|
+
//# sourceMappingURL=normalize-graph-providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-providers.d.ts","sourceRoot":"","sources":["../src/normalize-graph-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5E,wBAAgB,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,EAAE,CA2B3E;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7E"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { isRecord } from "./normalize-utils.js";
|
|
2
|
+
import { providerMaps } from "./normalize-graph-app.js";
|
|
3
|
+
export function providerNodes(descriptor) {
|
|
4
|
+
const value = isRecord(descriptor.value) ? descriptor.value : {};
|
|
5
|
+
return providerMaps(value)
|
|
6
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
7
|
+
.flatMap(([capability, profiles]) => {
|
|
8
|
+
if (!isRecord(profiles))
|
|
9
|
+
return [];
|
|
10
|
+
return Object.entries(profiles)
|
|
11
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
12
|
+
.flatMap(([profile, candidate]) => {
|
|
13
|
+
const binding = isRecord(candidate) ? candidate : {};
|
|
14
|
+
const adapter = isRecord(binding.adapter) ? binding.adapter : {};
|
|
15
|
+
if (typeof adapter.adapter !== "string")
|
|
16
|
+
return [];
|
|
17
|
+
return [
|
|
18
|
+
{
|
|
19
|
+
kind: "provider",
|
|
20
|
+
id: providerBindingId(capability, profile),
|
|
21
|
+
source: descriptor.source,
|
|
22
|
+
capability,
|
|
23
|
+
profile,
|
|
24
|
+
adapter: adapter.adapter,
|
|
25
|
+
ownership: binding.ownership === "managed" ? "managed" : "external",
|
|
26
|
+
configuration: projectConfiguration(adapter.configuration),
|
|
27
|
+
environment: projectEnvironment(adapter.environment),
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export function providerBindingId(capability, profile) {
|
|
34
|
+
return `provider.${capability}.${profile}`;
|
|
35
|
+
}
|
|
36
|
+
function projectConfiguration(value) {
|
|
37
|
+
if (Array.isArray(value))
|
|
38
|
+
return value.map(projectConfiguration);
|
|
39
|
+
if (!isRecord(value))
|
|
40
|
+
return value ?? null;
|
|
41
|
+
if (value.kind === "env-ref") {
|
|
42
|
+
return {
|
|
43
|
+
kind: "env-ref",
|
|
44
|
+
name: typeof value.name === "string" ? value.name : "",
|
|
45
|
+
type: typeof value.type === "string" ? value.type : "",
|
|
46
|
+
sensitive: value.sensitive === true,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return Object.fromEntries(Object.entries(value)
|
|
50
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
51
|
+
.map(([key, child]) => [key, projectConfiguration(child)]));
|
|
52
|
+
}
|
|
53
|
+
function projectEnvironment(value) {
|
|
54
|
+
if (!Array.isArray(value))
|
|
55
|
+
return [];
|
|
56
|
+
return value.flatMap((entry) => {
|
|
57
|
+
if (!isRecord(entry) || typeof entry.name !== "string" || typeof entry.type !== "string") {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
return [{ name: entry.name, type: entry.type, sensitive: entry.sensitive === true }];
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=normalize-graph-providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-providers.js","sourceRoot":"","sources":["../src/normalize-graph-providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-services.d.ts","sourceRoot":"","sources":["../src/normalize-graph-services.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBvF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { clean } from "./normalize-graph-utils.js";
|
|
2
|
+
import { isRecord, refId } from "./normalize-utils.js";
|
|
3
|
+
export function serviceNodeData(value) {
|
|
4
|
+
const functions = isRecord(value.functions) ? value.functions : {};
|
|
5
|
+
const members = Object.entries(functions).flatMap(([name, target]) => {
|
|
6
|
+
const functionId = refId(target);
|
|
7
|
+
return functionId === undefined ? [] : [{ name, functionId }];
|
|
8
|
+
});
|
|
9
|
+
const middleware = Array.isArray(value.middleware)
|
|
10
|
+
? value.middleware.flatMap((entry) => {
|
|
11
|
+
const id = refId(entry);
|
|
12
|
+
return id === undefined ? [] : [{ id }];
|
|
13
|
+
})
|
|
14
|
+
: [];
|
|
15
|
+
return {
|
|
16
|
+
...(typeof value.title === "string" ? { title: value.title } : {}),
|
|
17
|
+
...(typeof value.description === "string" ? { description: value.description } : {}),
|
|
18
|
+
...(Array.isArray(value.tags) ? { tags: clean(value.tags) } : {}),
|
|
19
|
+
members,
|
|
20
|
+
middleware,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=normalize-graph-services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-services.js","sourceRoot":"","sources":["../src/normalize-graph-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,UAAU,eAAe,CAAC,KAA8B;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QAChD,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO;QACP,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { GRAPH_VERSION, type SourceLocation } from "@relkit/contracts";
|
|
2
|
+
export interface GraphNode {
|
|
3
|
+
readonly kind: string;
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly source: SourceLocation;
|
|
6
|
+
readonly [key: string]: unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface GraphEdge {
|
|
9
|
+
readonly kind: string;
|
|
10
|
+
readonly from: string;
|
|
11
|
+
readonly to: string;
|
|
12
|
+
readonly [key: string]: unknown;
|
|
13
|
+
}
|
|
14
|
+
/** Runtime relationships kept outside the canonical graph contract. */
|
|
15
|
+
export interface ObservedEdge {
|
|
16
|
+
readonly relationship: string;
|
|
17
|
+
readonly from: string;
|
|
18
|
+
readonly to: string;
|
|
19
|
+
}
|
|
20
|
+
export interface NormalizedGraph {
|
|
21
|
+
readonly contractVersion: typeof GRAPH_VERSION;
|
|
22
|
+
readonly appId?: string;
|
|
23
|
+
readonly nodes: readonly GraphNode[];
|
|
24
|
+
readonly edges: readonly GraphEdge[];
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=normalize-graph-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-types.d.ts","sourceRoot":"","sources":["../src/normalize-graph-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,aAAa,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-types.js","sourceRoot":"","sources":["../src/normalize-graph-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-graph-utils.d.ts","sourceRoot":"","sources":["../src/normalize-graph-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,mFAAmF;AACnF,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAmB/C"}
|