@hyperscale0/hsx 2.4.1 → 3.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 (249) hide show
  1. package/CHANGELOG.md +2 -408
  2. package/README.md +3 -92
  3. package/dist/src/ast.d.ts +99 -310
  4. package/dist/src/ast.d.ts.map +1 -1
  5. package/dist/src/ast.js +16 -69
  6. package/dist/src/ast.js.map +1 -1
  7. package/dist/src/cli.d.ts +6 -19
  8. package/dist/src/cli.d.ts.map +1 -1
  9. package/dist/src/cli.js +76 -315
  10. package/dist/src/cli.js.map +1 -1
  11. package/dist/src/compile.d.ts +23 -73
  12. package/dist/src/compile.d.ts.map +1 -1
  13. package/dist/src/compile.js +1113 -148
  14. package/dist/src/compile.js.map +1 -1
  15. package/dist/src/cost.d.ts +8 -77
  16. package/dist/src/cost.d.ts.map +1 -1
  17. package/dist/src/cost.js +13 -422
  18. package/dist/src/cost.js.map +1 -1
  19. package/dist/src/format.d.ts +8 -7
  20. package/dist/src/format.d.ts.map +1 -1
  21. package/dist/src/format.js +9 -175
  22. package/dist/src/format.js.map +1 -1
  23. package/dist/src/headers.d.ts +35 -0
  24. package/dist/src/headers.d.ts.map +1 -0
  25. package/dist/src/headers.js +108 -0
  26. package/dist/src/headers.js.map +1 -0
  27. package/dist/src/index.d.ts +6 -12
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/index.js +4 -9
  30. package/dist/src/index.js.map +1 -1
  31. package/dist/src/lex.d.ts +8 -28
  32. package/dist/src/lex.d.ts.map +1 -1
  33. package/dist/src/lex.js +88 -146
  34. package/dist/src/lex.js.map +1 -1
  35. package/dist/src/parse.d.ts +4 -17
  36. package/dist/src/parse.d.ts.map +1 -1
  37. package/dist/src/parse.js +402 -1040
  38. package/dist/src/parse.js.map +1 -1
  39. package/dist/src/std-bundle.d.ts.map +1 -1
  40. package/dist/src/std-bundle.js +12 -20
  41. package/dist/src/std-bundle.js.map +1 -1
  42. package/dist/src/std-library.d.ts +1 -1
  43. package/dist/src/std-library.d.ts.map +1 -1
  44. package/dist/src/std-library.js +1 -5
  45. package/dist/src/std-library.js.map +1 -1
  46. package/dist/src/tunables.d.ts +7 -0
  47. package/dist/src/tunables.d.ts.map +1 -0
  48. package/dist/src/tunables.js +26 -0
  49. package/dist/src/tunables.js.map +1 -0
  50. package/dist/src/version.d.ts +2 -4
  51. package/dist/src/version.d.ts.map +1 -1
  52. package/dist/src/version.js +2 -4
  53. package/dist/src/version.js.map +1 -1
  54. package/docs/README.md +179 -41
  55. package/docs/headers.md +44 -0
  56. package/examples/cost-table.json +99 -751
  57. package/examples/library.hsx +59 -0
  58. package/package.json +9 -17
  59. package/src/ast.ts +82 -441
  60. package/src/cli.ts +77 -362
  61. package/src/compile.ts +1535 -247
  62. package/src/cost.ts +28 -671
  63. package/src/format.ts +12 -256
  64. package/src/headers.ts +126 -0
  65. package/src/index.ts +7 -39
  66. package/src/lex.ts +99 -195
  67. package/src/parse.ts +403 -1209
  68. package/src/std-bundle.ts +12 -20
  69. package/src/std-library.ts +2 -7
  70. package/src/tunables.ts +31 -0
  71. package/src/version.ts +2 -5
  72. package/std/approvals.hsx +17 -0
  73. package/std/cards.hsx +63 -0
  74. package/std/collections.hsx +31 -0
  75. package/std/escrow.hsx +43 -0
  76. package/std/financing.hsx +372 -0
  77. package/std/insurance.hsx +59 -0
  78. package/std/lending.hsx +115 -0
  79. package/std/marketplace.hsx +24 -0
  80. package/std/money.hsx +195 -0
  81. package/std/savings.hsx +44 -0
  82. package/std/travel.hsx +98 -0
  83. package/std/wallet.hsx +41 -0
  84. package/dist/src/diagnostics.d.ts +0 -13
  85. package/dist/src/diagnostics.d.ts.map +0 -1
  86. package/dist/src/diagnostics.js +0 -587
  87. package/dist/src/diagnostics.js.map +0 -1
  88. package/dist/src/emit.d.ts +0 -51
  89. package/dist/src/emit.d.ts.map +0 -1
  90. package/dist/src/emit.js +0 -192
  91. package/dist/src/emit.js.map +0 -1
  92. package/dist/src/entry-overrides.d.ts +0 -58
  93. package/dist/src/entry-overrides.d.ts.map +0 -1
  94. package/dist/src/entry-overrides.js +0 -284
  95. package/dist/src/entry-overrides.js.map +0 -1
  96. package/dist/src/ir.d.ts +0 -73
  97. package/dist/src/ir.d.ts.map +0 -1
  98. package/dist/src/ir.js +0 -15
  99. package/dist/src/ir.js.map +0 -1
  100. package/dist/src/limits.d.ts +0 -23
  101. package/dist/src/limits.d.ts.map +0 -1
  102. package/dist/src/limits.js +0 -23
  103. package/dist/src/limits.js.map +0 -1
  104. package/dist/src/lsp/server.d.ts +0 -32
  105. package/dist/src/lsp/server.d.ts.map +0 -1
  106. package/dist/src/lsp/server.js +0 -391
  107. package/dist/src/lsp/server.js.map +0 -1
  108. package/dist/src/modules.d.ts +0 -38
  109. package/dist/src/modules.d.ts.map +0 -1
  110. package/dist/src/modules.js +0 -372
  111. package/dist/src/modules.js.map +0 -1
  112. package/dist/src/typecheck.d.ts +0 -8
  113. package/dist/src/typecheck.d.ts.map +0 -1
  114. package/dist/src/typecheck.js +0 -4160
  115. package/dist/src/typecheck.js.map +0 -1
  116. package/docs/guide/01-first-program.md +0 -24
  117. package/docs/guide/02-money.md +0 -25
  118. package/docs/guide/03-instruments.md +0 -93
  119. package/docs/guide/04-lifecycles.md +0 -40
  120. package/docs/guide/05-fees-and-splits.md +0 -45
  121. package/docs/guide/06-schedules.md +0 -26
  122. package/docs/guide/07-composition.md +0 -52
  123. package/docs/guide/08-writing-a-module.md +0 -85
  124. package/docs/guide/09-cost.md +0 -24
  125. package/docs/guide/10-diagnostics.md +0 -27
  126. package/docs/llms-full.txt +0 -3684
  127. package/docs/llms.txt +0 -44
  128. package/docs/piece-plans.md +0 -120
  129. package/docs/playground.md +0 -55
  130. package/docs/reference/cli.md +0 -36
  131. package/docs/reference/diagnostics.md +0 -901
  132. package/docs/reference/grammar.md +0 -38
  133. package/docs/reference/std/advance.md +0 -112
  134. package/docs/reference/std/cancellable_booking.md +0 -159
  135. package/docs/reference/std/captured_payment.md +0 -115
  136. package/docs/reference/std/conditional_disbursement.md +0 -101
  137. package/docs/reference/std/credit_facility.md +0 -108
  138. package/docs/reference/std/held_payment.md +0 -173
  139. package/docs/reference/std/instant_transfer.md +0 -97
  140. package/docs/reference/std/metered.md +0 -89
  141. package/docs/reference/std/pooled_split.md +0 -95
  142. package/docs/reference/std/premium_forward.md +0 -119
  143. package/docs/reference/std/reconciled_payout.md +0 -103
  144. package/docs/reference/std/rotating_pool.md +0 -130
  145. package/docs/reference/std/scheduled.md +0 -136
  146. package/docs/reference/std/security_deposit.md +0 -138
  147. package/docs/reference/std/settlement_batch.md +0 -123
  148. package/docs/reference/std/swap.md +0 -133
  149. package/docs/reference/std/threshold_pool.md +0 -138
  150. package/docs/reference/std/weighted_distribution.md +0 -135
  151. package/docs/reference/types.md +0 -61
  152. package/docs/reference/udl-output.md +0 -13
  153. package/examples/01-first-program/README.md +0 -45
  154. package/examples/01-first-program/tip-jar.hsx +0 -17
  155. package/examples/02-imports-and-modules/README.md +0 -96
  156. package/examples/02-imports-and-modules/photo-booth.hsx +0 -37
  157. package/examples/03-diagnostics/README.md +0 -68
  158. package/examples/03-diagnostics/corner-shop-fixed.hsx +0 -22
  159. package/examples/03-diagnostics/corner-shop.hsx +0 -19
  160. package/examples/04-complete-product/README.md +0 -84
  161. package/examples/04-complete-product/study-hall.hsx +0 -67
  162. package/examples/05-authored-instrument/README.md +0 -5
  163. package/examples/05-authored-instrument/payment.hsx +0 -37
  164. package/examples/05-watch-club/README.md +0 -6
  165. package/examples/05-watch-club/watch-club.hsx +0 -123
  166. package/examples/README.md +0 -48
  167. package/examples/advance/README.md +0 -3
  168. package/examples/advance/advance.hsx +0 -13
  169. package/examples/advance/advance.udl +0 -367
  170. package/examples/cancellable_booking/README.md +0 -3
  171. package/examples/cancellable_booking/cancellable_booking.hsx +0 -14
  172. package/examples/cancellable_booking/cancellable_booking.udl +0 -413
  173. package/examples/captured_payment/README.md +0 -3
  174. package/examples/captured_payment/captured_payment.hsx +0 -17
  175. package/examples/captured_payment/captured_payment.udl +0 -686
  176. package/examples/conditional_disbursement/README.md +0 -3
  177. package/examples/conditional_disbursement/conditional_disbursement.hsx +0 -15
  178. package/examples/conditional_disbursement/conditional_disbursement.udl +0 -418
  179. package/examples/credit_facility/README.md +0 -3
  180. package/examples/credit_facility/credit_facility.hsx +0 -24
  181. package/examples/credit_facility/credit_facility.udl +0 -1396
  182. package/examples/held_payment/README.md +0 -3
  183. package/examples/held_payment/held_payment.hsx +0 -13
  184. package/examples/held_payment/held_payment.udl +0 -569
  185. package/examples/instant_transfer/README.md +0 -3
  186. package/examples/instant_transfer/instant_transfer.hsx +0 -16
  187. package/examples/instant_transfer/instant_transfer.udl +0 -376
  188. package/examples/metered/README.md +0 -3
  189. package/examples/metered/metered.hsx +0 -13
  190. package/examples/metered/metered.udl +0 -253
  191. package/examples/pooled_split/README.md +0 -3
  192. package/examples/pooled_split/pooled_split.hsx +0 -15
  193. package/examples/pooled_split/pooled_split.udl +0 -432
  194. package/examples/premium_forward/README.md +0 -3
  195. package/examples/premium_forward/premium_forward.hsx +0 -19
  196. package/examples/premium_forward/premium_forward.udl +0 -604
  197. package/examples/reconciled_payout/README.md +0 -3
  198. package/examples/reconciled_payout/reconciled_payout.hsx +0 -13
  199. package/examples/reconciled_payout/reconciled_payout.udl +0 -312
  200. package/examples/rotating_pool/README.md +0 -3
  201. package/examples/rotating_pool/rotating_pool.hsx +0 -18
  202. package/examples/rotating_pool/rotating_pool.udl +0 -4370
  203. package/examples/scheduled/README.md +0 -3
  204. package/examples/scheduled/scheduled.hsx +0 -12
  205. package/examples/scheduled/scheduled.udl +0 -355
  206. package/examples/security_deposit/README.md +0 -3
  207. package/examples/security_deposit/security_deposit.hsx +0 -21
  208. package/examples/security_deposit/security_deposit.udl +0 -320
  209. package/examples/settlement_batch/README.md +0 -3
  210. package/examples/settlement_batch/settlement_batch.hsx +0 -19
  211. package/examples/settlement_batch/settlement_batch.udl +0 -757
  212. package/examples/swap/README.md +0 -3
  213. package/examples/swap/swap.hsx +0 -19
  214. package/examples/swap/swap.udl +0 -892
  215. package/examples/threshold_pool/README.md +0 -3
  216. package/examples/threshold_pool/threshold_pool.hsx +0 -16
  217. package/examples/threshold_pool/threshold_pool.udl +0 -680
  218. package/examples/weighted_distribution/README.md +0 -3
  219. package/examples/weighted_distribution/weighted_distribution.hsx +0 -20
  220. package/examples/weighted_distribution/weighted_distribution.udl +0 -348
  221. package/skills/hsx/SKILL.md +0 -449
  222. package/src/diagnostics.ts +0 -620
  223. package/src/emit.ts +0 -282
  224. package/src/entry-overrides.ts +0 -428
  225. package/src/ir.ts +0 -113
  226. package/src/limits.ts +0 -22
  227. package/src/lsp/server.ts +0 -460
  228. package/src/modules.ts +0 -452
  229. package/src/typecheck.ts +0 -5515
  230. package/std/SEMANTICS.md +0 -44
  231. package/std/money_flows/advance.hsx +0 -235
  232. package/std/money_flows/cancellable_booking.hsx +0 -402
  233. package/std/money_flows/captured_payment.hsx +0 -220
  234. package/std/money_flows/conditional_disbursement.hsx +0 -226
  235. package/std/money_flows/credit_facility.hsx +0 -214
  236. package/std/money_flows/held_payment.hsx +0 -812
  237. package/std/money_flows/index.hsx +0 -4
  238. package/std/money_flows/instant_transfer.hsx +0 -231
  239. package/std/money_flows/metered.hsx +0 -104
  240. package/std/money_flows/pooled_split.hsx +0 -109
  241. package/std/money_flows/premium_forward.hsx +0 -307
  242. package/std/money_flows/reconciled_payout.hsx +0 -119
  243. package/std/money_flows/rotating_pool.hsx +0 -305
  244. package/std/money_flows/scheduled.hsx +0 -599
  245. package/std/money_flows/security_deposit.hsx +0 -248
  246. package/std/money_flows/settlement_batch.hsx +0 -173
  247. package/std/money_flows/swap.hsx +0 -1192
  248. package/std/money_flows/threshold_pool.hsx +0 -307
  249. package/std/money_flows/weighted_distribution.hsx +0 -237
