@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,146 @@
|
|
|
1
|
+
import { normalizeId, normalizeSourcePath } from "@relkit/contracts";
|
|
2
|
+
import { encodeRouteId } from "./source-id-route.js";
|
|
3
|
+
export { encodeRouteId } from "./source-id-route.js";
|
|
4
|
+
const KIND_RULES = {
|
|
5
|
+
app: { directory: ".", suffixes: ["relkit.config"] },
|
|
6
|
+
function: { directory: "src/functions", suffixes: ["function"] },
|
|
7
|
+
service: { directory: "src/services", suffixes: ["service"] },
|
|
8
|
+
route: { directory: "src/routes", suffixes: ["route"] },
|
|
9
|
+
job: { directory: "src/jobs", suffixes: ["job"] },
|
|
10
|
+
event: { directory: "src/events", suffixes: ["event"] },
|
|
11
|
+
"event-trigger": { directory: "src/events", suffixes: ["event"] },
|
|
12
|
+
bucket: { directory: "src/buckets", suffixes: ["bucket"] },
|
|
13
|
+
cache: { directory: "src/cache", suffixes: ["cache"] },
|
|
14
|
+
tool: { directory: "src/tools", suffixes: ["tool"] },
|
|
15
|
+
agent: { directory: "src/agents", suffixes: ["agent"] },
|
|
16
|
+
"data-model": { directory: "src/data", suffixes: ["data-model"] },
|
|
17
|
+
constants: { directory: "src/constants", suffixes: ["constants"] },
|
|
18
|
+
prompt: { directory: "src/prompts", suffixes: ["prompt"] },
|
|
19
|
+
error: { directory: "src/errors", suffixes: ["error"] },
|
|
20
|
+
middleware: { directory: "src/middleware", suffixes: ["middleware"] },
|
|
21
|
+
"service-middleware": {
|
|
22
|
+
directory: "src/services",
|
|
23
|
+
suffixes: ["service-middleware", "middleware"],
|
|
24
|
+
},
|
|
25
|
+
transform: { directory: "src/transforms", suffixes: ["transform"] },
|
|
26
|
+
};
|
|
27
|
+
/** Returns the normalized source hierarchy after conventional path stripping. */
|
|
28
|
+
export function encodeSourceHierarchy(source, kind, projectRoot) {
|
|
29
|
+
const parts = sourceParts(source, kind, projectRoot);
|
|
30
|
+
return join(parts);
|
|
31
|
+
}
|
|
32
|
+
/** Encodes a named/default export, returning undefined when syntax cannot identify it. */
|
|
33
|
+
export function encodeExportId(input) {
|
|
34
|
+
if (input.explicitId !== undefined)
|
|
35
|
+
return normalizeId(input.explicitId);
|
|
36
|
+
const binding = input.binding ?? input.exportFact?.binding;
|
|
37
|
+
const parts = sourceParts(input.source, input.kind, input.projectRoot);
|
|
38
|
+
if (input.exportKind === "default")
|
|
39
|
+
return finish(parts);
|
|
40
|
+
const name = kebab(binding);
|
|
41
|
+
if (name === undefined)
|
|
42
|
+
return undefined;
|
|
43
|
+
return finish(parts.length === 0 ? [name] : [...parts.slice(0, -1), name]);
|
|
44
|
+
}
|
|
45
|
+
/** Encodes a source-local declared error while retaining its binding spelling. */
|
|
46
|
+
export function encodeErrorId(source, binding, explicitId, projectRoot) {
|
|
47
|
+
if (explicitId !== undefined)
|
|
48
|
+
return normalizeId(explicitId);
|
|
49
|
+
if (binding.trim() === "")
|
|
50
|
+
return undefined;
|
|
51
|
+
return finish([...sourceParts(source, "error", projectRoot), binding]);
|
|
52
|
+
}
|
|
53
|
+
/** Encodes a service member identity from the already-resolved service identity. */
|
|
54
|
+
export function encodeMemberId(serviceId, member, explicitId) {
|
|
55
|
+
if (explicitId !== undefined)
|
|
56
|
+
return normalizeId(explicitId);
|
|
57
|
+
const service = normalizeId(serviceId);
|
|
58
|
+
const name = kebab(member);
|
|
59
|
+
return name === undefined ? undefined : finish([service, name]);
|
|
60
|
+
}
|
|
61
|
+
/** Selects explicit identity first, then the applicable source/member/route encoder. */
|
|
62
|
+
export function encodeSourceId(input) {
|
|
63
|
+
if (input.explicitId !== undefined)
|
|
64
|
+
return normalizeId(input.explicitId);
|
|
65
|
+
if (input.kind === "route") {
|
|
66
|
+
if (input.method === undefined || input.path === undefined)
|
|
67
|
+
return undefined;
|
|
68
|
+
return encodeRouteId(input.method, input.path);
|
|
69
|
+
}
|
|
70
|
+
if (input.serviceId !== undefined && input.member !== undefined)
|
|
71
|
+
return encodeMemberId(input.serviceId, input.member);
|
|
72
|
+
if (input.kind === "error" && input.binding !== undefined)
|
|
73
|
+
return encodeErrorId(input.source, input.binding, undefined, input.projectRoot);
|
|
74
|
+
if (input.exportKind === undefined)
|
|
75
|
+
return undefined;
|
|
76
|
+
return encodeExportId({
|
|
77
|
+
source: input.source,
|
|
78
|
+
kind: input.kind,
|
|
79
|
+
exportName: input.exportName ?? "",
|
|
80
|
+
exportKind: input.exportKind,
|
|
81
|
+
...(input.binding === undefined ? {} : { binding: input.binding }),
|
|
82
|
+
...(input.projectRoot === undefined ? {} : { projectRoot: input.projectRoot }),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function sourceParts(source, kind, projectRoot) {
|
|
86
|
+
const normalized = relativeSource(source, projectRoot);
|
|
87
|
+
const parts = normalized.split("/").filter(Boolean);
|
|
88
|
+
if (parts[0] === "src")
|
|
89
|
+
parts.shift();
|
|
90
|
+
const directory = KIND_RULES[kind].directory.split("/").slice(1);
|
|
91
|
+
if (directory.every((part, index) => parts[index] === part))
|
|
92
|
+
parts.splice(0, directory.length);
|
|
93
|
+
const last = parts.at(-1);
|
|
94
|
+
if (last === undefined)
|
|
95
|
+
return [];
|
|
96
|
+
const stem = last.replace(/\.(?:[cm]?[jt]sx?)$/i, "");
|
|
97
|
+
parts[parts.length - 1] = stripSuffix(stem, KIND_RULES[kind].suffixes);
|
|
98
|
+
if (parts.at(-1) === "index")
|
|
99
|
+
parts.pop();
|
|
100
|
+
return parts.flatMap((part) => {
|
|
101
|
+
const value = kebab(part);
|
|
102
|
+
return value === undefined ? [] : [value];
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function stripSuffix(value, suffixes) {
|
|
106
|
+
for (const suffix of suffixes) {
|
|
107
|
+
if (value.endsWith(`.${suffix}`))
|
|
108
|
+
return value.slice(0, -suffix.length - 1);
|
|
109
|
+
if (value === suffix)
|
|
110
|
+
return "";
|
|
111
|
+
}
|
|
112
|
+
return value;
|
|
113
|
+
}
|
|
114
|
+
function kebab(value) {
|
|
115
|
+
if (value === undefined)
|
|
116
|
+
return undefined;
|
|
117
|
+
const normalized = value
|
|
118
|
+
.normalize("NFKC")
|
|
119
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1-$2")
|
|
120
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1-$2")
|
|
121
|
+
.replace(/[^A-Za-z0-9]+/g, "-")
|
|
122
|
+
.replace(/^-+|-+$/g, "")
|
|
123
|
+
.replace(/-+/g, "-")
|
|
124
|
+
.toLowerCase();
|
|
125
|
+
return normalized === "" ? undefined : normalized;
|
|
126
|
+
}
|
|
127
|
+
function finish(parts) {
|
|
128
|
+
const value = join(parts);
|
|
129
|
+
return value === undefined ? undefined : normalizeId(value);
|
|
130
|
+
}
|
|
131
|
+
function join(parts) {
|
|
132
|
+
const value = parts.filter((part) => part !== "").join(".");
|
|
133
|
+
return value === "" ? undefined : value;
|
|
134
|
+
}
|
|
135
|
+
function relativeSource(source, projectRoot) {
|
|
136
|
+
try {
|
|
137
|
+
return normalizeSourcePath(source, projectRoot);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return source
|
|
141
|
+
.replaceAll("\\", "/")
|
|
142
|
+
.replace(/^\/+/, "")
|
|
143
|
+
.replace(/^\.\/+/, "");
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=source-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-id.js","sourceRoot":"","sources":["../../src/discovery/source-id.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import type { ExportFacts } from "./source-facts.js";
|
|
3
|
+
export { readFacts } from "./source-facts.js";
|
|
4
|
+
export type { ErrorBindingFact, ExportFact, ExportFacts, FactoryBindingFact, FactoryIdPresence, RouteOperationFact, ServiceMemberFact, SourceFacts, SourceFactoryKind, } from "./source-facts.js";
|
|
5
|
+
export interface ParsedSource {
|
|
6
|
+
readonly sourceFile: ts.SourceFile;
|
|
7
|
+
readonly facts: ExportFacts;
|
|
8
|
+
}
|
|
9
|
+
export declare function resolveImport(file: string, module: string, root: string, texts: ReadonlyMap<string, string>): string | undefined;
|
|
10
|
+
//# sourceMappingURL=source-map-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map-utils.d.ts","sourceRoot":"","sources":["../../src/discovery/source-map-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,GAAG,SAAS,CAepB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { dirname, extname, join, resolve } from "node:path";
|
|
3
|
+
import { normalizeSourcePath } from "@relkit/contracts";
|
|
4
|
+
import * as ts from "typescript";
|
|
5
|
+
export { readFacts } from "./source-facts.js";
|
|
6
|
+
export function resolveImport(file, module, root, texts) {
|
|
7
|
+
if (!module.startsWith("."))
|
|
8
|
+
return undefined;
|
|
9
|
+
const base = resolve(root, dirname(file), module);
|
|
10
|
+
const candidates = extname(base)
|
|
11
|
+
? [base]
|
|
12
|
+
: [base, `${base}.ts`, `${base}.tsx`, `${base}.js`, `${base}.jsx`, join(base, "index.ts")];
|
|
13
|
+
for (const candidate of candidates) {
|
|
14
|
+
try {
|
|
15
|
+
const relative = normalizeSourcePath(candidate, root);
|
|
16
|
+
if (texts.has(relative) || existsSync(candidate))
|
|
17
|
+
return relative;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
function hasModifier(node, kind) {
|
|
26
|
+
return (ts.canHaveModifiers(node) &&
|
|
27
|
+
ts.getModifiers(node)?.some((modifier) => modifier.kind === kind) === true);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=source-map-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map-utils.js","sourceRoot":"","sources":["../../src/discovery/source-map-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAkB9C,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,MAAc,EACd,IAAY,EACZ,KAAkC;IAElC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC,IAAI,CAAC;QACR,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAC7F,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,QAAQ,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,IAAa,EAAE,IAAmB;IACrD,OAAO,CACL,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,CAC3E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type SourceLocation } from "@relkit/contracts";
|
|
2
|
+
import type { EvaluatorModuleResult } from "./evaluator-protocol.js";
|
|
3
|
+
import { type ExportFact, type ExportFacts } from "./source-map-utils.js";
|
|
4
|
+
export type { ErrorBindingFact, ExportFact, ExportFacts, FactoryBindingFact, FactoryIdPresence, RouteOperationFact, ServiceMemberFact, SourceFacts, SourceFactoryKind, } from "./source-map-utils.js";
|
|
5
|
+
export type ExportKind = "default" | "named";
|
|
6
|
+
export interface SourceMapSource {
|
|
7
|
+
readonly fileName: string;
|
|
8
|
+
readonly text: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SourceMapOptions {
|
|
11
|
+
readonly projectRoot?: string;
|
|
12
|
+
readonly sources?: readonly SourceMapSource[];
|
|
13
|
+
}
|
|
14
|
+
export interface SourceMapEntry {
|
|
15
|
+
readonly module: string;
|
|
16
|
+
readonly exportName: string;
|
|
17
|
+
readonly exportKind: ExportKind;
|
|
18
|
+
readonly source: SourceLocation;
|
|
19
|
+
readonly facts?: ExportFacts;
|
|
20
|
+
readonly exportFact?: ExportFact;
|
|
21
|
+
}
|
|
22
|
+
/** Maps evaluated export facts to stable project-relative source positions. */
|
|
23
|
+
export declare function mapSourceLocations(modules: readonly EvaluatorModuleResult[], options?: SourceMapOptions): readonly SourceMapEntry[];
|
|
24
|
+
/** Alias used by compiler callers that treat the entries as a source map. */
|
|
25
|
+
export declare const createSourceMap: typeof mapSourceLocations;
|
|
26
|
+
//# sourceMappingURL=source-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../../src/discovery/source-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,WAAW,EAEjB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAcD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,OAAO,GAAE,gBAAqB,GAC7B,SAAS,cAAc,EAAE,CAuB3B;AAED,6EAA6E;AAC7E,eAAO,MAAM,eAAe,2BAAqB,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { createSourceLocation, normalizeSourcePath } from "@relkit/contracts";
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import { resolve } from "node:path";
|
|
4
|
+
import * as ts from "typescript";
|
|
5
|
+
import { readFacts, resolveImport, } from "./source-map-utils.js";
|
|
6
|
+
/** Maps evaluated export facts to stable project-relative source positions. */
|
|
7
|
+
export function mapSourceLocations(modules, options = {}) {
|
|
8
|
+
const context = createContext(options);
|
|
9
|
+
const entries = modules.flatMap((module) => module.exports.map((exported) => {
|
|
10
|
+
const file = relativeFile(module.file, context.root);
|
|
11
|
+
const located = locate(file, exported.exportName, context, new Set());
|
|
12
|
+
const source = located?.source ?? createSourceLocation(file, 1, 1, context.root);
|
|
13
|
+
return Object.freeze({
|
|
14
|
+
module: file,
|
|
15
|
+
exportName: exported.exportName,
|
|
16
|
+
exportKind: exportKind(exported.exportName),
|
|
17
|
+
source: Object.freeze(source),
|
|
18
|
+
...(located?.facts === undefined ? {} : { facts: located.facts }),
|
|
19
|
+
...(located?.exportFact === undefined ? {} : { exportFact: located.exportFact }),
|
|
20
|
+
});
|
|
21
|
+
}));
|
|
22
|
+
return Object.freeze(entries.sort((left, right) => left.module.localeCompare(right.module) || left.exportName.localeCompare(right.exportName)));
|
|
23
|
+
}
|
|
24
|
+
/** Alias used by compiler callers that treat the entries as a source map. */
|
|
25
|
+
export const createSourceMap = mapSourceLocations;
|
|
26
|
+
function createContext(options) {
|
|
27
|
+
const root = resolve(options.projectRoot ?? process.cwd());
|
|
28
|
+
const texts = new Map();
|
|
29
|
+
for (const source of options.sources ?? []) {
|
|
30
|
+
try {
|
|
31
|
+
texts.set(relativeFile(source.fileName, root), source.text);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Invalid supplemental paths cannot be source locations in this project.
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return { root, texts, parsed: new Map() };
|
|
38
|
+
}
|
|
39
|
+
function locate(file, exportName, context, visited) {
|
|
40
|
+
if (visited.has(`${file}\0${exportName}`))
|
|
41
|
+
return undefined;
|
|
42
|
+
visited.add(`${file}\0${exportName}`);
|
|
43
|
+
const parsed = parseSource(file, context);
|
|
44
|
+
if (parsed === undefined)
|
|
45
|
+
return undefined;
|
|
46
|
+
const fact = parsed.facts.exports.get(exportName);
|
|
47
|
+
if (fact?.origin !== undefined) {
|
|
48
|
+
const originFile = resolveImport(file, fact.origin.module, context.root, context.texts);
|
|
49
|
+
if (originFile !== undefined) {
|
|
50
|
+
return locate(originFile, fact.origin.name, context, visited);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (fact !== undefined) {
|
|
54
|
+
return {
|
|
55
|
+
source: position(file, parsed.sourceFile, fact.position, context.root),
|
|
56
|
+
facts: parsed.facts,
|
|
57
|
+
exportFact: fact,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
for (const star of parsed.facts.stars) {
|
|
61
|
+
const originFile = resolveImport(file, star.module, context.root, context.texts);
|
|
62
|
+
if (originFile !== undefined) {
|
|
63
|
+
const origin = locate(originFile, exportName, context, visited);
|
|
64
|
+
if (origin !== undefined)
|
|
65
|
+
return origin;
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
source: position(file, parsed.sourceFile, star.position, context.root),
|
|
69
|
+
facts: parsed.facts,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return { source: position(file, parsed.sourceFile, 0, context.root), facts: parsed.facts };
|
|
73
|
+
}
|
|
74
|
+
function parseSource(file, context) {
|
|
75
|
+
if (context.parsed.has(file))
|
|
76
|
+
return context.parsed.get(file);
|
|
77
|
+
const text = sourceText(file, context);
|
|
78
|
+
if (text === undefined) {
|
|
79
|
+
context.parsed.set(file, undefined);
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
const sourceFile = ts.createSourceFile(file, text, ts.ScriptTarget.Latest, true, scriptKind(file));
|
|
83
|
+
const parsed = { sourceFile, facts: readFacts(sourceFile) };
|
|
84
|
+
context.parsed.set(file, parsed);
|
|
85
|
+
return parsed;
|
|
86
|
+
}
|
|
87
|
+
function sourceText(file, context) {
|
|
88
|
+
const supplied = context.texts.get(file);
|
|
89
|
+
if (supplied !== undefined)
|
|
90
|
+
return supplied;
|
|
91
|
+
const absolute = resolve(context.root, file);
|
|
92
|
+
if (!existsSync(absolute))
|
|
93
|
+
return undefined;
|
|
94
|
+
try {
|
|
95
|
+
return readFileSync(absolute, "utf8");
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function position(file, sourceFile, offset, root) {
|
|
102
|
+
const safeOffset = Math.max(0, Math.min(offset, sourceFile.end));
|
|
103
|
+
const line = sourceFile.getLineAndCharacterOfPosition(safeOffset);
|
|
104
|
+
return createSourceLocation(file, line.line + 1, line.character + 1, root);
|
|
105
|
+
}
|
|
106
|
+
function relativeFile(file, root) {
|
|
107
|
+
return normalizeSourcePath(file, root);
|
|
108
|
+
}
|
|
109
|
+
function exportKind(name) {
|
|
110
|
+
return name === "default" ? "default" : "named";
|
|
111
|
+
}
|
|
112
|
+
function scriptKind(file) {
|
|
113
|
+
if (file.endsWith(".tsx"))
|
|
114
|
+
return ts.ScriptKind.TSX;
|
|
115
|
+
if (file.endsWith(".jsx"))
|
|
116
|
+
return ts.ScriptKind.JSX;
|
|
117
|
+
return ts.ScriptKind.TS;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=source-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.js","sourceRoot":"","sources":["../../src/discovery/source-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAuB,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EACL,SAAS,EACT,aAAa,GAId,MAAM,uBAAuB,CAAC;AA+C/B,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAChC,OAAyC,EACzC,UAA4B,EAAE;IAE9B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACjF,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;SACjF,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAClB,OAAO,CAAC,IAAI,CACV,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAC7F,CACF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAElD,SAAS,aAAa,CAAC,OAAyB;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,MAAM,CACb,IAAY,EACZ,UAAkB,EAClB,OAAmB,EACnB,OAAoB;IAEpB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,UAAU,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,UAAU,EAAE,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;YACtE,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;QAC1C,CAAC;QACD,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;YACtE,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AAC7F,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,OAAmB;IACpD,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACpC,IAAI,EACJ,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,UAAU,CAAC,IAAI,CAAC,CACjB,CAAC;IACF,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,EAAyB,CAAC;IACnF,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,OAAmB;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,IAAY,EACZ,UAAyB,EACzB,MAAc,EACd,IAAY;IAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,UAAU,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;IAClE,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC9C,OAAO,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AAClD,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IACpD,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ExtractedDescriptor } from "./discovery/extract.js";
|
|
2
|
+
export declare const EVENT_REGISTRY_FILE = "event-registry.d.ts";
|
|
3
|
+
export interface EventRegistryGenerationOptions {
|
|
4
|
+
readonly projectRoot: string;
|
|
5
|
+
readonly generatedDirectory?: string;
|
|
6
|
+
}
|
|
7
|
+
/** Generates the module augmentation used by event-name autocomplete and callback inference. */
|
|
8
|
+
export declare function generateEventRegistry(descriptors: readonly ExtractedDescriptor[], options: EventRegistryGenerationOptions): string;
|
|
9
|
+
//# sourceMappingURL=event-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-registry.d.ts","sourceRoot":"","sources":["../src/event-registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,SAAS,mBAAmB,EAAE,EAC3C,OAAO,EAAE,8BAA8B,GACtC,MAAM,CAgCR"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { relative, resolve } from "node:path";
|
|
2
|
+
import { normalizeSourcePath } from "@relkit/contracts";
|
|
3
|
+
export const EVENT_REGISTRY_FILE = "event-registry.d.ts";
|
|
4
|
+
/** Generates the module augmentation used by event-name autocomplete and callback inference. */
|
|
5
|
+
export function generateEventRegistry(descriptors, options) {
|
|
6
|
+
const root = resolve(options.projectRoot);
|
|
7
|
+
const output = resolve(root, options.generatedDirectory ?? ".relkit/generated");
|
|
8
|
+
const seen = new Set();
|
|
9
|
+
const entries = descriptors
|
|
10
|
+
.filter(({ descriptor }) => descriptor.kind === "event")
|
|
11
|
+
.sort((left, right) => left.descriptor.id.localeCompare(right.descriptor.id) ||
|
|
12
|
+
left.reference.module.localeCompare(right.reference.module) ||
|
|
13
|
+
left.exportName.localeCompare(right.exportName))
|
|
14
|
+
.flatMap((entry) => {
|
|
15
|
+
if (seen.has(entry.descriptor.id))
|
|
16
|
+
return [];
|
|
17
|
+
seen.add(entry.descriptor.id);
|
|
18
|
+
const module = importPath(output, root, entry.reference.module);
|
|
19
|
+
return [
|
|
20
|
+
` readonly ${JSON.stringify(entry.descriptor.id)}: typeof import(${JSON.stringify(module)})[${JSON.stringify(entry.exportName)}];`,
|
|
21
|
+
];
|
|
22
|
+
});
|
|
23
|
+
return [
|
|
24
|
+
'import "@relkit/events";',
|
|
25
|
+
"",
|
|
26
|
+
'declare module "@relkit/events" {',
|
|
27
|
+
" interface EventRegistry {",
|
|
28
|
+
...entries,
|
|
29
|
+
" }",
|
|
30
|
+
"}",
|
|
31
|
+
"",
|
|
32
|
+
"export {};",
|
|
33
|
+
"",
|
|
34
|
+
].join("\n");
|
|
35
|
+
}
|
|
36
|
+
function importPath(output, root, module) {
|
|
37
|
+
const source = resolve(root, normalizeSourcePath(module, root));
|
|
38
|
+
const path = relative(output, source)
|
|
39
|
+
.replaceAll("\\", "/")
|
|
40
|
+
.replace(/\.(?:[cm]?ts|tsx)$/, ".js");
|
|
41
|
+
return path.startsWith(".") ? path : `./${path}`;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=event-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-registry.js","sourceRoot":"","sources":["../src/event-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAOzD,gGAAgG;AAChG,MAAM,UAAU,qBAAqB,CACnC,WAA2C,EAC3C,OAAuC;IAEvC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,IAAI,mBAAmB,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAG,WAAW;SACxB,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC;SACvD,IAAI,CACH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAClD;SACA,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO;YACL,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI;SACtI,CAAC;IACJ,CAAC,CAAC,CAAC;IACL,OAAO;QACL,0BAA0B;QAC1B,EAAE;QACF,mCAAmC;QACnC,6BAA6B;QAC7B,GAAG,OAAO;QACV,KAAK;QACL,GAAG;QACH,EAAE;QACF,YAAY;QACZ,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,IAAY,EAAE,MAAc;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;SAClC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ManifestGenerationInput } from "./generate-manifest.js";
|
|
2
|
+
import type { ImportBinding } from "./generate-manifest-utils.js";
|
|
3
|
+
import type { NormalizedDescriptor } from "./normalize-types.js";
|
|
4
|
+
export declare function eventListenerExecutableExpression(descriptor: NormalizedDescriptor, bindings: ReadonlyMap<string, ImportBinding>, input: ManifestGenerationInput, property: "handler" | "target"): string | undefined;
|
|
5
|
+
//# sourceMappingURL=generate-manifest-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-manifest-event.d.ts","sourceRoot":"","sources":["../src/generate-manifest-event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAC7B,MAAM,GAAG,SAAS,CAsBpB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { normalizeSourcePath } from "@relkit/contracts";
|
|
2
|
+
export function eventListenerExecutableExpression(descriptor, bindings, input, property) {
|
|
3
|
+
const value = isRecord(descriptor.value) ? descriptor.value : {};
|
|
4
|
+
const generated = isRecord(value.generated) ? value.generated : {};
|
|
5
|
+
const reference = descriptor.reference;
|
|
6
|
+
if (generated.generatedBy !== "event-listener" ||
|
|
7
|
+
reference?.kind !== "event-trigger" ||
|
|
8
|
+
reference.descriptorId !== generated.listenerId)
|
|
9
|
+
return undefined;
|
|
10
|
+
let module;
|
|
11
|
+
try {
|
|
12
|
+
module = normalizeSourcePath(reference.module, input.projectRoot);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const binding = bindings.get(module);
|
|
18
|
+
if (binding === undefined)
|
|
19
|
+
return undefined;
|
|
20
|
+
const listener = `${binding.alias}[${JSON.stringify(reference.exportName)}]`;
|
|
21
|
+
if (property === "handler")
|
|
22
|
+
return `${listener}.target.handler`;
|
|
23
|
+
const contracts = eventContracts(generated.listenerId, input, bindings);
|
|
24
|
+
return `__relkit_createEventListenerTarget(${listener}, [${contracts.join(", ")}], ${JSON.stringify(generated.functionId)})`;
|
|
25
|
+
}
|
|
26
|
+
function eventContracts(listenerId, input, bindings) {
|
|
27
|
+
const listener = input.descriptors.find((entry) => entry.kind === "event-trigger" && entry.id === listenerId);
|
|
28
|
+
const selector = isRecord(listener?.value) ? listener.value.selector : undefined;
|
|
29
|
+
return input.descriptors
|
|
30
|
+
.filter((entry) => entry.kind === "event" && selects(selector, entry.id))
|
|
31
|
+
.sort((left, right) => left.id.localeCompare(right.id))
|
|
32
|
+
.flatMap((entry) => {
|
|
33
|
+
const reference = entry.reference;
|
|
34
|
+
if (reference === undefined)
|
|
35
|
+
return [];
|
|
36
|
+
let module;
|
|
37
|
+
try {
|
|
38
|
+
module = normalizeSourcePath(reference.module, input.projectRoot);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
const contract = bindings.get(module);
|
|
44
|
+
return contract === undefined
|
|
45
|
+
? []
|
|
46
|
+
: [`${contract.alias}[${JSON.stringify(reference.exportName)}]`];
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function selects(selector, eventId) {
|
|
50
|
+
if (!isRecord(selector))
|
|
51
|
+
return false;
|
|
52
|
+
if (selector.kind === "all")
|
|
53
|
+
return true;
|
|
54
|
+
if (selector.kind === "match" && typeof selector.pattern === "string") {
|
|
55
|
+
return matches(eventId, selector.pattern);
|
|
56
|
+
}
|
|
57
|
+
if (selector.kind === "single" && isRecord(selector.event)) {
|
|
58
|
+
return selector.event.eventId === eventId;
|
|
59
|
+
}
|
|
60
|
+
return (selector.kind === "anyOf" &&
|
|
61
|
+
Array.isArray(selector.events) &&
|
|
62
|
+
selector.events.some((entry) => isRecord(entry) && entry.eventId === eventId));
|
|
63
|
+
}
|
|
64
|
+
function matches(eventId, pattern) {
|
|
65
|
+
return matchSegments(pattern.split("."), eventId.split("."));
|
|
66
|
+
}
|
|
67
|
+
function matchSegments(pattern, value) {
|
|
68
|
+
if (pattern.length === 0)
|
|
69
|
+
return value.length === 0;
|
|
70
|
+
if (pattern[0] === "**") {
|
|
71
|
+
return (matchSegments(pattern.slice(1), value) ||
|
|
72
|
+
(value.length > 0 && matchSegments(pattern, value.slice(1))));
|
|
73
|
+
}
|
|
74
|
+
return (value.length > 0 &&
|
|
75
|
+
(pattern[0] === "*" || pattern[0] === value[0]) &&
|
|
76
|
+
matchSegments(pattern.slice(1), value.slice(1)));
|
|
77
|
+
}
|
|
78
|
+
function isRecord(value) {
|
|
79
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=generate-manifest-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-manifest-event.js","sourceRoot":"","sources":["../src/generate-manifest-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAKxD,MAAM,UAAU,iCAAiC,CAC/C,UAAgC,EAChC,QAA4C,EAC5C,KAA8B,EAC9B,QAA8B;IAE9B,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,IACE,SAAS,CAAC,WAAW,KAAK,gBAAgB;QAC1C,SAAS,EAAE,IAAI,KAAK,eAAe;QACnC,SAAS,CAAC,YAAY,KAAK,SAAS,CAAC,UAAU;QAE/C,OAAO,SAAS,CAAC;IACnB,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;IAC7E,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,GAAG,QAAQ,iBAAiB,CAAC;IAChE,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxE,OAAO,sCAAsC,QAAQ,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;AAC/H,CAAC;AAED,SAAS,cAAc,CACrB,UAAkB,EAClB,KAA8B,EAC9B,QAA4C;IAE5C,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,EAAE,KAAK,UAAU,CACrE,CAAC;IACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,OAAO,KAAK,CAAC,WAAW;SACrB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;SACxE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACtD,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACvC,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,QAAQ,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,OAAO,CAAC,QAAiB,EAAE,OAAe;IACjD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACtE,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC;IAC5C,CAAC;IACD,OAAO,CACL,QAAQ,CAAC,IAAI,KAAK,OAAO;QACzB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAC9E,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAAe,EAAE,OAAe;IAC/C,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,aAAa,CAAC,OAA0B,EAAE,KAAwB;IACzE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CACL,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YACtC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/C,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Diagnostic } from "@relkit/diagnostics";
|
|
2
|
+
import type { ManifestGenerationInput } from "./generate-manifest.js";
|
|
3
|
+
import { type ImportBinding } from "./generate-manifest-utils.js";
|
|
4
|
+
import type { NormalizedDescriptor } from "./normalize-types.js";
|
|
5
|
+
export declare function functionExpressionsFor(functions: readonly NormalizedDescriptor[], functionById: ReadonlyMap<string, NormalizedDescriptor>, bindings: ReadonlyMap<string, ImportBinding>, input: ManifestGenerationInput, diagnostics: Diagnostic[]): ReadonlyMap<string, string>;
|
|
6
|
+
export declare function functionTargetExpressionsFor(functions: readonly NormalizedDescriptor[], bindings: ReadonlyMap<string, ImportBinding>, input: ManifestGenerationInput): ReadonlyMap<string, string>;
|
|
7
|
+
export declare function applicationExpressionFor(descriptor: NormalizedDescriptor | undefined, bindings: ReadonlyMap<string, ImportBinding>, input: ManifestGenerationInput): string | undefined;
|
|
8
|
+
export declare function descriptorExpressionsFor(descriptors: readonly NormalizedDescriptor[], bindings: ReadonlyMap<string, ImportBinding>, input: ManifestGenerationInput): ReadonlyMap<string, string>;
|
|
9
|
+
export declare function transformExpressionsFor(transforms: readonly NormalizedDescriptor[], bindings: ReadonlyMap<string, ImportBinding>, input: ManifestGenerationInput, diagnostics: Diagnostic[]): ReadonlyMap<string, string>;
|
|
10
|
+
export declare function middlewareExpressionsFor(middleware: readonly NormalizedDescriptor[], bindings: ReadonlyMap<string, ImportBinding>, input: ManifestGenerationInput, diagnostics: Diagnostic[]): ReadonlyMap<string, string>;
|
|
11
|
+
export declare function hookExpressionsFor(descriptors: readonly NormalizedDescriptor[], bindings: ReadonlyMap<string, ImportBinding>, input: ManifestGenerationInput): ReadonlyMap<string, string>;
|
|
12
|
+
//# sourceMappingURL=generate-manifest-expressions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-manifest-expressions.d.ts","sourceRoot":"","sources":["../src/generate-manifest-expressions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACvD,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,UAAU,EAAE,GACxB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CA0B7B;AACD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,KAAK,EAAE,uBAAuB,GAC7B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAY7B;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,oBAAoB,GAAG,SAAS,EAC5C,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,KAAK,EAAE,uBAAuB,GAC7B,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,SAAS,oBAAoB,EAAE,EAC5C,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,KAAK,EAAE,uBAAuB,GAC7B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAO7B;AAYD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,SAAS,oBAAoB,EAAE,EAC3C,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,UAAU,EAAE,GACxB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAW7B;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,SAAS,oBAAoB,EAAE,EAC3C,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,UAAU,EAAE,GACxB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAa7B;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,SAAS,oBAAoB,EAAE,EAC5C,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,KAAK,EAAE,uBAAuB,GAC7B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAe7B"}
|