@hyperscale0/hsx 1.0.0-beta.1 → 1.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 (255) hide show
  1. package/CHANGELOG.md +58 -9
  2. package/LICENSING.md +3 -3
  3. package/README.md +39 -149
  4. package/TRADEMARKS.md +4 -4
  5. package/bin/hsx.ts +2 -0
  6. package/dist/bin/hsx.js +2 -0
  7. package/dist/bin/hsx.js.map +1 -1
  8. package/dist/src/ast.d.ts +135 -10
  9. package/dist/src/ast.d.ts.map +1 -1
  10. package/dist/src/ast.js +24 -0
  11. package/dist/src/ast.js.map +1 -1
  12. package/dist/src/cli.d.ts +4 -1
  13. package/dist/src/cli.d.ts.map +1 -1
  14. package/dist/src/cli.js +172 -16
  15. package/dist/src/cli.js.map +1 -1
  16. package/dist/src/compile.d.ts +42 -7
  17. package/dist/src/compile.d.ts.map +1 -1
  18. package/dist/src/compile.js +82 -16
  19. package/dist/src/compile.js.map +1 -1
  20. package/dist/src/cost.d.ts +78 -0
  21. package/dist/src/cost.d.ts.map +1 -0
  22. package/dist/src/cost.js +369 -0
  23. package/dist/src/cost.js.map +1 -0
  24. package/dist/src/diagnostics.d.ts +11 -0
  25. package/dist/src/diagnostics.d.ts.map +1 -0
  26. package/dist/src/diagnostics.js +420 -0
  27. package/dist/src/diagnostics.js.map +1 -0
  28. package/dist/src/emit.d.ts +34 -0
  29. package/dist/src/emit.d.ts.map +1 -0
  30. package/dist/src/emit.js +137 -0
  31. package/dist/src/emit.js.map +1 -0
  32. package/dist/src/entry-overrides.d.ts +17 -3
  33. package/dist/src/entry-overrides.d.ts.map +1 -1
  34. package/dist/src/entry-overrides.js +180 -35
  35. package/dist/src/entry-overrides.js.map +1 -1
  36. package/dist/src/format.d.ts +10 -0
  37. package/dist/src/format.d.ts.map +1 -0
  38. package/dist/src/format.js +183 -0
  39. package/dist/src/format.js.map +1 -0
  40. package/dist/src/index.d.ts +11 -4
  41. package/dist/src/index.d.ts.map +1 -1
  42. package/dist/src/index.js +10 -3
  43. package/dist/src/index.js.map +1 -1
  44. package/dist/src/ir.d.ts +66 -0
  45. package/dist/src/ir.d.ts.map +1 -0
  46. package/dist/src/ir.js +15 -0
  47. package/dist/src/ir.js.map +1 -0
  48. package/dist/src/lex.d.ts +9 -1
  49. package/dist/src/lex.d.ts.map +1 -1
  50. package/dist/src/lex.js +50 -4
  51. package/dist/src/lex.js.map +1 -1
  52. package/dist/src/limits.d.ts +2 -3
  53. package/dist/src/limits.d.ts.map +1 -1
  54. package/dist/src/limits.js +2 -3
  55. package/dist/src/limits.js.map +1 -1
  56. package/dist/src/lsp/server.d.ts +32 -0
  57. package/dist/src/lsp/server.d.ts.map +1 -0
  58. package/dist/src/lsp/server.js +391 -0
  59. package/dist/src/lsp/server.js.map +1 -0
  60. package/dist/src/modules.d.ts +38 -0
  61. package/dist/src/modules.d.ts.map +1 -0
  62. package/dist/src/modules.js +368 -0
  63. package/dist/src/modules.js.map +1 -0
  64. package/dist/src/parse.d.ts.map +1 -1
  65. package/dist/src/parse.js +590 -17
  66. package/dist/src/parse.js.map +1 -1
  67. package/dist/src/std-bundle.d.ts +2 -0
  68. package/dist/src/std-bundle.d.ts.map +1 -0
  69. package/dist/src/std-bundle.js +88 -0
  70. package/dist/src/std-bundle.js.map +1 -0
  71. package/dist/src/std-library.d.ts +5 -0
  72. package/dist/src/std-library.d.ts.map +1 -0
  73. package/dist/src/std-library.js +9 -0
  74. package/dist/src/std-library.js.map +1 -0
  75. package/dist/src/typecheck.d.ts +8 -0
  76. package/dist/src/typecheck.d.ts.map +1 -0
  77. package/dist/src/typecheck.js +2958 -0
  78. package/dist/src/typecheck.js.map +1 -0
  79. package/dist/src/version.d.ts +4 -15
  80. package/dist/src/version.d.ts.map +1 -1
  81. package/dist/src/version.js +4 -15
  82. package/dist/src/version.js.map +1 -1
  83. package/docs/README.md +26 -0
  84. package/docs/guide/01-first-program.md +24 -0
  85. package/docs/guide/02-money.md +25 -0
  86. package/docs/guide/03-instruments.md +22 -0
  87. package/docs/guide/04-lifecycles.md +25 -0
  88. package/docs/guide/05-fees-and-splits.md +45 -0
  89. package/docs/guide/06-schedules.md +22 -0
  90. package/docs/guide/07-composition.md +46 -0
  91. package/docs/guide/08-writing-a-module.md +26 -0
  92. package/docs/guide/09-cost.md +24 -0
  93. package/docs/guide/10-diagnostics.md +27 -0
  94. package/docs/llms-full.txt +1739 -0
  95. package/docs/llms.txt +45 -0
  96. package/docs/playground.md +54 -0
  97. package/docs/reference/cli.md +35 -0
  98. package/docs/reference/diagnostics.md +619 -0
  99. package/docs/reference/grammar.md +39 -0
  100. package/docs/reference/std/advance.md +35 -0
  101. package/docs/reference/std/cancellable_booking.md +35 -0
  102. package/docs/reference/std/captured_payment.md +43 -0
  103. package/docs/reference/std/conditional_disbursement.md +33 -0
  104. package/docs/reference/std/credit_facility.md +35 -0
  105. package/docs/reference/std/held_payment.md +64 -0
  106. package/docs/reference/std/instant_transfer.md +30 -0
  107. package/docs/reference/std/metered.md +27 -0
  108. package/docs/reference/std/pooled_split.md +26 -0
  109. package/docs/reference/std/premium_forward.md +39 -0
  110. package/docs/reference/std/reconciled_payout.md +33 -0
  111. package/docs/reference/std/recurring_collection.md +25 -0
  112. package/docs/reference/std/rotating_pool.md +42 -0
  113. package/docs/reference/std/scheduled.md +51 -0
  114. package/docs/reference/std/security_deposit.md +46 -0
  115. package/docs/reference/std/settlement_batch.md +42 -0
  116. package/docs/reference/std/swap.md +46 -0
  117. package/docs/reference/std/threshold_pool.md +47 -0
  118. package/docs/reference/std/weighted_distribution.md +39 -0
  119. package/docs/reference/types.md +20 -0
  120. package/docs/reference/udl-output.md +13 -0
  121. package/docs/sessions/2026-09-02-two-instruments.hsx +21 -0
  122. package/docs/sessions/2026-09-02-two-instruments.md +41 -0
  123. package/examples/01-first-program/README.md +45 -0
  124. package/examples/01-first-program/tip-jar.hsx +17 -0
  125. package/examples/02-imports-and-archetypes/README.md +96 -0
  126. package/examples/02-imports-and-archetypes/photo-booth.hsx +37 -0
  127. package/examples/03-diagnostics/README.md +68 -0
  128. package/examples/03-diagnostics/corner-shop-fixed.hsx +22 -0
  129. package/examples/03-diagnostics/corner-shop.hsx +19 -0
  130. package/examples/04-complete-product/README.md +84 -0
  131. package/examples/04-complete-product/study-hall.hsx +67 -0
  132. package/examples/05-watch-club/README.md +9 -0
  133. package/examples/05-watch-club/watch-club.hsx +124 -0
  134. package/examples/README.md +18 -0
  135. package/examples/advance/README.md +3 -0
  136. package/examples/advance/advance.hsx +13 -0
  137. package/examples/advance/advance.udl +339 -0
  138. package/examples/cancellable_booking/README.md +3 -0
  139. package/examples/cancellable_booking/cancellable_booking.hsx +14 -0
  140. package/examples/cancellable_booking/cancellable_booking.udl +391 -0
  141. package/examples/captured_payment/README.md +3 -0
  142. package/examples/captured_payment/captured_payment.hsx +21 -0
  143. package/examples/captured_payment/captured_payment.udl +677 -0
  144. package/examples/conditional_disbursement/README.md +3 -0
  145. package/examples/conditional_disbursement/conditional_disbursement.hsx +17 -0
  146. package/examples/conditional_disbursement/conditional_disbursement.udl +412 -0
  147. package/examples/cost-table.json +386 -0
  148. package/examples/credit_facility/README.md +3 -0
  149. package/examples/credit_facility/credit_facility.hsx +27 -0
  150. package/examples/credit_facility/credit_facility.udl +1373 -0
  151. package/examples/held_payment/README.md +3 -0
  152. package/examples/held_payment/held_payment.hsx +13 -0
  153. package/examples/held_payment/held_payment.udl +507 -0
  154. package/examples/instant_transfer/README.md +3 -0
  155. package/examples/instant_transfer/instant_transfer.hsx +16 -0
  156. package/examples/instant_transfer/instant_transfer.udl +364 -0
  157. package/examples/metered/README.md +3 -0
  158. package/examples/metered/metered.hsx +13 -0
  159. package/examples/metered/metered.udl +247 -0
  160. package/examples/pooled_split/README.md +3 -0
  161. package/examples/pooled_split/pooled_split.hsx +15 -0
  162. package/examples/pooled_split/pooled_split.udl +425 -0
  163. package/examples/premium_forward/README.md +3 -0
  164. package/examples/premium_forward/premium_forward.hsx +19 -0
  165. package/examples/premium_forward/premium_forward.udl +594 -0
  166. package/examples/reconciled_payout/README.md +3 -0
  167. package/examples/reconciled_payout/reconciled_payout.hsx +13 -0
  168. package/examples/reconciled_payout/reconciled_payout.udl +303 -0
  169. package/examples/recurring_collection/README.md +3 -0
  170. package/examples/recurring_collection/recurring_collection.hsx +21 -0
  171. package/examples/recurring_collection/recurring_collection.udl +1130 -0
  172. package/examples/rotating_pool/README.md +3 -0
  173. package/examples/rotating_pool/rotating_pool.hsx +18 -0
  174. package/examples/rotating_pool/rotating_pool.udl +4352 -0
  175. package/examples/scheduled/README.md +3 -0
  176. package/examples/scheduled/scheduled.hsx +12 -0
  177. package/examples/scheduled/scheduled.udl +335 -0
  178. package/examples/security_deposit/README.md +3 -0
  179. package/examples/security_deposit/security_deposit.hsx +21 -0
  180. package/examples/security_deposit/security_deposit.udl +293 -0
  181. package/examples/settlement_batch/README.md +3 -0
  182. package/examples/settlement_batch/settlement_batch.hsx +19 -0
  183. package/examples/settlement_batch/settlement_batch.udl +753 -0
  184. package/examples/swap/README.md +3 -0
  185. package/examples/swap/swap.hsx +19 -0
  186. package/examples/swap/swap.udl +876 -0
  187. package/examples/threshold_pool/README.md +3 -0
  188. package/examples/threshold_pool/threshold_pool.hsx +16 -0
  189. package/examples/threshold_pool/threshold_pool.udl +667 -0
  190. package/examples/weighted_distribution/README.md +3 -0
  191. package/examples/weighted_distribution/weighted_distribution.hsx +20 -0
  192. package/examples/weighted_distribution/weighted_distribution.udl +337 -0
  193. package/package.json +27 -6
  194. package/skills/hsx/SKILL.md +483 -0
  195. package/src/ast.ts +193 -9
  196. package/src/cli.ts +191 -20
  197. package/src/compile.ts +160 -23
  198. package/src/cost.ts +579 -0
  199. package/src/diagnostics.ts +442 -0
  200. package/src/emit.ts +201 -0
  201. package/src/entry-overrides.ts +263 -48
  202. package/src/format.ts +261 -0
  203. package/src/index.ts +34 -4
  204. package/src/ir.ts +99 -0
  205. package/src/lex.ts +59 -4
  206. package/src/limits.ts +2 -3
  207. package/src/lsp/server.ts +460 -0
  208. package/src/modules.ts +446 -0
  209. package/src/parse.ts +655 -21
  210. package/src/std-bundle.ts +91 -0
  211. package/src/std-library.ts +12 -0
  212. package/src/typecheck.ts +3876 -0
  213. package/src/version.ts +4 -16
  214. package/std/SEMANTICS.md +130 -0
  215. package/std/settlements/advance.hsx +177 -0
  216. package/std/settlements/cancellable_booking.hsx +87 -0
  217. package/std/settlements/captured_payment.hsx +144 -0
  218. package/std/settlements/conditional_disbursement.hsx +185 -0
  219. package/std/settlements/credit_facility.hsx +167 -0
  220. package/std/settlements/held_payment.hsx +578 -0
  221. package/std/settlements/index.hsx +3 -0
  222. package/std/settlements/instant_transfer.hsx +190 -0
  223. package/std/settlements/metered.hsx +67 -0
  224. package/std/settlements/pooled_split.hsx +68 -0
  225. package/std/settlements/premium_forward.hsx +257 -0
  226. package/std/settlements/reconciled_payout.hsx +77 -0
  227. package/std/settlements/recurring_collection.hsx +27 -0
  228. package/std/settlements/rotating_pool.hsx +252 -0
  229. package/std/settlements/scheduled.hsx +641 -0
  230. package/std/settlements/security_deposit.hsx +166 -0
  231. package/std/settlements/settlement_batch.hsx +122 -0
  232. package/std/settlements/swap.hsx +1114 -0
  233. package/std/settlements/threshold_pool.hsx +221 -0
  234. package/std/settlements/weighted_distribution.hsx +141 -0
  235. package/dist/src/archetypes.d.ts +0 -17
  236. package/dist/src/archetypes.d.ts.map +0 -1
  237. package/dist/src/archetypes.js +0 -327
  238. package/dist/src/archetypes.js.map +0 -1
  239. package/dist/src/check.d.ts +0 -12
  240. package/dist/src/check.d.ts.map +0 -1
  241. package/dist/src/check.js +0 -1910
  242. package/dist/src/check.js.map +0 -1
  243. package/dist/src/lower.d.ts +0 -146
  244. package/dist/src/lower.d.ts.map +0 -1
  245. package/dist/src/lower.js +0 -4570
  246. package/dist/src/lower.js.map +0 -1
  247. package/dist/src/model.d.ts +0 -467
  248. package/dist/src/model.d.ts.map +0 -1
  249. package/dist/src/model.js +0 -15
  250. package/dist/src/model.js.map +0 -1
  251. package/spec/hsx-ir.schema.json +0 -920
  252. package/src/archetypes.ts +0 -340
  253. package/src/check.ts +0 -2938
  254. package/src/lower.ts +0 -5416
  255. package/src/model.ts +0 -519
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Data-driven replacement of existing settlement entries. This is not syntax:
3
3
  * callers select a slot that already exists in the parsed program, replace its
