@hyperscale0/hsx 1.0.0-rc.1 → 1.0.123

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 (311) hide show
  1. package/CHANGELOG.md +5 -239
  2. package/LICENSE.md +356 -0
  3. package/NOTICE.md +8 -0
  4. package/README.md +45 -43
  5. package/bin/hsx.ts +0 -5
  6. package/dist/bin/hsx.d.ts +0 -4
  7. package/dist/bin/hsx.d.ts.map +1 -1
  8. package/dist/bin/hsx.js +0 -4
  9. package/dist/bin/hsx.js.map +1 -1
  10. package/dist/src/ast.d.ts +113 -302
  11. package/dist/src/ast.d.ts.map +1 -1
  12. package/dist/src/ast.js +7 -47
  13. package/dist/src/ast.js.map +1 -1
  14. package/dist/src/attachment-economics.d.ts +5 -0
  15. package/dist/src/attachment-economics.d.ts.map +1 -0
  16. package/dist/src/attachment-economics.js +55 -0
  17. package/dist/src/attachment-economics.js.map +1 -0
  18. package/dist/src/binding-contract.d.ts +22 -0
  19. package/dist/src/binding-contract.d.ts.map +1 -0
  20. package/dist/src/binding-contract.js +74 -0
  21. package/dist/src/binding-contract.js.map +1 -0
  22. package/dist/src/cli.d.ts +4 -17
  23. package/dist/src/cli.d.ts.map +1 -1
  24. package/dist/src/cli.js +92 -259
  25. package/dist/src/cli.js.map +1 -1
  26. package/dist/src/compile.d.ts +34 -68
  27. package/dist/src/compile.d.ts.map +1 -1
  28. package/dist/src/compile.js +2949 -118
  29. package/dist/src/compile.js.map +1 -1
  30. package/dist/src/cost.d.ts +8 -75
  31. package/dist/src/cost.d.ts.map +1 -1
  32. package/dist/src/cost.js +54 -364
  33. package/dist/src/cost.js.map +1 -1
  34. package/dist/src/diagnostics.d.ts +14 -9
  35. package/dist/src/diagnostics.d.ts.map +1 -1
  36. package/dist/src/diagnostics.js +39 -416
  37. package/dist/src/diagnostics.js.map +1 -1
  38. package/dist/src/examples-bundle.d.ts +3 -0
  39. package/dist/src/examples-bundle.d.ts.map +1 -0
  40. package/dist/src/examples-bundle.js +18 -0
  41. package/dist/src/examples-bundle.js.map +1 -0
  42. package/dist/src/examples.d.ts +10 -0
  43. package/dist/src/examples.d.ts.map +1 -0
  44. package/dist/src/examples.js +2 -0
  45. package/dist/src/examples.js.map +1 -0
  46. package/dist/src/format.d.ts +8 -7
  47. package/dist/src/format.d.ts.map +1 -1
  48. package/dist/src/format.js +9 -175
  49. package/dist/src/format.js.map +1 -1
  50. package/dist/src/header-source.d.ts +3 -0
  51. package/dist/src/header-source.d.ts.map +1 -0
  52. package/dist/src/header-source.js +41 -0
  53. package/dist/src/header-source.js.map +1 -0
  54. package/dist/src/headers.d.ts +64 -0
  55. package/dist/src/headers.d.ts.map +1 -0
  56. package/dist/src/headers.js +167 -0
  57. package/dist/src/headers.js.map +1 -0
  58. package/dist/src/index.d.ts +8 -11
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/index.js +5 -8
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/keywords.d.ts +56 -0
  63. package/dist/src/keywords.d.ts.map +1 -0
  64. package/dist/src/keywords.js +133 -0
  65. package/dist/src/keywords.js.map +1 -0
  66. package/dist/src/language.d.ts +26 -0
  67. package/dist/src/language.d.ts.map +1 -0
  68. package/dist/src/language.js +440 -0
  69. package/dist/src/language.js.map +1 -0
  70. package/dist/src/lex.d.ts +13 -28
  71. package/dist/src/lex.d.ts.map +1 -1
  72. package/dist/src/lex.js +119 -145
  73. package/dist/src/lex.js.map +1 -1
  74. package/dist/src/parse.d.ts +4 -17
  75. package/dist/src/parse.d.ts.map +1 -1
  76. package/dist/src/parse.js +484 -1036
  77. package/dist/src/parse.js.map +1 -1
  78. package/dist/src/std-bundle.d.ts +2 -0
  79. package/dist/src/std-bundle.d.ts.map +1 -0
  80. package/dist/src/std-bundle.js +15 -0
  81. package/dist/src/std-bundle.js.map +1 -0
  82. package/dist/src/std-library.d.ts +5 -0
  83. package/dist/src/std-library.d.ts.map +1 -0
  84. package/dist/src/std-library.js +5 -0
  85. package/dist/src/std-library.js.map +1 -0
  86. package/dist/src/tunables.d.ts +7 -0
  87. package/dist/src/tunables.d.ts.map +1 -0
  88. package/dist/src/tunables.js +27 -0
  89. package/dist/src/tunables.js.map +1 -0
  90. package/docs/README.md +528 -23
  91. package/docs/assets/brand/hsx-horizontal-white.svg +1 -0
  92. package/docs/assets/brand/hsx-horizontal.svg +1 -0
  93. package/docs/assets/brand/hsx-stacked-white.svg +1 -0
  94. package/docs/assets/brand/hsx-stacked.svg +1 -0
  95. package/docs/assets/brand/manifest.json +30 -0
  96. package/docs/assets/hsx.svg +11 -0
  97. package/examples/cards.hsx +34 -0
  98. package/examples/collections.hsx +37 -0
  99. package/examples/cost-table.json +633 -385
  100. package/examples/escrow.hsx +24 -0
  101. package/examples/financing.hsx +32 -0
  102. package/examples/insurance.hsx +30 -0
  103. package/examples/lending.hsx +57 -0
  104. package/examples/library.hsx +15 -0
  105. package/examples/marketplace.hsx +32 -0
  106. package/examples/money.hsx +19 -0
  107. package/examples/rental-deposit.hsx +60 -0
  108. package/examples/repair-approval.hsx +44 -0
  109. package/examples/reporting.hsx +28 -0
  110. package/examples/savings.hsx +21 -0
  111. package/examples/serviced.hsx +25 -0
  112. package/examples/wallet.hsx +24 -0
  113. package/package.json +27 -17
  114. package/src/ast.ts +84 -411
  115. package/src/attachment-economics.ts +103 -0
  116. package/src/binding-contract.ts +104 -0
  117. package/src/cli.ts +98 -309
  118. package/src/compile.ts +4063 -212
  119. package/src/cost.ts +71 -574
  120. package/src/diagnostics.ts +57 -437
  121. package/src/examples-bundle.ts +19 -0
  122. package/src/examples.ts +9 -0
  123. package/src/format.ts +12 -256
  124. package/src/header-source.ts +54 -0
  125. package/src/headers.ts +195 -0
  126. package/src/index.ts +16 -29
  127. package/src/keywords.ts +134 -0
  128. package/src/language.ts +629 -0
  129. package/src/lex.ts +131 -192
  130. package/src/parse.ts +489 -1195
  131. package/src/std-bundle.ts +15 -0
  132. package/src/std-library.ts +7 -0
  133. package/src/tunables.ts +36 -0
  134. package/std/cards.hsx +85 -0
  135. package/std/collections.hsx +90 -0
  136. package/std/escrow.hsx +73 -0
  137. package/std/financing.hsx +683 -0
  138. package/std/insurance.hsx +89 -0
  139. package/std/lending.hsx +138 -0
  140. package/std/marketplace.hsx +123 -0
  141. package/std/money.hsx +173 -0
  142. package/std/reporting.hsx +753 -0
  143. package/std/savings.hsx +68 -0
  144. package/std/wallet.hsx +57 -0
  145. package/LICENSE +0 -661
  146. package/LICENSING.md +0 -52
  147. package/TRADEMARKS.md +0 -35
  148. package/dist/src/emit.d.ts +0 -35
  149. package/dist/src/emit.d.ts.map +0 -1
  150. package/dist/src/emit.js +0 -359
  151. package/dist/src/emit.js.map +0 -1
  152. package/dist/src/entry-overrides.d.ts +0 -58
  153. package/dist/src/entry-overrides.d.ts.map +0 -1
  154. package/dist/src/entry-overrides.js +0 -284
  155. package/dist/src/entry-overrides.js.map +0 -1
  156. package/dist/src/ir.d.ts +0 -66
  157. package/dist/src/ir.d.ts.map +0 -1
  158. package/dist/src/ir.js +0 -15
  159. package/dist/src/ir.js.map +0 -1
  160. package/dist/src/limits.d.ts +0 -21
  161. package/dist/src/limits.d.ts.map +0 -1
  162. package/dist/src/limits.js +0 -21
  163. package/dist/src/limits.js.map +0 -1
  164. package/dist/src/modules.d.ts +0 -36
  165. package/dist/src/modules.d.ts.map +0 -1
  166. package/dist/src/modules.js +0 -372
  167. package/dist/src/modules.js.map +0 -1
  168. package/dist/src/typecheck.d.ts +0 -8
  169. package/dist/src/typecheck.d.ts.map +0 -1
  170. package/dist/src/typecheck.js +0 -2958
  171. package/dist/src/typecheck.js.map +0 -1
  172. package/dist/src/version.d.ts +0 -5
  173. package/dist/src/version.d.ts.map +0 -1
  174. package/dist/src/version.js +0 -5
  175. package/dist/src/version.js.map +0 -1
  176. package/docs/guide/01-first-program.md +0 -24
  177. package/docs/guide/02-money.md +0 -25
  178. package/docs/guide/03-instruments.md +0 -22
  179. package/docs/guide/04-lifecycles.md +0 -25
  180. package/docs/guide/05-fees-and-splits.md +0 -45
  181. package/docs/guide/06-schedules.md +0 -22
  182. package/docs/guide/07-composition.md +0 -46
  183. package/docs/guide/08-writing-a-module.md +0 -26
  184. package/docs/guide/09-cost.md +0 -24
  185. package/docs/guide/10-diagnostics.md +0 -27
  186. package/docs/llms-full.txt +0 -1738
  187. package/docs/llms.txt +0 -45
  188. package/docs/reference/cli.md +0 -33
  189. package/docs/reference/diagnostics.md +0 -619
  190. package/docs/reference/grammar.md +0 -39
  191. package/docs/reference/std/advance.md +0 -35
  192. package/docs/reference/std/cancellable_booking.md +0 -35
  193. package/docs/reference/std/captured_payment.md +0 -43
  194. package/docs/reference/std/conditional_disbursement.md +0 -33
  195. package/docs/reference/std/credit_facility.md +0 -35
  196. package/docs/reference/std/held_payment.md +0 -64
  197. package/docs/reference/std/instant_transfer.md +0 -30
  198. package/docs/reference/std/metered.md +0 -27
  199. package/docs/reference/std/pooled_split.md +0 -26
  200. package/docs/reference/std/premium_forward.md +0 -39
  201. package/docs/reference/std/reconciled_payout.md +0 -33
  202. package/docs/reference/std/recurring_collection.md +0 -25
  203. package/docs/reference/std/rotating_pool.md +0 -42
  204. package/docs/reference/std/scheduled.md +0 -51
  205. package/docs/reference/std/security_deposit.md +0 -46
  206. package/docs/reference/std/settlement_batch.md +0 -42
  207. package/docs/reference/std/swap.md +0 -46
  208. package/docs/reference/std/threshold_pool.md +0 -47
  209. package/docs/reference/std/weighted_distribution.md +0 -39
  210. package/docs/reference/types.md +0 -20
  211. package/docs/reference/udl-output.md +0 -14
  212. package/docs/sessions/2026-09-02-two-instruments.hsx +0 -21
  213. package/docs/sessions/2026-09-02-two-instruments.md +0 -41
  214. package/examples/01-first-program/README.md +0 -45
  215. package/examples/01-first-program/tip-jar.hsx +0 -17
  216. package/examples/02-imports-and-archetypes/README.md +0 -99
  217. package/examples/02-imports-and-archetypes/photo-booth.hsx +0 -37
  218. package/examples/03-diagnostics/README.md +0 -68
  219. package/examples/03-diagnostics/corner-shop-fixed.hsx +0 -22
  220. package/examples/03-diagnostics/corner-shop.hsx +0 -19
  221. package/examples/04-complete-product/README.md +0 -87
  222. package/examples/04-complete-product/study-hall.hsx +0 -67
  223. package/examples/05-watch-club/README.md +0 -9
  224. package/examples/05-watch-club/watch-club.hsx +0 -124
  225. package/examples/README.md +0 -18
  226. package/examples/advance/README.md +0 -3
  227. package/examples/advance/advance.hsx +0 -13
  228. package/examples/advance/advance.udl +0 -339
  229. package/examples/cancellable_booking/README.md +0 -3
  230. package/examples/cancellable_booking/cancellable_booking.hsx +0 -14
  231. package/examples/cancellable_booking/cancellable_booking.udl +0 -391
  232. package/examples/captured_payment/README.md +0 -3
  233. package/examples/captured_payment/captured_payment.hsx +0 -21
  234. package/examples/captured_payment/captured_payment.udl +0 -677
  235. package/examples/conditional_disbursement/README.md +0 -3
  236. package/examples/conditional_disbursement/conditional_disbursement.hsx +0 -17
  237. package/examples/conditional_disbursement/conditional_disbursement.udl +0 -412
  238. package/examples/credit_facility/README.md +0 -3
  239. package/examples/credit_facility/credit_facility.hsx +0 -27
  240. package/examples/credit_facility/credit_facility.udl +0 -1373
  241. package/examples/held_payment/README.md +0 -3
  242. package/examples/held_payment/held_payment.hsx +0 -13
  243. package/examples/held_payment/held_payment.udl +0 -507
  244. package/examples/instant_transfer/README.md +0 -3
  245. package/examples/instant_transfer/instant_transfer.hsx +0 -16
  246. package/examples/instant_transfer/instant_transfer.udl +0 -364
  247. package/examples/metered/README.md +0 -3
  248. package/examples/metered/metered.hsx +0 -13
  249. package/examples/metered/metered.udl +0 -247
  250. package/examples/pooled_split/README.md +0 -3
  251. package/examples/pooled_split/pooled_split.hsx +0 -15
  252. package/examples/pooled_split/pooled_split.udl +0 -425
  253. package/examples/premium_forward/README.md +0 -3
  254. package/examples/premium_forward/premium_forward.hsx +0 -19
  255. package/examples/premium_forward/premium_forward.udl +0 -594
  256. package/examples/reconciled_payout/README.md +0 -3
  257. package/examples/reconciled_payout/reconciled_payout.hsx +0 -13
  258. package/examples/reconciled_payout/reconciled_payout.udl +0 -303
  259. package/examples/recurring_collection/README.md +0 -3
  260. package/examples/recurring_collection/recurring_collection.hsx +0 -21
  261. package/examples/recurring_collection/recurring_collection.udl +0 -1130
  262. package/examples/rotating_pool/README.md +0 -3
  263. package/examples/rotating_pool/rotating_pool.hsx +0 -18
  264. package/examples/rotating_pool/rotating_pool.udl +0 -4352
  265. package/examples/scheduled/README.md +0 -3
  266. package/examples/scheduled/scheduled.hsx +0 -12
  267. package/examples/scheduled/scheduled.udl +0 -335
  268. package/examples/security_deposit/README.md +0 -3
  269. package/examples/security_deposit/security_deposit.hsx +0 -21
  270. package/examples/security_deposit/security_deposit.udl +0 -293
  271. package/examples/settlement_batch/README.md +0 -3
  272. package/examples/settlement_batch/settlement_batch.hsx +0 -19
  273. package/examples/settlement_batch/settlement_batch.udl +0 -753
  274. package/examples/swap/README.md +0 -3
  275. package/examples/swap/swap.hsx +0 -19
  276. package/examples/swap/swap.udl +0 -876
  277. package/examples/threshold_pool/README.md +0 -3
  278. package/examples/threshold_pool/threshold_pool.hsx +0 -16
  279. package/examples/threshold_pool/threshold_pool.udl +0 -667
  280. package/examples/weighted_distribution/README.md +0 -3
  281. package/examples/weighted_distribution/weighted_distribution.hsx +0 -20
  282. package/examples/weighted_distribution/weighted_distribution.udl +0 -337
  283. package/skills/hsx/SKILL.md +0 -483
  284. package/src/emit.ts +0 -447
  285. package/src/entry-overrides.ts +0 -428
  286. package/src/ir.ts +0 -99
  287. package/src/limits.ts +0 -20
  288. package/src/modules.ts +0 -444
  289. package/src/typecheck.ts +0 -3876
  290. package/src/version.ts +0 -5
  291. package/std/SEMANTICS.md +0 -130
  292. package/std/settlements/advance.hsx +0 -177
  293. package/std/settlements/cancellable_booking.hsx +0 -87
  294. package/std/settlements/captured_payment.hsx +0 -144
  295. package/std/settlements/conditional_disbursement.hsx +0 -185
  296. package/std/settlements/credit_facility.hsx +0 -167
  297. package/std/settlements/held_payment.hsx +0 -578
  298. package/std/settlements/index.hsx +0 -3
  299. package/std/settlements/instant_transfer.hsx +0 -190
  300. package/std/settlements/metered.hsx +0 -67
  301. package/std/settlements/pooled_split.hsx +0 -68
  302. package/std/settlements/premium_forward.hsx +0 -257
  303. package/std/settlements/reconciled_payout.hsx +0 -77
  304. package/std/settlements/recurring_collection.hsx +0 -27
  305. package/std/settlements/rotating_pool.hsx +0 -252
  306. package/std/settlements/scheduled.hsx +0 -641
  307. package/std/settlements/security_deposit.hsx +0 -166
  308. package/std/settlements/settlement_batch.hsx +0 -122
  309. package/std/settlements/swap.hsx +0 -1114
  310. package/std/settlements/threshold_pool.hsx +0 -221
  311. package/std/settlements/weighted_distribution.hsx +0 -141