@@ -1,183 +1,17 @@
1
- import { lex } from "./lex.js";
2
1
  import { parseProgram } from "./parse.js";
2
+ /** Preserve authored comments and literals; normalize line endings and trailing whitespace. */
3
3
  export function format(source) {
4
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 };
5
+ if (parsed.diagnostics.length)
6
+ return { ok: false, diagnostics: parsed.diagnostics };
9
7
  return {
10
- formatted: `${renderSequence(parsed.program.decls, parsed.program.span, 0, (decl) => renderDecl(decl, context), context)}\n`,
11
8
  ok: true,
9
+ formatted: source
10
+ .replace(/\r\n?/g, "\n")
11
+ .split("\n")
12
+ .map((line) => line.trimEnd())
13
+ .join("\n")
14
+ .trimEnd() + "\n",
12
15
  };
13
16
  }
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
17
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,+FAA+F;AAC/F,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM;QAC3B,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IACjE,OAAO;QACL,EAAE,EAAE,IAAa;QACjB,SAAS,EACP,MAAM;aACH,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;aACvB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;aAC7B,IAAI,CAAC,IAAI,CAAC;aACV,OAAO,EAAE,GAAG,IAAI;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { type StandardLibrary } from "./std-library.ts";
2
+ export declare const HEADER_NAMES: readonly ["money", "marketplace", "escrow", "wallet", "financing", "lending", "insurance", "approvals", "collections", "travel", "cards", "savings"];
3
+ /** The compiler frontend owns header metadata used by docs and catalogue consumers. */
4
+ export declare function headerManifest(library?: StandardLibrary): {
5
+ version: number;
6
+ headers: {
7
+ name: "approvals" | "cards" | "collections" | "escrow" | "financing" | "insurance" | "lending" | "marketplace" | "money" | "savings" | "travel" | "wallet";
8
+ objects: {
9
+ name: string;
10
+ qualifiedName: string;
11
+ summary: string;
12
+ tunables: {
13
+ minimum?: number | string;
14
+ maximum?: number | string;
15
+ name: string;
16
+ type: string;
17
+ values?: string[];
18
+ required: boolean;
19
+ default?: string;
20
+ }[];
21
+ constraints: {
22
+ tunable: string;
23
+ relation: string;
24
+ other: string;
25
+ }[];
26
+ parties: string[];
27
+ actions: {
28
+ name: string;
29
+ summary: string;
30
+ actor: string;
31
+ }[];
32
+ }[];
33
+ }[];
34
+ };
35
+ //# sourceMappingURL=headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/headers.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGhF,eAAO,MAAM,YAAY,YACvB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,OAAO,EACP,SAAS,CACD,CAAC;AAEX,uFAAuF;AACvF,wBAAgB,cAAc,CAC5B,OAAO,GAAE,eAAwC;IAG/C,OAAO;IACP,OAAO;;;;;;;;;;;;;;;;;;;;;;sBAWY,MAAM;yBAAW,MAAM;uBAAS,MAAM;;;;EAwF5D"}
@@ -0,0 +1,108 @@
1
+ import { tunableBounds } from "./tunables.js";
2
+ import { parseProgram } from "./parse.js";
3
+ import { bundledStandardLibrary } from "./std-library.js";
4
+ export const HEADER_NAMES = [
5
+ "money",
6
+ "marketplace",
7
+ "escrow",
8
+ "wallet",
9
+ "financing",
10
+ "lending",
11
+ "insurance",
12
+ "approvals",
13
+ "collections",
14
+ "travel",
15
+ "cards",
16
+ "savings",
17
+ ];
18
+ /** The compiler frontend owns header metadata used by docs and catalogue consumers. */
19
+ export function headerManifest(library = bundledStandardLibrary) {
20
+ return {
21
+ version: 3,
22
+ headers: HEADER_NAMES.map((name) => {
23
+ const source = library.source(name);
24
+ if (!source)
25
+ throw new Error(`Missing standard header ${name}`);
26
+ const parsed = parseProgram(source);
27
+ if (parsed.diagnostics.length)
28
+ throw new Error(`${name}: ${parsed.diagnostics[0].message}`);
29
+ const spelling = (expression) => source.slice(expression.span.start, expression.span.end).trim();
30
+ const actions = (body, prefix = "") => {
31
+ const result = body.entries
32
+ .filter((e) => e.key.startsWith("action "))
33
+ .map((entry) => {
34
+ const slots = entry.value.kind === "block" ? entry.value.entries : [];
35
+ const summary = slots.find((e) => e.key === "summary")?.value;
36
+ const actor = slots.find((e) => e.key === "actor")?.value;
37
+ return {
38
+ name: prefix + entry.key.slice(7),
39
+ summary: summary?.kind === "text"
40
+ ? summary.value
41
+ : entry.key.slice(7).replaceAll("_", " "),
42
+ actor: actor ? spelling(actor) : "caller",
43
+ };
44
+ });
45
+ const records = body.entries.find((e) => e.key === "records")?.value;
46
+ if (records?.kind === "block")
47
+ for (const record of records.entries)
48
+ if (record.value.kind === "block")
49
+ result.push(...actions(record.value, `${prefix}${record.key}.`));
50
+ return result;
51
+ };
52
+ return {
53
+ name,
54
+ objects: parsed.program.decls
55
+ .filter((d) => d.kind === "instrument")
56
+ .map((decl) => {
57
+ const tunables = decl.parameters.map((parameter) => {
58
+ const type = parameter.value.kind === "default"
59
+ ? parameter.value.type
60
+ : parameter.value;
61
+ const fallback = parameter.value.kind === "default"
62
+ ? parameter.value.value
63
+ : undefined;
64
+ return {
65
+ name: parameter.key,
66
+ type: spelling(type),
67
+ ...(type.kind === "call" && type.name === "enum"
68
+ ? { values: type.args.map(spelling) }
69
+ : {}),
70
+ ...tunableBounds(type),
71
+ required: !fallback && !(type.kind === "type" && type.optional),
72
+ ...(fallback ? { default: spelling(fallback) } : {}),
73
+ };
74
+ });
75
+ const summary = decl.body.entries.find((e) => e.key === "summary")?.value;
76
+ return {
77
+ name: decl.name,
78
+ qualifiedName: `${name}.${decl.name}`,
79
+ summary: summary?.kind === "text"
80
+ ? summary.value
81
+ : decl.name.replaceAll("_", " "),
82
+ tunables,
83
+ constraints: (() => {
84
+ const block = decl.body.entries.find((entry) => entry.key === "constraints")?.value;
85
+ return block?.kind === "block"
86
+ ? block.entries.map((entry) => {
87
+ if (entry.value.kind !== "call" ||
88
+ entry.value.args.length !== 1)
89
+ throw new Error("invalid tunable constraint");
90
+ return {
91
+ tunable: entry.key,
92
+ relation: entry.value.name,
93
+ other: spelling(entry.value.args[0]),
94
+ };
95
+ })
96
+ : [];
97
+ })(),
98
+ parties: tunables
99
+ .filter((t) => ["party", "approval"].includes(t.type))
100
+ .map((t) => t.name),
101
+ actions: actions(decl.body),
102
+ };
103
+ }),
104
+ };
105
+ }),
106
+ };
107
+ }
108
+ //# sourceMappingURL=headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/headers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAwB,MAAM,kBAAkB,CAAC;AAGhF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO;IACP,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,SAAS;IACT,WAAW;IACX,WAAW;IACX,aAAa;IACb,QAAQ;IACR,OAAO;IACP,SAAS;CACD,CAAC;AAEX,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAC5B,OAAO,GAAoB,sBAAsB;IAEjD,OAAO;QACL,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM;gBAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,CAAC,UAAgB,EAAE,EAAE,CACpC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAClE,MAAM,OAAO,GAAG,CACd,IAAe,EACf,MAAM,GAAG,EAAE,EAC8C,EAAE;gBAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;qBACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;qBAC1C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACb,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,KAAK,CAAC;oBAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,KAAK,CAAC;oBAC1D,OAAO;wBACL,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;wBACjC,OAAO,EACL,OAAO,EAAE,IAAI,KAAK,MAAM;4BACtB,CAAC,CAAC,OAAO,CAAC,KAAK;4BACf,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;wBAC7C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;qBAC1C,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACL,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,KAAK,CAAC;gBACrE,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO;oBAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO;wBAClC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;4BAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACvE,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YACF,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;qBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;qBACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;wBACjD,MAAM,IAAI,GACR,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;4BAChC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI;4BACtB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;wBACtB,MAAM,QAAQ,GACZ,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;4BAChC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK;4BACvB,CAAC,CAAC,SAAS,CAAC;wBAChB,OAAO;4BACL,IAAI,EAAE,SAAS,CAAC,GAAG;4BACnB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;4BACpB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gCAC9C,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gCACrC,CAAC,CAAC,EAAE,CAAC;4BACP,GAAG,aAAa,CAAC,IAAI,CAAC;4BACtB,QAAQ,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC;4BAC/D,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACrD,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAC3B,EAAE,KAAK,CAAC;oBACT,OAAO;wBACL,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,aAAa,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;wBACrC,OAAO,EACL,OAAO,EAAE,IAAI,KAAK,MAAM;4BACtB,CAAC,CAAC,OAAO,CAAC,KAAK;4BACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;wBACpC,QAAQ;wBACR,WAAW,EAAE,CAAC,GAAG,EAAE;4BACjB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAClC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,aAAa,CACvC,EAAE,KAAK,CAAC;4BACT,OAAO,KAAK,EAAE,IAAI,KAAK,OAAO;gCAC5B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oCAC1B,IACE,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;wCAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;wCAE7B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;oCAChD,OAAO;wCACL,OAAO,EAAE,KAAK,CAAC,GAAG;wCAClB,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;wCAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;qCACtC,CAAC;gCACJ,CAAC,CAAC;gCACJ,CAAC,CAAC,EAAE,CAAC;wBACT,CAAC,CAAC,EAAE;wBACJ,OAAO,EAAE,QAAQ;6BACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;6BACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACrB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC5B,CAAC;gBACJ,CAAC,CAAC;aACL,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -1,15 +1,9 @@
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, type UdlCostTables, } 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";
7
- export { overrideProgramEntries, type ProgramEntryOverride, type ProgramEntryOverrideIssue, type ProgramEntryOverrideValue, } from "./entry-overrides.ts";
8
- export { type OriginMapEntry } from "./emit.ts";
9
- export { lowerGeneralProgram, originForUdlPath, emitUdlClause, } from "./emit.ts";
1
+ export { compile, type CompileDiagnostic, type CompileOptions, type CompileResult, type CompileOriginMapEntry, } from "./compile.ts";
10
2
  export { parseProgram } from "./parse.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";
