@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.
Files changed (303) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/config-loader-deployment.d.ts +7 -0
  4. package/dist/config-loader-deployment.d.ts.map +1 -0
  5. package/dist/config-loader-deployment.js +36 -0
  6. package/dist/config-loader-deployment.js.map +1 -0
  7. package/dist/config-loader-runtime.d.ts +30 -0
  8. package/dist/config-loader-runtime.d.ts.map +1 -0
  9. package/dist/config-loader-runtime.js +105 -0
  10. package/dist/config-loader-runtime.js.map +1 -0
  11. package/dist/config-loader-types.d.ts +107 -0
  12. package/dist/config-loader-types.d.ts.map +1 -0
  13. package/dist/config-loader-types.js +37 -0
  14. package/dist/config-loader-types.js.map +1 -0
  15. package/dist/config-loader-utils.d.ts +10 -0
  16. package/dist/config-loader-utils.d.ts.map +1 -0
  17. package/dist/config-loader-utils.js +88 -0
  18. package/dist/config-loader-utils.js.map +1 -0
  19. package/dist/config-loader.d.ts +12 -0
  20. package/dist/config-loader.d.ts.map +1 -0
  21. package/dist/config-loader.js +89 -0
  22. package/dist/config-loader.js.map +1 -0
  23. package/dist/context-registry.d.ts +7 -0
  24. package/dist/context-registry.d.ts.map +1 -0
  25. package/dist/context-registry.js +55 -0
  26. package/dist/context-registry.js.map +1 -0
  27. package/dist/conventions.d.ts +32 -0
  28. package/dist/conventions.d.ts.map +1 -0
  29. package/dist/conventions.js +125 -0
  30. package/dist/conventions.js.map +1 -0
  31. package/dist/discovery/ast-prefilter-utils.d.ts +4 -0
  32. package/dist/discovery/ast-prefilter-utils.d.ts.map +1 -0
  33. package/dist/discovery/ast-prefilter-utils.js +186 -0
  34. package/dist/discovery/ast-prefilter-utils.js.map +1 -0
  35. package/dist/discovery/ast-prefilter.d.ts +36 -0
  36. package/dist/discovery/ast-prefilter.d.ts.map +1 -0
  37. package/dist/discovery/ast-prefilter.js +33 -0
  38. package/dist/discovery/ast-prefilter.js.map +1 -0
  39. package/dist/discovery/data-model-isolation.d.ts +8 -0
  40. package/dist/discovery/data-model-isolation.d.ts.map +1 -0
  41. package/dist/discovery/data-model-isolation.js +52 -0
  42. package/dist/discovery/data-model-isolation.js.map +1 -0
  43. package/dist/discovery/evaluator-child-utils.d.ts +4 -0
  44. package/dist/discovery/evaluator-child-utils.d.ts.map +1 -0
  45. package/dist/discovery/evaluator-child-utils.js +48 -0
  46. package/dist/discovery/evaluator-child-utils.js.map +1 -0
  47. package/dist/discovery/evaluator-child.d.ts +2 -0
  48. package/dist/discovery/evaluator-child.d.ts.map +1 -0
  49. package/dist/discovery/evaluator-child.js +139 -0
  50. package/dist/discovery/evaluator-child.js.map +1 -0
  51. package/dist/discovery/evaluator-detector-files.d.ts +9 -0
  52. package/dist/discovery/evaluator-detector-files.d.ts.map +1 -0
  53. package/dist/discovery/evaluator-detector-files.js +105 -0
  54. package/dist/discovery/evaluator-detector-files.js.map +1 -0
  55. package/dist/discovery/evaluator-detector-network.d.ts +6 -0
  56. package/dist/discovery/evaluator-detector-network.d.ts.map +1 -0
  57. package/dist/discovery/evaluator-detector-network.js +109 -0
  58. package/dist/discovery/evaluator-detector-network.js.map +1 -0
  59. package/dist/discovery/evaluator-detector-timers.d.ts +9 -0
  60. package/dist/discovery/evaluator-detector-timers.d.ts.map +1 -0
  61. package/dist/discovery/evaluator-detector-timers.js +105 -0
  62. package/dist/discovery/evaluator-detector-timers.js.map +1 -0
  63. package/dist/discovery/evaluator-detectors.d.ts +18 -0
  64. package/dist/discovery/evaluator-detectors.d.ts.map +1 -0
  65. package/dist/discovery/evaluator-detectors.js +54 -0
  66. package/dist/discovery/evaluator-detectors.js.map +1 -0
  67. package/dist/discovery/evaluator-protocol.d.ts +94 -0
  68. package/dist/discovery/evaluator-protocol.d.ts.map +1 -0
  69. package/dist/discovery/evaluator-protocol.js +89 -0
  70. package/dist/discovery/evaluator-protocol.js.map +1 -0
  71. package/dist/discovery/evaluator-request.d.ts +18 -0
  72. package/dist/discovery/evaluator-request.d.ts.map +1 -0
  73. package/dist/discovery/evaluator-request.js +49 -0
  74. package/dist/discovery/evaluator-request.js.map +1 -0
  75. package/dist/discovery/evaluator-snapshot.d.ts +12 -0
  76. package/dist/discovery/evaluator-snapshot.d.ts.map +1 -0
  77. package/dist/discovery/evaluator-snapshot.js +87 -0
  78. package/dist/discovery/evaluator-snapshot.js.map +1 -0
  79. package/dist/discovery/evaluator.d.ts +8 -0
  80. package/dist/discovery/evaluator.d.ts.map +1 -0
  81. package/dist/discovery/evaluator.js +123 -0
  82. package/dist/discovery/evaluator.js.map +1 -0
  83. package/dist/discovery/extract.d.ts +21 -0
  84. package/dist/discovery/extract.d.ts.map +1 -0
  85. package/dist/discovery/extract.js +60 -0
  86. package/dist/discovery/extract.js.map +1 -0
  87. package/dist/discovery/source-facts-factory.d.ts +5 -0
  88. package/dist/discovery/source-facts-factory.d.ts.map +1 -0
  89. package/dist/discovery/source-facts-factory.js +109 -0
  90. package/dist/discovery/source-facts-factory.js.map +1 -0
  91. package/dist/discovery/source-facts-types.d.ts +52 -0
  92. package/dist/discovery/source-facts-types.d.ts.map +1 -0
  93. package/dist/discovery/source-facts-types.js +2 -0
  94. package/dist/discovery/source-facts-types.js.map +1 -0
  95. package/dist/discovery/source-facts.d.ts +6 -0
  96. package/dist/discovery/source-facts.d.ts.map +1 -0
  97. package/dist/discovery/source-facts.js +141 -0
  98. package/dist/discovery/source-facts.js.map +1 -0
  99. package/dist/discovery/source-id-route.d.ts +3 -0
  100. package/dist/discovery/source-id-route.d.ts.map +1 -0
  101. package/dist/discovery/source-id-route.js +61 -0
  102. package/dist/discovery/source-id-route.js.map +1 -0
  103. package/dist/discovery/source-id.d.ts +36 -0
  104. package/dist/discovery/source-id.d.ts.map +1 -0
  105. package/dist/discovery/source-id.js +146 -0
  106. package/dist/discovery/source-id.js.map +1 -0
  107. package/dist/discovery/source-map-utils.d.ts +10 -0
  108. package/dist/discovery/source-map-utils.d.ts.map +1 -0
  109. package/dist/discovery/source-map-utils.js +29 -0
  110. package/dist/discovery/source-map-utils.js.map +1 -0
  111. package/dist/discovery/source-map.d.ts +26 -0
  112. package/dist/discovery/source-map.d.ts.map +1 -0
  113. package/dist/discovery/source-map.js +119 -0
  114. package/dist/discovery/source-map.js.map +1 -0
  115. package/dist/event-registry.d.ts +9 -0
  116. package/dist/event-registry.d.ts.map +1 -0
  117. package/dist/event-registry.js +43 -0
  118. package/dist/event-registry.js.map +1 -0
  119. package/dist/generate-manifest-event.d.ts +5 -0
  120. package/dist/generate-manifest-event.d.ts.map +1 -0
  121. package/dist/generate-manifest-event.js +81 -0
  122. package/dist/generate-manifest-event.js.map +1 -0
  123. package/dist/generate-manifest-expressions.d.ts +12 -0
  124. package/dist/generate-manifest-expressions.d.ts.map +1 -0
  125. package/dist/generate-manifest-expressions.js +141 -0
  126. package/dist/generate-manifest-expressions.js.map +1 -0
  127. package/dist/generate-manifest-format.d.ts +4 -0
  128. package/dist/generate-manifest-format.d.ts.map +1 -0
  129. package/dist/generate-manifest-format.js +74 -0
  130. package/dist/generate-manifest-format.js.map +1 -0
  131. package/dist/generate-manifest-identities.d.ts +6 -0
  132. package/dist/generate-manifest-identities.d.ts.map +1 -0
  133. package/dist/generate-manifest-identities.js +115 -0
  134. package/dist/generate-manifest-identities.js.map +1 -0
  135. package/dist/generate-manifest-utils.d.ts +23 -0
  136. package/dist/generate-manifest-utils.d.ts.map +1 -0
  137. package/dist/generate-manifest-utils.js +125 -0
  138. package/dist/generate-manifest-utils.js.map +1 -0
  139. package/dist/generate-manifest.d.ts +30 -0
  140. package/dist/generate-manifest.d.ts.map +1 -0
  141. package/dist/generate-manifest.js +89 -0
  142. package/dist/generate-manifest.js.map +1 -0
  143. package/dist/generated-artifacts.d.ts +69 -0
  144. package/dist/generated-artifacts.d.ts.map +1 -0
  145. package/dist/generated-artifacts.js +124 -0
  146. package/dist/generated-artifacts.js.map +1 -0
  147. package/dist/index.d.ts +17 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +17 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/middleware-coverage.d.ts +12 -0
  152. package/dist/middleware-coverage.d.ts.map +1 -0
  153. package/dist/middleware-coverage.js +90 -0
  154. package/dist/middleware-coverage.js.map +1 -0
  155. package/dist/normalize-compat.d.ts +26 -0
  156. package/dist/normalize-compat.d.ts.map +1 -0
  157. package/dist/normalize-compat.js +155 -0
  158. package/dist/normalize-compat.js.map +1 -0
  159. package/dist/normalize-event-listener.d.ts +11 -0
  160. package/dist/normalize-event-listener.d.ts.map +1 -0
  161. package/dist/normalize-event-listener.js +123 -0
  162. package/dist/normalize-event-listener.js.map +1 -0
  163. package/dist/normalize-event-validation.d.ts +4 -0
  164. package/dist/normalize-event-validation.d.ts.map +1 -0
  165. package/dist/normalize-event-validation.js +137 -0
  166. package/dist/normalize-event-validation.js.map +1 -0
  167. package/dist/normalize-generated-function.d.ts +10 -0
  168. package/dist/normalize-generated-function.d.ts.map +1 -0
  169. package/dist/normalize-generated-function.js +20 -0
  170. package/dist/normalize-generated-function.js.map +1 -0
  171. package/dist/normalize-graph-app.d.ts +8 -0
  172. package/dist/normalize-graph-app.d.ts.map +1 -0
  173. package/dist/normalize-graph-app.js +71 -0
  174. package/dist/normalize-graph-app.js.map +1 -0
  175. package/dist/normalize-graph-config.d.ts +5 -0
  176. package/dist/normalize-graph-config.d.ts.map +1 -0
  177. package/dist/normalize-graph-config.js +97 -0
  178. package/dist/normalize-graph-config.js.map +1 -0
  179. package/dist/normalize-graph-edges.d.ts +3 -0
  180. package/dist/normalize-graph-edges.d.ts.map +1 -0
  181. package/dist/normalize-graph-edges.js +139 -0
  182. package/dist/normalize-graph-edges.js.map +1 -0
  183. package/dist/normalize-graph-nodes.d.ts +3 -0
  184. package/dist/normalize-graph-nodes.d.ts.map +1 -0
  185. package/dist/normalize-graph-nodes.js +184 -0
  186. package/dist/normalize-graph-nodes.js.map +1 -0
  187. package/dist/normalize-graph-providers.d.ts +4 -0
  188. package/dist/normalize-graph-providers.d.ts.map +1 -0
  189. package/dist/normalize-graph-providers.js +63 -0
  190. package/dist/normalize-graph-providers.js.map +1 -0
  191. package/dist/normalize-graph-services.d.ts +2 -0
  192. package/dist/normalize-graph-services.d.ts.map +1 -0
  193. package/dist/normalize-graph-services.js +23 -0
  194. package/dist/normalize-graph-services.js.map +1 -0
  195. package/dist/normalize-graph-types.d.ts +26 -0
  196. package/dist/normalize-graph-types.d.ts.map +1 -0
  197. package/dist/normalize-graph-types.js +2 -0
  198. package/dist/normalize-graph-types.js.map +1 -0
  199. package/dist/normalize-graph-utils.d.ts +4 -0
  200. package/dist/normalize-graph-utils.d.ts.map +1 -0
  201. package/dist/normalize-graph-utils.js +29 -0
  202. package/dist/normalize-graph-utils.js.map +1 -0
  203. package/dist/normalize-graph.d.ts +4 -0
  204. package/dist/normalize-graph.d.ts.map +1 -0
  205. package/dist/normalize-graph.js +21 -0
  206. package/dist/normalize-graph.js.map +1 -0
  207. package/dist/normalize-http-validation.d.ts +8 -0
  208. package/dist/normalize-http-validation.d.ts.map +1 -0
  209. package/dist/normalize-http-validation.js +86 -0
  210. package/dist/normalize-http-validation.js.map +1 -0
  211. package/dist/normalize-identity-rewrite.d.ts +3 -0
  212. package/dist/normalize-identity-rewrite.d.ts.map +1 -0
  213. package/dist/normalize-identity-rewrite.js +30 -0
  214. package/dist/normalize-identity-rewrite.js.map +1 -0
  215. package/dist/normalize-job-validation.d.ts +3 -0
  216. package/dist/normalize-job-validation.d.ts.map +1 -0
  217. package/dist/normalize-job-validation.js +31 -0
  218. package/dist/normalize-job-validation.js.map +1 -0
  219. package/dist/normalize-model-selection.d.ts +17 -0
  220. package/dist/normalize-model-selection.d.ts.map +1 -0
  221. package/dist/normalize-model-selection.js +103 -0
  222. package/dist/normalize-model-selection.js.map +1 -0
  223. package/dist/normalize-output.d.ts +4 -0
  224. package/dist/normalize-output.d.ts.map +1 -0
  225. package/dist/normalize-output.js +42 -0
  226. package/dist/normalize-output.js.map +1 -0
  227. package/dist/normalize-pass-core.d.ts +9 -0
  228. package/dist/normalize-pass-core.d.ts.map +1 -0
  229. package/dist/normalize-pass-core.js +113 -0
  230. package/dist/normalize-pass-core.js.map +1 -0
  231. package/dist/normalize-pass-semantic.d.ts +11 -0
  232. package/dist/normalize-pass-semantic.d.ts.map +1 -0
  233. package/dist/normalize-pass-semantic.js +149 -0
  234. package/dist/normalize-pass-semantic.js.map +1 -0
  235. package/dist/normalize-pass-utils.d.ts +12 -0
  236. package/dist/normalize-pass-utils.d.ts.map +1 -0
  237. package/dist/normalize-pass-utils.js +116 -0
  238. package/dist/normalize-pass-utils.js.map +1 -0
  239. package/dist/normalize-passes.d.ts +3 -0
  240. package/dist/normalize-passes.d.ts.map +1 -0
  241. package/dist/normalize-passes.js +3 -0
  242. package/dist/normalize-passes.js.map +1 -0
  243. package/dist/normalize-provider-validation.d.ts +4 -0
  244. package/dist/normalize-provider-validation.d.ts.map +1 -0
  245. package/dist/normalize-provider-validation.js +34 -0
  246. package/dist/normalize-provider-validation.js.map +1 -0
  247. package/dist/normalize-public-types.d.ts +13 -0
  248. package/dist/normalize-public-types.d.ts.map +1 -0
  249. package/dist/normalize-public-types.js +2 -0
  250. package/dist/normalize-public-types.js.map +1 -0
  251. package/dist/normalize-rate-limit.d.ts +4 -0
  252. package/dist/normalize-rate-limit.d.ts.map +1 -0
  253. package/dist/normalize-rate-limit.js +35 -0
  254. package/dist/normalize-rate-limit.js.map +1 -0
  255. package/dist/normalize-reference-index.d.ts +6 -0
  256. package/dist/normalize-reference-index.d.ts.map +1 -0
  257. package/dist/normalize-reference-index.js +82 -0
  258. package/dist/normalize-reference-index.js.map +1 -0
  259. package/dist/normalize-reference-validation.d.ts +4 -0
  260. package/dist/normalize-reference-validation.d.ts.map +1 -0
  261. package/dist/normalize-reference-validation.js +88 -0
  262. package/dist/normalize-reference-validation.js.map +1 -0
  263. package/dist/normalize-route-file.d.ts +4 -0
  264. package/dist/normalize-route-file.d.ts.map +1 -0
  265. package/dist/normalize-route-file.js +41 -0
  266. package/dist/normalize-route-file.js.map +1 -0
  267. package/dist/normalize-route-inference.d.ts +4 -0
  268. package/dist/normalize-route-inference.d.ts.map +1 -0
  269. package/dist/normalize-route-inference.js +117 -0
  270. package/dist/normalize-route-inference.js.map +1 -0
  271. package/dist/normalize-schema-validation.d.ts +3 -0
  272. package/dist/normalize-schema-validation.d.ts.map +1 -0
  273. package/dist/normalize-schema-validation.js +50 -0
  274. package/dist/normalize-schema-validation.js.map +1 -0
  275. package/dist/normalize-source-identities.d.ts +3 -0
  276. package/dist/normalize-source-identities.d.ts.map +1 -0
  277. package/dist/normalize-source-identities.js +158 -0
  278. package/dist/normalize-source-identities.js.map +1 -0
  279. package/dist/normalize-types.d.ts +130 -0
  280. package/dist/normalize-types.d.ts.map +1 -0
  281. package/dist/normalize-types.js +99 -0
  282. package/dist/normalize-types.js.map +1 -0
  283. package/dist/normalize-utils.d.ts +24 -0
  284. package/dist/normalize-utils.d.ts.map +1 -0
  285. package/dist/normalize-utils.js +139 -0
  286. package/dist/normalize-utils.js.map +1 -0
  287. package/dist/normalize.d.ts +9 -0
  288. package/dist/normalize.d.ts.map +1 -0
  289. package/dist/normalize.js +106 -0
  290. package/dist/normalize.js.map +1 -0
  291. package/dist/project-typecheck.d.ts +4 -0
  292. package/dist/project-typecheck.d.ts.map +1 -0
  293. package/dist/project-typecheck.js +49 -0
  294. package/dist/project-typecheck.js.map +1 -0
  295. package/dist/route-file.d.ts +29 -0
  296. package/dist/route-file.d.ts.map +1 -0
  297. package/dist/route-file.js +97 -0
  298. package/dist/route-file.js.map +1 -0
  299. package/dist/watch.d.ts +27 -0
  300. package/dist/watch.d.ts.map +1 -0
  301. package/dist/watch.js +117 -0
  302. package/dist/watch.js.map +1 -0
  303. package/package.json +45 -0
