@hyperscale0/hsx 1.0.342 → 1.0.347

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 (128) hide show
  1. package/README.md +1 -1
  2. package/bases/cards.hsx +0 -1
  3. package/bases/collections.hsx +0 -2
  4. package/bases/escrow.hsx +0 -1
  5. package/bases/financing.hsx +0 -1
  6. package/bases/insurance.hsx +0 -1
  7. package/bases/lending.hsx +0 -3
  8. package/bases/marketplace.hsx +0 -2
  9. package/bases/money.hsx +0 -1
  10. package/bases/reporting.hsx +0 -2
  11. package/bases/savings.hsx +0 -1
  12. package/bases/wallet.hsx +0 -1
  13. package/dist/src/ast.d.ts +57 -7
  14. package/dist/src/ast.d.ts.map +1 -1
  15. package/dist/src/ast.js.map +1 -1
  16. package/dist/src/bases-bundle.js +11 -11
  17. package/dist/src/bases-bundle.js.map +1 -1
  18. package/dist/src/catalog-program.d.ts +1 -1
  19. package/dist/src/catalog-program.d.ts.map +1 -1
  20. package/dist/src/catalog-program.js +0 -13
  21. package/dist/src/catalog-program.js.map +1 -1
  22. package/dist/src/checks.d.ts +60 -0
  23. package/dist/src/checks.d.ts.map +1 -0
  24. package/dist/src/checks.js +240 -0
  25. package/dist/src/checks.js.map +1 -0
  26. package/dist/src/cli.d.ts.map +1 -1
  27. package/dist/src/cli.js +6 -25
  28. package/dist/src/cli.js.map +1 -1
  29. package/dist/src/compile.d.ts +29 -12
  30. package/dist/src/compile.d.ts.map +1 -1
  31. package/dist/src/compile.js +414 -316
  32. package/dist/src/compile.js.map +1 -1
  33. package/dist/src/diagnostics.d.ts +14 -1
  34. package/dist/src/diagnostics.d.ts.map +1 -1
  35. package/dist/src/diagnostics.js +31 -0
  36. package/dist/src/diagnostics.js.map +1 -1
  37. package/dist/src/examples-bundle.js +15 -15
  38. package/dist/src/examples-bundle.js.map +1 -1
  39. package/dist/src/header-source.d.ts +30 -0
  40. package/dist/src/header-source.d.ts.map +1 -1
  41. package/dist/src/header-source.js +120 -9
  42. package/dist/src/header-source.js.map +1 -1
  43. package/dist/src/headers.d.ts +9 -18
  44. package/dist/src/headers.d.ts.map +1 -1
  45. package/dist/src/headers.js +25 -23
  46. package/dist/src/headers.js.map +1 -1
  47. package/dist/src/index.d.ts +4 -3
  48. package/dist/src/index.d.ts.map +1 -1
  49. package/dist/src/index.js +2 -2
  50. package/dist/src/index.js.map +1 -1
  51. package/dist/src/keywords.d.ts +2 -4
  52. package/dist/src/keywords.d.ts.map +1 -1
  53. package/dist/src/keywords.js +6 -5
  54. package/dist/src/keywords.js.map +1 -1
  55. package/dist/src/language.d.ts +3 -4
  56. package/dist/src/language.d.ts.map +1 -1
  57. package/dist/src/language.js +123 -60
  58. package/dist/src/language.js.map +1 -1
  59. package/dist/src/lex.d.ts +1 -1
  60. package/dist/src/lex.d.ts.map +1 -1
  61. package/dist/src/lex.js +3 -5
  62. package/dist/src/lex.js.map +1 -1
  63. package/dist/src/parse.d.ts +3 -1
  64. package/dist/src/parse.d.ts.map +1 -1
  65. package/dist/src/parse.js +234 -22
  66. package/dist/src/parse.js.map +1 -1
  67. package/dist/src/std-bundle.d.ts +2 -1
  68. package/dist/src/std-bundle.d.ts.map +1 -1
  69. package/dist/src/std-bundle.js +16 -15
  70. package/dist/src/std-bundle.js.map +1 -1
  71. package/dist/src/template-guide.d.ts +3 -9
  72. package/dist/src/template-guide.d.ts.map +1 -1
  73. package/dist/src/template-guide.js +16 -23
  74. package/dist/src/template-guide.js.map +1 -1
  75. package/dist/src/toolchain.d.ts +23 -0
  76. package/dist/src/toolchain.d.ts.map +1 -0
  77. package/dist/src/toolchain.js +29 -0
  78. package/dist/src/toolchain.js.map +1 -0
  79. package/docs/README.md +69 -28
  80. package/examples/camera-rental.hsx +0 -1
  81. package/examples/cards.hsx +0 -1
  82. package/examples/collections.hsx +0 -2
  83. package/examples/escrow.hsx +0 -1
  84. package/examples/financing.hsx +0 -1
  85. package/examples/insurance.hsx +0 -2
  86. package/examples/lending.hsx +0 -3
  87. package/examples/library.hsx +0 -3
  88. package/examples/marketplace.hsx +0 -2
  89. package/examples/money.hsx +0 -1
  90. package/examples/rental-hire.hsx +0 -1
  91. package/examples/reporting.hsx +0 -2
  92. package/examples/savings.hsx +0 -1
  93. package/examples/serviced.hsx +0 -4
  94. package/examples/wallet.hsx +0 -1
  95. package/package.json +4 -4
  96. package/src/ast.ts +56 -3
  97. package/src/bases-bundle.ts +11 -11
  98. package/src/catalog-program.ts +0 -13
  99. package/src/checks.ts +386 -0
  100. package/src/cli.ts +6 -25
  101. package/src/compile.ts +583 -438
  102. package/src/diagnostics.ts +49 -1
  103. package/src/examples-bundle.ts +15 -15
  104. package/src/header-source.ts +187 -11
  105. package/src/headers.ts +31 -32
  106. package/src/index.ts +10 -4
  107. package/src/keywords.ts +6 -5
  108. package/src/language.ts +153 -68
  109. package/src/lex.ts +3 -5
  110. package/src/parse.ts +216 -24
  111. package/src/std-bundle.ts +17 -15
  112. package/src/template-guide.ts +17 -34
  113. package/src/toolchain.ts +51 -0
  114. package/std/booking.hsx +14 -1
  115. package/std/collections.hsx +12 -2
  116. package/std/financing.hsx +10 -16
  117. package/std/money.hsx +2 -3
  118. package/std/reporting.hsx +10 -1
  119. package/dist/src/binding-contract.d.ts +0 -22
  120. package/dist/src/binding-contract.d.ts.map +0 -1
  121. package/dist/src/binding-contract.js +0 -80
  122. package/dist/src/binding-contract.js.map +0 -1
  123. package/dist/src/std-library.d.ts +0 -5
  124. package/dist/src/std-library.d.ts.map +0 -1
  125. package/dist/src/std-library.js +0 -5
  126. package/dist/src/std-library.js.map +0 -1
  127. package/src/binding-contract.ts +0 -111
  128. package/src/std-library.ts +0 -7