3
+ export { lex, KEYWORDS } from "./lex.ts";
4
+ export { format } from "./format.ts";
13
5
  export { bundledStandardLibrary, type StandardLibrary } from "./std-library.ts";
14
- export type { ResolvedActionPlan, ResolvedProgramActionPlan } from "./ir.ts";
6
+ export { buildUdlCostManifest, type UdlCostManifest } from "./cost.ts";
7
+ export type { Program, Decl, Expr, Span, Diagnostic } from "./ast.ts";
8
+ export { headerManifest, HEADER_NAMES } from "./headers.ts";
15
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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,EACjB,KAAK,aAAa,GACnB,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,EACL,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,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;AAChF,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,SAAS,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,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACvE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,13 +1,8 @@
1
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";
6
- export { overrideProgramEntries, } from "./entry-overrides.js";
7
- export {} from "./emit.js";
8
- export { lowerGeneralProgram, originForUdlPath, emitUdlClause, } from "./emit.js";
9
2
  export { parseProgram } from "./parse.js";
10
- export { checkGeneralProgram } from "./typecheck.js";
11
- export { byteOffsetToCodeUnit, } from "./ast.js";
3
+ export { lex, KEYWORDS } from "./lex.js";
4
+ export { format } from "./format.js";
12
5
  export { bundledStandardLibrary } from "./std-library.js";
