@virune/compiler 1.1.0-rc.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 (300) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +2 -0
  3. package/dist/src/analysis/control-flow.d.ts +9 -0
  4. package/dist/src/analysis/control-flow.d.ts.map +1 -0
  5. package/dist/src/analysis/control-flow.js +47 -0
  6. package/dist/src/analysis/control-flow.js.map +1 -0
  7. package/dist/src/ast/nodes.d.ts +495 -0
  8. package/dist/src/ast/nodes.d.ts.map +1 -0
  9. package/dist/src/ast/nodes.js +2 -0
  10. package/dist/src/ast/nodes.js.map +1 -0
  11. package/dist/src/binder/symbols.d.ts +36 -0
  12. package/dist/src/binder/symbols.d.ts.map +1 -0
  13. package/dist/src/binder/symbols.js +30 -0
  14. package/dist/src/binder/symbols.js.map +1 -0
  15. package/dist/src/checker/builtin-members.d.ts +4 -0
  16. package/dist/src/checker/builtin-members.d.ts.map +1 -0
  17. package/dist/src/checker/builtin-members.js +175 -0
  18. package/dist/src/checker/builtin-members.js.map +1 -0
  19. package/dist/src/checker/checker.d.ts +148 -0
  20. package/dist/src/checker/checker.d.ts.map +1 -0
  21. package/dist/src/checker/checker.js +2985 -0
  22. package/dist/src/checker/checker.js.map +1 -0
  23. package/dist/src/checker/effect-registry.d.ts +14 -0
  24. package/dist/src/checker/effect-registry.d.ts.map +1 -0
  25. package/dist/src/checker/effect-registry.js +11 -0
  26. package/dist/src/checker/effect-registry.js.map +1 -0
  27. package/dist/src/checker/type-operations.d.ts +27 -0
  28. package/dist/src/checker/type-operations.d.ts.map +1 -0
  29. package/dist/src/checker/type-operations.js +268 -0
  30. package/dist/src/checker/type-operations.js.map +1 -0
  31. package/dist/src/codegen/emitter.d.ts +83 -0
  32. package/dist/src/codegen/emitter.d.ts.map +1 -0
  33. package/dist/src/codegen/emitter.js +1029 -0
  34. package/dist/src/codegen/emitter.js.map +1 -0
  35. package/dist/src/codegen/helpers.d.ts +7 -0
  36. package/dist/src/codegen/helpers.d.ts.map +1 -0
  37. package/dist/src/codegen/helpers.js +48 -0
  38. package/dist/src/codegen/helpers.js.map +1 -0
  39. package/dist/src/codegen/runtime-imports.d.ts +6 -0
  40. package/dist/src/codegen/runtime-imports.d.ts.map +1 -0
  41. package/dist/src/codegen/runtime-imports.js +45 -0
  42. package/dist/src/codegen/runtime-imports.js.map +1 -0
  43. package/dist/src/codegen/writer.d.ts +14 -0
  44. package/dist/src/codegen/writer.d.ts.map +1 -0
  45. package/dist/src/codegen/writer.js +56 -0
  46. package/dist/src/codegen/writer.js.map +1 -0
  47. package/dist/src/compiler.d.ts +24 -0
  48. package/dist/src/compiler.d.ts.map +1 -0
  49. package/dist/src/compiler.js +97 -0
  50. package/dist/src/compiler.js.map +1 -0
  51. package/dist/src/diagnostics/codes.d.ts +18 -0
  52. package/dist/src/diagnostics/codes.d.ts.map +1 -0
  53. package/dist/src/diagnostics/codes.js +43 -0
  54. package/dist/src/diagnostics/codes.js.map +1 -0
  55. package/dist/src/diagnostics/diagnostic.d.ts +41 -0
  56. package/dist/src/diagnostics/diagnostic.d.ts.map +1 -0
  57. package/dist/src/diagnostics/diagnostic.js +50 -0
  58. package/dist/src/diagnostics/diagnostic.js.map +1 -0
  59. package/dist/src/diagnostics/render.d.ts +44 -0
  60. package/dist/src/diagnostics/render.d.ts.map +1 -0
  61. package/dist/src/diagnostics/render.js +44 -0
  62. package/dist/src/diagnostics/render.js.map +1 -0
  63. package/dist/src/experimental-api.d.ts +19 -0
  64. package/dist/src/experimental-api.d.ts.map +1 -0
  65. package/dist/src/experimental-api.js +17 -0
  66. package/dist/src/experimental-api.js.map +1 -0
  67. package/dist/src/hir/lower.d.ts +6 -0
  68. package/dist/src/hir/lower.d.ts.map +1 -0
  69. package/dist/src/hir/lower.js +124 -0
  70. package/dist/src/hir/lower.js.map +1 -0
  71. package/dist/src/hir/nodes.d.ts +12 -0
  72. package/dist/src/hir/nodes.d.ts.map +1 -0
  73. package/dist/src/hir/nodes.js +2 -0
  74. package/dist/src/hir/nodes.js.map +1 -0
  75. package/dist/src/index.d.ts +2 -0
  76. package/dist/src/index.d.ts.map +1 -0
  77. package/dist/src/index.js +2 -0
  78. package/dist/src/index.js.map +1 -0
  79. package/dist/src/interop/checked-api.d.ts +21 -0
  80. package/dist/src/interop/checked-api.d.ts.map +1 -0
  81. package/dist/src/interop/checked-api.js +46 -0
  82. package/dist/src/interop/checked-api.js.map +1 -0
  83. package/dist/src/interop/decision.d.ts +24 -0
  84. package/dist/src/interop/decision.d.ts.map +1 -0
  85. package/dist/src/interop/decision.js +96 -0
  86. package/dist/src/interop/decision.js.map +1 -0
  87. package/dist/src/interop/frontend-component-emission.d.ts +17 -0
  88. package/dist/src/interop/frontend-component-emission.d.ts.map +1 -0
  89. package/dist/src/interop/frontend-component-emission.js +271 -0
  90. package/dist/src/interop/frontend-component-emission.js.map +1 -0
  91. package/dist/src/interop/jsx-view-validation.d.ts +20 -0
  92. package/dist/src/interop/jsx-view-validation.d.ts.map +1 -0
  93. package/dist/src/interop/jsx-view-validation.js +847 -0
  94. package/dist/src/interop/jsx-view-validation.js.map +1 -0
  95. package/dist/src/interop/operation-api.d.ts +32 -0
  96. package/dist/src/interop/operation-api.d.ts.map +1 -0
  97. package/dist/src/interop/operation-api.js +61 -0
  98. package/dist/src/interop/operation-api.js.map +1 -0
  99. package/dist/src/interop/operation.d.ts +136 -0
  100. package/dist/src/interop/operation.d.ts.map +1 -0
  101. package/dist/src/interop/operation.js +575 -0
  102. package/dist/src/interop/operation.js.map +1 -0
  103. package/dist/src/interop/repetition-host-locator.d.ts +25 -0
  104. package/dist/src/interop/repetition-host-locator.d.ts.map +1 -0
  105. package/dist/src/interop/repetition-host-locator.js +61 -0
  106. package/dist/src/interop/repetition-host-locator.js.map +1 -0
  107. package/dist/src/interop/repetition-host-usage-validation.d.ts +11 -0
  108. package/dist/src/interop/repetition-host-usage-validation.d.ts.map +1 -0
  109. package/dist/src/interop/repetition-host-usage-validation.js +89 -0
  110. package/dist/src/interop/repetition-host-usage-validation.js.map +1 -0
  111. package/dist/src/interop/types.d.ts +365 -0
  112. package/dist/src/interop/types.d.ts.map +1 -0
  113. package/dist/src/interop/types.js +2 -0
  114. package/dist/src/interop/types.js.map +1 -0
  115. package/dist/src/mir/lower.d.ts +4 -0
  116. package/dist/src/mir/lower.d.ts.map +1 -0
  117. package/dist/src/mir/lower.js +131 -0
  118. package/dist/src/mir/lower.js.map +1 -0
  119. package/dist/src/mir/nodes.d.ts +36 -0
  120. package/dist/src/mir/nodes.d.ts.map +1 -0
  121. package/dist/src/mir/nodes.js +2 -0
  122. package/dist/src/mir/nodes.js.map +1 -0
  123. package/dist/src/project/incremental.d.ts +9 -0
  124. package/dist/src/project/incremental.d.ts.map +1 -0
  125. package/dist/src/project/incremental.js +15 -0
  126. package/dist/src/project/incremental.js.map +1 -0
  127. package/dist/src/project/project.d.ts +98 -0
  128. package/dist/src/project/project.d.ts.map +1 -0
  129. package/dist/src/project/project.js +884 -0
  130. package/dist/src/project/project.js.map +1 -0
  131. package/dist/src/public-api.d.ts +45 -0
  132. package/dist/src/public-api.d.ts.map +1 -0
  133. package/dist/src/public-api.js +37 -0
  134. package/dist/src/public-api.js.map +1 -0
  135. package/dist/src/reference/evaluator.d.ts +13 -0
  136. package/dist/src/reference/evaluator.d.ts.map +1 -0
  137. package/dist/src/reference/evaluator.js +304 -0
  138. package/dist/src/reference/evaluator.js.map +1 -0
  139. package/dist/src/selfhost/bootstrap-artifact-normalizer.d.ts +65 -0
  140. package/dist/src/selfhost/bootstrap-artifact-normalizer.d.ts.map +1 -0
  141. package/dist/src/selfhost/bootstrap-artifact-normalizer.js +226 -0
  142. package/dist/src/selfhost/bootstrap-artifact-normalizer.js.map +1 -0
  143. package/dist/src/selfhost/bootstrap-artifact-snapshot.d.ts +23 -0
  144. package/dist/src/selfhost/bootstrap-artifact-snapshot.d.ts.map +1 -0
  145. package/dist/src/selfhost/bootstrap-artifact-snapshot.js +122 -0
  146. package/dist/src/selfhost/bootstrap-artifact-snapshot.js.map +1 -0
  147. package/dist/src/selfhost/bootstrap-compiler-selection.d.ts +36 -0
  148. package/dist/src/selfhost/bootstrap-compiler-selection.d.ts.map +1 -0
  149. package/dist/src/selfhost/bootstrap-compiler-selection.js +52 -0
  150. package/dist/src/selfhost/bootstrap-compiler-selection.js.map +1 -0
  151. package/dist/src/selfhost/bootstrap-execution-probe.d.ts +42 -0
  152. package/dist/src/selfhost/bootstrap-execution-probe.d.ts.map +1 -0
  153. package/dist/src/selfhost/bootstrap-execution-probe.js +115 -0
  154. package/dist/src/selfhost/bootstrap-execution-probe.js.map +1 -0
  155. package/dist/src/selfhost/bootstrap-rollback-decision.d.ts +40 -0
  156. package/dist/src/selfhost/bootstrap-rollback-decision.d.ts.map +1 -0
  157. package/dist/src/selfhost/bootstrap-rollback-decision.js +144 -0
  158. package/dist/src/selfhost/bootstrap-rollback-decision.js.map +1 -0
  159. package/dist/src/selfhost/bootstrap-shadow-history.d.ts +49 -0
  160. package/dist/src/selfhost/bootstrap-shadow-history.d.ts.map +1 -0
  161. package/dist/src/selfhost/bootstrap-shadow-history.js +348 -0
  162. package/dist/src/selfhost/bootstrap-shadow-history.js.map +1 -0
  163. package/dist/src/selfhost/bootstrap-shadow-report.d.ts +43 -0
  164. package/dist/src/selfhost/bootstrap-shadow-report.d.ts.map +1 -0
  165. package/dist/src/selfhost/bootstrap-shadow-report.js +94 -0
  166. package/dist/src/selfhost/bootstrap-shadow-report.js.map +1 -0
  167. package/dist/src/selfhost/bootstrap-stage-executor.d.ts +53 -0
  168. package/dist/src/selfhost/bootstrap-stage-executor.d.ts.map +1 -0
  169. package/dist/src/selfhost/bootstrap-stage-executor.js +159 -0
  170. package/dist/src/selfhost/bootstrap-stage-executor.js.map +1 -0
  171. package/dist/src/selfhost/bootstrap-stage-loader.d.ts +14 -0
  172. package/dist/src/selfhost/bootstrap-stage-loader.d.ts.map +1 -0
  173. package/dist/src/selfhost/bootstrap-stage-loader.js +112 -0
  174. package/dist/src/selfhost/bootstrap-stage-loader.js.map +1 -0
  175. package/dist/src/selfhost/bootstrap-stage-pipeline.d.ts +8 -0
  176. package/dist/src/selfhost/bootstrap-stage-pipeline.d.ts.map +1 -0
  177. package/dist/src/selfhost/bootstrap-stage-pipeline.js +85 -0
  178. package/dist/src/selfhost/bootstrap-stage-pipeline.js.map +1 -0
  179. package/dist/src/selfhost/bootstrap-stage-runner.d.ts +47 -0
  180. package/dist/src/selfhost/bootstrap-stage-runner.d.ts.map +1 -0
  181. package/dist/src/selfhost/bootstrap-stage-runner.js +106 -0
  182. package/dist/src/selfhost/bootstrap-stage-runner.js.map +1 -0
  183. package/dist/src/selfhost/clean-bootstrap-evidence.d.ts +83 -0
  184. package/dist/src/selfhost/clean-bootstrap-evidence.d.ts.map +1 -0
  185. package/dist/src/selfhost/clean-bootstrap-evidence.js +233 -0
  186. package/dist/src/selfhost/clean-bootstrap-evidence.js.map +1 -0
  187. package/dist/src/selfhost/compiler-facade.d.ts +33 -0
  188. package/dist/src/selfhost/compiler-facade.d.ts.map +1 -0
  189. package/dist/src/selfhost/compiler-facade.js +65 -0
  190. package/dist/src/selfhost/compiler-facade.js.map +1 -0
  191. package/dist/src/selfhost/contract.d.ts +151 -0
  192. package/dist/src/selfhost/contract.d.ts.map +1 -0
  193. package/dist/src/selfhost/contract.js +335 -0
  194. package/dist/src/selfhost/contract.js.map +1 -0
  195. package/dist/src/selfhost/differential-artifacts.d.ts +8 -0
  196. package/dist/src/selfhost/differential-artifacts.d.ts.map +1 -0
  197. package/dist/src/selfhost/differential-artifacts.js +50 -0
  198. package/dist/src/selfhost/differential-artifacts.js.map +1 -0
  199. package/dist/src/selfhost/differential-harness.d.ts +91 -0
  200. package/dist/src/selfhost/differential-harness.d.ts.map +1 -0
  201. package/dist/src/selfhost/differential-harness.js +246 -0
  202. package/dist/src/selfhost/differential-harness.js.map +1 -0
  203. package/dist/src/selfhost/full-language-inventory-runner.d.ts +49 -0
  204. package/dist/src/selfhost/full-language-inventory-runner.d.ts.map +1 -0
  205. package/dist/src/selfhost/full-language-inventory-runner.js +225 -0
  206. package/dist/src/selfhost/full-language-inventory-runner.js.map +1 -0
  207. package/dist/src/selfhost/full-language-inventory.d.ts +42 -0
  208. package/dist/src/selfhost/full-language-inventory.d.ts.map +1 -0
  209. package/dist/src/selfhost/full-language-inventory.js +163 -0
  210. package/dist/src/selfhost/full-language-inventory.js.map +1 -0
  211. package/dist/src/selfhost/interop-resolution-witness.d.ts +35 -0
  212. package/dist/src/selfhost/interop-resolution-witness.d.ts.map +1 -0
  213. package/dist/src/selfhost/interop-resolution-witness.js +186 -0
  214. package/dist/src/selfhost/interop-resolution-witness.js.map +1 -0
  215. package/dist/src/selfhost/kernel-model-host-adapter.d.ts +28 -0
  216. package/dist/src/selfhost/kernel-model-host-adapter.d.ts.map +1 -0
  217. package/dist/src/selfhost/kernel-model-host-adapter.js +36 -0
  218. package/dist/src/selfhost/kernel-model-host-adapter.js.map +1 -0
  219. package/dist/src/selfhost/legacy-adapter.d.ts +8 -0
  220. package/dist/src/selfhost/legacy-adapter.d.ts.map +1 -0
  221. package/dist/src/selfhost/legacy-adapter.js +186 -0
  222. package/dist/src/selfhost/legacy-adapter.js.map +1 -0
  223. package/dist/src/selfhost/module-graph.d.ts +57 -0
  224. package/dist/src/selfhost/module-graph.d.ts.map +1 -0
  225. package/dist/src/selfhost/module-graph.js +267 -0
  226. package/dist/src/selfhost/module-graph.js.map +1 -0
  227. package/dist/src/selfhost/mvp-adapter.d.ts +19 -0
  228. package/dist/src/selfhost/mvp-adapter.d.ts.map +1 -0
  229. package/dist/src/selfhost/mvp-adapter.js +186 -0
  230. package/dist/src/selfhost/mvp-adapter.js.map +1 -0
  231. package/dist/src/selfhost/node-executor.d.ts +6 -0
  232. package/dist/src/selfhost/node-executor.d.ts.map +1 -0
  233. package/dist/src/selfhost/node-executor.js +138 -0
  234. package/dist/src/selfhost/node-executor.js.map +1 -0
  235. package/dist/src/selfhost/project-compiler-adapter.d.ts +77 -0
  236. package/dist/src/selfhost/project-compiler-adapter.d.ts.map +1 -0
  237. package/dist/src/selfhost/project-compiler-adapter.js +358 -0
  238. package/dist/src/selfhost/project-compiler-adapter.js.map +1 -0
  239. package/dist/src/selfhost/project-differential-adapter.d.ts +15 -0
  240. package/dist/src/selfhost/project-differential-adapter.d.ts.map +1 -0
  241. package/dist/src/selfhost/project-differential-adapter.js +65 -0
  242. package/dist/src/selfhost/project-differential-adapter.js.map +1 -0
  243. package/dist/src/selfhost/promotion-evidence.d.ts +62 -0
  244. package/dist/src/selfhost/promotion-evidence.d.ts.map +1 -0
  245. package/dist/src/selfhost/promotion-evidence.js +332 -0
  246. package/dist/src/selfhost/promotion-evidence.js.map +1 -0
  247. package/dist/src/selfhost/promotion-policy-replay-v2.d.ts +54 -0
  248. package/dist/src/selfhost/promotion-policy-replay-v2.d.ts.map +1 -0
  249. package/dist/src/selfhost/promotion-policy-replay-v2.js +343 -0
  250. package/dist/src/selfhost/promotion-policy-replay-v2.js.map +1 -0
  251. package/dist/src/selfhost/promotion-shadow-history-v2.d.ts +55 -0
  252. package/dist/src/selfhost/promotion-shadow-history-v2.d.ts.map +1 -0
  253. package/dist/src/selfhost/promotion-shadow-history-v2.js +227 -0
  254. package/dist/src/selfhost/promotion-shadow-history-v2.js.map +1 -0
  255. package/dist/src/selfhost/promotion-subject.d.ts +34 -0
  256. package/dist/src/selfhost/promotion-subject.d.ts.map +1 -0
  257. package/dist/src/selfhost/promotion-subject.js +141 -0
  258. package/dist/src/selfhost/promotion-subject.js.map +1 -0
  259. package/dist/src/selfhost/source-manifest.d.ts +31 -0
  260. package/dist/src/selfhost/source-manifest.d.ts.map +1 -0
  261. package/dist/src/selfhost/source-manifest.js +194 -0
  262. package/dist/src/selfhost/source-manifest.js.map +1 -0
  263. package/dist/src/selfhost/stage-compiler-facade.d.ts +25 -0
  264. package/dist/src/selfhost/stage-compiler-facade.d.ts.map +1 -0
  265. package/dist/src/selfhost/stage-compiler-facade.js +100 -0
  266. package/dist/src/selfhost/stage-compiler-facade.js.map +1 -0
  267. package/dist/src/semantic-evidence/snapshot.d.ts +114 -0
  268. package/dist/src/semantic-evidence/snapshot.d.ts.map +1 -0
  269. package/dist/src/semantic-evidence/snapshot.js +336 -0
  270. package/dist/src/semantic-evidence/snapshot.js.map +1 -0
  271. package/dist/src/source.d.ts +25 -0
  272. package/dist/src/source.d.ts.map +1 -0
  273. package/dist/src/source.js +10 -0
  274. package/dist/src/source.js.map +1 -0
  275. package/dist/src/syntax/cst-to-ast.d.ts +108 -0
  276. package/dist/src/syntax/cst-to-ast.d.ts.map +1 -0
  277. package/dist/src/syntax/cst-to-ast.js +383 -0
  278. package/dist/src/syntax/cst-to-ast.js.map +1 -0
  279. package/dist/src/syntax/documentation.d.ts +11 -0
  280. package/dist/src/syntax/documentation.d.ts.map +1 -0
  281. package/dist/src/syntax/documentation.js +261 -0
  282. package/dist/src/syntax/documentation.js.map +1 -0
  283. package/dist/src/syntax/parser.d.ts +114 -0
  284. package/dist/src/syntax/parser.d.ts.map +1 -0
  285. package/dist/src/syntax/parser.js +970 -0
  286. package/dist/src/syntax/parser.js.map +1 -0
  287. package/dist/src/syntax/syntax-metadata.d.ts +8 -0
  288. package/dist/src/syntax/syntax-metadata.d.ts.map +1 -0
  289. package/dist/src/syntax/syntax-metadata.js +14 -0
  290. package/dist/src/syntax/syntax-metadata.js.map +1 -0
  291. package/dist/src/syntax/tokens.d.ts +96 -0
  292. package/dist/src/syntax/tokens.d.ts.map +1 -0
  293. package/dist/src/syntax/tokens.js +260 -0
  294. package/dist/src/syntax/tokens.js.map +1 -0
  295. package/dist/src/types/types.d.ts +97 -0
  296. package/dist/src/types/types.d.ts.map +1 -0
  297. package/dist/src/types/types.js +105 -0
  298. package/dist/src/types/types.js.map +1 -0
  299. package/package.json +47 -0
  300. package/schema/diagnostics-v1.schema.json +75 -0