@@ -0,0 +1,240 @@
1
+ import { didYouMean, fail } from "./diagnostics.js";
2
+ // Statement keywords cannot name a customer, since a step opens with its actor.
3
+ const reserved = new Set(["customer", "clock", "object", "close", "expect"]);
4
+ /** The Product pool's balance name. */
5
+ const operator = "operator";
6
+ /**
7
+ * Lowers every check against the compiled document. A name the document does
8
+ * not declare fails at the step that wrote it.
9
+ */
10
+ export function lowerChecks(checks, document, literal) {
11
+ const seen = new Set();
12
+ return checks.map((check) => {
13
+ if (seen.has(check.name))
14
+ fail(check, `check "${check.name}" is declared twice`, "rename one");
15
+ seen.add(check.name);
16
+ return lowerCheck(check, document, literal);
17
+ });
18
+ }
19
+ function lowerCheck(check, document, literal) {
20
+ const customers = [];
21
+ const bindings = {};
22
+ const steps = [];
23
+ const objects = new Map();
24
+ const remembered = new Set();
25
+ let final = undefined;
26
+ const known = (named, names, what, fix) => {
27
+ const list = [...names];
28
+ if (!list.includes(named.name))
29
+ fail(named, `${what} ${named.name} is not declared.${didYouMean(named.name, list)}`, fix);
30
+ return named.name;
31
+ };
32
+ const customer = (named) => known(named, customers.map((c) => c.id), "customer", `declare customer ${named.name} "Name" before this step`);
33
+ const money = (expr) => {
34
+ if (expr.kind !== "money")
35
+ fail(expr, "expected an amount", "write an amount such as 100 SAR");
36
+ return literal(expr);
37
+ };
38
+ const balanceNames = () => [operator, ...customers.map((c) => c.id)];
39
+ const balanceFix = `name a customer or ${operator}`;
40
+ const balances = (block) => Object.fromEntries(block.entries.map((entry) => [
41
+ known({ name: entry.key, span: entry.span }, balanceNames(), "balance", balanceFix),
42
+ money(entry.value),
43
+ ]));
44
+ const value = (expr) => {
45
+ if (expr.kind === "list")
46
+ return expr.items.map(value);
47
+ if (expr.kind === "block")
48
+ return Object.fromEntries(expr.entries.map((entry) => [entry.key, value(entry.value)]));
49
+ if (expr.kind === "call" && ["agreement", "object"].includes(expr.name)) {
50
+ const [arg] = expr.args;
51
+ if (expr.args.length !== 1 || arg?.kind !== "name")
52
+ fail(expr, `${expr.name} takes one name`, `write ${expr.name}(name)`);
53
+ const name = { name: arg.value, span: arg.span };
54
+ if (expr.name === "agreement")
55
+ known(name, remembered, "agreement", "remember it on an earlier step");
56
+ else
57
+ known(name, objects.keys(), "object", "create it on an earlier step");
58
+ return `$${expr.name}:${arg.value}`;
59
+ }
60
+ return literal(expr);
61
+ };
62
+ const values = (block) => value(block);
63
+ const instruments = (object) => {
64
+ const declared = document.objects.find((o) => o.id === object);
65
+ const ids = new Set(declared.attachments.map((a) => a.instrument));
66
+ return document.instruments.filter((i) => ids.has(i.id));
67
+ };
68
+ for (const statement of check.statements) {
69
+ if (final)
70
+ fail(statement, "expect closes a check", "move this step before expect");
71
+ const expected = statement.balances
72
+ ? { expected: balances(statement.balances) }
73
+ : {};
74
+ switch (statement.kind) {
75
+ case "customer": {
76
+ const { id } = statement;
77
+ if (reserved.has(id.name) || id.name === operator)
78
+ fail(id, `${id.name} cannot name a customer`, "pick another name");
79
+ if (customers.some((c) => c.id === id.name))
80
+ fail(id, `customer ${id.name} is declared twice`, "rename one");
81
+ if (steps.length)
82
+ fail(statement, "customers come before steps", "move it up");
83
+ customers.push({
84
+ id: id.name,
85
+ name: statement.title,
86
+ ...(statement.organization ? { kind: "organization" } : {}),
87
+ ...(statement.fund ? { fund: money(statement.fund) } : {}),
88
+ });
89
+ for (const party of statement.binds) {
90
+ const declared = Object.keys(document.parties);
91
+ known(party, declared, "party", "bind a party the program declares");
92
+ if (party.name in bindings)
93
+ fail(party, `party ${party.name} is bound twice`, "bind it once");
94
+ bindings[party.name] = id.name;
95
+ }
96
+ break;
97
+ }
98
+ case "clock": {
99
+ const at = statement.at;
100
+ if (at.kind !== "date")
101
+ fail(at, "a clock step needs a date", "write clock 2031-04-01");
102
+ const until = statement.until;
103
+ let waitFor;
104
+ if (until) {
105
+ const object = known(until.object, objects.keys(), "object", "create it on an earlier step");
106
+ const kind = objects.get(object);
107
+ const declared = document.objects.find((o) => o.id === kind);
108
+ if (until.attachment)
109
+ known(until.attachment, declared.attachments.map((a) => a.name), `${kind} attachment`, `name an attachment of object ${kind}`);
110
+ known(until.state, instruments(kind).flatMap((i) => i.lifecycle.states), "state", `name a lifecycle state on object ${kind}`);
111
+ waitFor = {
112
+ object,
113
+ ...(until.recordPath ? { recordPath: until.recordPath } : {}),
114
+ state: until.state.name,
115
+ ...(until.attachment ? { attachment: until.attachment.name } : {}),
116
+ };
117
+ }
118
+ steps.push({
119
+ kind: "clock",
120
+ at: literal(at),
121
+ ...(waitFor ? { waitFor } : {}),
122
+ ...expected,
123
+ });
124
+ break;
125
+ }
126
+ case "object": {
127
+ const { id } = statement;
128
+ if (objects.has(id.name))
129
+ fail(id, `object ${id.name} is created twice`, "rename one");
130
+ const kind = known(statement.objectKind, document.objects.map((o) => o.id), "object kind", "name an object the program declares");
131
+ const owner = customer(statement.owner);
132
+ const fieldNames = document.objects
133
+ .find((o) => o.id === kind)
134
+ .fields.map((f) => f.name);
135
+ for (const entry of statement.fields?.entries ?? [])
136
+ known({ name: entry.key, span: entry.span }, fieldNames, `${kind} field`, `name a field of object ${kind}`);
137
+ objects.set(id.name, kind);
138
+ steps.push({
139
+ kind: "object",
140
+ id: id.name,
141
+ objectKind: kind,
142
+ owner,
143
+ ...(statement.fields ? { fields: values(statement.fields) } : {}),
144
+ ...expected,
145
+ });
146
+ break;
147
+ }
148
+ case "action": {
149
+ const object = known(statement.object, objects.keys(), "object", "create it on an earlier step");
150
+ const kind = objects.get(object);
151
+ const exposing = instruments(kind).filter((i) => Object.values(i.actions).some((a) => a.publicAction === statement.action.name));
152
+ known(statement.action, exposing.length
153
+ ? [statement.action.name]
154
+ : instruments(kind).flatMap((i) => Object.values(i.actions).flatMap((a) => a.publicAction ? [a.publicAction] : [])), `${kind} action`, `name an action object ${kind} exposes`);
155
+ const actor = statement.actor && customer(statement.actor);
156
+ if (statement.state)
157
+ known(statement.state, exposing.flatMap((i) => i.lifecycle.states), "state", `name a state ${statement.action.name} can reach`);
158
+ let status;
159
+ if (statement.status) {
160
+ const raw = statement.status;
161
+ status =
162
+ raw.kind === "name" && raw.value === "absent"
163
+ ? "absent"
164
+ : raw.kind === "number" && /^[45]\d\d$/.test(raw.value)
165
+ ? Number(raw.value)
166
+ : fail(raw, "expected a refusal", "write status 409 or absent");
167
+ }
168
+ const instance = statement.instance &&
169
+ known(statement.instance, remembered, "agreement", "remember it on an earlier step");
170
+ const input = statement.input && values(statement.input);
171
+ const fields = statement.fields && values(statement.fields);
172
+ if (statement.remember) {
173
+ if (remembered.has(statement.remember.name))
174
+ fail(statement.remember, "remembered twice", "rename one");
175
+ remembered.add(statement.remember.name);
176
+ }
177
+ steps.push({
178
+ kind: "action",
179
+ object,
180
+ action: statement.action.name,
181
+ ...(actor ? { actor } : {}),
182
+ ...(input ? { input } : {}),
183
+ ...(fields ? { fields } : {}),
184
+ ...(statement.state ? { state: statement.state.name } : {}),
185
+ ...(status !== undefined ? { status } : {}),
186
+ ...(statement.code ? { code: statement.code } : {}),
187
+ ...(statement.remember ? { remember: statement.remember.name } : {}),
188
+ ...(instance ? { instance } : {}),
189
+ ...expected,
190
+ });
191
+ break;
192
+ }
193
+ case "close":
194
+ steps.push({
195
+ kind: "close",
196
+ customer: customer(statement.customer),
197
+ ...expected,
198
+ });
199
+ break;
200
+ case "expect": {
201
+ if (!steps.length)
202
+ fail(statement, "a check needs a step", "add a step before expect");
203
+ if (!statement.balances)
204
+ fail(statement, "expect needs balances", "write expect balances { }");
205
+ final = {
206
+ expected: balances(statement.balances),
207
+ ...(statement.held ? { expectedHeld: money(statement.held) } : {}),
208
+ ...(statement.pending
209
+ ? {
210
+ pending: Object.fromEntries(statement.pending.entries.map((entry) => {
211
+ const name = { name: entry.key, span: entry.span };
212
+ if (entry.value.kind !== "block")
213
+ fail(entry, "expected balances", "write name { }");
214
+ const fields = entry.value.entries.map((field) => [
215
+ field.key,
216
+ money(field.value),
217
+ ]);
218
+ return [
219
+ known(name, balanceNames(), "balance", balanceFix),
220
+ Object.fromEntries(fields),
221
+ ];
222
+ })),
223
+ }
224
+ : {}),
225
+ };
226
+ break;
227
+ }
228
+ }
229
+ }
230
+ if (!final)
231
+ fail(check, "a check ends with expect", "write expect balances { }");
232
+ return {
233
+ name: check.name,
234
+ customers,
235
+ ...(Object.keys(bindings).length ? { bindings } : {}),
236
+ steps,
237
+ ...final,
238
+ };
239
+ }
240
+ //# sourceMappingURL=checks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checks.js","sourceRoot":"","sources":["../../src/checks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,EAAE;IACjB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AACD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAiF7E"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,EAAE;IACjB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AACD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuE7E"}
package/dist/src/cli.js CHANGED
@@ -1,20 +1,10 @@
1
- import { existsSync, readFileSync } from "node:fs";
2
1
  import { readFile, writeFile } from "node:fs/promises";