6
+ export { buildUdlCostManifest } from "./cost.js";
7
+ export { headerManifest, HEADER_NAMES } from "./headers.js";
13
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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,GAKxB,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,EACL,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAKR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAwB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAwB,MAAM,WAAW,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
package/dist/src/lex.d.ts CHANGED
@@ -1,32 +1,12 @@
1
- /**
2
- * The HSX lexer. Hand-written, total: every input produces a token stream
3
- * ending in `eof`, with malformed stretches reported as diagnostics and
4
- * skipped. Tokens carry byte-offset spans; whitespace and `//` comments are
5
- * insignificant everywhere.
6
- */
7
1
  import type { Diagnostic, Span } from "./ast.ts";
8
- type TokenKind = "eof" | "ident" | "keyword" | "number" | "percent" | "punct" | "string";
9
- export declare const KEYWORDS: readonly ["action", "as", "asset", "commit", "const", "expect", "expose", "expires", "export", "from", "import", "instrument", "module", "party", "port", "program", "quote", "rate", "reconcile", "settlement", "subject", "type", "use"];
2
+ export declare const KEYWORDS: readonly ["program", "header", "use", "party", "role", "currency", "instrument", "fields", "lifecycle", "action", "expose", "hide", "as", "cap", "of", "when", "constraints", "requires", "invariants", "moves", "from", "to", "in", "by", "for", "is", "approval", "unique", "on", "count", "sum", "hours", "between", "and", "timezone", "evidence", "reserve", "post", "void", "capture", "fee", "shares"];
10
3
  export interface Token {
11
- readonly kind: TokenKind;
12
- readonly span: Span;
13
- /** Identifier name, keyword, punctuation glyph, or raw literal text. */
14
- readonly text: string;
15
- /** Decoded value for string literals; raw digits for numbers/percents. */
16
- readonly value: string;
4
+ kind: "name" | "number" | "string" | "date" | "punct" | "eof";
5
+ text: string;
6
+ span: Span;
17
7
  }