@@ -0,0 +1,114 @@
1
+ export declare const EXPERIMENTAL_SEMANTIC_SNAPSHOT_VERSION: 1;
2
+ export type SemanticEvidencePlatform = 'node' | 'browser' | 'neutral';
3
+ export type SemanticCoverageStatus = 'modeled' | 'partial' | 'opaque' | 'unknown';
4
+ export type SemanticReachability = 'yes' | 'no' | 'unknown';
5
+ export type SemanticInteropTier = 'direct' | 'adapter' | 'host' | 'unsafe' | 'unknown';
6
+ export type SemanticRootScopeStatus = 'project-wide' | 'partial';
7
+ export interface SemanticInputClosureV1 {
8
+ readonly languageVersion: string;
9
+ readonly platform: SemanticEvidencePlatform;
10
+ readonly profile: string;
11
+ readonly analyzerSha256: string;
12
+ readonly sourceManifestSha256: string;
13
+ readonly projectManifestSha256: string;
14
+ readonly stdlibSha256: string;
15
+ readonly runtimeSha256: string;
16
+ readonly dependencyArtifactsSha256: string;
17
+ readonly interopManifestSha256: string | null;
18
+ readonly configurationSha256: string | null;
19
+ }
20
+ export interface SemanticRootScopeV1 {
21
+ readonly status: SemanticRootScopeStatus;
22
+ readonly includedRootClasses: readonly string[];
23
+ readonly excludedRootClasses: readonly string[];
24
+ }
25
+ export interface SemanticSourceEvidenceV1 {
26
+ readonly sourcePath: string;
27
+ readonly startOffset: number;
28
+ readonly endOffset: number;
29
+ }
30
+ export interface SemanticDimensionStateV1 {
31
+ readonly coverage: SemanticCoverageStatus;
32
+ readonly reasons: readonly string[];
33
+ readonly assumptions: readonly string[];
34
+ readonly sourceEvidence: readonly SemanticSourceEvidenceV1[];
35
+ }
36
+ export interface SemanticDimensionStatesV1 {
37
+ readonly publicAbi: SemanticDimensionStateV1;
38
+ readonly directEffects: SemanticDimensionStateV1;
39
+ readonly transitiveEffects: SemanticDimensionStateV1;
40
+ readonly interop: SemanticDimensionStateV1;
41
+ readonly reachableFailures: SemanticDimensionStateV1;
42
+ readonly panic: SemanticDimensionStateV1;
43
+ readonly discard: SemanticDimensionStateV1;
44
+ }
45
+ export interface SemanticPublicAbiFactV1 {
46
+ readonly symbol: string;
47
+ readonly declarationKind: string;
48
+ readonly signature: string;
49
+ }
50
+ export interface SemanticInteropFactV1 {
51
+ readonly specifier: string;
52
+ readonly tier: SemanticInteropTier;
53
+ readonly assumptions: readonly string[];
54
+ }
55
+ export interface SemanticRootInputV1 {
56
+ readonly root: string;
57
+ readonly dimensions: SemanticDimensionStatesV1;
58
+ readonly implementationSha256: string;
59
+ readonly publicAbi: readonly SemanticPublicAbiFactV1[];
60
+ readonly directEffects: readonly string[];
61
+ readonly transitiveEffects: readonly string[];
62
+ readonly interop: readonly SemanticInteropFactV1[];
63
+ readonly reachableFailures: readonly string[];
64
+ readonly panic: SemanticReachability;
65
+ readonly discard: SemanticReachability;
66
+ }
67
+ export interface SemanticSnapshotInputV1 {
68
+ readonly closure: SemanticInputClosureV1;
69
+ readonly rootScope: SemanticRootScopeV1;
70
+ readonly roots: readonly SemanticRootInputV1[];
71
+ }
72
+ export interface SemanticCoverageSummaryV1 {
73
+ readonly enumeratedRoots: number;
74
+ readonly modeled: number;
75
+ readonly partial: number;
76
+ readonly opaque: number;
77
+ readonly unknown: number;
78
+ readonly allEnumeratedRootsModeled: boolean;
79
+ }
80
+ export interface SemanticRootSnapshotV1 extends SemanticRootInputV1 {
81
+ readonly coverage: SemanticCoverageStatus;
82
+ }
83
+ export interface ExperimentalSemanticSnapshotV1 {
84
+ readonly version: typeof EXPERIMENTAL_SEMANTIC_SNAPSHOT_VERSION;
85
+ readonly experimental: true;
86
+ readonly closure: SemanticInputClosureV1;
87
+ readonly rootScope: SemanticRootScopeV1;
88
+ readonly coverage: SemanticCoverageSummaryV1;
89
+ readonly roots: readonly SemanticRootSnapshotV1[];
90
+ }
91
+ export declare class SemanticSnapshotError extends Error {
92
+ readonly path: string;
93
+ readonly name = "SemanticSnapshotError";
94
+ constructor(path: string, message: string);
95
+ }
96
+ /**
97
+ * Build the experimental Semantic Change Evidence snapshot without assigning
98
+ * safety meaning to missing facts. Coverage, unresolved reasons, assumptions,
99
+ * and provenance are explicit per semantic dimension; aggregate root coverage
100
+ * is derived conservatively from those dimension states and is never accepted
101
+ * from the caller.
102
+ *
103
+ * Root discovery scope is explicit and separate from per-root coverage: all
104
+ * enumerated roots being modeled does not imply project-wide root discovery.
105
+ * The Semantic Input Closure binds source, project, toolchain/runtime,
106
+ * dependency, Interop, and configuration identities needed by later
107
+ * reproducibility checks.
108
+ *
109
+ * This module is intentionally internal and experimental. It is not a stable
110
+ * Compiler API or artifact-schema compatibility promise.
111
+ */
112
+ export declare function createExperimentalSemanticSnapshot(input: SemanticSnapshotInputV1): ExperimentalSemanticSnapshotV1;
113
+ export declare function serializeExperimentalSemanticSnapshot(input: SemanticSnapshotInputV1): string;
114
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/semantic-evidence/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,336 @@
1
+ export const EXPERIMENTAL_SEMANTIC_SNAPSHOT_VERSION = 1;
2
+ export class SemanticSnapshotError extends Error {
3
+ path;
4
+ name = 'SemanticSnapshotError';
5
+ constructor(path, message) {
6
+ super(`${path}: ${message}`);
7
+ this.path = path;
8
+ }
9
+ }
10
+ const SHA256_PATTERN = /^[0-9a-f]{64}$/u;
11
+ /**
12
+ * Build the experimental Semantic Change Evidence snapshot without assigning
13
+ * safety meaning to missing facts. Coverage, unresolved reasons, assumptions,
14
+ * and provenance are explicit per semantic dimension; aggregate root coverage
15
+ * is derived conservatively from those dimension states and is never accepted
16
+ * from the caller.
17
+ *
18
+ * Root discovery scope is explicit and separate from per-root coverage: all
19
+ * enumerated roots being modeled does not imply project-wide root discovery.
20
+ * The Semantic Input Closure binds source, project, toolchain/runtime,
21
+ * dependency, Interop, and configuration identities needed by later
22
+ * reproducibility checks.
23
+ *
24
+ * This module is intentionally internal and experimental. It is not a stable
25
+ * Compiler API or artifact-schema compatibility promise.
26
+ */
27
+ export function createExperimentalSemanticSnapshot(input) {
28
+ const closure = canonicalClosure(input.closure);
29
+ const rootScope = canonicalRootScope(input.rootScope);
30
+ const roots = input.roots.map((root, index) => canonicalRoot(root, `$.roots[${index}]`));
31
+ roots.sort((left, right) => compareText(left.root, right.root));
32
+ assertUnique(roots.map(root => root.root), '$.roots', 'root');
33
+ assertNoCaseCollidingSourcePaths(roots);
34
+ return {
35
+ version: EXPERIMENTAL_SEMANTIC_SNAPSHOT_VERSION,
36
+ experimental: true,
37
+ closure,
38
+ rootScope,
39
+ coverage: summarizeCoverage(roots),
40
+ roots,
41
+ };
42
+ }
43
+ export function serializeExperimentalSemanticSnapshot(input) {
44
+ return JSON.stringify(createExperimentalSemanticSnapshot(input));
45
+ }
46
+ function canonicalClosure(value) {
47
+ return {
48
+ languageVersion: nonEmptyText(value.languageVersion, '$.closure.languageVersion'),
49
+ platform: oneOf(value.platform, ['node', 'browser', 'neutral'], '$.closure.platform'),
50
+ profile: nonEmptyText(value.profile, '$.closure.profile'),
51
+ analyzerSha256: sha256(value.analyzerSha256, '$.closure.analyzerSha256'),
52
+ sourceManifestSha256: sha256(value.sourceManifestSha256, '$.closure.sourceManifestSha256'),
53
+ projectManifestSha256: sha256(value.projectManifestSha256, '$.closure.projectManifestSha256'),
54
+ stdlibSha256: sha256(value.stdlibSha256, '$.closure.stdlibSha256'),
55
+ runtimeSha256: sha256(value.runtimeSha256, '$.closure.runtimeSha256'),
56
+ dependencyArtifactsSha256: sha256(value.dependencyArtifactsSha256, '$.closure.dependencyArtifactsSha256'),
57
+ interopManifestSha256: nullableSha256(value.interopManifestSha256, '$.closure.interopManifestSha256'),
58
+ configurationSha256: nullableSha256(value.configurationSha256, '$.closure.configurationSha256'),
59
+ };
60
+ }
61
+ function canonicalRootScope(value) {
62
+ const status = oneOf(value.status, ['project-wide', 'partial'], '$.rootScope.status');
63
+ const includedRootClasses = canonicalTextSet(value.includedRootClasses, '$.rootScope.includedRootClasses');
64
+ const excludedRootClasses = canonicalTextSet(value.excludedRootClasses, '$.rootScope.excludedRootClasses');
65
+ if (includedRootClasses.length === 0) {
66
+ throw new SemanticSnapshotError('$.rootScope.includedRootClasses', 'at least one included root class is required');
67
+ }
68
+ const overlap = includedRootClasses.filter(item => excludedRootClasses.includes(item));
69
+ if (overlap.length > 0) {
70
+ throw new SemanticSnapshotError('$.rootScope', `root classes cannot be both included and excluded: ${overlap.join(', ')}`);
71
+ }
72
+ if (status === 'project-wide' && excludedRootClasses.length > 0) {
73
+ throw new SemanticSnapshotError('$.rootScope.excludedRootClasses', 'project-wide scope cannot exclude root classes');
74
+ }
75
+ if (status === 'partial' && excludedRootClasses.length === 0) {
76
+ throw new SemanticSnapshotError('$.rootScope.excludedRootClasses', 'partial scope requires at least one excluded root class');
77
+ }
78
+ return { status, includedRootClasses, excludedRootClasses };
79
+ }
80
+ function canonicalRoot(value, path) {
81
+ const dimensions = canonicalDimensions(value.dimensions, `${path}.dimensions`);
82
+ const publicAbi = canonicalPublicAbi(value.publicAbi, `${path}.publicAbi`);
83
+ const directEffects = canonicalTextSet(value.directEffects, `${path}.directEffects`);
84
+ const transitiveEffects = canonicalTextSet(value.transitiveEffects, `${path}.transitiveEffects`);
85
+ const interop = canonicalInterop(value.interop, `${path}.interop`);
86
+ const reachableFailures = canonicalTextSet(value.reachableFailures, `${path}.reachableFailures`);
87
+ const panic = oneOf(value.panic, ['yes', 'no', 'unknown'], `${path}.panic`);
88
+ const discard = oneOf(value.discard, ['yes', 'no', 'unknown'], `${path}.discard`);
89
+ if (dimensions.transitiveEffects.coverage === 'modeled'
90
+ && (dimensions.directEffects.coverage === 'opaque' || dimensions.directEffects.coverage === 'unknown')) {
91
+ throw new SemanticSnapshotError(`${path}.dimensions.transitiveEffects.coverage`, 'modeled transitive effects require direct effects coverage to be modeled or partial');
92
+ }
93
+ if (dimensions.transitiveEffects.coverage === 'modeled' || dimensions.transitiveEffects.coverage === 'partial') {
94
+ for (const effect of directEffects) {
95
+ if (!transitiveEffects.includes(effect)) {
96
+ throw new SemanticSnapshotError(`${path}.transitiveEffects`, `${dimensions.transitiveEffects.coverage} transitive effects must include direct effect ${effect}`);
97
+ }
98
+ }
99
+ }
100
+ if (dimensions.panic.coverage === 'modeled' && panic === 'unknown') {
101
+ throw new SemanticSnapshotError(`${path}.panic`, 'modeled panic dimension cannot contain unknown reachability');
102
+ }
103
+ if (dimensions.discard.coverage === 'modeled' && discard === 'unknown') {
104
+ throw new SemanticSnapshotError(`${path}.discard`, 'modeled discard dimension cannot contain unknown reachability');
105
+ }
106
+ if (dimensions.interop.coverage === 'modeled' && interop.some(item => item.tier === 'unknown')) {
107
+ throw new SemanticSnapshotError(`${path}.interop`, 'modeled interoperability dimension cannot contain an unknown tier');
108
+ }
109
+ return {
110
+ root: nonEmptyText(value.root, `${path}.root`),
111
+ coverage: aggregateDimensionCoverage(dimensions),
112
+ dimensions,
113
+ implementationSha256: sha256(value.implementationSha256, `${path}.implementationSha256`),
114
+ publicAbi,
115
+ directEffects,
116
+ transitiveEffects,
117
+ interop,
118
+ reachableFailures,
119
+ panic,
120
+ discard,
121
+ };
122
+ }
123
+ function canonicalDimensions(value, path) {
124
+ return {
125
+ publicAbi: canonicalDimensionState(value.publicAbi, `${path}.publicAbi`),
126
+ directEffects: canonicalDimensionState(value.directEffects, `${path}.directEffects`),
127
+ transitiveEffects: canonicalDimensionState(value.transitiveEffects, `${path}.transitiveEffects`),
128
+ interop: canonicalDimensionState(value.interop, `${path}.interop`),
129
+ reachableFailures: canonicalDimensionState(value.reachableFailures, `${path}.reachableFailures`),
130
+ panic: canonicalDimensionState(value.panic, `${path}.panic`),
131
+ discard: canonicalDimensionState(value.discard, `${path}.discard`),
132
+ };
133
+ }
134
+ function canonicalDimensionState(value, path) {
135
+ const coverage = oneOf(value.coverage, ['modeled', 'partial', 'opaque', 'unknown'], `${path}.coverage`);
136
+ const reasons = canonicalTextSet(value.reasons, `${path}.reasons`);
137
+ const assumptions = canonicalTextSet(value.assumptions, `${path}.assumptions`);
138
+ const sourceEvidence = canonicalSourceEvidence(value.sourceEvidence, `${path}.sourceEvidence`);
139
+ if (sourceEvidence.length === 0) {
140
+ throw new SemanticSnapshotError(`${path}.sourceEvidence`, 'at least one source evidence range is required');
141
+ }
142
+ if (coverage === 'modeled' && reasons.length > 0) {
143
+ throw new SemanticSnapshotError(`${path}.reasons`, 'modeled coverage must not carry unresolved reasons');
144
+ }
145
+ if (coverage !== 'modeled' && reasons.length === 0) {
146
+ throw new SemanticSnapshotError(`${path}.reasons`, `${coverage} coverage requires at least one explicit reason`);
147
+ }
148
+ return { coverage, reasons, assumptions, sourceEvidence };
149
+ }
150
+ function aggregateDimensionCoverage(value) {
151
+ const states = dimensionStates(value).map(item => item.coverage);
152
+ if (states.includes('unknown'))
153
+ return 'unknown';
154
+ if (states.includes('opaque'))
155
+ return 'opaque';
156
+ if (states.includes('partial'))
157
+ return 'partial';
158
+ return 'modeled';
159
+ }
160
+ function dimensionStates(value) {
161
+ return [
162
+ value.publicAbi,
163
+ value.directEffects,
164
+ value.transitiveEffects,
165
+ value.interop,
166
+ value.reachableFailures,
167
+ value.panic,
168
+ value.discard,
169
+ ];
170
+ }
171
+ function canonicalSourceEvidence(values, path) {
172
+ if (!Array.isArray(values))
173
+ throw new SemanticSnapshotError(path, 'expected an array');
174
+ const result = values.map((value, index) => {
175
+ const itemPath = `${path}[${index}]`;
176
+ const startOffset = nonNegativeInteger(value.startOffset, `${itemPath}.startOffset`);
177
+ const endOffset = nonNegativeInteger(value.endOffset, `${itemPath}.endOffset`);
178
+ if (endOffset < startOffset)
179
+ throw new SemanticSnapshotError(`${itemPath}.endOffset`, 'must be >= startOffset');
180
+ return {
181
+ sourcePath: normalizedSourcePath(value.sourcePath, `${itemPath}.sourcePath`),
182
+ startOffset,
183
+ endOffset,
184
+ };
185
+ });
186
+ result.sort((left, right) => compareTuple([left.sourcePath, numericKey(left.startOffset), numericKey(left.endOffset)], [right.sourcePath, numericKey(right.startOffset), numericKey(right.endOffset)]));
187
+ assertUnique(result.map(item => `${item.sourcePath}\u0000${item.startOffset}\u0000${item.endOffset}`), path, 'source evidence');
188
+ return result;
189
+ }
190
+ function canonicalPublicAbi(values, path) {
191
+ if (!Array.isArray(values))
192
+ throw new SemanticSnapshotError(path, 'expected an array');
193
+ const result = values.map((value, index) => ({
194
+ symbol: nonEmptyText(value.symbol, `${path}[${index}].symbol`),
195
+ declarationKind: nonEmptyText(value.declarationKind, `${path}[${index}].declarationKind`),
196
+ signature: nonEmptyText(value.signature, `${path}[${index}].signature`),
197
+ }));
198
+ result.sort((left, right) => compareTuple([left.symbol, left.declarationKind, left.signature], [right.symbol, right.declarationKind, right.signature]));
199
+ assertUnique(result.map(item => `${item.symbol}\u0000${item.declarationKind}\u0000${item.signature}`), path, 'public ABI fact');
200
+ return result;
201
+ }
202
+ function canonicalInterop(values, path) {
203
+ if (!Array.isArray(values))
204
+ throw new SemanticSnapshotError(path, 'expected an array');
205
+ const result = values.map((value, index) => ({
206
+ specifier: nonEmptyText(value.specifier, `${path}[${index}].specifier`),
207
+ tier: oneOf(value.tier, ['direct', 'adapter', 'host', 'unsafe', 'unknown'], `${path}[${index}].tier`),
208
+ assumptions: canonicalTextSet(value.assumptions, `${path}[${index}].assumptions`),
209
+ }));
210
+ result.sort((left, right) => compareText(left.specifier, right.specifier));
211
+ assertUnique(result.map(item => item.specifier), path, 'interop specifier');
212
+ return result;
213
+ }
214
+ function summarizeCoverage(roots) {
215
+ let modeled = 0;
216
+ let partial = 0;
217
+ let opaque = 0;
218
+ let unknown = 0;
219
+ for (const root of roots) {
220
+ switch (root.coverage) {
221
+ case 'modeled':
222
+ modeled += 1;
223
+ break;
224
+ case 'partial':
225
+ partial += 1;
226
+ break;
227
+ case 'opaque':
228
+ opaque += 1;
229
+ break;
230
+ case 'unknown':
231
+ unknown += 1;
232
+ break;
233
+ }
234
+ }
235
+ return {
236
+ enumeratedRoots: roots.length,
237
+ modeled,
238
+ partial,
239
+ opaque,
240
+ unknown,
241
+ allEnumeratedRootsModeled: roots.length > 0 && partial === 0 && opaque === 0 && unknown === 0,
242
+ };
243
+ }
244
+ function assertNoCaseCollidingSourcePaths(roots) {
245
+ const seen = new Map();
246
+ for (const root of roots) {
247
+ for (const dimension of dimensionStates(root.dimensions)) {
248
+ for (const evidence of dimension.sourceEvidence) {
249
+ const sourcePath = evidence.sourcePath.normalize('NFC');
250
+ const folded = sourcePath.toLowerCase();
251
+ const previous = seen.get(folded);
252
+ if (previous !== undefined && previous !== sourcePath) {
253
+ throw new SemanticSnapshotError('$.roots', `case-colliding source paths are not allowed: ${previous}, ${sourcePath}`);
254
+ }
255
+ seen.set(folded, sourcePath);
256
+ }
257
+ }
258
+ }
259
+ }
260
+ function canonicalTextSet(values, path) {
261
+ if (!Array.isArray(values))
262
+ throw new SemanticSnapshotError(path, 'expected an array');
263
+ const result = values.map((value, index) => nonEmptyText(value, `${path}[${index}]`)).sort(compareText);
264
+ assertUnique(result, path, 'value');
265
+ return result;
266
+ }
267
+ function normalizedSourcePath(value, path) {
268
+ const text = nonEmptyText(value, path).replaceAll('\\', '/').normalize('NFC');
269
+ if (text.startsWith('/') || /^[A-Za-z]:\//u.test(text))
270
+ throw new SemanticSnapshotError(path, 'absolute paths are not allowed');
271
+ if (/^[A-Za-z][A-Za-z0-9+.-]*:/u.test(text))
272
+ throw new SemanticSnapshotError(path, 'URI-scheme source paths are not allowed');
273
+ const parts = [];
274
+ for (const segment of text.split('/')) {
275
+ if (segment.length === 0 || segment === '.')
276
+ continue;
277
+ if (segment === '..')
278
+ throw new SemanticSnapshotError(path, 'parent path segments are not allowed');
279
+ parts.push(segment);
280
+ }
281
+ if (parts.length === 0)
282
+ throw new SemanticSnapshotError(path, 'path must identify a source');
283
+ return parts.join('/');
284
+ }
285
+ function nullableSha256(value, path) {
286
+ return value === null ? null : sha256(value, path);
287
+ }
288
+ function sha256(value, path) {
289
+ const text = nonEmptyText(value, path).toLowerCase();
290
+ if (!SHA256_PATTERN.test(text))
291
+ throw new SemanticSnapshotError(path, 'expected a SHA-256 hex digest');
292
+ return text;
293
+ }
294
+ function nonEmptyText(value, path) {
295
+ if (typeof value !== 'string')
296
+ throw new SemanticSnapshotError(path, 'expected a string');
297
+ if (value.length === 0 || value.trim().length === 0) {
298
+ throw new SemanticSnapshotError(path, 'string must contain non-whitespace text');
299
+ }
300
+ if (value.includes('\u0000'))
301
+ throw new SemanticSnapshotError(path, 'NUL is not allowed');
302
+ return value;
303
+ }
304
+ function nonNegativeInteger(value, path) {
305
+ if (!Number.isSafeInteger(value) || value < 0)
306
+ throw new SemanticSnapshotError(path, 'expected a non-negative safe integer');
307
+ return value;
308
+ }
309
+ function oneOf(value, allowed, path) {
310
+ if (typeof value !== 'string' || !allowed.includes(value)) {
311
+ throw new SemanticSnapshotError(path, `expected one of ${allowed.join(', ')}`);
312
+ }
313
+ return value;
314
+ }
315
+ function assertUnique(values, path, name) {
316
+ const sorted = [...values].sort(compareText);
317
+ for (let index = 1; index < sorted.length; index += 1) {
318
+ if (sorted[index] === sorted[index - 1])
319
+ throw new SemanticSnapshotError(path, `duplicate ${name} ${sorted[index]}`);
320
+ }
321
+ }
322
+ function numericKey(value) {
323
+ return String(value).padStart(16, '0');
324
+ }
325
+ function compareTuple(left, right) {
326
+ for (let index = 0; index < Math.max(left.length, right.length); index += 1) {
327
+ const comparison = compareText(left[index] ?? '', right[index] ?? '');
328
+ if (comparison !== 0)
329
+ return comparison;
330
+ }
331
+ return 0;
332
+ }
333
+ function compareText(left, right) {
334
+ return left < right ? -1 : left > right ? 1 : 0;
335
+ }
336
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/semantic-evidence/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export type FileId = number;
2
+ export type NodeId = number;
3
+ export type SymbolId = number;
4
+ export type TypeId = number;
5
+ export interface SourceFile {
6
+ readonly id: FileId;
7
+ readonly path: string;
8
+ readonly text: string;
9
+ }
10
+ export interface SourcePosition {
11
+ readonly offset: number;
12
+ readonly line: number;
13
+ readonly column: number;
14
+ }
15
+ export interface SourceSpan {
16
+ readonly fileId: FileId;
17
+ readonly start: SourcePosition;
18
+ readonly end: SourcePosition;
19
+ }
20
+ export declare const zeroSpan: (fileId: FileId) => SourceSpan;
21
+ export declare class IdGenerator {
22
+ #private;
23
+ next(): number;
24
+ }
25
+ //# sourceMappingURL=source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/source.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;CAC7B;AAED,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,KAAG,UAIxC,CAAC;AAEH,qBAAa,WAAW;;IAEhB,IAAI,IAAI,MAAM;CACrB"}
@@ -0,0 +1,10 @@
1
+ export const zeroSpan = (fileId) => ({
2
+ fileId,
3
+ start: { offset: 0, line: 1, column: 1 },
4
+ end: { offset: 0, line: 1, column: 1 },
5
+ });
6
+ export class IdGenerator {
7
+ #next = 1;
8
+ next() { return this.#next++; }
9
+ }
10
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/source.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAc,EAAE,CAAC,CAAC;IACxD,MAAM;IACN,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IACxC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,OAAO,WAAW;IACvB,KAAK,GAAG,CAAC,CAAC;IACH,IAAI,KAAa,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAC9C"}
@@ -0,0 +1,108 @@
1
+ import type { CstNode, IToken } from 'chevrotain';
2
+ import type * as A from '../ast/nodes.js';
3
+ import { type FileId } from '../source.js';
4
+ import { baseCstVisitorConstructor } from './parser.js';
5
+ type Ctx = Record<string, Array<CstNode | IToken>>;
6
+ export declare class AstBuilder extends baseCstVisitorConstructor {
7
+ #private;
8
+ constructor(fileId: FileId);
9
+ private id;
10
+ private visitNode;
11
+ private visitNodes;
12
+ module(ctx: Ctx): A.ModuleNode;
13
+ importDeclaration(ctx: Ctx): A.ImportDeclaration;
14
+ importItem(ctx: Ctx): A.ImportItem;
15
+ declaration(ctx: Ctx): A.Declaration;
16
+ attribute(ctx: Ctx): A.AttributeNode;
17
+ functionDeclaration(ctx: Ctx): A.FunctionDeclaration;
18
+ componentDeclaration(ctx: Ctx): A.ComponentDeclaration;
19
+ typeParameters(ctx: Ctx): A.TypeParameterNode[];
20
+ parameterList(ctx: Ctx): A.ParameterNode[];
21
+ parameter(ctx: Ctx): A.ParameterNode;
22
+ usesClause(ctx: Ctx): string[];
23
+ recordDeclaration(ctx: Ctx): A.RecordDeclaration;
24
+ recordField(ctx: Ctx): A.RecordFieldNode;
25
+ derivesClause(ctx: Ctx): string[];
26
+ enumDeclaration(ctx: Ctx): A.EnumDeclaration;
27
+ enumVariant(ctx: Ctx): A.EnumVariantNode;
28
+ newtypeDeclaration(ctx: Ctx): A.NewtypeDeclaration;
29
+ typeAliasDeclaration(ctx: Ctx): A.TypeAliasDeclaration;
30
+ externDeclaration(ctx: Ctx): A.ExternDeclaration;
31
+ externFunction(ctx: Ctx): A.ExternFunctionNode;
32
+ testDeclaration(ctx: Ctx): A.TestDeclaration;
33
+ topLevelLetDeclaration(ctx: Ctx): A.TopLevelLetDeclaration;
34
+ typeReference(ctx: Ctx): A.TypeReferenceNode;
35
+ functionTypeReference(ctx: Ctx): A.FunctionTypeReference;
36
+ block(ctx: Ctx): A.BlockStatement;
37
+ statement(ctx: Ctx): A.Statement;
38
+ letStatement(ctx: Ctx): A.LetStatement;
39
+ returnStatement(ctx: Ctx): A.ReturnStatement;
40
+ ifStatement(ctx: Ctx): A.IfStatement;
41
+ forStatement(ctx: Ctx): A.ForStatement;
42
+ whileStatement(ctx: Ctx): A.WhileStatement;
43
+ breakStatement(ctx: Ctx): A.BreakStatement;
44
+ continueStatement(ctx: Ctx): A.ContinueStatement;
45
+ discardStatement(ctx: Ctx): A.DiscardStatement;
46
+ assignmentStatement(ctx: Ctx): A.AssignmentStatement | A.MemberAssignmentStatement | A.IndexAssignmentStatement;
47
+ deferStatement(ctx: Ctx): A.DeferStatement;
48
+ expressionStatement(ctx: Ctx): A.ExpressionStatement;
49
+ lineEnd(): undefined;
50
+ expression(ctx: Ctx): A.Expression;
51
+ pipelineExpression(ctx: Ctx): A.Expression;
52
+ orExpression(ctx: Ctx): A.Expression;
53
+ andExpression(ctx: Ctx): A.Expression;
54
+ equalityExpression(ctx: Ctx): A.Expression;
55
+ comparisonExpression(ctx: Ctx): A.Expression;
56
+ additiveExpression(ctx: Ctx): A.Expression;
57
+ multiplicativeExpression(ctx: Ctx): A.Expression;
58
+ unaryExpression(ctx: Ctx): A.Expression;
59
+ postfixExpression(ctx: Ctx): A.Expression;
60
+ indexSuffix(ctx: Ctx): A.Expression;
61
+ typeArguments(ctx: Ctx): A.TypeReferenceNode[];
62
+ argumentList(ctx: Ctx): A.Expression[];
63
+ primaryExpression(ctx: Ctx): A.Expression;
64
+ viewExpression(ctx: Ctx): A.ViewExpression;
65
+ viewBlock(ctx: Ctx): A.ViewBlock;
66
+ viewChild(ctx: Ctx): A.ViewChild;
67
+ viewElement(ctx: Ctx): A.ViewElement;
68
+ viewTag(ctx: Ctx): string[];
69
+ viewPropertyList(ctx: Ctx): A.ViewProperty[];
70
+ viewProperty(ctx: Ctx): A.ViewProperty;
71
+ viewConditional(ctx: Ctx): A.ViewConditional;
72
+ viewRepetition(ctx: Ctx): A.ViewRepetition;
73
+ viewTextChild(ctx: Ctx): A.ViewTextChild;
74
+ viewExpressionChild(ctx: Ctx): A.ViewExpressionChild;
75
+ viewChildrenSlot(ctx: Ctx): A.ViewChildrenSlot;
76
+ recordExpression(ctx: Ctx): A.RecordExpression;
77
+ recordFieldBlock(ctx: Ctx): A.RecordEntryNode[];
78
+ recordEntry(ctx: Ctx): A.RecordEntryNode;
79
+ contextualAggregateExpression(ctx: Ctx): A.ContextualAggregateExpression;
80
+ contextualAggregateEntry(ctx: Ctx): A.ContextualAggregateEntryNode;
81
+ listExpression(ctx: Ctx): A.ListExpression;
82
+ parenthesizedOrTupleExpression(ctx: Ctx): A.Expression;
83
+ conditionalExpression(ctx: Ctx): A.ConditionalExpression;
84
+ matchExpression(ctx: Ctx): A.MatchExpression;
85
+ matchArm(ctx: Ctx): A.MatchArmNode;
86
+ pattern(ctx: Ctx): A.Pattern;
87
+ orPattern(ctx: Ctx): A.Pattern;
88
+ primaryPattern(ctx: Ctx): A.Pattern;
89
+ rangePattern(ctx: Ctx): A.RangePattern;
90
+ listPattern(ctx: Ctx): A.ListPattern;
91
+ tuplePattern(ctx: Ctx): A.TuplePattern;
92
+ variantPattern(ctx: Ctx): A.VariantPattern;
93
+ recordPattern(ctx: Ctx): A.RecordPattern;
94
+ recordPatternField(ctx: Ctx): A.RecordPatternField;
95
+ lambdaExpression(ctx: Ctx): A.LambdaExpression;
96
+ lambdaParameterList(ctx: Ctx): A.LambdaParameterNode[];
97
+ lambdaParameter(ctx: Ctx): A.LambdaParameterNode;
98
+ parallelExpression(ctx: Ctx): A.ParallelExpression;
99
+ parallelEntry(ctx: Ctx): A.ParallelEntryNode;
100
+ private foldBinary;
101
+ private literal;
102
+ private mergeSpan;
103
+ private spanFromChildren;
104
+ private currentNode;
105
+ }
106
+ export declare function buildAst(fileId: FileId, cst: CstNode): A.ModuleNode;
107
+ export {};
108
+ //# sourceMappingURL=cst-to-ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cst-to-ast.d.ts","sourceRoot":"","sources":["../../../src/syntax/cst-to-ast.ts"],"names":[],"mappings":"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"}