4
- * literal value, then run the ordinary checker and lowerer again.
4
+ * literal value, then run the ordinary general compiler again.
5
5
  */
6
6
  function percentRaw(bps) {
7
7
  const whole = Math.floor(bps / 100);
@@ -10,41 +10,134 @@ function percentRaw(bps) {
10
10
  ? `${whole}`
11
11
  : `${whole}.${String(fraction).padStart(2, "0").replace(/0$/, "")}`;
12
12
  }
13
+ function durationMagnitude(value) {
14
+ const match = /^P([1-9][0-9]{0,3})([DWMY])$/.exec(value);
15
+ if (!match)
16
+ return undefined;
17
+ const amount = Number(match[1]);
18
+ switch (match[2]) {
19
+ case "D":
20
+ return { amount, family: "days" };
21
+ case "W":
22
+ return { amount: amount * 7, family: "days" };
23
+ case "M":
24
+ return { amount, family: "months" };
25
+ case "Y":
26
+ return { amount: amount * 12, family: "months" };
27
+ default:
28
+ return undefined;
29
+ }
30
+ }
13
31
  function replacementExpr(current, value) {
14
32
  if (value.kind === "integer") {
15
- return { kind: "number", raw: String(value.value), span: current.span };
33
+ return current.kind === "number"
34
+ ? {
35
+ expr: {
36
+ kind: "number",
37
+ raw: String(value.value),
38
+ span: current.span,
39
+ },
40
+ }
41
+ : { issue: "target is not an integer literal" };
42
+ }
43
+ if (value.kind === "basis_points") {
44
+ return current.kind === "percent"
45
+ ? {
46
+ expr: {
47
+ bps: value.value,
48
+ kind: "percent",
49
+ raw: percentRaw(value.value),
50
+ span: current.span,
51
+ },
52
+ }
53
+ : { issue: "target is not a percentage literal" };
54
+ }
55
+ if (value.kind === "duration") {
56
+ return current.kind === "ident" && durationMagnitude(current.name)
57
+ ? {
58
+ expr: { kind: "ident", name: value.value, span: current.span },
59
+ }
60
+ : { issue: "target is not an ISO-8601 duration literal" };
61
+ }
62
+ if (current.kind !== "binding" ||
63
+ current.type.kind !== "call" ||
64
+ current.type.callee.name !== "money" ||
65
+ current.type.args.length !== 2 ||
66
+ current.type.args[0]?.kind !== "ident" ||
67
+ current.type.args[1]?.kind !== "number") {
68
+ return { issue: "target is not a fixed money literal" };
69
+ }
70
+ if (current.type.args[0].name !== value.currency) {
71
+ return {
72
+ issue: `target currency ${current.type.args[0].name} does not match ${value.currency}`,
73
+ };
16
74
  }
17
75
  return {
18
- bps: value.value,
19
- kind: "percent",
20
- raw: percentRaw(value.value),
21
- span: current.span,
76
+ expr: {
77
+ ...current,
78
+ type: {
79
+ ...current.type,
80
+ args: [
81
+ current.type.args[0],
82
+ {
83
+ kind: "number",
84
+ raw: String(value.value),
85
+ span: current.type.args[1].span,
86
+ },
87
+ ],
88
+ },
89
+ },
22
90
  };
23
91
  }
24
- function replaceEntry(block, path, value) {
92
+ function selectedEntry(block, path) {
25
93
  const [head, ...tail] = path;
26
94
  const matches = block.entries
27
95
  .map((entry, index) => ({ entry, index }))
28
96
  .filter(({ entry }) => entry.key.name === head);
29
97
  if (matches.length === 0)
30
98
  return { issue: `entry ${head} does not exist` };
31
- if (matches.length > 1)
99
+ if (matches.length === 1)
100
+ return { match: matches[0], tail };
101
+ const occurrence = Number(tail[0]);
102
+ if (!Number.isInteger(occurrence) || occurrence < 0) {
32
103
  return { issue: `entry ${head} is ambiguous` };
33
- const match = matches[0];
104
+ }
105
+ const match = matches[occurrence];
106
+ return match
107
+ ? { match, tail: tail.slice(1) }
108
+ : { issue: `entry ${head} occurrence ${occurrence} does not exist` };
109
+ }
110
+ function replaceEntry(block, path, value) {
111
+ const selected = selectedEntry(block, path);
112
+ if (!("match" in selected))
113
+ return selected;
114
+ const { match, tail } = selected;
34
115
  let nextEntry;
35
116
  if (tail.length === 0) {
36
- if (match.entry.value.kind !== "number" &&
37
- match.entry.value.kind !== "percent") {
38
- return { issue: `entry ${head} is not a numeric literal` };
117
+ const replacement = replacementExpr(match.entry.value, value);
118
+ if (!replacement.expr)
119
+ return replacement;
120
+ nextEntry = {
121
+ ...match.entry,
122
+ value: replacement.expr,
123
+ };
124
+ }
125
+ else if (tail.length === 1 &&
126
+ tail[0] === "within" &&
127
+ match.entry.value.kind === "port_ref" &&
128
+ match.entry.value.within) {
129
+ const replacement = replacementExpr(match.entry.value.within, value);
130
+ if (!replacement.expr || replacement.expr.kind !== "ident") {
131
+ return replacement;
39
132
  }
40
133
  nextEntry = {
41
134
  ...match.entry,
42
- value: replacementExpr(match.entry.value, value),
135
+ value: { ...match.entry.value, within: replacement.expr },
43
136
  };
44
137
  }
45
138
  else {
46
139
  if (match.entry.value.kind !== "block") {
47
- return { issue: `entry ${head} is not a block` };
140
+ return { issue: `entry ${match.entry.key.name} is not a block` };
48
141
  }
49
142
  const nested = replaceEntry(match.entry.value, tail, value);
50
143
  if (!nested.block)
@@ -59,40 +152,79 @@ function replaceEntry(block, path, value) {
59
152
  };
60
153
  }
61
154
  function settlementByName(program, name) {
62
- return program.decls.find((decl) => decl.kind === "settlement" && decl.name.name === name);
155
+ return program.decls.find((decl) => decl.kind === "instrument_apply" && decl.name.name === name);
156
+ }
157
+ function applicationBody(settlement) {
158
+ return {
159
+ entries: settlement.application.args.flatMap((argument) => argument.kind === "binding"
160
+ ? [
161
+ {
162
+ key: argument.name,
163
+ qualifiers: [],
164
+ span: argument.span,
165
+ value: argument.type,
166
+ },
167
+ ]
168
+ : []),
169
+ kind: "block",
170
+ span: settlement.application.span,
171
+ };
63
172
  }
64
173
  function validateOverride(override) {
65
174
  const { max, min } = override.bounds;
175
+ if (override.value.kind === "duration") {
176
+ if (typeof min !== "string" || typeof max !== "string") {
177
+ return issue(override, "invalid_bounds", "duration bounds must be ISO-8601 durations");
178
+ }
179
+ const minDuration = durationMagnitude(min);
180
+ const maxDuration = durationMagnitude(max);
181
+ if (!minDuration ||
182
+ !maxDuration ||
183
+ minDuration.family !== maxDuration.family ||
184
+ minDuration.amount > maxDuration.amount) {
185
+ return issue(override, "invalid_bounds", `duration bounds ${min}..${max} must be valid, comparable, and ordered`);
186
+ }
187
+ const value = durationMagnitude(override.value.value);
188
+ if (!value ||
189
+ value.family !== minDuration.family ||
190
+ value.amount < minDuration.amount ||
191
+ value.amount > maxDuration.amount) {
192
+ return issue(override, "invalid_value", `override value ${override.value.value} is outside ${min}..${max}`);
193
+ }
194
+ return undefined;
195
+ }
196
+ if (typeof min !== "number" || typeof max !== "number") {
197
+ return issue(override, "invalid_bounds", "numeric bounds must be finite nonnegative integers");
198
+ }
66
199
  if (!Number.isFinite(min) ||
67
200
  !Number.isInteger(min) ||
68
201
  min < 0 ||
69
202
  !Number.isFinite(max) ||
70
203
  !Number.isInteger(max) ||
71
204
  max < min) {
72
- return {
73
- code: "invalid_bounds",
74
- message: `override bounds ${min}..${max} must be finite nonnegative integers with min at most max`,
75
- path: override.path,
76
- settlement: override.settlement,
77
- };
205
+ return issue(override, "invalid_bounds", `override bounds ${min}..${max} must be finite nonnegative integers with min at most max`);
78
206
  }
79
207
  const { value } = override.value;
80
208
  if (!Number.isFinite(value) || !Number.isInteger(value) || value < 0) {
81
- return {
82
- code: "invalid_value",
83
- message: `override value ${value} must be a finite nonnegative integer`,
84
- path: override.path,
85
- settlement: override.settlement,
86
- };
209
+ return issue(override, "invalid_value", `override value ${value} must be a finite nonnegative integer`);
87
210
  }
88
211
  if (value < min || value > max) {
89
- return {
90
- code: "invalid_value",
91
- message: `override value ${value} is outside ${min}..${max}`,
92
- path: override.path,
93
- settlement: override.settlement,
94
- };
212
+ return issue(override, "invalid_value", `override value ${value} is outside ${min}..${max}`);
95
213
  }
214
+ if (override.value.kind === "money") {
215
+ const boundsCurrency = "currency" in override.bounds ? override.bounds.currency : undefined;
216
+ if (!boundsCurrency || boundsCurrency !== override.value.currency) {
217
+ return issue(override, "invalid_bounds", `money bounds must use currency ${override.value.currency}`);
218
+ }
219
+ }
220
+ }
221
+ function issue(override, code, message) {
222
+ return {
223
+ code,
224
+ message,
225
+ path: override.path,
226
+ settlement: override.settlement,
227
+ };
96
228
  }
97
229
  /**
98
230
  * Applies every override atomically. A missing or non-literal slot returns
@@ -117,7 +249,7 @@ export function overrideProgramEntries(program, overrides) {
117
249
  });
118
250
  continue;
119
251
  }
120
- const replaced = replaceEntry(settlement.body, override.path, override.value);
252
+ const replaced = replaceEntry(applicationBody(settlement), override.path, override.value);
121
253
  if (!replaced.block) {
122
254
  issues.push({
123
255
  code: "invalid_target",
@@ -129,7 +261,20 @@ export function overrideProgramEntries(program, overrides) {
129
261
  }
130
262
  current = {
131
263
  ...current,
132
- decls: current.decls.map((decl) => decl === settlement ? { ...settlement, body: replaced.block } : decl),
264
+ decls: current.decls.map((decl) => decl === settlement
265
+ ? {
266
+ ...settlement,
267
+ application: {
268
+ ...settlement.application,
269
+ args: replaced.block.entries.map((entry) => ({
270
+ kind: "binding",
271
+ name: entry.key,
272
+ span: entry.span,
273
+ type: entry.value,
274
+ })),
275
+ },
276
+ }
277
+ : decl),
133
278
  };
134
279
  }
135
280
  return issues.length > 0
@@ -1 +1 @@
1
- {"version":3,"file":"entry-overrides.js","sourceRoot":"","sources":["../../src/entry-overrides.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry-overrides.js","sourceRoot":"","sources":["../../src/entry-overrides.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Diagnostic } from "./ast.ts";
2
+ export type FormatResult = {
3
+ readonly formatted: string;
4
+ readonly ok: true;
5
+ } | {
6
+ readonly diagnostics: readonly Diagnostic[];
7
+ readonly ok: false;
8
+ };
9
+ export declare function format(source: string): FormatResult;
10
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,UAAU,EAAqB,MAAM,UAAU,CAAC;AAI/E,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAExE,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAiBnD"}
@@ -0,0 +1,183 @@
1
+ import { lex } from "./lex.js";
2
+ import { parseProgram } from "./parse.js";
3
+ export function format(source) {
4
+ const parsed = parseProgram(source);
5
+ if (parsed.diagnostics.length > 0) {
6
+ return { diagnostics: parsed.diagnostics, ok: false };
7
+ }
8
+ const context = { comments: lex(source).comments, source };
9
+ return {
10
+ formatted: `${renderSequence(parsed.program.decls, parsed.program.span, 0, (decl) => renderDecl(decl, context), context)}\n`,
11
+ ok: true,
12
+ };
13
+ }
14
+ function renderDecl(decl, context) {
15
+ switch (decl.kind) {
16
+ case "module":
17
+ return `module ${renderExpr(decl.name, 0, context)};`;
18
+ case "program":
19
+ return `program ${decl.name.name}${decl.title ? ` ${renderExpr(decl.title, 0, context)}` : ""};`;
20
+ case "use":
21
+ return `use ${decl.instrument.name};`;
22
+ case "expose":
23
+ return `expose ${decl.instrument.name}.${decl.action.name} as ${decl.publicName.name};`;
24
+ case "import":
25
+ return `import { ${decl.names.map((name) => name.name).join(", ")} } from ${renderExpr(decl.from, 0, context)};`;
26
+ case "party":
27
+ return renderBlockDecl(`party ${decl.name.name}: ${decl.partyKind.name}`, decl.attrs, context);
28
+ case "asset":
29
+ return renderBlockDecl(`asset ${decl.name.name}: ${decl.assetKind.name}`, decl.attrs, context);
30
+ case "subject":
31
+ return `subject ${decl.name.name} ${renderBlock(decl.body, 0, context)}`;
32
+ case "port":
33
+ return `port ${decl.name.name} ${renderBlock(decl.body, 0, context)}`;
34
+ case "instrument": {
35
+ const exported = decl.exported ? "export " : "";
36
+ const typeParameters = decl.typeParameters.length > 0
37
+ ? `<${decl.typeParameters.map((parameter) => parameter.name.name).join(", ")}>`
38
+ : "";
39
+ const parameters = decl.hasParameterList
40
+ ? `(${decl.parameters
41
+ .map((parameter) => `${parameter.name.name}: ${renderExpr(parameter.type, 0)}`)
42
+ .join(", ")})`
43
+ : "";
44
+ return `${exported}instrument ${decl.name.name}${typeParameters}${parameters} ${renderBlock(decl.body, 0, context)}`;
45
+ }
46
+ case "instrument_apply":
47
+ return `${decl.exported ? "export " : ""}instrument ${decl.name.name} = ${renderExpr(decl.application, 0, context)}${decl.metadata ? ` ${renderBlock(decl.metadata, 0, context)}` : ";"}`;
48
+ case "type":
49
+ return `${decl.exported ? "export " : ""}type ${decl.name.name} = ${renderExpr(decl.value, 0, context)};`;
50
+ case "const": {
51
+ const type = decl.type ? `: ${renderExpr(decl.type, 0, context)}` : "";
52
+ return `${decl.exported ? "export " : ""}const ${decl.name.name}${type} = ${renderExpr(decl.value, 0, context)};`;
53
+ }
54
+ }
55
+ }
56
+ function renderBlockDecl(header, body, context) {
57
+ return body ? `${header} ${renderBlock(body, 0, context)}` : `${header};`;
58
+ }
59
+ function renderBlock(block, indent, context) {
60
+ const rows = renderSequence(block.entries, block.span, indent + 1, (entry) => `${spaces(indent + 1)}${renderEntry(entry, indent + 1, context)}`, context);
61
+ if (rows.length === 0)
62
+ return "{}";
63
+ return `{\n${rows}\n${spaces(indent)}}`;
64
+ }
65
+ function renderEntry(entry, indent, context) {
66
+ const key = entry.key.name;
67
+ const identifierKey = /^[A-Za-z][A-Za-z0-9_]*(?:\[[A-Za-z][A-Za-z0-9_]*\][A-Za-z0-9_]*)?$/.test(key);
68
+ const renderedKey = !entry.key.quoted && identifierKey ? key : JSON.stringify(key);
69
+ if (entry.iteration && entry.value.kind === "block") {
70
+ return `for ${entry.iteration.binding.name} in ${renderExpr(entry.iteration.bound, indent, context)} ${renderBlock(entry.value, indent, context)}`;
71
+ }
72
+ if (key === "action" && entry.value.kind === "block") {
73
+ return `action ${entry.qualifiers[0]?.name ?? ""} ${renderBlock(entry.value, indent, context)}`;
74
+ }
75
+ if (key === "states" && entry.value.kind === "list") {
76
+ return `states ${entry.value.items.map((item) => renderExpr(item, indent, context)).join(" ")};`;
77
+ }
78
+ if (key === "initial") {
79
+ return `initial ${renderExpr(entry.value, indent, context)};`;
80
+ }
81
+ if (key === "parked") {
82
+ return `parked ${entry.qualifiers[0]?.name ?? ""} reason ${renderExpr(entry.value, indent, context)};`;
83
+ }
84
+ if (key === "on") {
85
+ const [action, ...states] = entry.qualifiers;
86
+ return `on ${action?.name ?? ""}: ${states.map((state) => state.name).join(" | ")} -> ${renderExpr(entry.value, indent, context)};`;
87
+ }
88
+ if (key === "notify") {
89
+ return `notify ${entry.qualifiers[0]?.name ?? ""} via ${entry.qualifiers[1]?.name ?? ""};`;
90
+ }
91
+ const qualifier = renderQualifier(key, entry);
92
+ if (entry.value.kind === "block") {
93
+ return `${renderedKey}${qualifier} ${renderBlock(entry.value, indent, context)}`;
94
+ }
95
+ return `${renderedKey}${qualifier}: ${renderExpr(entry.value, indent, context)};`;
96
+ }
97
+ function renderQualifier(key, entry) {
98
+ if (entry.qualifiers.length === 0)
99
+ return "";
100
+ const names = entry.qualifiers.map((qualifier) => qualifier.name);
101
+ return key === "requires" || key === "computes"
102
+ ? ` ${names.join(" ")}`
103
+ : `(${names.join(", ")})`;
104
+ }
105
+ function renderExpr(expr, indent, context) {
106
+ switch (expr.kind) {
107
+ case "ident":
108
+ return expr.name;
109
+ case "string":
110
+ return `"${expr.value}"`;
111
+ case "number":
112
+ return expr.raw;
113
+ case "boolean":
114
+ return String(expr.value);
115
+ case "money":
116
+ return `${expr.currency.name} ${expr.raw}`;
117
+ case "percent":
118
+ return `${expr.raw}%`;
119
+ case "path":
120
+ return expr.parts.map((part) => part.name).join(".");
121
+ case "settlement_ref":
122
+ return `${expr.owner.name}.${expr.member.name}`;
123
+ case "type_apply":
124
+ return `${expr.callee.name}<${expr.args.map((arg) => renderExpr(arg, indent, context)).join(", ")}>`;
125
+ case "call":
126
+ return `${expr.callee.name}(${expr.args.map((arg) => renderExpr(arg, indent, context)).join(", ")})`;
127
+ case "apply": {
128
+ const typeArgs = expr.typeArgs.length > 0
129
+ ? `<${expr.typeArgs.map((arg) => renderExpr(arg, indent, context)).join(", ")}>`
130
+ : "";
131
+ return `${renderExpr(expr.callee, indent, context)}${typeArgs}(${expr.args
132
+ .map((arg) => renderExpr(arg, indent, context))
133
+ .join(", ")})`;
134
+ }
135
+ case "binding":
136
+ return `${expr.name.name}: ${renderExpr(expr.type, indent, context)}`;
137
+ case "list":
138
+ return `[${expr.items.map((item) => renderExpr(item, indent, context)).join(", ")}]`;
139
+ case "block":
140
+ return renderBlock(expr, indent, context);
141
+ case "decided_amount":
142
+ return `decided ${renderBlock(expr.body, indent, context)}`;
143
+ case "port_ref": {
144
+ const within = expr.within ? ` within ${expr.within.name}` : "";
145
+ const deadline = expr.deadline ? ` | at(${expr.deadline.name})` : "";
146
+ return `port ${expr.name.name}${within}${deadline}`;
147
+ }
148
+ }
149
+ }
150
+ function renderSequence(children, container, indent, render, context) {
151
+ const rows = [];
152
+ let cursor = container.start;
153
+ for (const child of children) {
154
+ appendComments(rows, cursor, child.span.start, indent, context);
155
+ rows.push(render(child));
156
+ cursor = child.span.end;
157
+ }
158
+ appendComments(rows, cursor, container.end, indent, context);
159
+ return rows.join("\n");
160
+ }
161
+ function appendComments(rows, start, end, indent, context) {
162
+ for (const comment of context.comments) {
163
+ if (comment.span.start < start || comment.span.end > end)
164
+ continue;
165
+ const trailing = rows.length > 0 &&
166
+ !context.source.slice(start, comment.span.start).includes("\n");
167
+ if (trailing) {
168
+ const last = rows.pop();
169
+ const newline = last.lastIndexOf("\n");
170
+ rows.push(newline < 0
171
+ ? `${last} ${comment.text}`
172
+ : `${last.slice(0, newline + 1)}${last.slice(newline + 1)} ${comment.text}`);
173
+ }
174
+ else {
175
+ rows.push(`${spaces(indent)}${comment.text}`);
176
+ }
177
+ start = comment.span.end;
178
+ }
179
+ }
180
+ function spaces(indent) {
181
+ return " ".repeat(indent);
182
+ }
183
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAsB,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1C,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAkB,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC1E,OAAO;QACL,SAAS,EAAE,GAAG,cAAc,CAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,EACpB,MAAM,CAAC,OAAO,CAAC,IAAI,EACnB,CAAC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EACnC,OAAO,CACR,IAAI;QACL,EAAE,EAAE,IAAI;KACT,CAAC;AACJ,CAAC;AAOD,SAAS,UAAU,CAAC,IAAU,EAAE,OAAsB;IACpD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,UAAU,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;QACxD,KAAK,SAAS;YACZ,OAAO,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QACnG,KAAK,KAAK;YACR,OAAO,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;QACxC,KAAK,QAAQ;YACX,OAAO,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;QAC1F,KAAK,QAAQ;YACX,OAAO,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;QACnH,KAAK,OAAO;YACV,OAAO,eAAe,CACpB,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EACjD,IAAI,CAAC,KAAK,EACV,OAAO,CACR,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,eAAe,CACpB,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EACjD,IAAI,CAAC,KAAK,EACV,OAAO,CACR,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3E,KAAK,MAAM;YACT,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;QACxE,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,cAAc,GAClB,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBAC5B,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC/E,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB;gBACtC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU;qBAChB,GAAG,CACF,CAAC,SAAS,EAAE,EAAE,CACZ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAC7D;qBACA,IAAI,CAAC,IAAI,CAAC,GAAG;gBAClB,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,GAAG,QAAQ,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,cAAc,GAAG,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;QACvH,CAAC;QACD,KAAK,kBAAkB;YACrB,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5L,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;QAC5G,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;QACpH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,MAAc,EACd,IAA2B,EAC3B,OAAsB;IAEtB,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;AAC5E,CAAC;AAED,SAAS,WAAW,CAClB,KAAgB,EAChB,MAAc,EACd,OAAsB;IAEtB,MAAM,IAAI,GAAG,cAAc,CACzB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,EACV,MAAM,GAAG,CAAC,EACV,CAAC,KAAK,EAAE,EAAE,CACR,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,EACnE,OAAO,CACR,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,MAAM,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAClB,KAAY,EACZ,MAAc,EACd,OAAsB;IAEtB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC3B,MAAM,aAAa,GACjB,oEAAoE,CAAC,IAAI,CACvE,GAAG,CACJ,CAAC;IACJ,MAAM,WAAW,GACf,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACpD,OAAO,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACrJ,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACrD,OAAO,UAAU,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClG,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACpD,OAAO,UAAU,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACnG,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,WAAW,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;IAChE,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,OAAO,UAAU,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,WAAW,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;IACzG,CAAC;IACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;QAC7C,OAAO,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;IACtI,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,OAAO,UAAU,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,GAAG,CAAC;IAC7F,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,GAAG,WAAW,GAAG,SAAS,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACnF,CAAC;IACD,OAAO,GAAG,WAAW,GAAG,SAAS,KAAK,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;AACpF,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,KAAY;IAChD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,UAAU;QAC7C,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACvB,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,CAAC;AAED,SAAS,UAAU,CACjB,IAAU,EACV,MAAc,EACd,OAAuB;IAEvB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;QAC3B,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,OAAO;YACV,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,KAAK,gBAAgB;YACnB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAClD,KAAK,YAAY;YACf,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvG,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvG,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACtB,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAChF,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI;iBACvE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,CAAC;QACD,KAAK,SAAS;YACZ,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACxE,KAAK,MAAM;YACT,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvF,KAAK,OAAO;YACV,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAwB,CAAC,CAAC;QAC7D,KAAK,gBAAgB;YACnB,OAAO,WAAW,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAwB,CAAC,EAAE,CAAC;QAC/E,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,QAAQ,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,QAAsB,EACtB,SAAe,EACf,MAAc,EACd,MAA4B,EAC5B,OAAsB;IAEtB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzB,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B,CAAC;IACD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,cAAc,CACrB,IAAc,EACd,KAAa,EACb,GAAW,EACX,MAAc,EACd,OAAsB;IAEtB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG;YAAE,SAAS;QACnE,MAAM,QAAQ,GACZ,IAAI,CAAC,MAAM,GAAG,CAAC;YACf,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAY,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CACP,OAAO,GAAG,CAAC;gBACT,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;gBAC3B,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAC9E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,MAAc;IAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
@@ -1,7 +1,14 @@
1
- export { checkProgram } from "./check.ts";
2
- export { compile } from "./compile.ts";
1
+ export { compile, type CompileDiagnostic, type CompileOptions, type CompileOriginMapEntry, type CompileResult, } from "./compile.ts";
2
+ export { buildUdlCostManifest, computeUdlFixedCost, evaluateUdlCostManifest, type HsxEffectKind, type UdlCostManifest, type UdlCostTable, } from "./cost.ts";
3
+ export { hsxDiagnostics, type HsxDiagnosticCatalogEntry, } from "./diagnostics.ts";
4
+ export type { HsxCompilerHost, ModuleSource } from "./modules.ts";
5
+ export { format, type FormatResult } from "./format.ts";
6
+ export { KEYWORDS } from "./lex.ts";
3
7
  export { overrideProgramEntries, type ProgramEntryOverride, type ProgramEntryOverrideIssue, type ProgramEntryOverrideValue, } from "./entry-overrides.ts";
4
- export { lowerProgram, MONEY_EVENT_BUDGET } from "./lower.ts";
8
+ export { type OriginMapEntry } from "./emit.ts";
9
+ export { lowerGeneralProgram } from "./emit.ts";
5
10
  export { parseProgram } from "./parse.ts";
6
- export type { Program } from "./ast.ts";
11
+ export { checkGeneralProgram, type GeneralCheckOptions } from "./typecheck.ts";
12
+ export { byteOffsetToCodeUnit, type BlockExpr, type ExposeDecl, type Program, type ProgramDecl, type UseDecl, } from "./ast.ts";
13
+ export { bundledStandardLibrary, type StandardLibrary } from "./std-library.ts";
7
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,cAAc,EACd,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,OAAO,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,sBAAsB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,6 +1,13 @@
1
- export { checkProgram } from "./check.js";
2
- export { compile } from "./compile.js";
1
+ export { compile, } from "./compile.js";
2
+ export { buildUdlCostManifest, computeUdlFixedCost, evaluateUdlCostManifest, } from "./cost.js";
3
+ export { hsxDiagnostics, } from "./diagnostics.js";
4
+ export { format } from "./format.js";
5
+ export { KEYWORDS } from "./lex.js";
3
6
  export { overrideProgramEntries, } from "./entry-overrides.js";
4
- export { lowerProgram, MONEY_EVENT_BUDGET } from "./lower.js";
7
+ export {} from "./emit.js";
8
+ export { lowerGeneralProgram } from "./emit.js";
5
9
  export { parseProgram } from "./parse.js";
10
+ export { checkGeneralProgram } from "./typecheck.js";
11
+ export { byteOffsetToCodeUnit, } from "./ast.js";
12
+ export { bundledStandardLibrary } from "./std-library.js";
6
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,sBAAsB,GAIvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAKR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GAIxB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACL,sBAAsB,GAIvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAuB,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAA4B,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EACL,oBAAoB,GAMrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,sBAAsB,EAAwB,MAAM,kBAAkB,CAAC"}