@tsonic/emitter 0.0.14 → 0.0.16

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 (242) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapter-generator.js +3 -3
  3. package/dist/adapter-generator.js.map +1 -1
  4. package/dist/array.test.d.ts +1 -1
  5. package/dist/array.test.js +18 -17
  6. package/dist/array.test.js.map +1 -1
  7. package/dist/core/attributes.test.js +2 -2
  8. package/dist/core/attributes.test.js.map +1 -1
  9. package/dist/core/imports.d.ts.map +1 -1
  10. package/dist/core/imports.js +7 -12
  11. package/dist/core/imports.js.map +1 -1
  12. package/dist/core/local-types.d.ts.map +1 -1
  13. package/dist/core/local-types.js +12 -0
  14. package/dist/core/local-types.js.map +1 -1
  15. package/dist/core/module-emitter/orchestrator.d.ts.map +1 -1
  16. package/dist/core/module-emitter/orchestrator.js +15 -2
  17. package/dist/core/module-emitter/orchestrator.js.map +1 -1
  18. package/dist/core/module-emitter/static-container.d.ts.map +1 -1
  19. package/dist/core/module-emitter/static-container.js +30 -4
  20. package/dist/core/module-emitter/static-container.js.map +1 -1
  21. package/dist/core/module-emitter.test.js +6 -6
  22. package/dist/core/module-map.d.ts.map +1 -1
  23. package/dist/core/module-map.js +42 -0
  24. package/dist/core/module-map.js.map +1 -1
  25. package/dist/core/naming-collisions.d.ts +4 -0
  26. package/dist/core/naming-collisions.d.ts.map +1 -0
  27. package/dist/core/naming-collisions.js +191 -0
  28. package/dist/core/naming-collisions.js.map +1 -0
  29. package/dist/core/type-member-index.d.ts +4 -0
  30. package/dist/core/type-member-index.d.ts.map +1 -0
  31. package/dist/core/type-member-index.js +62 -0
  32. package/dist/core/type-member-index.js.map +1 -0
  33. package/dist/core/unsafe.d.ts +11 -0
  34. package/dist/core/unsafe.d.ts.map +1 -0
  35. package/dist/core/unsafe.js +264 -0
  36. package/dist/core/unsafe.js.map +1 -0
  37. package/dist/emitter-types/context.d.ts +1 -1
  38. package/dist/emitter-types/context.d.ts.map +1 -1
  39. package/dist/emitter-types/context.js +5 -3
  40. package/dist/emitter-types/context.js.map +1 -1
  41. package/dist/emitter-types/core.d.ts +45 -2
  42. package/dist/emitter-types/core.d.ts.map +1 -1
  43. package/dist/emitter-types/fqn.d.ts +0 -7
  44. package/dist/emitter-types/fqn.d.ts.map +1 -1
  45. package/dist/emitter-types/fqn.js +0 -8
  46. package/dist/emitter-types/fqn.js.map +1 -1
  47. package/dist/emitter-types/index.d.ts +1 -1
  48. package/dist/emitter-types/index.d.ts.map +1 -1
  49. package/dist/emitter-types/index.js.map +1 -1
  50. package/dist/emitter.d.ts.map +1 -1
  51. package/dist/emitter.js +12 -1
  52. package/dist/emitter.js.map +1 -1
  53. package/dist/expression-emitter.d.ts.map +1 -1
  54. package/dist/expression-emitter.js +255 -73
  55. package/dist/expression-emitter.js.map +1 -1
  56. package/dist/expressions/access.d.ts +3 -1
  57. package/dist/expressions/access.d.ts.map +1 -1
  58. package/dist/expressions/access.js +144 -50
  59. package/dist/expressions/access.js.map +1 -1
  60. package/dist/expressions/calls.d.ts.map +1 -1
  61. package/dist/expressions/calls.js +266 -88
  62. package/dist/expressions/calls.js.map +1 -1
  63. package/dist/expressions/collections.d.ts.map +1 -1
  64. package/dist/expressions/collections.js +169 -57
  65. package/dist/expressions/collections.js.map +1 -1
  66. package/dist/expressions/functions.d.ts.map +1 -1
  67. package/dist/expressions/functions.js +30 -10
  68. package/dist/expressions/functions.js.map +1 -1
  69. package/dist/expressions/identifiers.d.ts.map +1 -1
  70. package/dist/expressions/identifiers.js +11 -30
  71. package/dist/expressions/identifiers.js.map +1 -1
  72. package/dist/expressions/index.test.js +89 -200
  73. package/dist/expressions/index.test.js.map +1 -1
  74. package/dist/expressions/literals.d.ts +4 -5
  75. package/dist/expressions/literals.d.ts.map +1 -1
  76. package/dist/expressions/literals.js +94 -15
  77. package/dist/expressions/literals.js.map +1 -1
  78. package/dist/expressions/operators.d.ts +0 -4
  79. package/dist/expressions/operators.d.ts.map +1 -1
  80. package/dist/expressions/operators.js +84 -24
  81. package/dist/expressions/operators.js.map +1 -1
  82. package/dist/expressions/other.d.ts.map +1 -1
  83. package/dist/expressions/other.js +21 -3
  84. package/dist/expressions/other.js.map +1 -1
  85. package/dist/expressions/parentheses.d.ts +4 -0
  86. package/dist/expressions/parentheses.d.ts.map +1 -0
  87. package/dist/expressions/parentheses.js +83 -0
  88. package/dist/expressions/parentheses.js.map +1 -0
  89. package/dist/extension-methods.test.d.ts +5 -0
  90. package/dist/extension-methods.test.d.ts.map +1 -0
  91. package/dist/extension-methods.test.js +110 -0
  92. package/dist/extension-methods.test.js.map +1 -0
  93. package/dist/generator-exchange.d.ts.map +1 -1
  94. package/dist/generator-exchange.js +5 -2
  95. package/dist/generator-exchange.js.map +1 -1
  96. package/dist/generator-wrapper.d.ts.map +1 -1
  97. package/dist/generator-wrapper.js +13 -7
  98. package/dist/generator-wrapper.js.map +1 -1
  99. package/dist/generator-wrapper.test.js +12 -12
  100. package/dist/generator-wrapper.test.js.map +1 -1
  101. package/dist/generator.test.js +42 -42
  102. package/dist/generator.test.js.map +1 -1
  103. package/dist/golden-tests/discovery.d.ts +6 -11
  104. package/dist/golden-tests/discovery.d.ts.map +1 -1
  105. package/dist/golden-tests/discovery.js +14 -79
  106. package/dist/golden-tests/discovery.js.map +1 -1
  107. package/dist/golden-tests/index.d.ts +1 -1
  108. package/dist/golden-tests/index.d.ts.map +1 -1
  109. package/dist/golden-tests/index.js.map +1 -1
  110. package/dist/golden-tests/runner.d.ts.map +1 -1
  111. package/dist/golden-tests/runner.js +6 -7
  112. package/dist/golden-tests/runner.js.map +1 -1
  113. package/dist/golden-tests/types.d.ts +0 -7
  114. package/dist/golden-tests/types.d.ts.map +1 -1
  115. package/dist/golden.test.d.ts +3 -10
  116. package/dist/golden.test.d.ts.map +1 -1
  117. package/dist/golden.test.js +8 -24
  118. package/dist/golden.test.js.map +1 -1
  119. package/dist/hierarchical-bindings.test.js +18 -12
  120. package/dist/hierarchical-bindings.test.js.map +1 -1
  121. package/dist/integration.test.js +76 -35
  122. package/dist/integration.test.js.map +1 -1
  123. package/dist/invariants/emitter-globals-subset.test.d.ts +1 -1
  124. package/dist/invariants/emitter-globals-subset.test.js +34 -74
  125. package/dist/invariants/emitter-globals-subset.test.js.map +1 -1
  126. package/dist/invariants/numeric-proof-contract.test.js +3 -3
  127. package/dist/invariants/numeric-proof-contract.test.js.map +1 -1
  128. package/dist/naming-policy.d.ts +5 -0
  129. package/dist/naming-policy.d.ts.map +1 -0
  130. package/dist/naming-policy.js +10 -0
  131. package/dist/naming-policy.js.map +1 -0
  132. package/dist/patterns.d.ts +98 -0
  133. package/dist/patterns.d.ts.map +1 -0
  134. package/dist/patterns.js +366 -0
  135. package/dist/patterns.js.map +1 -0
  136. package/dist/patterns.test.d.ts +15 -0
  137. package/dist/patterns.test.d.ts.map +1 -0
  138. package/dist/patterns.test.js +1262 -0
  139. package/dist/patterns.test.js.map +1 -0
  140. package/dist/specialization/generation.d.ts.map +1 -1
  141. package/dist/specialization/generation.js +2 -2
  142. package/dist/specialization/generation.js.map +1 -1
  143. package/dist/specialization/generic-classes.test.js +1 -1
  144. package/dist/specialization/generic-functions.test.js +6 -6
  145. package/dist/specialization/interfaces.test.js +5 -5
  146. package/dist/specialization/substitution.d.ts.map +1 -1
  147. package/dist/specialization/substitution.js +4 -0
  148. package/dist/specialization/substitution.js.map +1 -1
  149. package/dist/specialization/type-aliases.test.js +6 -6
  150. package/dist/specialization/type-aliases.test.js.map +1 -1
  151. package/dist/statement-emitter.d.ts.map +1 -1
  152. package/dist/statement-emitter.js +1 -1
  153. package/dist/statement-emitter.js.map +1 -1
  154. package/dist/statements/blocks.d.ts.map +1 -1
  155. package/dist/statements/blocks.js +14 -45
  156. package/dist/statements/blocks.js.map +1 -1
  157. package/dist/statements/classes/index.d.ts +1 -1
  158. package/dist/statements/classes/index.d.ts.map +1 -1
  159. package/dist/statements/classes/index.js +1 -1
  160. package/dist/statements/classes/index.js.map +1 -1
  161. package/dist/statements/classes/inline-types.d.ts +1 -1
  162. package/dist/statements/classes/inline-types.d.ts.map +1 -1
  163. package/dist/statements/classes/inline-types.js +15 -5
  164. package/dist/statements/classes/inline-types.js.map +1 -1
  165. package/dist/statements/classes/members/constructors.d.ts.map +1 -1
  166. package/dist/statements/classes/members/constructors.js +40 -14
  167. package/dist/statements/classes/members/constructors.js.map +1 -1
  168. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  169. package/dist/statements/classes/members/methods.js +62 -25
  170. package/dist/statements/classes/members/methods.js.map +1 -1
  171. package/dist/statements/classes/members/orchestrator.d.ts.map +1 -1
  172. package/dist/statements/classes/members/orchestrator.js +1 -3
  173. package/dist/statements/classes/members/orchestrator.js.map +1 -1
  174. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  175. package/dist/statements/classes/members/properties.js +70 -10
  176. package/dist/statements/classes/members/properties.js.map +1 -1
  177. package/dist/statements/classes/parameters.d.ts +43 -1
  178. package/dist/statements/classes/parameters.d.ts.map +1 -1
  179. package/dist/statements/classes/parameters.js +73 -13
  180. package/dist/statements/classes/parameters.js.map +1 -1
  181. package/dist/statements/classes/properties.d.ts.map +1 -1
  182. package/dist/statements/classes/properties.js +6 -7
  183. package/dist/statements/classes/properties.js.map +1 -1
  184. package/dist/statements/classes.d.ts +1 -1
  185. package/dist/statements/classes.d.ts.map +1 -1
  186. package/dist/statements/classes.js +1 -1
  187. package/dist/statements/classes.js.map +1 -1
  188. package/dist/statements/control/conditionals.d.ts.map +1 -1
  189. package/dist/statements/control/conditionals.js +193 -23
  190. package/dist/statements/control/conditionals.js.map +1 -1
  191. package/dist/statements/control/loops.d.ts.map +1 -1
  192. package/dist/statements/control/loops.js +25 -5
  193. package/dist/statements/control/loops.js.map +1 -1
  194. package/dist/statements/declarations/classes.d.ts.map +1 -1
  195. package/dist/statements/declarations/classes.js +150 -12
  196. package/dist/statements/declarations/classes.js.map +1 -1
  197. package/dist/statements/declarations/enums.d.ts.map +1 -1
  198. package/dist/statements/declarations/enums.js +2 -1
  199. package/dist/statements/declarations/enums.js.map +1 -1
  200. package/dist/statements/declarations/functions.d.ts.map +1 -1
  201. package/dist/statements/declarations/functions.js +44 -19
  202. package/dist/statements/declarations/functions.js.map +1 -1
  203. package/dist/statements/declarations/interfaces.d.ts.map +1 -1
  204. package/dist/statements/declarations/interfaces.js +71 -10
  205. package/dist/statements/declarations/interfaces.js.map +1 -1
  206. package/dist/statements/declarations/structs.test.js +5 -5
  207. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  208. package/dist/statements/declarations/type-aliases.js +24 -5
  209. package/dist/statements/declarations/type-aliases.js.map +1 -1
  210. package/dist/statements/declarations/variables.d.ts.map +1 -1
  211. package/dist/statements/declarations/variables.js +194 -37
  212. package/dist/statements/declarations/variables.js.map +1 -1
  213. package/dist/statements/index.test.js +7 -5
  214. package/dist/statements/index.test.js.map +1 -1
  215. package/dist/type-assertion.test.js +1 -1
  216. package/dist/types/arrays.d.ts +3 -9
  217. package/dist/types/arrays.d.ts.map +1 -1
  218. package/dist/types/arrays.js +5 -19
  219. package/dist/types/arrays.js.map +1 -1
  220. package/dist/types/emitter.d.ts.map +1 -1
  221. package/dist/types/emitter.js +3 -2
  222. package/dist/types/emitter.js.map +1 -1
  223. package/dist/types/index.test.js +3 -3
  224. package/dist/types/parameters.d.ts +1 -1
  225. package/dist/types/parameters.d.ts.map +1 -1
  226. package/dist/types/parameters.js +77 -8
  227. package/dist/types/parameters.js.map +1 -1
  228. package/dist/types/parameters.test.js +1 -1
  229. package/dist/types/parameters.test.js.map +1 -1
  230. package/dist/types/references.d.ts.map +1 -1
  231. package/dist/types/references.js +126 -55
  232. package/dist/types/references.js.map +1 -1
  233. package/dist/types/references.test.js +46 -106
  234. package/dist/types/references.test.js.map +1 -1
  235. package/dist/types/unions.d.ts.map +1 -1
  236. package/dist/types/unions.js +20 -0
  237. package/dist/types/unions.js.map +1 -1
  238. package/dist/types/unions.test.js +9 -9
  239. package/dist/types.d.ts +1 -1
  240. package/dist/types.d.ts.map +1 -1
  241. package/dist/types.js.map +1 -1
  242. package/package.json +3 -3