18
- /** Source trivia retained for tools that must reproduce author comments. */
19
- export interface CommentTrivia {
20
- readonly kind: "line_comment";
21
- readonly span: Span;
22
- readonly text: string;
23
- }
24
- export declare const PUNCT: readonly ["{", "}", "(", ")", "[", "]", ":", ",", ";", "=", "|", ".", "<", ">", "?"];
25
- export interface LexResult {
26
- readonly comments: readonly CommentTrivia[];
27
- readonly diagnostics: readonly Diagnostic[];
28
- readonly tokens: readonly Token[];
29
- }
30
- export declare function lex(source: string): LexResult;
31
- export {};
8
+ export declare function lex(source: string): {
9
+ tokens: Token[];
10
+ diagnostics: Diagnostic[];
11
+ };
32
12
  //# sourceMappingURL=lex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lex.d.ts","sourceRoot":"","sources":["../../src/lex.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEjD,KAAK,SAAS,GACV,KAAK,GACL,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,CAAC;AAEb,eAAO,MAAM,QAAQ,YACnB,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,EACN,WAAW,EACX,YAAY,EACZ,SAAS,EACT,MAAM,EACN,KAAK,CACG,CAAC;AAEX,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,KAAK,YAChB,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACK,CAAC;AAUX,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;CACnC;AAED,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CA2H7C"}
1
+ {"version":3,"file":"lex.d.ts","sourceRoot":"","sources":["../../src/lex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACjD,eAAO,MAAM,QAAQ,YACnB,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,MAAM,EACN,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,aAAa,EACb,UAAU,EACV,YAAY,EACZ,OAAO,EACP,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,KAAK,EACL,OAAO,EACP,SAAS,EACT,KAAK,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,CACA,CAAC;AACX,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AACD,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG;IACnC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAkEA"}