@@ -0,0 +1,130 @@
1
+ import { type DescriptorKind, type JsonValue, type SourceLocation } from "@relkit/contracts";
2
+ import type { Diagnostic } from "@relkit/diagnostics";
3
+ import type { EvaluatorModuleResult, EvaluatorResponse, EvaluatorManifestReference } from "./discovery/evaluator-protocol.js";
4
+ import type { ExtractedDescriptor } from "./discovery/extract.js";
5
+ import type { ExportFact, ExportFacts, SourceMapEntry, SourceMapSource } from "./discovery/source-map.js";
6
+ import type { WatchDependencyIndex } from "./watch.js";
7
+ import type { GraphEdge, GraphNode, NormalizedGraph, ObservedEdge } from "./normalize-graph-types.js";
8
+ export type { GraphEdge, GraphNode, NormalizedGraph, ObservedEdge, } from "./normalize-graph-types.js";
9
+ export type { GenerationIdentity, NormalizationSource, RuntimeReference, } from "./normalize-public-types.js";
10
+ /** Stable diagnostics emitted by the normalization stage. */
11
+ export declare const NORMALIZE_CODES: Readonly<{
12
+ readonly descriptor: "RELKIT_DESCRIPTOR_INVALID";
13
+ readonly id: "RELKIT_ID_INVALID";
14
+ readonly method: "RELKIT_METHOD_INVALID";
15
+ readonly path: "RELKIT_PATH_INVALID";
16
+ readonly routeFile: "RELKIT_ROUTE_FILE_REQUIRED";
17
+ readonly routeExport: "RELKIT_ROUTE_EXPORT_METHOD";
18
+ readonly routeTransport: "RELKIT_ROUTE_LEGACY_TRANSPORT";
19
+ readonly reservedRoute: "RELKIT_ROUTE_RESERVED_PATH";
20
+ readonly rateLimit: "RELKIT_RATE_LIMIT_INVALID";
21
+ readonly rateLimitStore: "RELKIT_RATE_LIMIT_STORE_REQUIRED";
22
+ readonly rateLimitReference: "RELKIT_RATE_LIMIT_STORE_INVALID";
23
+ readonly profile: "RELKIT_PROFILE_INVALID";
24
+ readonly schedule: "RELKIT_SCHEDULE_INVALID";
25
+ readonly retry: "RELKIT_RETRY_INVALID";
26
+ readonly idempotency: "RELKIT_IDEMPOTENCY_INVALID";
27
+ readonly schema: "RELKIT_SCHEMA_UNAVAILABLE";
28
+ readonly missingTarget: "RELKIT_MISSING_TARGET";
29
+ readonly missingMiddleware: "RELKIT_MISSING_MIDDLEWARE";
30
+ readonly missingTransform: "RELKIT_MISSING_TRANSFORM";
31
+ readonly transformCollision: "RELKIT_TRANSFORM_ID_COLLISION";
32
+ readonly duplicateId: "RELKIT_DUPLICATE_ID";
33
+ readonly mapping: "RELKIT_MAPPING_INCOMPATIBLE";
34
+ readonly middlewareInput: "RELKIT_MIDDLEWARE_INPUT_INCOMPATIBLE";
35
+ readonly middlewareOutput: "RELKIT_MIDDLEWARE_OUTPUT_INCOMPATIBLE";
36
+ readonly response: "RELKIT_ROUTE_RESPONSE_INCOMPATIBLE";
37
+ readonly jobInput: "RELKIT_JOB_INPUT_INCOMPATIBLE";
38
+ readonly selector: "RELKIT_EVENT_SELECTOR_EMPTY";
39
+ readonly eventName: "RELKIT_EVENT_NAME_UNKNOWN";
40
+ readonly eventListenerId: "RELKIT_EVENT_LISTENER_ID_REQUIRED";
41
+ readonly wildcard: "RELKIT_EVENT_WILDCARD_RESTRICTED";
42
+ readonly eventTarget: "RELKIT_EVENT_TARGET_INCOMPATIBLE";
43
+ readonly toolTarget: "RELKIT_TOOL_TARGET_INCOMPATIBLE";
44
+ readonly agentTool: "RELKIT_AGENT_TOOL_INVALID";
45
+ readonly model: "RELKIT_MODEL_SELECTOR_INVALID";
46
+ readonly modelProvider: "RELKIT_MODEL_PROVIDER_UNKNOWN";
47
+ readonly modelDefault: "RELKIT_MODEL_PROVIDER_DEFAULT_MISSING";
48
+ readonly modelConfiguration: "RELKIT_MODEL_PROVIDER_CONFIGURATION_INVALID";
49
+ readonly providerProfile: "RELKIT_PROVIDER_PROFILE_UNKNOWN";
50
+ readonly bucketProfileDuplicate: "RELKIT_BUCKET_PROFILE_DUPLICATE";
51
+ readonly identityAmbiguous: "RELKIT_ID_INFERENCE_AMBIGUOUS";
52
+ readonly source: "RELKIT_SOURCE_LOCATION_INVALID";
53
+ readonly collision: "RELKIT_ROUTE_COLLISION";
54
+ readonly handler: "RELKIT_MANIFEST_HANDLER_MISSING";
55
+ readonly authDuplicate: "RELKIT_AUTH_DUPLICATE";
56
+ readonly dataModelDuplicate: "RELKIT_DATA_MODEL_DUPLICATE";
57
+ readonly appDuplicate: "RELKIT_APP_DUPLICATE";
58
+ }>;
59
+ /** The ordered pass names required by v3 Section 11.4. */
60
+ export declare const VALIDATION_PASSES: readonly ["extract descriptor values", "assign source locations", "normalize IDs, paths, methods, profiles, models, and schedules", "validate descriptor-local fields", "build stable reference index", "resolve target references", "validate schema availability and JSON Schema generation", "validate route mapping compatibility", "validate job input compatibility", "expand event selectors", "validate event target compatibility", "validate tool target compatibility", "validate agent tools and model selectors", "validate provider profiles", "detect route collisions", "sort graph nodes and edges", "produce hash and generated outputs"];
61
+ export type ValidationPass = (typeof VALIDATION_PASSES)[number];
62
+ export interface NormalizeInput {
63
+ readonly descriptors?: readonly unknown[];
64
+ readonly observedEdges?: readonly ObservedEdge[];
65
+ readonly extracted?: readonly ExtractedDescriptor[];
66
+ readonly evaluator?: EvaluatorResponse | readonly EvaluatorModuleResult[];
67
+ readonly modules?: readonly EvaluatorModuleResult[];
68
+ readonly projectRoot?: string;
69
+ readonly appId?: string;
70
+ readonly generationId?: string;
71
+ readonly mode?: "development" | "test" | "production";
72
+ readonly sources?: readonly SourceMapSource[];
73
+ readonly sourceMap?: readonly SourceMapEntry[];
74
+ readonly locations?: ReadonlyMap<string, SourceLocation> | Readonly<Record<string, SourceLocation>>;
75
+ readonly onPass?: (pass: ValidationPass, index: number) => void;
76
+ }
77
+ export interface NormalizedDescriptor {
78
+ readonly kind: string;
79
+ readonly id: string;
80
+ readonly source: SourceLocation;
81
+ readonly exportName: string;
82
+ readonly exportKind: "default" | "named";
83
+ readonly identity?: "explicit" | "inferred";
84
+ readonly facts?: ExportFacts;
85
+ readonly exportFact?: ExportFact;
86
+ readonly reference?: EvaluatorManifestReference;
87
+ readonly value: unknown;
88
+ }
89
+ export interface GeneratedOutputs {
90
+ readonly graph: string;
91
+ readonly manifest: string;
92
+ readonly diagnostics: string;
93
+ readonly openapi: string;
94
+ readonly client: string;
95
+ readonly contract: string;
96
+ readonly clientContract: string;
97
+ }
98
+ export interface NormalizationResult {
99
+ readonly passOrder: readonly ValidationPass[];
100
+ readonly diagnostics: readonly Diagnostic[];
101
+ readonly descriptors: readonly NormalizedDescriptor[];
102
+ readonly references: ReadonlyMap<string, NormalizedDescriptor>;
103
+ readonly observedEdges: readonly ObservedEdge[];
104
+ readonly graph?: NormalizedGraph;
105
+ readonly graphHash?: string;
106
+ readonly outputs: GeneratedOutputs;
107
+ readonly watch: WatchDependencyIndex;
108
+ readonly activatable: boolean;
109
+ }
110
+ export interface NormalizationWork {
111
+ readonly input: NormalizeInput;
112
+ descriptors: NormalizedDescriptor[];
113
+ references: Map<string, NormalizedDescriptor>;
114
+ referencesByKind: Map<string, Map<string, NormalizedDescriptor>>;
115
+ middlewareReferences: Map<string, NormalizedDescriptor>;
116
+ transformReferences: Map<string, NormalizedDescriptor>;
117
+ schemas: Map<string, JsonValue>;
118
+ selectorExpansions: Map<string, readonly string[]>;
119
+ nodes: GraphNode[];
120
+ edges: GraphEdge[];
121
+ observedEdges: ObservedEdge[];
122
+ diagnostics: Diagnostic[];
123
+ passOrder: ValidationPass[];
124
+ graph?: NormalizedGraph;
125
+ graphHash?: string;
126
+ outputs: GeneratedOutputs;
127
+ }
128
+ export declare function isDescriptorKindValue(value: string): value is DescriptorKind;
129
+ export declare const EMPTY_OUTPUTS: GeneratedOutputs;
130
+ //# sourceMappingURL=normalize-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-types.d.ts","sourceRoot":"","sources":["../src/normalize-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import {} from "@relkit/contracts";
2
+ /** Stable diagnostics emitted by the normalization stage. */
3
+ export const NORMALIZE_CODES = Object.freeze({
4
+ descriptor: "RELKIT_DESCRIPTOR_INVALID",
5
+ id: "RELKIT_ID_INVALID",
6
+ method: "RELKIT_METHOD_INVALID",
7
+ path: "RELKIT_PATH_INVALID",
8
+ routeFile: "RELKIT_ROUTE_FILE_REQUIRED",
9
+ routeExport: "RELKIT_ROUTE_EXPORT_METHOD",
10
+ routeTransport: "RELKIT_ROUTE_LEGACY_TRANSPORT",
11
+ reservedRoute: "RELKIT_ROUTE_RESERVED_PATH",
12
+ rateLimit: "RELKIT_RATE_LIMIT_INVALID",
13
+ rateLimitStore: "RELKIT_RATE_LIMIT_STORE_REQUIRED",
14
+ rateLimitReference: "RELKIT_RATE_LIMIT_STORE_INVALID",
15
+ profile: "RELKIT_PROFILE_INVALID",
16
+ schedule: "RELKIT_SCHEDULE_INVALID",
17
+ retry: "RELKIT_RETRY_INVALID",
18
+ idempotency: "RELKIT_IDEMPOTENCY_INVALID",
19
+ schema: "RELKIT_SCHEMA_UNAVAILABLE",
20
+ missingTarget: "RELKIT_MISSING_TARGET",
21
+ missingMiddleware: "RELKIT_MISSING_MIDDLEWARE",
22
+ missingTransform: "RELKIT_MISSING_TRANSFORM",
23
+ transformCollision: "RELKIT_TRANSFORM_ID_COLLISION",
24
+ duplicateId: "RELKIT_DUPLICATE_ID",
25
+ mapping: "RELKIT_MAPPING_INCOMPATIBLE",
26
+ middlewareInput: "RELKIT_MIDDLEWARE_INPUT_INCOMPATIBLE",
27
+ middlewareOutput: "RELKIT_MIDDLEWARE_OUTPUT_INCOMPATIBLE",
28
+ response: "RELKIT_ROUTE_RESPONSE_INCOMPATIBLE",
29
+ jobInput: "RELKIT_JOB_INPUT_INCOMPATIBLE",
30
+ selector: "RELKIT_EVENT_SELECTOR_EMPTY",
31
+ eventName: "RELKIT_EVENT_NAME_UNKNOWN",
32
+ eventListenerId: "RELKIT_EVENT_LISTENER_ID_REQUIRED",
33
+ wildcard: "RELKIT_EVENT_WILDCARD_RESTRICTED",
34
+ eventTarget: "RELKIT_EVENT_TARGET_INCOMPATIBLE",
35
+ toolTarget: "RELKIT_TOOL_TARGET_INCOMPATIBLE",
36
+ agentTool: "RELKIT_AGENT_TOOL_INVALID",
37
+ model: "RELKIT_MODEL_SELECTOR_INVALID",
38
+ modelProvider: "RELKIT_MODEL_PROVIDER_UNKNOWN",
39
+ modelDefault: "RELKIT_MODEL_PROVIDER_DEFAULT_MISSING",
40
+ modelConfiguration: "RELKIT_MODEL_PROVIDER_CONFIGURATION_INVALID",
41
+ providerProfile: "RELKIT_PROVIDER_PROFILE_UNKNOWN",
42
+ bucketProfileDuplicate: "RELKIT_BUCKET_PROFILE_DUPLICATE",
43
+ identityAmbiguous: "RELKIT_ID_INFERENCE_AMBIGUOUS",
44
+ source: "RELKIT_SOURCE_LOCATION_INVALID",
45
+ collision: "RELKIT_ROUTE_COLLISION",
46
+ handler: "RELKIT_MANIFEST_HANDLER_MISSING",
47
+ authDuplicate: "RELKIT_AUTH_DUPLICATE",
48
+ dataModelDuplicate: "RELKIT_DATA_MODEL_DUPLICATE",
49
+ appDuplicate: "RELKIT_APP_DUPLICATE",
50
+ });
51
+ /** The ordered pass names required by v3 Section 11.4. */
52
+ export const VALIDATION_PASSES = Object.freeze([
53
+ "extract descriptor values",
54
+ "assign source locations",
55
+ "normalize IDs, paths, methods, profiles, models, and schedules",
56
+ "validate descriptor-local fields",
57
+ "build stable reference index",
58
+ "resolve target references",
59
+ "validate schema availability and JSON Schema generation",
60
+ "validate route mapping compatibility",
61
+ "validate job input compatibility",
62
+ "expand event selectors",
63
+ "validate event target compatibility",
64
+ "validate tool target compatibility",
65
+ "validate agent tools and model selectors",
66
+ "validate provider profiles",
67
+ "detect route collisions",
68
+ "sort graph nodes and edges",
69
+ "produce hash and generated outputs",
70
+ ]);
71
+ export function isDescriptorKindValue(value) {
72
+ return [
73
+ "app",
74
+ "function",
75
+ "middleware",
76
+ "service",
77
+ "route",
78
+ "job",
79
+ "event",
80
+ "event-trigger",
81
+ "bucket",
82
+ "cache",
83
+ "tool",
84
+ "agent",
85
+ "data-model",
86
+ "constants",
87
+ "prompt",
88
+ ].includes(value);
89
+ }
90
+ export const EMPTY_OUTPUTS = Object.freeze({
91
+ graph: "",
92
+ manifest: "",
93
+ diagnostics: "",
94
+ openapi: "",
95
+ client: "",
96
+ contract: "",
97
+ clientContract: "",
98
+ });
99
+ //# sourceMappingURL=normalize-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-types.js","sourceRoot":"","sources":["../src/normalize-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,MAAM,mBAAmB,CAAC;AAgC7F,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,2BAA2B;IACvC,EAAE,EAAE,mBAAmB;IACvB,MAAM,EAAE,uBAAuB;IAC/B,IAAI,EAAE,qBAAqB;IAC3B,SAAS,EAAE,4BAA4B;IACvC,WAAW,EAAE,4BAA4B;IACzC,cAAc,EAAE,+BAA+B;IAC/C,aAAa,EAAE,4BAA4B;IAC3C,SAAS,EAAE,2BAA2B;IACtC,cAAc,EAAE,kCAAkC;IAClD,kBAAkB,EAAE,iCAAiC;IACrD,OAAO,EAAE,wBAAwB;IACjC,QAAQ,EAAE,yBAAyB;IACnC,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,4BAA4B;IACzC,MAAM,EAAE,2BAA2B;IACnC,aAAa,EAAE,uBAAuB;IACtC,iBAAiB,EAAE,2BAA2B;IAC9C,gBAAgB,EAAE,0BAA0B;IAC5C,kBAAkB,EAAE,+BAA+B;IACnD,WAAW,EAAE,qBAAqB;IAClC,OAAO,EAAE,6BAA6B;IACtC,eAAe,EAAE,sCAAsC;IACvD,gBAAgB,EAAE,uCAAuC;IACzD,QAAQ,EAAE,oCAAoC;IAC9C,QAAQ,EAAE,+BAA+B;IACzC,QAAQ,EAAE,6BAA6B;IACvC,SAAS,EAAE,2BAA2B;IACtC,eAAe,EAAE,mCAAmC;IACpD,QAAQ,EAAE,kCAAkC;IAC5C,WAAW,EAAE,kCAAkC;IAC/C,UAAU,EAAE,iCAAiC;IAC7C,SAAS,EAAE,2BAA2B;IACtC,KAAK,EAAE,+BAA+B;IACtC,aAAa,EAAE,+BAA+B;IAC9C,YAAY,EAAE,uCAAuC;IACrD,kBAAkB,EAAE,6CAA6C;IACjE,eAAe,EAAE,iCAAiC;IAClD,sBAAsB,EAAE,iCAAiC;IACzD,iBAAiB,EAAE,+BAA+B;IAClD,MAAM,EAAE,gCAAgC;IACxC,SAAS,EAAE,wBAAwB;IACnC,OAAO,EAAE,iCAAiC;IAC1C,aAAa,EAAE,uBAAuB;IACtC,kBAAkB,EAAE,6BAA6B;IACjD,YAAY,EAAE,sBAAsB;CAC5B,CAAC,CAAC;AACZ,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,2BAA2B;IAC3B,yBAAyB;IACzB,gEAAgE;IAChE,kCAAkC;IAClC,8BAA8B;IAC9B,2BAA2B;IAC3B,yDAAyD;IACzD,sCAAsC;IACtC,kCAAkC;IAClC,wBAAwB;IACxB,qCAAqC;IACrC,oCAAoC;IACpC,0CAA0C;IAC1C,4BAA4B;IAC5B,yBAAyB;IACzB,4BAA4B;IAC5B,oCAAoC;CAC5B,CAAC,CAAC;AAqEZ,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO;QACL,KAAK;QACL,UAAU;QACV,YAAY;QACZ,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,eAAe;QACf,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,YAAY;QACZ,WAAW;QACX,QAAQ;KACT,CAAC,QAAQ,CAAC,KAAuB,CAAC,CAAC;AACtC,CAAC;AACD,MAAM,CAAC,MAAM,aAAa,GAAqB,MAAM,CAAC,MAAM,CAAC;IAC3D,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,EAAE;CACnB,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type JsonValue, type SourceLocation } from "@relkit/contracts";
2
+ import type { NormalizeInput, NormalizedDescriptor } from "./normalize-types.js";
3
+ export declare function isRecord(value: unknown): value is Record<string, any>;
4
+ export declare function isErrorDescriptorLike(value: unknown): value is Record<string, any>;
5
+ export declare function hasOwn(value: object, key: PropertyKey): boolean;
6
+ export declare function text(value: unknown): string | undefined;
7
+ export declare function positive(value: unknown): value is number;
8
+ export declare function nonNegative(value: unknown): value is number;
9
+ export declare function stable(value: unknown): value is string;
10
+ export declare function id(value: unknown): string | undefined;
11
+ export declare function method(value: unknown): string | undefined;
12
+ export declare function path(value: unknown): string | undefined;
13
+ export declare function profile(value: unknown): string | undefined;
14
+ export declare function source(value: unknown, input: NormalizeInput, fallback?: string): SourceLocation;
15
+ export declare function isSourceLocation(value: unknown): value is SourceLocation;
16
+ export declare function locationFor(descriptor: NormalizedDescriptor, input: NormalizeInput): SourceLocation;
17
+ export declare function json(value: unknown): value is JsonValue;
18
+ export declare function canonical(value: unknown): string;
19
+ export declare function cloneJson(value: JsonValue): JsonValue;
20
+ export declare function refId(value: unknown): string | undefined;
21
+ export declare function refKind(value: unknown): string | undefined;
22
+ export declare function schemaKey(descriptorId: string, field: string): string;
23
+ export declare function stableKey(value: string, source: SourceLocation): string;
24
+ //# sourceMappingURL=normalize-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-utils.d.ts","sourceRoot":"","sources":["../src/normalize-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAUlF;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAE/D;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEvD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE3D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEtD;AAED,wBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMrD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMzD;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAYvD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED,wBAAgB,MAAM,CACpB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,cAAc,EACrB,QAAQ,SAAqB,GAC5B,cAAc,CAWhB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CASxE;AAED,wBAAgB,WAAW,CACzB,UAAU,EAAE,oBAAoB,EAChC,KAAK,EAAE,cAAc,GACpB,cAAc,CAsBhB;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAOvD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAMrD;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAExD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI1D;AAED,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAEvE"}
@@ -0,0 +1,139 @@
1
+ import { canonicalJson, isStableId, normalizeId, normalizeSourceLocation, normalizeSourcePath, } from "@relkit/contracts";
2
+ export function isRecord(value) {
3
+ return value !== null && typeof value === "object" && !Array.isArray(value);
4
+ }
5
+ export function isErrorDescriptorLike(value) {
6
+ if (value === null || (typeof value !== "object" && typeof value !== "function"))
7
+ return false;
8
+ const candidate = value;
9
+ return (candidate.kind === "error" &&
10
+ typeof candidate.id === "string" &&
11
+ isRecord(candidate.ref) &&
12
+ candidate.ref.kind === "error" &&
13
+ candidate.ref.id === candidate.id);
14
+ }
15
+ export function hasOwn(value, key) {
16
+ return Object.prototype.hasOwnProperty.call(value, key);
17
+ }
18
+ export function text(value) {
19
+ return typeof value === "string" && value.trim() !== "" ? value.trim() : undefined;
20
+ }
21
+ export function positive(value) {
22
+ return Number.isSafeInteger(value) && value > 0;
23
+ }
24
+ export function nonNegative(value) {
25
+ return Number.isSafeInteger(value) && value >= 0;
26
+ }
27
+ export function stable(value) {
28
+ return isStableId(value);
29
+ }
30
+ export function id(value) {
31
+ try {
32
+ return normalizeId(value);
33
+ }
34
+ catch {
35
+ return undefined;
36
+ }
37
+ }
38
+ export function method(value) {
39
+ if (typeof value !== "string")
40
+ return undefined;
41
+ const result = value.trim().toUpperCase();
42
+ return ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS", "ALL"].includes(result)
43
+ ? result
44
+ : undefined;
45
+ }
46
+ export function path(value) {
47
+ if (typeof value !== "string")
48
+ return undefined;
49
+ const raw = value.trim().replaceAll("\\", "/");
50
+ if (!raw.startsWith("/") ||
51
+ raw.includes("#") ||
52
+ raw.split("/").some((part) => part.includes("?") && !/^\*[A-Za-z_][A-Za-z0-9_]*\?$/.test(part)))
53
+ return undefined;
54
+ const parts = raw.split("/").filter((part, index) => part !== "" || index === 0);
55
+ const result = `/${parts.slice(1).join("/")}`.replace(/\/+/g, "/");
56
+ return result === "/" ? result : result.replace(/\/$/, "");
57
+ }
58
+ export function profile(value) {
59
+ return value === undefined ? "default" : id(value);
60
+ }
61
+ export function source(value, input, fallback = "relkit.config.ts") {
62
+ const root = input.projectRoot;
63
+ const location = isSourceLocation(value) ? value : isRecord(value) ? value.source : undefined;
64
+ if (isSourceLocation(location)) {
65
+ try {
66
+ return normalizeSourceLocation(location, root);
67
+ }
68
+ catch {
69
+ // The caller emits the stable source diagnostic and uses the fallback.
70
+ }
71
+ }
72
+ return { file: normalizeSourcePath(fallback, root), line: 1, column: 1 };
73
+ }
74
+ export function isSourceLocation(value) {
75
+ return (isRecord(value) &&
76
+ typeof value.file === "string" &&
77
+ Number.isInteger(value.line) &&
78
+ Number.isInteger(value.column) &&
79
+ value.line > 0 &&
80
+ value.column > 0);
81
+ }
82
+ export function locationFor(descriptor, input) {
83
+ const configured = input.locations;
84
+ const keys = [
85
+ descriptor.id,
86
+ descriptor.source.file,
87
+ `${descriptor.source.file}:${descriptor.id}`,
88
+ ];
89
+ for (const key of keys) {
90
+ const getter = configured === undefined ? undefined : configured.get;
91
+ const value = typeof getter === "function"
92
+ ? getter(key)
93
+ : configured?.[key];
94
+ if (isSourceLocation(value)) {
95
+ try {
96
+ return normalizeSourceLocation(value, input.projectRoot);
97
+ }
98
+ catch {
99
+ return descriptor.source;
100
+ }
101
+ }
102
+ }
103
+ return descriptor.source;
104
+ }
105
+ export function json(value) {
106
+ try {
107
+ canonicalJson(value);
108
+ return true;
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ }
114
+ export function canonical(value) {
115
+ return canonicalJson(value);
116
+ }
117
+ export function cloneJson(value) {
118
+ if (Array.isArray(value))
119
+ return value.map(cloneJson);
120
+ if (value !== null && typeof value === "object") {
121
+ return Object.fromEntries(Object.entries(value).map(([key, child]) => [key, cloneJson(child)]));
122
+ }
123
+ return value;
124
+ }
125
+ export function refId(value) {
126
+ return isRecord(value) && isRecord(value.ref) ? id(value.ref.id) : undefined;
127
+ }
128
+ export function refKind(value) {
129
+ return isRecord(value) && isRecord(value.ref) && typeof value.ref.kind === "string"
130
+ ? value.ref.kind
131
+ : undefined;
132
+ }
133
+ export function schemaKey(descriptorId, field) {
134
+ return `${descriptorId}:${field}`;
135
+ }
136
+ export function stableKey(value, source) {
137
+ return `${value}\0${source.file}\0${source.line}\0${source.column}`;
138
+ }
139
+ //# sourceMappingURL=normalize-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-utils.js","sourceRoot":"","sources":["../src/normalize-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type NormalizeInput, type NormalizationResult } from "./normalize-types.js";
2
+ export * from "./normalize-types.js";
3
+ /** Runs the exact v3 Section 11.4 compiler passes in their specified order. */
4
+ export declare function normalizeCompilation(input?: NormalizeInput): NormalizationResult;
5
+ /** Alias used by compiler callers that describe the input as descriptor values. */
6
+ export declare const normalizeDescriptors: typeof normalizeCompilation;
7
+ /** Short alias for the compiler normalization entrypoint. */
8
+ export declare const normalize: typeof normalizeCompilation;
9
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAqBA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAGzB,MAAM,sBAAsB,CAAC;AAI9B,cAAc,sBAAsB,CAAC;AAErC,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,KAAK,GAAE,cAAmB,GAAG,mBAAmB,CAgEpF;AAED,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,6BAAuB,CAAC;AAEzD,6DAA6D;AAC7D,eAAO,MAAM,SAAS,6BAAuB,CAAC"}
@@ -0,0 +1,106 @@
1
+ import { hashGraph } from "./normalize-graph.js";
2
+ import { generateManifest } from "./generate-manifest.js";
3
+ import { makeOutputs } from "./normalize-output.js";
4
+ import { passAgents, passCollisions, passEventTargets, passEvents, passExtract, passGraph, passIndex, passJobs, passLocal, passNormalize, passProviders, passReferences, passRoutes, passSchemas, passSources, passTools, } from "./normalize-passes.js";
5
+ import { EMPTY_OUTPUTS, NORMALIZE_CODES, VALIDATION_PASSES, } from "./normalize-types.js";
6
+ import { createDiagnostic } from "@relkit/diagnostics";
7
+ import { createWatchDependencyIndex } from "./watch.js";
8
+ export * from "./normalize-types.js";
9
+ /** Runs the exact v3 Section 11.4 compiler passes in their specified order. */
10
+ export function normalizeCompilation(input = {}) {
11
+ const work = {
12
+ input,
13
+ descriptors: [],
14
+ references: new Map(),
15
+ referencesByKind: new Map(),
16
+ middlewareReferences: new Map(),
17
+ transformReferences: new Map(),
18
+ schemas: new Map(),
19
+ selectorExpansions: new Map(),
20
+ nodes: [],
21
+ edges: [],
22
+ observedEdges: [...(input.observedEdges ?? [])],
23
+ diagnostics: [],
24
+ passOrder: [],
25
+ outputs: EMPTY_OUTPUTS,
26
+ };
27
+ const passes = [
28
+ () => passExtract(work),
29
+ () => passSources(work),
30
+ () => passNormalize(work),
31
+ () => passLocal(work),
32
+ () => passIndex(work),
33
+ () => passReferences(work),
34
+ () => passSchemas(work),
35
+ () => passRoutes(work),
36
+ () => passJobs(work),
37
+ () => passEvents(work),
38
+ () => passEventTargets(work),
39
+ () => passTools(work),
40
+ () => passAgents(work),
41
+ () => passProviders(work),
42
+ () => passCollisions(work),
43
+ () => passGraph(work),
44
+ () => passOutputs(work),
45
+ ];
46
+ passes.forEach((run, index) => {
47
+ const pass = VALIDATION_PASSES[index];
48
+ work.passOrder.push(pass);
49
+ input.onPass?.(pass, index + 1);
50
+ try {
51
+ run();
52
+ }
53
+ catch (error) {
54
+ work.diagnostics.push(createDiagnostic({
55
+ code: "RELKIT_NORMALIZATION_FAILED",
56
+ severity: "error",
57
+ message: `${pass} failed: ${error instanceof Error ? error.message : String(error)}`,
58
+ }));
59
+ }
60
+ });
61
+ return {
62
+ passOrder: Object.freeze([...work.passOrder]),
63
+ diagnostics: Object.freeze(sortDiagnostics(work.diagnostics)),
64
+ descriptors: Object.freeze([...work.descriptors]),
65
+ references: work.references,
66
+ observedEdges: Object.freeze([...work.observedEdges]),
67
+ ...(work.graph === undefined ? {} : { graph: work.graph }),
68
+ ...(work.graphHash === undefined ? {} : { graphHash: work.graphHash }),
69
+ outputs: work.outputs,
70
+ watch: createWatchDependencyIndex(work.descriptors),
71
+ activatable: work.diagnostics.every((diagnostic) => diagnostic.severity !== "error"),
72
+ };
73
+ }
74
+ /** Alias used by compiler callers that describe the input as descriptor values. */
75
+ export const normalizeDescriptors = normalizeCompilation;
76
+ /** Short alias for the compiler normalization entrypoint. */
77
+ export const normalize = normalizeCompilation;
78
+ function passOutputs(work) {
79
+ if (work.graph === undefined)
80
+ return;
81
+ const hash = hashGraph(work.graph);
82
+ work.graphHash = hash;
83
+ const manifest = generateManifest({
84
+ graph: work.graph,
85
+ graphHash: hash,
86
+ descriptors: work.descriptors,
87
+ middleware: [...work.middlewareReferences.values()],
88
+ transforms: [...work.transformReferences.values()],
89
+ diagnostics: work.diagnostics,
90
+ ...(work.input.projectRoot === undefined ? {} : { projectRoot: work.input.projectRoot }),
91
+ });
92
+ work.diagnostics.push(...manifest.diagnostics);
93
+ work.outputs = makeOutputs(work.graph, hash, sortDiagnostics(work.diagnostics), work, manifest);
94
+ if (work.diagnostics.some((diagnostic) => diagnostic.severity === "error")) {
95
+ work.outputs = Object.freeze({ ...work.outputs, manifest: "" });
96
+ }
97
+ }
98
+ function sortDiagnostics(diagnostics) {
99
+ return [...diagnostics].sort((left, right) => (left.file ?? "").localeCompare(right.file ?? "") ||
100
+ (left.line ?? Number.MAX_SAFE_INTEGER) - (right.line ?? Number.MAX_SAFE_INTEGER) ||
101
+ (left.column ?? Number.MAX_SAFE_INTEGER) - (right.column ?? Number.MAX_SAFE_INTEGER) ||
102
+ left.code.localeCompare(right.code) ||
103
+ left.severity.localeCompare(right.severity) ||
104
+ left.message.localeCompare(right.message));
105
+ }
106
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type Diagnostic } from "@relkit/diagnostics";
2
+ /** Type-checks a project with its own tsconfig after generated declarations exist. */
3
+ export declare function typecheckProject(projectRoot: string): readonly Diagnostic[];
4
+ //# sourceMappingURL=project-typecheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-typecheck.d.ts","sourceRoot":"","sources":["../src/project-typecheck.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,UAAU,EAA2B,MAAM,qBAAqB,CAAC;AAGjG,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAwB3E"}
@@ -0,0 +1,49 @@
1
+ import { existsSync } from "node:fs";
2
+ import { dirname, resolve } from "node:path";
3
+ import { createDiagnostic } from "@relkit/diagnostics";
4
+ import ts from "typescript";
5
+ /** Type-checks a project with its own tsconfig after generated declarations exist. */
6
+ export function typecheckProject(projectRoot) {
7
+ const configPath = resolve(projectRoot, "tsconfig.json");
8
+ if (!existsSync(configPath))
9
+ return [];
10
+ const loaded = ts.readConfigFile(configPath, ts.sys.readFile);
11
+ if (loaded.error)
12
+ return [typescriptDiagnostic(loaded.error, projectRoot)];
13
+ const parsed = ts.parseJsonConfigFileContent(loaded.config, ts.sys, dirname(configPath), {
14
+ noEmit: true,
15
+ }, configPath);
16
+ const program = ts.createProgram({
17
+ rootNames: parsed.fileNames,
18
+ options: parsed.options,
19
+ ...(parsed.projectReferences ? { projectReferences: parsed.projectReferences } : {}),
20
+ });
21
+ return [...parsed.errors, ...ts.getPreEmitDiagnostics(program)].map((diagnostic) => typescriptDiagnostic(diagnostic, projectRoot));
22
+ }
23
+ function typescriptDiagnostic(diagnostic, projectRoot) {
24
+ const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
25
+ if (!diagnostic.file || diagnostic.start === undefined) {
26
+ return createDiagnostic({
27
+ code: `TS${diagnostic.code}`,
28
+ severity: severity(diagnostic.category),
29
+ message,
30
+ });
31
+ }
32
+ const location = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
33
+ return createDiagnostic({
34
+ code: `TS${diagnostic.code}`,
35
+ severity: severity(diagnostic.category),
36
+ message,
37
+ file: diagnostic.file.fileName,
38
+ line: location.line + 1,
39
+ column: location.character + 1,
40
+ }, { projectRoot });
41
+ }
42
+ function severity(category) {
43
+ if (category === ts.DiagnosticCategory.Error)
44
+ return "error";
45
+ if (category === ts.DiagnosticCategory.Warning)
46
+ return "warning";
47
+ return "info";
48
+ }
49
+ //# sourceMappingURL=project-typecheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-typecheck.js","sourceRoot":"","sources":["../src/project-typecheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAA4C,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,sFAAsF;AACtF,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,EAAE,CAAC,0BAA0B,CAC1C,MAAM,CAAC,MAAM,EACb,EAAE,CAAC,GAAG,EACN,OAAO,CAAC,UAAU,CAAC,EACnB;QACE,MAAM,EAAE,IAAI;KACb,EACD,UAAU,CACX,CAAC;IACF,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrF,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACjF,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAyB,EAAE,WAAmB;IAC1E,MAAM,OAAO,GAAG,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO,gBAAgB,CAAC;YACtB,IAAI,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE;YAC5B,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvC,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjF,OAAO,gBAAgB,CACrB;QACE,IAAI,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;QACvC,OAAO;QACP,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ;QAC9B,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;QACvB,MAAM,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC;KAC/B,EACD,EAAE,WAAW,EAAE,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,QAA+B;IAC/C,IAAI,QAAQ,KAAK,EAAE,CAAC,kBAAkB,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC7D,IAAI,QAAQ,KAAK,EAAE,CAAC,kBAAkB,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACjE,OAAO,MAAM,CAAC;AAChB,CAAC"}