@@ -3,42 +3,32 @@
3
3
  *
4
4
  * Directory structure:
5
5
  * testcases/
6
- * ├── common/ # Tests that work in BOTH modes
7
- *├── <category>/<test>/ # .ts sources + config.yaml
8
- * │ ├── dotnet/<category>/<test>/ # Expected .cs for dotnet mode
9
- * │ └── js/<category>/<test>/ # Expected .cs for js mode
10
- * └── js-only/ # Tests that ONLY work in JS mode
11
- * └── <category>/<test>/ # .ts, config.yaml, AND .cs together
6
+ * └── common/ # All tests
7
+ * ├── <category>/<test>/ # .ts sources + config.yaml
8
+ * └── expected/<category>/<test>/ # Expected .cs output
12
9
  */
13
10
  import * as fs from "fs";
14
11
  import * as path from "path";
15
12
  import { parseConfigYaml } from "./config-parser.js";
16
13
  /**
17
- * Discover all test scenarios for a given runtime mode
18
- * - dotnet mode: only common/ tests
19
- * - js mode: common/ + js-only/ tests
14
+ * Discover all test scenarios
20
15
  */
21
- export const discoverScenarios = (baseDir, runtimeMode) => {
16
+ export const discoverScenarios = (baseDir) => {
22
17
  const commonDir = path.join(baseDir, "common");
23
- const jsOnlyDir = path.join(baseDir, "js-only");
24
- // Common tests - source in common/, expected in common/{dotnet|js}/
25
- const commonScenarios = discoverCommonScenarios(commonDir, runtimeMode);
26
- // JS-only tests - only for js mode, source and expected together
27
- const jsOnlyScenarios = runtimeMode === "js" ? discoverJsOnlyScenarios(jsOnlyDir) : [];
28
- return [...commonScenarios, ...jsOnlyScenarios];
18
+ return discoverCommonScenarios(commonDir);
29
19
  };
30
20
  /**
31
21
  * Discover scenarios from common/ directory
32
22
  * Source files are in common/<category>/<test>/
33
- * Expected .cs files are in common/{dotnet|js}/<category>/<test>/
23
+ * Expected .cs files are in common/expected/<category>/<test>/
34
24
  */
35
- const discoverCommonScenarios = (commonDir, runtimeMode) => {
25
+ const discoverCommonScenarios = (commonDir) => {
36
26
  const scenarios = [];
37
- const expectedBaseDir = path.join(commonDir, runtimeMode);
27
+ const expectedBaseDir = path.join(commonDir, "expected");
38
28
  const walk = (dir, pathParts) => {
39
- // Skip dotnet/ and js/ subdirectories (they contain expected output, not sources)
29
+ // Skip expected/ subdirectory (it contains expected output, not sources)
40
30
  const dirName = path.basename(dir);
41
- if (dirName === "dotnet" || dirName === "js") {
31
+ if (dirName === "expected") {
42
32
  return;
43
33
  }
44
34
  const entries = fs.readdirSync(dir, { withFileTypes: true });
@@ -53,7 +43,7 @@ const discoverCommonScenarios = (commonDir, runtimeMode) => {
53
43
  }
54
44
  const inputPath = path.join(dir, entry.input);
55
45
  const baseName = path.basename(entry.input, ".ts");
56
- // Expected path is in common/{dotnet|js}/<pathParts>/<baseName>.cs
46
+ // Expected path is in common/expected/<pathParts>/<baseName>.cs
57
47
  const expectedPath = path.join(expectedBaseDir, ...pathParts, `${baseName}.cs`);
58
48
  if (!fs.existsSync(inputPath)) {
59
49
  throw new Error(`Input file not found: ${inputPath} (title: "${entry.title}", config: ${configPath})`);
@@ -71,15 +61,12 @@ const discoverCommonScenarios = (commonDir, runtimeMode) => {
71
61
  expectedPath: expectDiagnostics?.length ? undefined : expectedPath,
72
62
  expectDiagnostics,
73
63
  expectDiagnosticsMode: entry.expectDiagnosticsMode,
74
- runtimeMode,
75
64
  });
76
65
  }
77
66
  }
78
- // Recurse into subdirectories (except dotnet/js)
67
+ // Recurse into subdirectories (except expected/)
79
68
  for (const entry of entries) {
80
- if (entry.isDirectory() &&
81
- entry.name !== "dotnet" &&
82
- entry.name !== "js") {
69
+ if (entry.isDirectory() && entry.name !== "expected") {
83
70
  walk(path.join(dir, entry.name), [...pathParts, entry.name]);
84
71
  }
85
72
  }
@@ -89,56 +76,4 @@ const discoverCommonScenarios = (commonDir, runtimeMode) => {
89
76
  }
90
77
  return scenarios;
91
78
  };
92
- /**
93
- * Discover scenarios from js-only/ directory
94
- * Source and expected files are in the same directory
95
- */
96
- const discoverJsOnlyScenarios = (jsOnlyDir) => {
97
- const scenarios = [];
98
- const walk = (dir, pathParts) => {
99
- const entries = fs.readdirSync(dir, { withFileTypes: true });
100
- const hasConfig = entries.some((e) => e.name === "config.yaml");
101
- if (hasConfig) {
102
- const configPath = path.join(dir, "config.yaml");
103
- const configContent = fs.readFileSync(configPath, "utf-8");
104
- const testEntries = parseConfigYaml(configContent);
105
- for (const entry of testEntries) {
106
- if (!entry.input.endsWith(".ts")) {
107
- throw new Error(`Invalid input (must end with .ts): ${entry.input} (config: ${configPath})`);
108
- }
109
- const inputPath = path.join(dir, entry.input);
110
- const baseName = path.basename(entry.input, ".ts");
111
- const expectedPath = path.join(dir, `${baseName}.cs`);
112
- if (!fs.existsSync(inputPath)) {
113
- throw new Error(`Input file not found: ${inputPath} (title: "${entry.title}", config: ${configPath})`);
114
- }
115
- const expectDiagnostics = entry.expectDiagnostics;
116
- if (!expectDiagnostics?.length) {
117
- if (!fs.existsSync(expectedPath)) {
118
- throw new Error(`Expected file not found: ${expectedPath} (title: "${entry.title}", config: ${configPath})`);
119
- }
120
- }
121
- scenarios.push({
122
- pathParts: ["js-only", ...pathParts],
123
- title: entry.title,
124
- inputPath,
125
- expectedPath: expectDiagnostics?.length ? undefined : expectedPath,
126
- expectDiagnostics,
127
- expectDiagnosticsMode: entry.expectDiagnosticsMode,
128
- runtimeMode: "js",
129
- });
130
- }
131
- }
132
- // Recurse into subdirectories
133
- for (const entry of entries) {
134
- if (entry.isDirectory()) {
135
- walk(path.join(dir, entry.name), [...pathParts, entry.name]);
136
- }
137
- }
138
- };
139
- if (fs.existsSync(jsOnlyDir)) {
140
- walk(jsOnlyDir, []);
141
- }
142
- return scenarios;
143
- };
144
79
  //# sourceMappingURL=discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/golden-tests/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/golden-tests/discovery.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Golden test harness - Public API
3
3
  */
4
- export type { TestEntry, Scenario, DescribeNode, RuntimeMode, } from "./types.js";
4
+ export type { TestEntry, Scenario, DescribeNode } from "./types.js";
5
5
  export { parseConfigYaml } from "./config-parser.js";
6
6
  export { discoverScenarios } from "./discovery.js";
7
7
  export { buildDescribeTree } from "./tree-builder.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/golden-tests/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/golden-tests/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/golden-tests/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/golden-tests/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/golden-tests/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EAAmB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAYvD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAkB1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAU,UAAU,QAAQ,KAAG,OAAO,CAAC,IAAI,CAyKlE,CAAC"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/golden-tests/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,EAAmB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQvD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAkB1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAU,UAAU,QAAQ,KAAG,OAAO,CAAC,IAAI,CAyKlE,CAAC"}
@@ -5,13 +5,12 @@ import { expect } from "chai";
5
5
  import * as fs from "fs";
6
6
  import * as path from "path";
7
7
  import { fileURLToPath } from "url";
8
- import { compile, buildIr, runNumericProofPass, runAttributeCollectionPass, } from "@tsonic/frontend";
8
+ import { compile, buildIr, runNumericProofPass, runAttributeCollectionPass, runAnonymousTypeLoweringPass, } from "@tsonic/frontend";
9
9
  import { emitCSharpFiles } from "../emitter.js";
10
10
  // Resolve paths to globals packages for golden tests
11
11
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
12
12
  const monorepoRoot = path.resolve(__dirname, "../../../..");
13
13
  const globalsPath = path.join(monorepoRoot, "node_modules/@tsonic/globals");
14
- const jsGlobalsPath = path.join(monorepoRoot, "node_modules/@tsonic/js-globals");
15
14
  const corePath = path.join(monorepoRoot, "node_modules/@tsonic/core");
16
15
  /**
17
16
  * Normalize C# output for comparison
@@ -40,10 +39,7 @@ export const runScenario = async (scenario) => {
40
39
  const namespaceParts = scenario.pathParts.map((part) => part.replace(/-/g, "")); // Strip hyphens
41
40
  const rootNamespace = ["TestCases", ...namespaceParts].join(".");
42
41
  // Step 1: Compile TypeScript → Program
43
- // Use appropriate typeRoots based on runtime mode
44
- const typeRoots = scenario.runtimeMode === "js"
45
- ? [globalsPath, jsGlobalsPath, corePath]
46
- : [globalsPath, corePath];
42
+ const typeRoots = [globalsPath, corePath];
47
43
  const compileResult = compile([scenario.inputPath], {
48
44
  projectRoot: monorepoRoot, // Use monorepo root for node_modules resolution
49
45
  sourceRoot,
@@ -105,8 +101,11 @@ export const runScenario = async (scenario) => {
105
101
  .join("\n");
106
102
  throw new Error(`IR build failed:\n${errors}`);
107
103
  }
104
+ // Step 2.4: Run anonymous type lowering pass (synthesizes types for anonymous object literals)
105
+ const anonTypeResult = runAnonymousTypeLoweringPass(irResult.value);
106
+ const loweredModules = anonTypeResult.modules;
108
107
  // Step 2.5: Run numeric proof pass (validates and annotates numeric types)
109
- const proofResult = runNumericProofPass(irResult.value);
108
+ const proofResult = runNumericProofPass(loweredModules);
110
109
  if (!proofResult.ok) {
111
110
  const errors = proofResult.diagnostics
112
111
  .map((d) => `${d.code}: ${d.message}`)
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/golden-tests/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/golden-tests/runner.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,6 @@
1
1
  /**
2
2
  * Golden test types
3
3
  */
4
- /**
5
- * Runtime mode for golden tests:
6
- * - "dotnet": uses @tsonic/globals only (native .NET APIs)
7
- * - "js": uses @tsonic/globals + @tsonic/js-globals (JSRuntime APIs)
8
- */
9
- export type RuntimeMode = "dotnet" | "js";
10
4
  /**
11
5
  * Diagnostics matching mode:
12
6
  * - "contains": expected codes must be present, extra codes allowed (default)
@@ -26,7 +20,6 @@ export type Scenario = {
26
20
  readonly expectedPath?: string;
27
21
  readonly expectDiagnostics?: readonly string[];
28
22
  readonly expectDiagnosticsMode?: DiagnosticsMode;
29
- readonly runtimeMode: RuntimeMode;
30
23
  };
31
24
  export type DescribeNode = {
32
25
  readonly name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/golden-tests/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/golden-tests/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC"}
@@ -3,16 +3,9 @@
3
3
  *
4
4
  * Directory structure:
5
5
  * testcases/
6
- * ├── common/ # Tests that work in BOTH modes
7
- *├── <category>/<test>/ # .ts sources + config.yaml
8
- * │ ├── dotnet/<category>/<test>/ # Expected .cs for dotnet mode
9
- * │ └── js/<category>/<test>/ # Expected .cs for js mode
10
- * └── js-only/ # Tests that ONLY work in JS mode
11
- * └── <category>/<test>/ # .ts, config.yaml, AND .cs together
12
- *
13
- * Two modes:
14
- * - dotnet: common/ tests only, uses @tsonic/globals (native .NET APIs)
15
- * - js: common/ + js-only/ tests, uses @tsonic/globals + @tsonic/js-globals
6
+ * └── common/ # All tests
7
+ * ├── <category>/<test>/ # .ts sources + config.yaml
8
+ * └── expected/<category>/<test>/ # Expected .cs output
16
9
  */
17
10
  export {};
18
11
  //# sourceMappingURL=golden.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"golden.test.d.ts","sourceRoot":"","sources":["../src/golden.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
1
+ {"version":3,"file":"golden.test.d.ts","sourceRoot":"","sources":["../src/golden.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -3,16 +3,9 @@
3
3
  *
4
4
  * Directory structure:
5
5
  * testcases/
6
- * ├── common/ # Tests that work in BOTH modes
7
- *├── <category>/<test>/ # .ts sources + config.yaml
8
- * │ ├── dotnet/<category>/<test>/ # Expected .cs for dotnet mode
9
- * │ └── js/<category>/<test>/ # Expected .cs for js mode
10
- * └── js-only/ # Tests that ONLY work in JS mode
11
- * └── <category>/<test>/ # .ts, config.yaml, AND .cs together
12
- *
13
- * Two modes:
14
- * - dotnet: common/ tests only, uses @tsonic/globals (native .NET APIs)
15
- * - js: common/ + js-only/ tests, uses @tsonic/globals + @tsonic/js-globals
6
+ * └── common/ # All tests
7
+ * ├── <category>/<test>/ # .ts sources + config.yaml
8
+ * └── expected/<category>/<test>/ # Expected .cs output
16
9
  */
17
10
  import { describe } from "mocha";
18
11
  import * as path from "path";
@@ -21,14 +14,14 @@ import { discoverScenarios, buildDescribeTree, registerNode, } from "./golden-te
21
14
  const __filename = fileURLToPath(import.meta.url);
22
15
  const __dirname = path.dirname(__filename);
23
16
  /**
24
- * Setup tests for a specific runtime mode
17
+ * Main test suite setup (synchronous discovery for Mocha compatibility)
25
18
  */
26
- const setupMode = (mode) => {
19
+ describe("Golden Tests", () => {
27
20
  const testcasesDir = path.join(__dirname, "../testcases");
28
21
  try {
29
- const scenarios = discoverScenarios(testcasesDir, mode);
22
+ const scenarios = discoverScenarios(testcasesDir);
30
23
  if (scenarios.length === 0) {
31
- console.warn(`⚠️ No golden test cases found for ${mode} mode`);
24
+ console.warn("⚠️ No golden test cases found");
32
25
  }
33
26
  else {
34
27
  const tree = buildDescribeTree(scenarios);
@@ -38,17 +31,8 @@ const setupMode = (mode) => {
38
31
  }
39
32
  }
40
33
  catch (error) {
41
- console.error(`❌ Failed to setup ${mode} mode golden tests:`, error);
34
+ console.error("❌ Failed to setup golden tests:", error);
42
35
  throw error;
43
36
  }
44
- };
45
- /**
46
- * Main test suite setup (synchronous discovery for Mocha compatibility)
47
- */
48
- describe("Golden Tests (dotnet mode)", () => {
49
- setupMode("dotnet");
50
- });
51
- describe("Golden Tests (js mode)", () => {
52
- setupMode("js");
53
37
  });
54
38
  //# sourceMappingURL=golden.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"golden.test.js","sourceRoot":"","sources":["../src/golden.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAGjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,MAAM,SAAS,GAAG,CAAC,IAAiB,EAAQ,EAAE;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAExD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,sCAAsC,IAAI,OAAO,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,IAAI,EAAE,CAAC;gBACT,YAAY,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,qBAAqB,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"golden.test.js","sourceRoot":"","sources":["../src/golden.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAElD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,IAAI,EAAE,CAAC;gBACT,YAAY,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -5,7 +5,7 @@
5
5
  import { describe, it } from "mocha";
6
6
  import { expect } from "chai";
7
7
  import * as ts from "typescript";
8
- import { buildIrModule, DotnetMetadataRegistry, BindingRegistry, createClrBindingsResolver, } from "@tsonic/frontend";
8
+ import { buildIrModule, DotnetMetadataRegistry, BindingRegistry, createClrBindingsResolver, createBinding, createProgramContext, } from "@tsonic/frontend";
9
9
  import { emitModule } from "./emitter.js";
10
10
  describe("Hierarchical Bindings - Full Pipeline", () => {
11
11
  it("should compile TypeScript with hierarchical bindings to correct C#", () => {
@@ -64,9 +64,11 @@ describe("Hierarchical Bindings - Full Pipeline", () => {
64
64
  getNewLine: () => "\n",
65
65
  getDefaultLibFileName: (_options) => "lib.d.ts",
66
66
  });
67
+ const checker = program.getTypeChecker();
67
68
  const testProgram = {
68
69
  program,
69
- checker: program.getTypeChecker(),
70
+ checker,
71
+ binding: createBinding(checker),
70
72
  options: {
71
73
  projectRoot: "/test",
72
74
  sourceRoot: "/test",
@@ -74,15 +76,16 @@ describe("Hierarchical Bindings - Full Pipeline", () => {
74
76
  strict: true,
75
77
  },
76
78
  sourceFiles: [sourceFile],
79
+ declarationSourceFiles: [],
77
80
  metadata: new DotnetMetadataRegistry(),
78
81
  bindings,
79
82
  clrResolver: createClrBindingsResolver("/test"),
80
83
  };
84
+ // Phase 5: Create ProgramContext for this compilation
85
+ const options = { sourceRoot: "/test", rootNamespace: "TestApp" };
86
+ const ctx = createProgramContext(testProgram, options);
81
87
  // Step 1: Build IR
82
- const irResult = buildIrModule(sourceFile, testProgram, {
83
- sourceRoot: "/test",
84
- rootNamespace: "TestApp",
85
- });
88
+ const irResult = buildIrModule(sourceFile, testProgram, options, ctx);
86
89
  if (!irResult.ok) {
87
90
  throw new Error(`IR build must succeed for full pipeline test: ${JSON.stringify(irResult.error)}`);
88
91
  }
@@ -97,7 +100,7 @@ describe("Hierarchical Bindings - Full Pipeline", () => {
97
100
  expect(csharpCode).to.not.include("systemLinq", "C# should not contain TS namespace identifier");
98
101
  expect(csharpCode).to.not.include("enumerable", "C# should not contain TS type identifier");
99
102
  // Verify function structure (may be void if return type not inferred)
100
- expect(csharpCode).to.match(/public static (void|object) processData\(/, "C# should have processData function");
103
+ expect(csharpCode).to.match(/public static (void|object) ProcessData\(/, "C# should have processData function");
101
104
  });
102
105
  it("should handle multiple hierarchical bindings in same code", () => {
103
106
  const source = `
@@ -170,9 +173,11 @@ describe("Hierarchical Bindings - Full Pipeline", () => {
170
173
  getNewLine: () => "\n",
171
174
  getDefaultLibFileName: (_options) => "lib.d.ts",
172
175
  });
176
+ const checker2 = program.getTypeChecker();
173
177
  const testProgram = {
174
178
  program,
175
- checker: program.getTypeChecker(),
179
+ checker: checker2,
180
+ binding: createBinding(checker2),
176
181
  options: {
177
182
  projectRoot: "/test",
178
183
  sourceRoot: "/test",
@@ -180,14 +185,15 @@ describe("Hierarchical Bindings - Full Pipeline", () => {
180
185
  strict: true,
181
186
  },
182
187
  sourceFiles: [sourceFile],
188
+ declarationSourceFiles: [],
183
189
  metadata: new DotnetMetadataRegistry(),
184
190
  bindings,
185
191
  clrResolver: createClrBindingsResolver("/test"),
186
192
  };
187
- const irResult = buildIrModule(sourceFile, testProgram, {
188
- sourceRoot: "/test",
189
- rootNamespace: "TestApp",
190
- });
193
+ // Phase 5: Create ProgramContext for this compilation
194
+ const options = { sourceRoot: "/test", rootNamespace: "TestApp" };
195
+ const ctx = createProgramContext(testProgram, options);
196
+ const irResult = buildIrModule(sourceFile, testProgram, options, ctx);
191
197
  if (!irResult.ok) {
192
198
  throw new Error("IR build failed for multiple bindings test");
193
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hierarchical-bindings.test.js","sourceRoot":"","sources":["../src/hierarchical-bindings.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hierarchical-bindings.test.js","sourceRoot":"","sources":["../src/hierarchical-bindings.test.ts"],"names":[],"mappings":"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"}