@@ -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,3 @@
1
+ /** Compilation and editor metadata admit the same named header declarations. */
2
+ export declare function parseHeader(source: string, name: string): import("./ast.ts").Program;
3
+ //# sourceMappingURL=header-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-source.d.ts","sourceRoot":"","sources":["../../src/header-source.ts"],"names":[],"mappings":"AAGA,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,8BAiDvD"}
@@ -0,0 +1,41 @@
1
+ import { parseProgram } from "./parse.js";
2
+ import { CompileFailure, fail } from "./diagnostics.js";
3
+ /** Compilation and editor metadata admit the same named header declarations. */
4
+ export function parseHeader(source, name) {
5
+ const parsed = parseProgram(source);
6
+ if (parsed.diagnostics.length)
7
+ throw new CompileFailure({ ...parsed.diagnostics[0], source: name });
8
+ const program = parsed.program;
9
+ const locate = (value) => {
10
+ if (!value || typeof value !== "object")
11
+ return;
12
+ if ("span" in value)
13
+ Object.assign(value, { source: name });
14
+ for (const child of Object.values(value))
15
+ locate(child);
16
+ };
17
+ locate(program);
18
+ if (!program.header || program.name !== name)
19
+ fail(program, `${name}: expected header ${name}`, `start with header ${name}`);
20
+ const names = new Set();
21
+ for (const decl of program.decls) {
22
+ if (decl.kind !== "instrument")
23
+ continue;
24
+ if (names.has(decl.name))
25
+ fail(decl, `duplicate instrument ${name}.${decl.name}`, "give each instrument a distinct name");
26
+ names.add(decl.name);
27
+ const parameters = new Set();
28
+ for (const parameter of decl.parameters) {
29
+ if (parameters.has(parameter.key))
30
+ fail(parameter, `duplicate parameter ${parameter.key}`, "declare each parameter once");
31
+ parameters.add(parameter.key);
32
+ const type = parameter.value.kind === "default"
33
+ ? parameter.value.type
34
+ : parameter.value;
35
+ if (type.kind === "call" && !["enum", "integer"].includes(type.name))
36
+ fail(type, `unsupported tunable constructor ${type.name}`, "Only enum(choices) and integer(minimum, maximum) are supported tunable constructors. This constructor's restrictions cannot be enforced.");
37
+ }
38
+ }
39
+ return program;
40
+ }
41
+ //# sourceMappingURL=header-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-source.js","sourceRoot":"","sources":["../../src/header-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExD,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,IAAY;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM;QAC3B,MAAM,IAAI,cAAc,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,KAAc,EAAQ,EAAE;QACtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QAChD,IAAI,MAAM,IAAI,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,CAAC;IAChB,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;QAC1C,IAAI,CACF,OAAO,EACP,GAAG,IAAI,qBAAqB,IAAI,EAAE,EAClC,qBAAqB,IAAI,EAAE,CAC5B,CAAC;IACJ,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,SAAS;QACzC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CACF,IAAI,EACJ,wBAAwB,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAC3C,sCAAsC,CACvC,CAAC;QACJ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;gBAC/B,IAAI,CACF,SAAS,EACT,uBAAuB,SAAS,CAAC,GAAG,EAAE,EACtC,6BAA6B,CAC9B,CAAC;YACJ,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,IAAI,GACR,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;gBAChC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI;gBACtB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClE,IAAI,CACF,IAAI,EACJ,mCAAmC,IAAI,CAAC,IAAI,EAAE,EAC9C,0IAA0I,CAC3I,CAAC;QACN,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { type StandardLibrary } from "./std-library.ts";
2
+ export declare const HEADER_NAMES: readonly ["money", "marketplace", "escrow", "wallet", "financing", "lending", "insurance", "collections", "cards", "savings", "reporting"];
3
+ /** The compiler frontend owns header metadata used by docs and catalogue consumers. */
4
+ export declare function headerManifest(library?: StandardLibrary, names?: readonly string[]): {
5
+ version: number;
6
+ headers: {
7
+ name: string;
8
+ objects: {
9
+ name: string;
10
+ qualifiedName: string;
11
+ signature: string;
12
+ states: string[];
13
+ summary: string;
14
+ authoringTemplate: {
15
+ requiredImport: string;
16
+ instancePlaceholder: string;
17
+ source: string;
18
+ requiredBindings: {
19
+ name: string;
20
+ type: string;
21
+ placeholder: string;
22
+ }[];
23
+ };
24
+ tunables: {
25
+ minimum?: number | string;
26
+ maximum?: number | string;
27
+ name: string;
28
+ type: string;
29
+ values?: string[];
30
+ required: boolean;
31
+ default?: string;
32
+ }[];
33
+ dependencies: {
34
+ binding: string;
35
+ when: string;
36
+ is: string;
37
+ message: string;
38
+ fix: string;
39
+ }[];
40
+ parameterDiagnostics: {
41
+ parameter: string;
42
+ accepts: string;
43
+ percentage: string;
44
+ fix: string;
45
+ }[];
46
+ constraints: {
47
+ tunable: string;
48
+ relation: string;
49
+ other: string;
50
+ }[];
51
+ parties: string[];
52
+ subject: {
53
+ name: string;
54
+ type: string;
55
+ }[];
56
+ actions: {
57
+ name: string;
58
+ summary: string;
59
+ actor: string;
60
+ }[];
61
+ }[];
62
+ }[];
63
+ };
64
+ //# sourceMappingURL=headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/headers.ts"],"names":[],"mappings":"AAMA,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,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,CACH,CAAC;AAEX,uFAAuF;AACvF,wBAAgB,cAAc,CAC5B,OAAO,GAAE,eAAwC,EACjD,KAAK,GAAE,SAAS,MAAM,EAAiB;IAGrC,OAAO;IACP,OAAO;;;;;;;;;gBAkGK,cAAc;gBACd,mBAAmB;gBACnB,MAAM;gBAON,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAlGT,MAAM;yBAAW,MAAM;uBAAS,MAAM;;;;EA2J5D"}
@@ -0,0 +1,167 @@
1
+ import { bindingDependencies, parameterDiagnostics, } from "./binding-contract.js";
2
+ import { tunableBounds } from "./tunables.js";
3
+ import { parseHeader } from "./header-source.js";
4
+ import { bundledStandardLibrary } from "./std-library.js";
5
+ export const HEADER_NAMES = [
6
+ "money",
7
+ "marketplace",
8
+ "escrow",
9
+ "wallet",
10
+ "financing",
11
+ "lending",
12
+ "insurance",
13
+ "collections",
14
+ "cards",
15
+ "savings",
16
+ "reporting",
17
+ ];
18
+ /** The compiler frontend owns header metadata used by docs and catalogue consumers. */
19
+ export function headerManifest(library = bundledStandardLibrary, names = HEADER_NAMES) {
20
+ return {
21
+ version: 1,
22
+ headers: names.map((name) => {
23
+ const source = library.source(name);
24
+ if (!source)
25
+ throw new Error(`Missing standard header ${name}`);
26
+ const parsed = parseHeader(source, name);
27
+ const spelling = (expression) => source.slice(expression.span.start, expression.span.end).trim();
28
+ const actions = (body, prefix = "") => {
29
+ const result = body.entries
30
+ .filter((e) => e.key.startsWith("action "))
31
+ .map((entry) => {
32
+ const slots = entry.value.kind === "block" ? entry.value.entries : [];
33
+ const summary = slots.find((e) => e.key === "summary")?.value;
34
+ const actor = slots.find((e) => e.key === "actor")?.value;
35
+ return {
36
+ name: prefix + entry.key.slice(7),
37
+ summary: summary?.kind === "text"
38
+ ? summary.value
39
+ : entry.key.slice(7).replaceAll("_", " "),
40
+ actor: actor ? spelling(actor) : "caller",
41
+ };
42
+ });
43
+ const records = body.entries.find((e) => e.key === "records")?.value;
44
+ if (records?.kind === "block")
45
+ for (const record of records.entries)
46
+ if (record.value.kind === "block")
47
+ result.push(...actions(record.value, `${prefix}${record.key}.`));
48
+ return result;
49
+ };
50
+ return {
51
+ name,
52
+ objects: parsed.decls
53
+ .filter((d) => d.kind === "instrument")
54
+ .map((decl) => {
55
+ const tunables = decl.parameters.map((parameter) => {
56
+ const type = parameter.value.kind === "default"
57
+ ? parameter.value.type
58
+ : parameter.value;
59
+ const fallback = parameter.value.kind === "default"
60
+ ? parameter.value.value
61
+ : undefined;
62
+ return {
63
+ name: parameter.key,
64
+ type: spelling(type),
65
+ ...(type.kind === "call" && type.name === "enum"
66
+ ? { values: type.args.map(spelling) }
67
+ : {}),
68
+ ...tunableBounds(type),
69
+ required: !fallback && !(type.kind === "type" && type.optional),
70
+ ...(fallback ? { default: spelling(fallback) } : {}),
71
+ };
72
+ });
73
+ // Reference selectors need program context, and text can name a target
74
+ // action. Templates require explicit bindings instead of guessing them.
75
+ const bindings = tunables.filter((tunable, index) => {
76
+ const value = decl.parameters[index].value;
77
+ return (tunable.required ||
78
+ tunable.type === "text" ||
79
+ (value.kind === "default" &&
80
+ value.value.kind === "call" &&
81
+ ["object", "party"].includes(value.value.name)));
82
+ });
83
+ const summary = decl.body.entries.find((e) => e.key === "summary")?.value;
84
+ return {
85
+ name: decl.name,
86
+ qualifiedName: `${name}.${decl.name}`,
87
+ signature: source
88
+ .slice(decl.span.start, decl.body.span.start)
89
+ .replace(/^instrument\s+/, "")
90
+ .trim(),
91
+ states: (() => {
92
+ const lifecycle = decl.body.entries.find((entry) => entry.key === "lifecycle")?.value;
93
+ const states = lifecycle?.kind === "block"
94
+ ? lifecycle.entries.find((entry) => entry.key === "states")
95
+ ?.value
96
+ : undefined;
97
+ return states?.kind === "list"
98
+ ? states.items.map(spelling)
99
+ : [];
100
+ })(),
101
+ summary: summary?.kind === "text"
102
+ ? summary.value
103
+ : decl.name.replaceAll("_", " "),
104
+ authoringTemplate: {
105
+ requiredImport: `use ${name}`,
106
+ instancePlaceholder: "${instance}",
107
+ source: "attach ${instance} = " +
108
+ `${name}.${decl.name} { ` +
109
+ bindings
110
+ .map((t) => t.name + ": ${" + t.name + "}")
111
+ .join(", ") +
112
+ " }",
113
+ requiredBindings: bindings.map((t) => ({
114
+ name: t.name,
115
+ type: t.type,
116
+ placeholder: "${" + t.name + "}",
117
+ })),
118
+ },
119
+ tunables,
120
+ dependencies: bindingDependencies(decl).map(({ span: _span, ...dependency }) => dependency),
121
+ parameterDiagnostics: parameterDiagnostics(decl),
122
+ constraints: (() => {
123
+ const block = decl.body.entries.find((entry) => entry.key === "constraints")?.value;
124
+ return block?.kind === "block"
125
+ ? block.entries.map((entry) => {
126
+ if (entry.value.kind !== "call" ||
127
+ entry.value.args.length !== 1)
128
+ throw new Error("invalid tunable constraint");
129
+ return {
130
+ tunable: entry.key,
131
+ relation: entry.value.name,
132
+ other: spelling(entry.value.args[0]),
133
+ };
134
+ })
135
+ : [];
136
+ })(),
137
+ parties: tunables
138
+ .filter((t) => t.type === "party")
139
+ .map((t) => t.name),
140
+ // Fields the attached object must carry (or rename to) before
141
+ // the instrument's actions can read them.
142
+ subject: (() => {
143
+ const fields = new Map();
144
+ for (const entry of decl.body.entries) {
145
+ if (!entry.key.startsWith("action "))
146
+ continue;
147
+ if (entry.value.kind !== "block")
148
+ continue;
149
+ const subject = entry.value.entries.find((slot) => slot.key === "subject")?.value;
150
+ if (subject?.kind !== "block")
151
+ continue;
152
+ for (const field of subject.entries) {
153
+ const type = spelling(field.value);
154
+ if (field.key !== "adapter")
155
+ fields.set(field.key, type);
156
+ }
157
+ }
158
+ return [...fields].map(([name, type]) => ({ name, type }));
159
+ })(),
160
+ actions: actions(decl.body),
161
+ };
162
+ }),
163
+ };
164
+ }),
165
+ };
166
+ }
167
+ //# sourceMappingURL=headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/headers.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,10 @@
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";
7
- export { overrideProgramEntries, type ProgramEntryOverride, type ProgramEntryOverrideIssue, type ProgramEntryOverrideValue, } from "./entry-overrides.ts";
8
- export { type OriginMapEntry } from "./emit.ts";
9
- export { lowerGeneralProgram } from "./emit.ts";
1
+ export { compile, type CompileDiagnostic, type CompileOptions, type CompileResult, type CompileOriginMapEntry, type AdapterBindingTarget, } from "./compile.ts";
2
+ export type { ProviderAdapter } from "@hyperscale0/adl";
10
3
  export { parseProgram } from "./parse.ts";
