@relkit/compiler 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/config-loader-deployment.d.ts +7 -0
- package/dist/config-loader-deployment.d.ts.map +1 -0
- package/dist/config-loader-deployment.js +36 -0
- package/dist/config-loader-deployment.js.map +1 -0
- package/dist/config-loader-runtime.d.ts +30 -0
- package/dist/config-loader-runtime.d.ts.map +1 -0
- package/dist/config-loader-runtime.js +105 -0
- package/dist/config-loader-runtime.js.map +1 -0
- package/dist/config-loader-types.d.ts +107 -0
- package/dist/config-loader-types.d.ts.map +1 -0
- package/dist/config-loader-types.js +37 -0
- package/dist/config-loader-types.js.map +1 -0
- package/dist/config-loader-utils.d.ts +10 -0
- package/dist/config-loader-utils.d.ts.map +1 -0
- package/dist/config-loader-utils.js +88 -0
- package/dist/config-loader-utils.js.map +1 -0
- package/dist/config-loader.d.ts +12 -0
- package/dist/config-loader.d.ts.map +1 -0
- package/dist/config-loader.js +89 -0
- package/dist/config-loader.js.map +1 -0
- package/dist/context-registry.d.ts +7 -0
- package/dist/context-registry.d.ts.map +1 -0
- package/dist/context-registry.js +55 -0
- package/dist/context-registry.js.map +1 -0
- package/dist/conventions.d.ts +32 -0
- package/dist/conventions.d.ts.map +1 -0
- package/dist/conventions.js +125 -0
- package/dist/conventions.js.map +1 -0
- package/dist/discovery/ast-prefilter-utils.d.ts +4 -0
- package/dist/discovery/ast-prefilter-utils.d.ts.map +1 -0
- package/dist/discovery/ast-prefilter-utils.js +186 -0
- package/dist/discovery/ast-prefilter-utils.js.map +1 -0
- package/dist/discovery/ast-prefilter.d.ts +36 -0
- package/dist/discovery/ast-prefilter.d.ts.map +1 -0
- package/dist/discovery/ast-prefilter.js +33 -0
- package/dist/discovery/ast-prefilter.js.map +1 -0
- package/dist/discovery/data-model-isolation.d.ts +8 -0
- package/dist/discovery/data-model-isolation.d.ts.map +1 -0
- package/dist/discovery/data-model-isolation.js +52 -0
- package/dist/discovery/data-model-isolation.js.map +1 -0
- package/dist/discovery/evaluator-child-utils.d.ts +4 -0
- package/dist/discovery/evaluator-child-utils.d.ts.map +1 -0
- package/dist/discovery/evaluator-child-utils.js +48 -0
- package/dist/discovery/evaluator-child-utils.js.map +1 -0
- package/dist/discovery/evaluator-child.d.ts +2 -0
- package/dist/discovery/evaluator-child.d.ts.map +1 -0
- package/dist/discovery/evaluator-child.js +139 -0
- package/dist/discovery/evaluator-child.js.map +1 -0
- package/dist/discovery/evaluator-detector-files.d.ts +9 -0
- package/dist/discovery/evaluator-detector-files.d.ts.map +1 -0
- package/dist/discovery/evaluator-detector-files.js +105 -0
- package/dist/discovery/evaluator-detector-files.js.map +1 -0
- package/dist/discovery/evaluator-detector-network.d.ts +6 -0
- package/dist/discovery/evaluator-detector-network.d.ts.map +1 -0
- package/dist/discovery/evaluator-detector-network.js +109 -0
- package/dist/discovery/evaluator-detector-network.js.map +1 -0
- package/dist/discovery/evaluator-detector-timers.d.ts +9 -0
- package/dist/discovery/evaluator-detector-timers.d.ts.map +1 -0
- package/dist/discovery/evaluator-detector-timers.js +105 -0
- package/dist/discovery/evaluator-detector-timers.js.map +1 -0
- package/dist/discovery/evaluator-detectors.d.ts +18 -0
- package/dist/discovery/evaluator-detectors.d.ts.map +1 -0
- package/dist/discovery/evaluator-detectors.js +54 -0
- package/dist/discovery/evaluator-detectors.js.map +1 -0
- package/dist/discovery/evaluator-protocol.d.ts +94 -0
- package/dist/discovery/evaluator-protocol.d.ts.map +1 -0
- package/dist/discovery/evaluator-protocol.js +89 -0
- package/dist/discovery/evaluator-protocol.js.map +1 -0
- package/dist/discovery/evaluator-request.d.ts +18 -0
- package/dist/discovery/evaluator-request.d.ts.map +1 -0
- package/dist/discovery/evaluator-request.js +49 -0
- package/dist/discovery/evaluator-request.js.map +1 -0
- package/dist/discovery/evaluator-snapshot.d.ts +12 -0
- package/dist/discovery/evaluator-snapshot.d.ts.map +1 -0
- package/dist/discovery/evaluator-snapshot.js +87 -0
- package/dist/discovery/evaluator-snapshot.js.map +1 -0
- package/dist/discovery/evaluator.d.ts +8 -0
- package/dist/discovery/evaluator.d.ts.map +1 -0
- package/dist/discovery/evaluator.js +123 -0
- package/dist/discovery/evaluator.js.map +1 -0
- package/dist/discovery/extract.d.ts +21 -0
- package/dist/discovery/extract.d.ts.map +1 -0
- package/dist/discovery/extract.js +60 -0
- package/dist/discovery/extract.js.map +1 -0
- package/dist/discovery/source-facts-factory.d.ts +5 -0
- package/dist/discovery/source-facts-factory.d.ts.map +1 -0
- package/dist/discovery/source-facts-factory.js +109 -0
- package/dist/discovery/source-facts-factory.js.map +1 -0
- package/dist/discovery/source-facts-types.d.ts +52 -0
- package/dist/discovery/source-facts-types.d.ts.map +1 -0
- package/dist/discovery/source-facts-types.js +2 -0
- package/dist/discovery/source-facts-types.js.map +1 -0
- package/dist/discovery/source-facts.d.ts +6 -0
- package/dist/discovery/source-facts.d.ts.map +1 -0
- package/dist/discovery/source-facts.js +141 -0
- package/dist/discovery/source-facts.js.map +1 -0
- package/dist/discovery/source-id-route.d.ts +3 -0
- package/dist/discovery/source-id-route.d.ts.map +1 -0
- package/dist/discovery/source-id-route.js +61 -0
- package/dist/discovery/source-id-route.js.map +1 -0
- package/dist/discovery/source-id.d.ts +36 -0
- package/dist/discovery/source-id.d.ts.map +1 -0
- package/dist/discovery/source-id.js +146 -0
- package/dist/discovery/source-id.js.map +1 -0
- package/dist/discovery/source-map-utils.d.ts +10 -0
- package/dist/discovery/source-map-utils.d.ts.map +1 -0
- package/dist/discovery/source-map-utils.js +29 -0
- package/dist/discovery/source-map-utils.js.map +1 -0
- package/dist/discovery/source-map.d.ts +26 -0
- package/dist/discovery/source-map.d.ts.map +1 -0
- package/dist/discovery/source-map.js +119 -0
- package/dist/discovery/source-map.js.map +1 -0
- package/dist/event-registry.d.ts +9 -0
- package/dist/event-registry.d.ts.map +1 -0
- package/dist/event-registry.js +43 -0
- package/dist/event-registry.js.map +1 -0
- package/dist/generate-manifest-event.d.ts +5 -0
- package/dist/generate-manifest-event.d.ts.map +1 -0
- package/dist/generate-manifest-event.js +81 -0
- package/dist/generate-manifest-event.js.map +1 -0
- package/dist/generate-manifest-expressions.d.ts +12 -0
- package/dist/generate-manifest-expressions.d.ts.map +1 -0
- package/dist/generate-manifest-expressions.js +141 -0
- package/dist/generate-manifest-expressions.js.map +1 -0
- package/dist/generate-manifest-format.d.ts +4 -0
- package/dist/generate-manifest-format.d.ts.map +1 -0
- package/dist/generate-manifest-format.js +74 -0
- package/dist/generate-manifest-format.js.map +1 -0
- package/dist/generate-manifest-identities.d.ts +6 -0
- package/dist/generate-manifest-identities.d.ts.map +1 -0
- package/dist/generate-manifest-identities.js +115 -0
- package/dist/generate-manifest-identities.js.map +1 -0
- package/dist/generate-manifest-utils.d.ts +23 -0
- package/dist/generate-manifest-utils.d.ts.map +1 -0
- package/dist/generate-manifest-utils.js +125 -0
- package/dist/generate-manifest-utils.js.map +1 -0
- package/dist/generate-manifest.d.ts +30 -0
- package/dist/generate-manifest.d.ts.map +1 -0
- package/dist/generate-manifest.js +89 -0
- package/dist/generate-manifest.js.map +1 -0
- package/dist/generated-artifacts.d.ts +69 -0
- package/dist/generated-artifacts.d.ts.map +1 -0
- package/dist/generated-artifacts.js +124 -0
- package/dist/generated-artifacts.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware-coverage.d.ts +12 -0
- package/dist/middleware-coverage.d.ts.map +1 -0
- package/dist/middleware-coverage.js +90 -0
- package/dist/middleware-coverage.js.map +1 -0
- package/dist/normalize-compat.d.ts +26 -0
- package/dist/normalize-compat.d.ts.map +1 -0
- package/dist/normalize-compat.js +155 -0
- package/dist/normalize-compat.js.map +1 -0
- package/dist/normalize-event-listener.d.ts +11 -0
- package/dist/normalize-event-listener.d.ts.map +1 -0
- package/dist/normalize-event-listener.js +123 -0
- package/dist/normalize-event-listener.js.map +1 -0
- package/dist/normalize-event-validation.d.ts +4 -0
- package/dist/normalize-event-validation.d.ts.map +1 -0
- package/dist/normalize-event-validation.js +137 -0
- package/dist/normalize-event-validation.js.map +1 -0
- package/dist/normalize-generated-function.d.ts +10 -0
- package/dist/normalize-generated-function.d.ts.map +1 -0
- package/dist/normalize-generated-function.js +20 -0
- package/dist/normalize-generated-function.js.map +1 -0
- package/dist/normalize-graph-app.d.ts +8 -0
- package/dist/normalize-graph-app.d.ts.map +1 -0
- package/dist/normalize-graph-app.js +71 -0
- package/dist/normalize-graph-app.js.map +1 -0
- package/dist/normalize-graph-config.d.ts +5 -0
- package/dist/normalize-graph-config.d.ts.map +1 -0
- package/dist/normalize-graph-config.js +97 -0
- package/dist/normalize-graph-config.js.map +1 -0
- package/dist/normalize-graph-edges.d.ts +3 -0
- package/dist/normalize-graph-edges.d.ts.map +1 -0
- package/dist/normalize-graph-edges.js +139 -0
- package/dist/normalize-graph-edges.js.map +1 -0
- package/dist/normalize-graph-nodes.d.ts +3 -0
- package/dist/normalize-graph-nodes.d.ts.map +1 -0
- package/dist/normalize-graph-nodes.js +184 -0
- package/dist/normalize-graph-nodes.js.map +1 -0
- package/dist/normalize-graph-providers.d.ts +4 -0
- package/dist/normalize-graph-providers.d.ts.map +1 -0
- package/dist/normalize-graph-providers.js +63 -0
- package/dist/normalize-graph-providers.js.map +1 -0
- package/dist/normalize-graph-services.d.ts +2 -0
- package/dist/normalize-graph-services.d.ts.map +1 -0
- package/dist/normalize-graph-services.js +23 -0
- package/dist/normalize-graph-services.js.map +1 -0
- package/dist/normalize-graph-types.d.ts +26 -0
- package/dist/normalize-graph-types.d.ts.map +1 -0
- package/dist/normalize-graph-types.js +2 -0
- package/dist/normalize-graph-types.js.map +1 -0
- package/dist/normalize-graph-utils.d.ts +4 -0
- package/dist/normalize-graph-utils.d.ts.map +1 -0
- package/dist/normalize-graph-utils.js +29 -0
- package/dist/normalize-graph-utils.js.map +1 -0
- package/dist/normalize-graph.d.ts +4 -0
- package/dist/normalize-graph.d.ts.map +1 -0
- package/dist/normalize-graph.js +21 -0
- package/dist/normalize-graph.js.map +1 -0
- package/dist/normalize-http-validation.d.ts +8 -0
- package/dist/normalize-http-validation.d.ts.map +1 -0
- package/dist/normalize-http-validation.js +86 -0
- package/dist/normalize-http-validation.js.map +1 -0
- package/dist/normalize-identity-rewrite.d.ts +3 -0
- package/dist/normalize-identity-rewrite.d.ts.map +1 -0
- package/dist/normalize-identity-rewrite.js +30 -0
- package/dist/normalize-identity-rewrite.js.map +1 -0
- package/dist/normalize-job-validation.d.ts +3 -0
- package/dist/normalize-job-validation.d.ts.map +1 -0
- package/dist/normalize-job-validation.js +31 -0
- package/dist/normalize-job-validation.js.map +1 -0
- package/dist/normalize-model-selection.d.ts +17 -0
- package/dist/normalize-model-selection.d.ts.map +1 -0
- package/dist/normalize-model-selection.js +103 -0
- package/dist/normalize-model-selection.js.map +1 -0
- package/dist/normalize-output.d.ts +4 -0
- package/dist/normalize-output.d.ts.map +1 -0
- package/dist/normalize-output.js +42 -0
- package/dist/normalize-output.js.map +1 -0
- package/dist/normalize-pass-core.d.ts +9 -0
- package/dist/normalize-pass-core.d.ts.map +1 -0
- package/dist/normalize-pass-core.js +113 -0
- package/dist/normalize-pass-core.js.map +1 -0
- package/dist/normalize-pass-semantic.d.ts +11 -0
- package/dist/normalize-pass-semantic.d.ts.map +1 -0
- package/dist/normalize-pass-semantic.js +149 -0
- package/dist/normalize-pass-semantic.js.map +1 -0
- package/dist/normalize-pass-utils.d.ts +12 -0
- package/dist/normalize-pass-utils.d.ts.map +1 -0
- package/dist/normalize-pass-utils.js +116 -0
- package/dist/normalize-pass-utils.js.map +1 -0
- package/dist/normalize-passes.d.ts +3 -0
- package/dist/normalize-passes.d.ts.map +1 -0
- package/dist/normalize-passes.js +3 -0
- package/dist/normalize-passes.js.map +1 -0
- package/dist/normalize-provider-validation.d.ts +4 -0
- package/dist/normalize-provider-validation.d.ts.map +1 -0
- package/dist/normalize-provider-validation.js +34 -0
- package/dist/normalize-provider-validation.js.map +1 -0
- package/dist/normalize-public-types.d.ts +13 -0
- package/dist/normalize-public-types.d.ts.map +1 -0
- package/dist/normalize-public-types.js +2 -0
- package/dist/normalize-public-types.js.map +1 -0
- package/dist/normalize-rate-limit.d.ts +4 -0
- package/dist/normalize-rate-limit.d.ts.map +1 -0
- package/dist/normalize-rate-limit.js +35 -0
- package/dist/normalize-rate-limit.js.map +1 -0
- package/dist/normalize-reference-index.d.ts +6 -0
- package/dist/normalize-reference-index.d.ts.map +1 -0
- package/dist/normalize-reference-index.js +82 -0
- package/dist/normalize-reference-index.js.map +1 -0
- package/dist/normalize-reference-validation.d.ts +4 -0
- package/dist/normalize-reference-validation.d.ts.map +1 -0
- package/dist/normalize-reference-validation.js +88 -0
- package/dist/normalize-reference-validation.js.map +1 -0
- package/dist/normalize-route-file.d.ts +4 -0
- package/dist/normalize-route-file.d.ts.map +1 -0
- package/dist/normalize-route-file.js +41 -0
- package/dist/normalize-route-file.js.map +1 -0
- package/dist/normalize-route-inference.d.ts +4 -0
- package/dist/normalize-route-inference.d.ts.map +1 -0
- package/dist/normalize-route-inference.js +117 -0
- package/dist/normalize-route-inference.js.map +1 -0
- package/dist/normalize-schema-validation.d.ts +3 -0
- package/dist/normalize-schema-validation.d.ts.map +1 -0
- package/dist/normalize-schema-validation.js +50 -0
- package/dist/normalize-schema-validation.js.map +1 -0
- package/dist/normalize-source-identities.d.ts +3 -0
- package/dist/normalize-source-identities.d.ts.map +1 -0
- package/dist/normalize-source-identities.js +158 -0
- package/dist/normalize-source-identities.js.map +1 -0
- package/dist/normalize-types.d.ts +130 -0
- package/dist/normalize-types.d.ts.map +1 -0
- package/dist/normalize-types.js +99 -0
- package/dist/normalize-types.js.map +1 -0
- package/dist/normalize-utils.d.ts +24 -0
- package/dist/normalize-utils.d.ts.map +1 -0
- package/dist/normalize-utils.js +139 -0
- package/dist/normalize-utils.js.map +1 -0
- package/dist/normalize.d.ts +9 -0
- package/dist/normalize.d.ts.map +1 -0
- package/dist/normalize.js +106 -0
- package/dist/normalize.js.map +1 -0
- package/dist/project-typecheck.d.ts +4 -0
- package/dist/project-typecheck.d.ts.map +1 -0
- package/dist/project-typecheck.js +49 -0
- package/dist/project-typecheck.js.map +1 -0
- package/dist/route-file.d.ts +29 -0
- package/dist/route-file.d.ts.map +1 -0
- package/dist/route-file.js +97 -0
- package/dist/route-file.js.map +1 -0
- package/dist/watch.d.ts +27 -0
- package/dist/watch.d.ts.map +1 -0
- package/dist/watch.js +117 -0
- package/dist/watch.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type RouteFileSegment = {
|
|
2
|
+
readonly kind: "static";
|
|
3
|
+
readonly value: string;
|
|
4
|
+
} | {
|
|
5
|
+
readonly kind: "dynamic";
|
|
6
|
+
readonly name: string;
|
|
7
|
+
} | {
|
|
8
|
+
readonly kind: "catch-all";
|
|
9
|
+
readonly name: string;
|
|
10
|
+
} | {
|
|
11
|
+
readonly kind: "optional-catch-all";
|
|
12
|
+
readonly name: string;
|
|
13
|
+
};
|
|
14
|
+
export interface ParsedRouteFilePath {
|
|
15
|
+
readonly sourcePath: string;
|
|
16
|
+
readonly canonicalPath: string;
|
|
17
|
+
readonly runtimePaths: readonly string[];
|
|
18
|
+
readonly segments: readonly RouteFileSegment[];
|
|
19
|
+
readonly parameters: readonly {
|
|
20
|
+
readonly name: string;
|
|
21
|
+
readonly kind: "dynamic" | "catch-all" | "optional-catch-all";
|
|
22
|
+
}[];
|
|
23
|
+
readonly precedence: 0 | 1 | 2 | 3;
|
|
24
|
+
}
|
|
25
|
+
/** Parses the required nested route-file convention without executing source. */
|
|
26
|
+
export declare function parseRouteFilePath(sourcePath: string): ParsedRouteFilePath;
|
|
27
|
+
/** Orders static, dynamic, required catch-all, then optional catch-all routes. */
|
|
28
|
+
export declare function compareRouteFilePaths(left: ParsedRouteFilePath, right: ParsedRouteFilePath): number;
|
|
29
|
+
//# sourceMappingURL=route-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-file.d.ts","sourceRoot":"","sources":["../src/route-file.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,SAAS;QAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,oBAAoB,CAAC;KAC/D,EAAE,CAAC;IACJ,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACpC;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAoC1E;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,mBAAmB,GACzB,MAAM,CAIR"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/** Parses the required nested route-file convention without executing source. */
|
|
2
|
+
export function parseRouteFilePath(sourcePath) {
|
|
3
|
+
const normalized = sourcePath.replaceAll("\\", "/").replace(/^\.\/+/, "");
|
|
4
|
+
const prefix = "src/routes/";
|
|
5
|
+
if (!normalized.startsWith(prefix) || !normalized.endsWith("/route.ts")) {
|
|
6
|
+
if (normalized !== "src/routes/route.ts") {
|
|
7
|
+
throw new TypeError(`Route source must match ${prefix}**/route.ts: ${sourcePath}`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
const relative = normalized.slice(prefix.length, -"route.ts".length).replace(/\/$/, "");
|
|
11
|
+
const rawSegments = relative === "" ? [] : relative.split("/");
|
|
12
|
+
const segments = rawSegments.map(parseSegment);
|
|
13
|
+
assertSegments(segments);
|
|
14
|
+
const canonicalPath = pathFrom(segments, "canonical");
|
|
15
|
+
const optionalIndex = segments.findIndex((segment) => segment.kind === "optional-catch-all");
|
|
16
|
+
const runtimePaths = optionalIndex === -1
|
|
17
|
+
? [pathFrom(segments, "runtime")]
|
|
18
|
+
: [pathFrom(segments.slice(0, optionalIndex), "runtime"), pathFrom(segments, "runtime")];
|
|
19
|
+
const parameters = segments.flatMap((segment) => segment.kind === "static" ? [] : [{ name: segment.name, kind: segment.kind }]);
|
|
20
|
+
const precedence = segments.reduce((rank, segment) => Math.max(rank, segmentRank(segment)), 0);
|
|
21
|
+
return Object.freeze({
|
|
22
|
+
sourcePath: normalized,
|
|
23
|
+
canonicalPath,
|
|
24
|
+
runtimePaths: Object.freeze(runtimePaths),
|
|
25
|
+
segments: Object.freeze(segments),
|
|
26
|
+
parameters: Object.freeze(parameters),
|
|
27
|
+
precedence,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/** Orders static, dynamic, required catch-all, then optional catch-all routes. */
|
|
31
|
+
export function compareRouteFilePaths(left, right) {
|
|
32
|
+
return (left.precedence - right.precedence || left.canonicalPath.localeCompare(right.canonicalPath));
|
|
33
|
+
}
|
|
34
|
+
function parseSegment(value) {
|
|
35
|
+
if (value === "" || value === "." || value === "..")
|
|
36
|
+
invalid(value);
|
|
37
|
+
if (value.startsWith("@") || value.includes("(") || value.includes(")")) {
|
|
38
|
+
throw new TypeError(`Unsupported route segment "${value}"`);
|
|
39
|
+
}
|
|
40
|
+
const optional = /^\[\[\.\.\.([^\]]+)\]\]$/.exec(value);
|
|
41
|
+
if (optional !== null)
|
|
42
|
+
return named("optional-catch-all", optional[1] ?? "");
|
|
43
|
+
const catchAll = /^\[\.\.\.([^\]]+)\]$/.exec(value);
|
|
44
|
+
if (catchAll !== null)
|
|
45
|
+
return named("catch-all", catchAll[1] ?? "");
|
|
46
|
+
const dynamic = /^\[([^\]]+)\]$/.exec(value);
|
|
47
|
+
if (dynamic !== null)
|
|
48
|
+
return named("dynamic", dynamic[1] ?? "");
|
|
49
|
+
if (value.includes("[") || value.includes("]"))
|
|
50
|
+
invalid(value);
|
|
51
|
+
return { kind: "static", value };
|
|
52
|
+
}
|
|
53
|
+
function named(kind, name) {
|
|
54
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) {
|
|
55
|
+
throw new TypeError(`Invalid route parameter name "${name}"`);
|
|
56
|
+
}
|
|
57
|
+
return { kind, name };
|
|
58
|
+
}
|
|
59
|
+
function assertSegments(segments) {
|
|
60
|
+
const names = new Set();
|
|
61
|
+
segments.forEach((segment, index) => {
|
|
62
|
+
if (segment.kind === "static")
|
|
63
|
+
return;
|
|
64
|
+
if (names.has(segment.name))
|
|
65
|
+
throw new TypeError(`Duplicate route parameter "${segment.name}"`);
|
|
66
|
+
names.add(segment.name);
|
|
67
|
+
if (segment.kind !== "dynamic" && index !== segments.length - 1) {
|
|
68
|
+
throw new TypeError(`Catch-all route parameter "${segment.name}" must be the final segment`);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function pathFrom(segments, mode) {
|
|
73
|
+
if (segments.length === 0)
|
|
74
|
+
return "/";
|
|
75
|
+
return `/${segments
|
|
76
|
+
.map((segment) => {
|
|
77
|
+
if (segment.kind === "static")
|
|
78
|
+
return segment.value;
|
|
79
|
+
if (segment.kind === "dynamic")
|
|
80
|
+
return `:${segment.name}`;
|
|
81
|
+
if (mode === "runtime")
|
|
82
|
+
return `:${segment.name}{.+}`;
|
|
83
|
+
return segment.kind === "catch-all" ? `*${segment.name}` : `*${segment.name}?`;
|
|
84
|
+
})
|
|
85
|
+
.join("/")}`;
|
|
86
|
+
}
|
|
87
|
+
function segmentRank(segment) {
|
|
88
|
+
if (segment.kind === "static")
|
|
89
|
+
return 0;
|
|
90
|
+
if (segment.kind === "dynamic")
|
|
91
|
+
return 1;
|
|
92
|
+
return segment.kind === "catch-all" ? 2 : 3;
|
|
93
|
+
}
|
|
94
|
+
function invalid(value) {
|
|
95
|
+
throw new TypeError(`Malformed route segment "${value}"`);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=route-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-file.js","sourceRoot":"","sources":["../src/route-file.ts"],"names":[],"mappings":"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"}
|
package/dist/watch.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { NormalizedDescriptor } from "./normalize-types.js";
|
|
2
|
+
export declare const WATCH_ARTIFACTS: readonly ["application.graph.json", "runtime.manifest.ts", "diagnostics.json"];
|
|
3
|
+
export type WatchArtifactKind = (typeof WATCH_ARTIFACTS)[number];
|
|
4
|
+
export interface WatchDescriptorDependency {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly sourceFile: string;
|
|
7
|
+
readonly dependencies: readonly string[];
|
|
8
|
+
}
|
|
9
|
+
export interface WatchDependencyIndex {
|
|
10
|
+
readonly descriptors: readonly WatchDescriptorDependency[];
|
|
11
|
+
readonly sourceFiles: ReadonlyMap<string, readonly string[]>;
|
|
12
|
+
readonly dependants: ReadonlyMap<string, readonly string[]>;
|
|
13
|
+
}
|
|
14
|
+
export interface WatchInvalidation {
|
|
15
|
+
readonly changedFiles: readonly string[];
|
|
16
|
+
readonly changedDescriptorIds: readonly string[];
|
|
17
|
+
readonly affectedDescriptorIds: readonly string[];
|
|
18
|
+
readonly affectedFiles: readonly string[];
|
|
19
|
+
readonly discoveryInvalidated: boolean;
|
|
20
|
+
readonly invalidatedArtifacts: readonly WatchArtifactKind[];
|
|
21
|
+
}
|
|
22
|
+
/** Builds a stable reverse dependency index from descriptor refs, including nested refs. */
|
|
23
|
+
export declare function createWatchDependencyIndex(descriptors: readonly NormalizedDescriptor[]): WatchDependencyIndex;
|
|
24
|
+
/** Finds changed descriptors and their transitive dependants without compiling or executing code. */
|
|
25
|
+
export declare function invalidateWatchDependencies(index: WatchDependencyIndex, changedFiles: readonly string[], projectRoot?: string): WatchInvalidation;
|
|
26
|
+
export declare const invalidateWatch: typeof invalidateWatchDependencies;
|
|
27
|
+
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,eAAO,MAAM,eAAe,gFAIjB,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC7D;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAC3C,oBAAoB,CAuBtB;AAED,qGAAqG;AACrG,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,EAC3B,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,WAAW,CAAC,EAAE,MAAM,GACnB,iBAAiB,CAuCnB;AAED,eAAO,MAAM,eAAe,oCAA8B,CAAC"}
|
package/dist/watch.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { normalizeSourcePath } from "@relkit/contracts";
|
|
2
|
+
export const WATCH_ARTIFACTS = Object.freeze([
|
|
3
|
+
"application.graph.json",
|
|
4
|
+
"runtime.manifest.ts",
|
|
5
|
+
"diagnostics.json",
|
|
6
|
+
]);
|
|
7
|
+
/** Builds a stable reverse dependency index from descriptor refs, including nested refs. */
|
|
8
|
+
export function createWatchDependencyIndex(descriptors) {
|
|
9
|
+
const ordered = [...descriptors].sort(compareDescriptors);
|
|
10
|
+
const sourceFiles = new Map();
|
|
11
|
+
const dependants = new Map();
|
|
12
|
+
const entries = ordered.map((descriptor) => {
|
|
13
|
+
const dependencies = [...referencedIds(descriptor.value)]
|
|
14
|
+
.filter((id) => id !== descriptor.id)
|
|
15
|
+
.sort(compareText);
|
|
16
|
+
const ids = sourceFiles.get(descriptor.source.file) ?? [];
|
|
17
|
+
ids.push(descriptor.id);
|
|
18
|
+
sourceFiles.set(descriptor.source.file, ids);
|
|
19
|
+
for (const dependency of dependencies) {
|
|
20
|
+
const values = dependants.get(dependency) ?? new Set();
|
|
21
|
+
values.add(descriptor.id);
|
|
22
|
+
dependants.set(dependency, values);
|
|
23
|
+
}
|
|
24
|
+
return Object.freeze({ id: descriptor.id, sourceFile: descriptor.source.file, dependencies });
|
|
25
|
+
});
|
|
26
|
+
return Object.freeze({
|
|
27
|
+
descriptors: Object.freeze(entries),
|
|
28
|
+
sourceFiles: freezeMap(sourceFiles),
|
|
29
|
+
dependants: freezeMap(dependants),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/** Finds changed descriptors and their transitive dependants without compiling or executing code. */
|
|
33
|
+
export function invalidateWatchDependencies(index, changedFiles, projectRoot) {
|
|
34
|
+
const files = [...new Set(changedFiles.map((file) => watchPath(file, projectRoot)))].sort(compareText);
|
|
35
|
+
const changedIds = new Set();
|
|
36
|
+
for (const file of files) {
|
|
37
|
+
for (const id of index.sourceFiles.get(file) ?? [])
|
|
38
|
+
changedIds.add(id);
|
|
39
|
+
}
|
|
40
|
+
const affected = new Set(changedIds);
|
|
41
|
+
const queue = [...changedIds].sort(compareText);
|
|
42
|
+
while (queue.length > 0) {
|
|
43
|
+
const id = queue.shift();
|
|
44
|
+
if (id === undefined)
|
|
45
|
+
continue;
|
|
46
|
+
for (const dependant of index.dependants.get(id) ?? []) {
|
|
47
|
+
if (affected.has(dependant))
|
|
48
|
+
continue;
|
|
49
|
+
affected.add(dependant);
|
|
50
|
+
queue.push(dependant);
|
|
51
|
+
}
|
|
52
|
+
queue.sort(compareText);
|
|
53
|
+
}
|
|
54
|
+
const affectedDescriptorIds = [...affected].sort(compareText);
|
|
55
|
+
const affectedFiles = index.descriptors
|
|
56
|
+
.filter((descriptor) => affected.has(descriptor.id))
|
|
57
|
+
.map((descriptor) => descriptor.sourceFile)
|
|
58
|
+
.filter((file, position, all) => all.indexOf(file) === position)
|
|
59
|
+
.sort(compareText);
|
|
60
|
+
const discoveryInvalidated = files.some((file) => !index.sourceFiles.has(file));
|
|
61
|
+
return Object.freeze({
|
|
62
|
+
changedFiles: Object.freeze(files),
|
|
63
|
+
changedDescriptorIds: Object.freeze([...changedIds].sort(compareText)),
|
|
64
|
+
affectedDescriptorIds: Object.freeze(affectedDescriptorIds),
|
|
65
|
+
affectedFiles: Object.freeze(affectedFiles),
|
|
66
|
+
discoveryInvalidated,
|
|
67
|
+
invalidatedArtifacts: Object.freeze(files.length === 0 || (!discoveryInvalidated && affected.size === 0)
|
|
68
|
+
? []
|
|
69
|
+
: [...WATCH_ARTIFACTS]),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
export const invalidateWatch = invalidateWatchDependencies;
|
|
73
|
+
function referencedIds(value, result = new Set(), seen = new WeakSet()) {
|
|
74
|
+
if (Array.isArray(value)) {
|
|
75
|
+
if (seen.has(value))
|
|
76
|
+
return result;
|
|
77
|
+
seen.add(value);
|
|
78
|
+
value.forEach((entry) => referencedIds(entry, result, seen));
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
if (!isRecord(value))
|
|
82
|
+
return result;
|
|
83
|
+
if (seen.has(value))
|
|
84
|
+
return result;
|
|
85
|
+
seen.add(value);
|
|
86
|
+
if (isRecord(value.ref) && typeof value.ref.id === "string")
|
|
87
|
+
result.add(value.ref.id);
|
|
88
|
+
Object.values(value).forEach((entry) => referencedIds(entry, result, seen));
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
function isRecord(value) {
|
|
92
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
93
|
+
}
|
|
94
|
+
function compareDescriptors(left, right) {
|
|
95
|
+
return (compareText(left.id, right.id) ||
|
|
96
|
+
compareText(left.kind, right.kind) ||
|
|
97
|
+
compareText(left.source.file, right.source.file) ||
|
|
98
|
+
left.source.line - right.source.line ||
|
|
99
|
+
left.source.column - right.source.column);
|
|
100
|
+
}
|
|
101
|
+
function compareText(left, right) {
|
|
102
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
103
|
+
}
|
|
104
|
+
function watchPath(file, projectRoot) {
|
|
105
|
+
try {
|
|
106
|
+
return normalizeSourcePath(file, projectRoot);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return file.replaceAll("\\", "/").replace(/^\.\//, "");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function freezeMap(values) {
|
|
113
|
+
return new Map([...values.entries()]
|
|
114
|
+
.sort(([left], [right]) => compareText(left, right))
|
|
115
|
+
.map(([key, value]) => [key, Object.freeze([...value].sort(compareText))]));
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@relkit/compiler",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Unsupported internal RELKIT source compiler; use @relkit/cli.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/rel-kit/relkit.git",
|
|
9
|
+
"directory": "packages/compiler"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/rel-kit/relkit#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/rel-kit/relkit/issues"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"engines": {
|
|
22
|
+
"bun": ">=1.3.10"
|
|
23
|
+
},
|
|
24
|
+
"type": "module",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"import": "./dist/index.js"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@relkit/contracts": "0.0.0",
|
|
33
|
+
"@relkit/client-generator": "0.0.0",
|
|
34
|
+
"@relkit/diagnostics": "0.0.0",
|
|
35
|
+
"@relkit/graph": "0.0.0",
|
|
36
|
+
"@relkit/openapi": "0.0.0",
|
|
37
|
+
"@relkit/schema": "0.0.0",
|
|
38
|
+
"typescript": "5.9.2"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"build": "tsc -b",
|
|
42
|
+
"check": "tsc -b --pretty false",
|
|
43
|
+
"typecheck": "tsc -b --pretty false"
|
|
44
|
+
}
|
|
45
|
+
}
|