3
2
  import { headerManifest } from "./headers.js";
4
3
  import { compile } from "./compile.js";
5
4
  import { format } from "./format.js";
6
- import { serializeUdl, UDL_FORMAT_VERSION } from "@hyperscale0/udl";
5
+ import { serializeUdl } from "@hyperscale0/udl";
6
+ import { defaultToolchain } from "./toolchain.js";
7
7
  const usage = "hsx build|format|cost <file> [--out path]\nhsx check <file>\nhsx headers --json";
8
- const standardLibrary = {
9
- source: (header) => {
10
- for (const base of ["../std/", "../../std/"]) {
11
- const file = new URL(`${base}${header}.hsx`, import.meta.url);
12
- if (existsSync(file))
13
- return readFileSync(file, "utf8");
14
- }
15
- return undefined;
16
- },
17
- };
18
8
  export async function runCli(argv, io) {
19
9
  const [command, file, ...options] = argv;
20
10
  if (command === "headers") {
@@ -22,7 +12,7 @@ export async function runCli(argv, io) {
22
12
  io.err("usage: hsx headers --json");
23
13
  return 2;
24
14
  }
25
- io.out(JSON.stringify(headerManifest(standardLibrary), null, 2));
15
+ io.out(JSON.stringify(headerManifest(), null, 2));
26
16
  return 0;
27
17
  }
28
18
  if (["--help", "help", "-h"].includes(command ?? "")) {
@@ -30,17 +20,8 @@ export async function runCli(argv, io) {
30
20
  return 0;
31
21
  }
32
22
  if (command === "--version") {
33
- // src/cli.ts in a checkout, dist/src/cli.js in the published package.
34
- for (const base of ["../", "../../"]) {
35
- const manifest = new URL(`${base}package.json`, import.meta.url);
36
- if (!existsSync(manifest))
37
- continue;
38
- const { version } = JSON.parse(readFileSync(manifest, "utf8"));
39
- io.out(`${version} (UDL ${UDL_FORMAT_VERSION})`);
40
- return 0;
41
- }
42
- io.err("hsx: package.json not found");
43
- return 1;
23
+ io.out(`${defaultToolchain.hsx} (UDL ${defaultToolchain.udl})`);
24
+ return 0;
44
25
  }
45
26
  if (!command ||
46
27
  !file ||
@@ -73,7 +54,7 @@ export async function runCli(argv, io) {
73
54
  text = result.formatted;
74
55
  }
75
56
  else {
76
- const result = compile(source, { standardLibrary });
57
+ const result = compile(source, defaultToolchain);
77
58
  for (const d of [...result.diagnostics, ...result.warnings])
78
59
  io.err(`${d.source && d.source !== "program" ? d.source : file}:${d.line}:${d.column}: ${d.severity === "warning" ? "warning " : ""}${d.code} ${d.message.replace(/[^.?!]$/, "$&.")} ${d.fix}`);
79
60
  if (!result.artifacts || result.verdict !== "valid")
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACpE,MAAM,KAAK,GACT,iFAAiF,CAAC;AACpF,MAAM,eAAe,GAAG;IACtB,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE;QACzB,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,MAAM,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,IAAI,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAC;AAQF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAuB,EAAE,EAAM;IAC1D,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACxC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACrD,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACd,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,sEAAsE;QACtE,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,cAAc,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACpC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAE5D,CAAC;YACF,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,SAAS,kBAAkB,GAAG,CAAC,CAAC;YACjD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,EAAE,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IACE,CAAC,OAAO;QACR,CAAC,IAAI;QACL,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EACvD,CAAC;QACD,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAA0B,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IACE,OAAO,KAAK,OAAO;YACnB,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO;YACtB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YACjC,MAAM,KAAK,SAAS;YAEpB,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;aACnB,CAAC;YACJ,EAAE,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,IAAY,CAAC;QACjB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACnE,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;YACpD,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACzD,EAAE,CAAC,GAAG,CACJ,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CACxL,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;gBAAE,OAAO,CAAC,CAAC;YAC9D,IAAI,OAAO,KAAK,OAAO;gBAAE,OAAO,CAAC,CAAC;YAClC,IAAI;gBACF,OAAO,KAAK,MAAM;oBAChB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;oBAC/D,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,MAAM;YAAE,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;YACxC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,IAAI,OAAO,IAAI,CAAC,IAAI;IAClB,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACrD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAChD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAChD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAC1C,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;KACzD,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { type UdlCostManifest } from "./cost.ts";
2
2
  import { type UdlDocument } from "@hyperscale0/udl";
3
+ import { type CompiledCheck } from "./checks.ts";
3
4
  import { type Diagnostic, type Span } from "./ast.ts";
4
- import { type StandardLibrary } from "./std-library.ts";
5
- import type { ProviderAdapter } from "@hyperscale0/adl";
5
+ import { type Toolchain } from "./toolchain.ts";
6
6
  export interface CompileDiagnostic extends Diagnostic {
7
7
  line: number;
8
8
  column: number;
@@ -12,25 +12,36 @@ export interface CompileDiagnostic extends Diagnostic {
12
12
  severity: "error";
13
13
  stage: "parse" | "check" | "lower";
14
14
  }
15
+ /** A std header parameter's value in force on one instrument, and who set it. */
16
+ export interface CompileTerm {
17
+ name: string;
18
+ /** program: the author bound it. party: a party of the same name bound it. std: the header's default. */
19
+ from: "program" | "party" | "std";
20
+ /** The value as written, or "unset" for an optional parameter nothing set. */
21
+ text: string;
22
+ /** "program", or the header that holds the default. */
23
+ source: string;
24
+ line: number;
25
+ column: number;
26
+ }
27
+ /** One std term on one instrument, set as another compile had it. */
28
+ export type CompileTermOverride = Pick<CompileTerm, "name" | "from" | "text"> & {
29
+ instrument: string;
30
+ };
15
31
  export interface CompileOriginMapEntry {
16
32
  path: string;
17
33
  span: Span & {
18
34
  line: number;
19
35
  column: number;
20
36
  };
37
+ /** The std declaration an instrument lowers from, by its declaration digest. */
21
38
  standardBlock?: {
22
39
  key: string;
23
40
  recordPath: string;
24
- headerDigest: string;
41
+ digest: string;
25
42
  };
26
- }
27
- export interface AdapterBindingTarget {
28
- adapter: ProviderAdapter;
29
- operation: string;
30
- }
31
- export interface CompileOptions {
32
- standardLibrary?: StandardLibrary;
33
- adapterRegistry?: Readonly<Record<string, AdapterBindingTarget>>;
43
+ /** One row per header parameter of a std instrument. */
44
+ terms?: CompileTerm[];
34
45
  }
35
46
  export interface CompileWarning extends Omit<CompileDiagnostic, "severity"> {
36
47
  severity: "warning";
@@ -44,7 +55,13 @@ export interface CompileResult {
44
55
  document: UdlDocument;
45
56
  costManifest: UdlCostManifest;
46
57
  originMap: CompileOriginMapEntry[];
58
+ /** `check` blocks, beside the document and never inside it. */
59
+ checks: CompiledCheck[];
47
60
  };
48
61
  }
49
- export declare function compile(source: string, options?: CompileOptions): CompileResult;
62
+ /**
63
+ * An override compiles the program as if one std term held other text, so a
64
+ * plan can see what that term alone moves.
65
+ */
66
+ export declare function compile(source: string, toolchain?: Toolchain, override?: CompileTermOverride): CompileResult;
50
67
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAOA,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAkBL,KAAK,WAAW,EAQjB,MAAM,kBAAkB,CAAC;AAe1B,OAAO,EAIL,KAAK,UAAU,EAKf,KAAK,IAAI,EACV,MAAM,UAAU,CAAC;AAClB,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACpC;AACD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,aAAa,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AACD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;CAClE;AACD,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACzE,QAAQ,EAAE,SAAS,CAAC;CACrB;AACD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,iFAAiF;IACjF,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE;QACV,QAAQ,EAAE,WAAW,CAAC;QACtB,YAAY,EAAE,eAAe,CAAC;QAC9B,SAAS,EAAE,qBAAqB,EAAE,CAAC;KACpC,CAAC;CACH;AAuWD,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAizIf"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAQA,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAqBL,KAAK,WAAW,EAQjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAS9D,OAAO,EAIL,KAAK,UAAU,EAKf,KAAK,IAAI,EACV,MAAM,UAAU,CAAC;AAClB,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACpC;AACD,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,yGAAyG;IACzG,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IAClC,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,WAAW,EACX,MAAM,GAAG,MAAM,GAAG,MAAM,CACzB,GAAG;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,gFAAgF;IAChF,aAAa,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,wDAAwD;IACxD,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;CACvB;AAWD,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACzE,QAAQ,EAAE,SAAS,CAAC;CACrB;AACD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,iFAAiF;IACjF,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE;QACV,QAAQ,EAAE,WAAW,CAAC;QACtB,YAAY,EAAE,eAAe,CAAC;QAC9B,SAAS,EAAE,qBAAqB,EAAE,CAAC;QACnC,+DAA+D;QAC/D,MAAM,EAAE,aAAa,EAAE,CAAC;KACzB,CAAC;CACH;AAqYD;;;GAGG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,SAA4B,EACvC,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,aAAa,CAm4If"}