11
- export { checkGeneralProgram, type GeneralCheckOptions } from "./typecheck.ts";
12
- export type { BlockExpr, ExposeDecl, Program, ProgramDecl, UseDecl, } from "./ast.ts";
4
+ export { lex, KEYWORDS } from "./lex.ts";
5
+ export { format } from "./format.ts";
6
+ export { bundledStandardLibrary, type StandardLibrary } from "./std-library.ts";
7
+ export { buildUdlCostManifest, type UdlCostManifest } from "./cost.ts";
8
+ export type { Program, Decl, AssignmentDecl, ObjectDecl, InstrumentDecl, Expr, Span, Diagnostic, } from "./ast.ts";
9
+ export { headerManifest, HEADER_NAMES } from "./headers.ts";
13
10
  //# 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,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,YAAY,EACV,SAAS,EACT,UAAU,EACV,OAAO,EACP,WAAW,EACX,OAAO,GACR,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,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,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,EACV,OAAO,EACP,IAAI,EACJ,cAAc,EACd,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,UAAU,GACX,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,11 +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 } from "./emit.js";
9
2
  export { parseProgram } from "./parse.js";
10
- export { checkGeneralProgram } from "./typecheck.js";
3
+ export { lex, KEYWORDS } from "./lex.js";
4
+ export { format } from "./format.js";
5
+ export { bundledStandardLibrary } from "./std-library.js";
6
+ export { buildUdlCostManifest } from "./cost.js";
7
+ export { headerManifest, HEADER_NAMES } from "./headers.js";
11
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,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAMR,MAAM,cAAc,CAAC;AAEtB,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;AAYvE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,56 @@
1
+ /** Business explanations shared by every HSX editor. */
2
+ export declare const KEYWORD_HELP: {
3
+ program: [string, string];
4
+ header: [string];
5
+ use: [string];
6
+ party: [string, string];
7
+ role: [string];
8
+ currency: [string];
9
+ instrument: [string, string];
10
+ fields: [string, string];
11
+ lifecycle: [string, string];
12
+ action: [string, string];
13
+ expose: [string, string];
14
+ hide: [string];
15
+ as: [string];
16
+ cap: [string, string];
17
+ of: [string];
18
+ when: [string];
19
+ constraints: [string];
20
+ requires: [string, string];
21
+ invariants: [string, string];
22
+ moves: [string, string];
23
+ from: [string];
24
+ to: [string];
25
+ in: [string, string];
26
+ is: [string];
27
+ has: [string];
28
+ family: [string];
29
+ check: [string];
30
+ result: [string];
31
+ maxAge: [string];
32
+ instruction: [string];
33
+ boundary: [string];
34
+ key: [string];
35
+ unique: [string, string];
36
+ on: [string];
37
+ count: [string, string];
38
+ sum: [string, string];
39
+ hours: [string, string];
40
+ between: [string];
41
+ and: [string];
42
+ timezone: [string];
43
+ evidence: [string, string];
44
+ reserve: [string, string];
45
+ post: [string, string];
46
+ void: [string, string];
47
+ capture: [string];
48
+ fee: [string, string];
49
+ shares: [string, string];
50
+ object: [string, string];
51
+ attach: [string, string];
52
+ subject: [string, string];
53
+ rename: [string, string];
54
+ columns: [string, string];
55
+ };
56
+ //# sourceMappingURL=keywords.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keywords.d.ts","sourceRoot":"","sources":["../../src/keywords.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIgD,CAAC"}