@hyperscale0/hsx 1.0.341 → 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
@@ -1 +1 @@
1
- {"version":3,"file":"std-bundle.js","sourceRoot":"","sources":["../../src/std-bundle.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAgC,IAAI,GAAG,CAAiB;IACpF,CAAC,aAAa,EAAE,m7LAAm7L,CAAC;IACp8L,CAAC,WAAW,EAAE,6wMAA6wM,CAAC;IAC5xM,CAAC,iBAAiB,EAAE,6nNAA6nN,CAAC;IAClpN,CAAC,YAAY,EAAE,mkOAAmkO,CAAC;IACnlO,CAAC,eAAe,EAAE,k+8FAAk+8F,CAAC;IACr/8F,CAAC,eAAe,EAAE,4zOAA4zO,CAAC;IAC/0O,CAAC,aAAa,EAAE,0sVAA0sV,CAAC;IAC3tV,CAAC,iBAAiB,EAAE,ggTAAggT,CAAC;IACrhT,CAAC,WAAW,EAAE,o9sBAAo9sB,CAAC;IACn+sB,CAAC,cAAc,EAAE,svJAAsvJ,CAAC;IACxwJ,CAAC,YAAY,EAAE,y1HAAy1H,CAAC;IACz2H,CAAC,eAAe,EAAE,ok1BAAok1B,CAAC;IACvl1B,CAAC,aAAa,EAAE,4hKAA4hK,CAAC;IAC7iK,CAAC,YAAY,EAAE,u8HAAu8H,CAAC;CACx9H,CAAC,CAAC"}
1
+ {"version":3,"file":"std-bundle.js","sourceRoot":"","sources":["../../src/std-bundle.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAgC,IAAI,GAAG,CAAiB;IACtF,CAAC,SAAS,EAAE,urNAAurN,CAAC;IACpsN,CAAC,OAAO,EAAE,6wMAA6wM,CAAC;IACxxM,CAAC,aAAa,EAAE,+lOAA+lO,CAAC;IAChnO,CAAC,QAAQ,EAAE,mkOAAmkO,CAAC;IAC/kO,CAAC,WAAW,EAAE,6j9FAA6j9F,CAAC;IAC5k9F,CAAC,WAAW,EAAE,4zOAA4zO,CAAC;IAC30O,CAAC,SAAS,EAAE,0sVAA0sV,CAAC;IACvtV,CAAC,aAAa,EAAE,ggTAAggT,CAAC;IACjhT,CAAC,OAAO,EAAE,u8sBAAu8sB,CAAC;IACl9sB,CAAC,UAAU,EAAE,svJAAsvJ,CAAC;IACpwJ,CAAC,QAAQ,EAAE,y1HAAy1H,CAAC;IACr2H,CAAC,WAAW,EAAE,6k2BAA6k2B,CAAC;IAC5l2B,CAAC,SAAS,EAAE,4hKAA4hK,CAAC;IACziK,CAAC,QAAQ,EAAE,u8HAAu8H,CAAC;CACp9H,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
- import { type CompileOptions } from "./compile.ts";
2
- import { type StandardLibrary } from "./std-library.ts";
1
+ import { type Toolchain } from "./toolchain.ts";
3
2
  export interface TemplateIndexEntry {
4
3
  qualifiedName: string;
5
4
  summary: string;
@@ -21,7 +20,6 @@ export interface TemplateGuide {
21
20
  qualifiedName: string;
22
21
  summary: string;
23
22
  signature: string;
24
- use: string;
25
23
  states: string[];
26
24
  tunables: Array<{
27
25
  name: string;
@@ -43,15 +41,11 @@ export interface TemplateGuide {
43
41
  notes: string[];
44
42
  }
45
43
  /** One line per template, small enough to read whole. */
46
- export declare function templateIndex(library?: StandardLibrary): TemplateIndexEntry[];
44
+ export declare function templateIndex(toolchain?: Toolchain): TemplateIndexEntry[];
47
45
  /**
48
46
  * Everything an author needs for one template, spelled from its std
49
47
  * declaration and proved by compiling its example. Undefined when the
50
48
  * catalog has no such template.
51
49
  */
52
- export declare function templateGuide(qualifiedName: string, options?: GuideOptions): TemplateGuide | undefined;
53
- type GuideOptions = Pick<CompileOptions, "adapterRegistry"> & {
54
- library?: StandardLibrary;
55
- };
56
- export {};
50
+ export declare function templateGuide(qualifiedName: string, toolchain?: Toolchain): TemplateGuide | undefined;
57
51
  //# sourceMappingURL=template-guide.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-guide.d.ts","sourceRoot":"","sources":["../../src/template-guide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAI5D,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAiBD,yDAAyD;AACzD,wBAAgB,aAAa,CAC3B,OAAO,GAAE,eAAwC,GAChD,kBAAkB,EAAE,CAQtB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,YAAiB,GACzB,aAAa,GAAG,SAAS,CA6E3B;AAubD,KAAK,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG;IAC5D,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"template-guide.d.ts","sourceRoot":"","sources":["../../src/template-guide.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAiBD,yDAAyD;AACzD,wBAAgB,aAAa,CAC3B,SAAS,GAAE,SAA4B,GACtC,kBAAkB,EAAE,CAQtB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,SAAS,GAAE,SAA4B,GACtC,aAAa,GAAG,SAAS,CA2E3B"}
@@ -3,7 +3,7 @@ import { compile } from "./compile.js";
3
3
  import { parseHeader } from "./header-source.js";
4
4
  import { headerManifest, HEADER_NAMES } from "./headers.js";
5
5
  import { parseProgram } from "./parse.js";
6
- import { bundledStandardLibrary } from "./std-library.js";
6
+ import { defaultToolchain } from "./toolchain.js";
7
7
  // How to read runBy, the same for every template.
8
8
  const RUN_BY_NOTE = "runBy names who runs each action: a party is whoever the attach binds to it (owner, actor, operator or a declared business), clock is the platform when the action falls due, parent runs only inside its parent record's action, and caller is anyone the exposed action admits.";
9
9
  /**
@@ -15,8 +15,8 @@ function economicsNote(lines) {
15
15
  }
16
16
  const SUBJECT_NOTE = "subject names fields the attached object must carry, or rename to with rename { field: yourField }, before the actions that read them can run.";
17
17
  /** One line per template, small enough to read whole. */
18
- export function templateIndex(library = bundledStandardLibrary) {
19
- return headerManifest(library).headers.flatMap((header) => header.objects.map((object) => ({
18
+ export function templateIndex(toolchain = defaultToolchain) {
19
+ return headerManifest(toolchain.std).headers.flatMap((header) => header.objects.map((object) => ({
20
20
  qualifiedName: object.qualifiedName,
21
21
  summary: object.summary,
22
22
  parties: object.parties,
@@ -27,17 +27,18 @@ export function templateIndex(library = bundledStandardLibrary) {
27
27
  * declaration and proved by compiling its example. Undefined when the
28
28
  * catalog has no such template.
29
29
  */
30
- export function templateGuide(qualifiedName, options = {}) {
31
- const library = options.library ?? bundledStandardLibrary;
30
+ export function templateGuide(qualifiedName, toolchain = defaultToolchain) {
32
31
  const [header, name, extra] = qualifiedName.split(".");
33
32
  if (!header || !name || extra !== undefined)
34
33
  return undefined;
35
34
  if (!HEADER_NAMES.includes(header))
36
35
  return undefined;
37
- const source = library.source(header);
36
+ const source = toolchain.std.get(header);
38
37
  if (!source)
39
38
  return undefined;
40
- const manifest = headerManifest(library, [header]).headers[0].objects.find((object) => object.name === name);
39
+ const manifest = headerManifest(toolchain.std, [
40
+ header,
41
+ ]).headers[0].objects.find((object) => object.name === name);
41
42
  const decl = parseHeader(source, header).decls.find((d) => d.kind === "instrument" && d.name === name);
42
43
  if (!manifest || !decl)
43
44
  return undefined;
@@ -48,15 +49,15 @@ export function templateGuide(qualifiedName, options = {}) {
48
49
  const actions = guideActions(decl.body, spell);
49
50
  // Compile once bare, then expose each root action a party or caller runs
50
51
  // that these bindings keep, and compile again to prove the example.
51
- const example = exampleProgram(qualifiedName, library);
52
- const bare = compiledAttachment(example.render([]), example.attachment, options);
52
+ const example = exampleProgram(qualifiedName, toolchain);
53
+ const bare = compiledAttachment(example.render([]), example.attachment, toolchain);
53
54
  const exposes = actions
54
55
  .filter((action) => !action.name.includes(".") &&
55
56
  !["clock", "parent"].includes(action.runBy) &&
56
57
  bare.actions[action.name])
57
58
  .map((action) => `expose ${action.name}`);
58
59
  const program = example.render(exposes);
59
- const compiled = compiledAttachment(program, example.attachment, options);
60
+ const compiled = compiledAttachment(program, example.attachment, toolchain);
60
61
  const create = compiled.actions.create;
61
62
  const economics = compiled.warnings.flatMap((warning) => warning.code === "economic_purpose_missing" &&
62
63
  warning.message.startsWith(`${example.attachment}: `)
@@ -66,7 +67,6 @@ export function templateGuide(qualifiedName, options = {}) {
66
67
  qualifiedName,
67
68
  summary: manifest.summary,
68
69
  signature: manifest.signature,
69
- use: `use ${header}`,
70
70
  states: manifest.states,
71
71
  tunables: manifest.tunables.map((tunable) => ({
72
72
  name: tunable.name,
@@ -330,9 +330,9 @@ function fieldValue(entry, spell) {
330
330
  }
331
331
  /**
332
332
  * The template's attach from the catalog program, with every attach it names
333
- * and the parties and headers those need.
333
+ * and the parties those need.
334
334
  */
335
- function exampleProgram(qualifiedName, library) {
335
+ function exampleProgram(qualifiedName, toolchain) {
336
336
  const program = parseProgram(catalogProgramSource).program;
337
337
  const object = program.decls.find((decl) => decl.kind === "object");
338
338
  if (object?.kind !== "object")
@@ -344,7 +344,6 @@ function exampleProgram(qualifiedName, library) {
344
344
  {
345
345
  entry,
346
346
  name: match[1],
347
- header: match[2],
348
347
  template: `${match[2]}.${match[3]}`,
349
348
  },
350
349
  ]
@@ -364,7 +363,7 @@ function exampleProgram(qualifiedName, library) {
364
363
  };
365
364
  // A parameter that defaults to object(header.template) binds the sibling
366
365
  // attach of that template, so the example carries that attach too.
367
- const templates = new Map(headerManifest(library).headers.flatMap((header) => header.objects.map((object) => [object.qualifiedName, object])));
366
+ const templates = new Map(headerManifest(toolchain.std).headers.flatMap((header) => header.objects.map((object) => [object.qualifiedName, object])));
368
367
  const siblings = (template) => (templates.get(template)?.tunables ?? []).flatMap((tunable) => {
369
368
  const match = tunable.default?.match(/^object\((\w+\.\w+)\)$/);
370
369
  const sibling = match
@@ -390,7 +389,6 @@ function exampleProgram(qualifiedName, library) {
390
389
  attachment: target.name,
391
390
  render: (exposes) => [
392
391
  `program example "${qualifiedName} example"`,
393
- ...new Set(included.map((attach) => `use ${attach.header}`)),
394
392
  ...program.decls.flatMap((decl) => decl.kind === "party" && used.has(decl.name) ? [text(decl.span)] : []),
395
393
  `object item "Item" {`,
396
394
  ...included.map((attach) => {
@@ -435,13 +433,8 @@ function wrapAttach(line) {
435
433
  ].join("\n");
436
434
  }
437
435
  /** The example's compiled root instrument, or the compiler's refusal. */
438
- function compiledAttachment(source, attachment, options) {
439
- const result = compile(source, {
440
- ...(options.library ? { standardLibrary: options.library } : {}),
441
- ...(options.adapterRegistry
442
- ? { adapterRegistry: options.adapterRegistry }
443
- : {}),
444
- });
436
+ function compiledAttachment(source, attachment, toolchain) {
437
+ const result = compile(source, toolchain);
445
438
  const document = result.artifacts?.document;
446
439
  if (!document)
447
440
  throw new Error(`${attachment} example does not compile: ${result.diagnostics.map((d) => d.message).join("; ")}`);
@@ -1 +1 @@
1
- {"version":3,"file":"template-guide.js","sourceRoot":"","sources":["../../src/template-guide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-guide.js","sourceRoot":"","sources":["../../src/template-guide.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { ProviderAdapter } from "@hyperscale0/adl";
2
+ export interface AdapterBindingTarget {
3
+ adapter: ProviderAdapter;
4
+ operation: string;
5
+ }
6
+ /**
7
+ * Every input a compile reads besides the source, named by one digest. The
8
+ * same source under the same toolchain lowers to the same document anywhere.
9
+ */
10
+ export interface Toolchain {
11
+ /** Header source by name, such as `money` for std/money.hsx. */
12
+ readonly std: ReadonlyMap<string, string>;
13
+ /** The boundary bindings a program may name, keyed by binding. */
14
+ readonly adapters: Readonly<Record<string, AdapterBindingTarget>>;
15
+ readonly udl: number;
16
+ readonly hsx: string;
17
+ readonly prover: string;
18
+ readonly digest: string;
19
+ }
20
+ export declare function toolchain(input: Omit<Toolchain, "digest">): Toolchain;
21
+ /** The only toolchain production compiles with. */
22
+ export declare const defaultToolchain: Toolchain;
23
+ //# sourceMappingURL=toolchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolchain.d.ts","sourceRoot":"","sources":["../../src/toolchain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,gEAAgE;IAChE,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,SAAS,CAgBrE;AAED,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,WAM3B,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { digest, UDL_FORMAT_VERSION } from "@hyperscale0/udl";
2
+ import { boundaryAdapters } from "@hyperscale0/adl/boundary-adapters";
3
+ import { BUNDLED_STD_HEADERS, HSX_VERSION } from "./std-bundle.js";
4
+ export function toolchain(input) {
5
+ const { std, adapters, udl, hsx, prover } = input;
6
+ return {
7
+ std,
8
+ adapters,
9
+ udl,
10
+ hsx,
11
+ prover,
12
+ digest: digest({
13
+ std: Object.fromEntries(std),
14
+ adapters,
15
+ udl,
16
+ hsx,
17
+ prover,
18
+ }),
19
+ };
20
+ }
21
+ /** The only toolchain production compiles with. */
22
+ export const defaultToolchain = toolchain({
23
+ std: BUNDLED_STD_HEADERS,
24
+ adapters: boundaryAdapters,
25
+ udl: UDL_FORMAT_VERSION,
26
+ hsx: HSX_VERSION,
27
+ prover: `udl-${UDL_FORMAT_VERSION}-laws`,
28
+ });
29
+ //# sourceMappingURL=toolchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../../src/toolchain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAsBnE,MAAM,UAAU,SAAS,CAAC,KAAgC;IACxD,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAClD,OAAO;QACL,GAAG;QACH,QAAQ;QACR,GAAG;QACH,GAAG;QACH,MAAM;QACN,MAAM,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;YAC5B,QAAQ;YACR,GAAG;YACH,GAAG;YACH,MAAM;SACP,CAAC;KACH,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;IACxC,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,gBAAgB;IAC1B,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,WAAW;IAChB,MAAM,EAAE,OAAO,kBAAkB,OAAO;CACzC,CAAC,CAAC"}
package/docs/README.md CHANGED
@@ -15,7 +15,6 @@ The package supplies the `hsx` executable. Save this as `lesson.hsx`:
15
15
 
16
16
  ```hsx
17
17
  program tutoring "Tutoring studio"
18
- use money
19
18
  object lesson "Lesson" {
20
19
  fields { student: text }
21
20
  columns: [student]
@@ -65,7 +64,7 @@ the one-hire limit. The operator records pickup, return and damage.
65
64
  Open [rental-deposit.hsx](../examples/rental-deposit.hsx). It is a complete source
66
65
  file for a customer renting equipment from the program operator. Copy it to
67
66
  `rental.hsx` and run the same check, build and cost commands against that file.
68
- No header import is needed because it declares its own instrument.
67
+ It names no header because it declares its own instrument.
69
68
 
70
69
  The terms are a 1,000 SAR deposit and one late charge of 50 SAR plus 15% VAT,
71
70
  which is 7.50 SAR. The record's `startsAt` and `dueAt` timestamps reach the
@@ -97,8 +96,8 @@ can belong to a different customer without a fixed business binding. A
97
96
  parameterized program instrument exists only through its attachments. A `fee` on
98
97
  a move of an action input, such as `moves input.amount from holder to self.held
99
98
  fee { seller: 1% }`, is calculated when that action runs. Reusable custom headers
100
- require a host-supplied `StandardLibrary`; `use` cannot load a local file through
101
- this CLI.
99
+ require a host-supplied `Toolchain`; a qualified name cannot load a local file
100
+ through this CLI.
102
101
 
103
102
  Inspect `objects` in the compiled UDL for the attachment and public names, then
104
103
  its instrument for fields, transitions, actors, requirements and ordered moves.
@@ -181,7 +180,10 @@ rejected as tunable types. A default selector such as `payer: party = party(pers
181
180
  is different: its type is plain `party`, and the call chooses a default binding.
182
181
  Use explicit `payer: owner` or `payer: actor` bindings when the participant comes
183
182
  from the object or session.
184
- Imports are `use header`; there are no file imports, macros or executable strings.
183
+ A qualified name such as `booking.reservation` loads its standard header the first time the
184
+ compiler reaches it, so a program has no import lines. An unknown header fails with a
185
+ suggestion from the published header names. There are no file imports, macros or executable
186
+ strings.
185
187
 
186
188
  ## Values and money
187
189
 
@@ -196,8 +198,9 @@ the last instalment, as a standard amortization table does.
196
198
  Tax binds `programTax`. Fees go to `programOperator`. Fine, recovery and
197
199
  residual destinations are party tunables.
198
200
 
199
- Attached actions are private unless the attachment exposes them with
200
- `expose fund as sell`. Exposure grants no authority. Clock and parent actions
201
+ Every action is private until an `expose` line names it: `expose fund as sell`
202
+ inside an attachment, or `expose record.pay as pay_record` at program level for
203
+ an attachment path or an authored `instrument`. Exposure grants no authority. Clock and parent actions
201
204
  remain executor-owned. Instruments have no standalone create route: an
202
205
  attachment exposes its create action by name (`expose create as finance`) or
203
206
  keeps it internal. Callers create objects and run their attached actions.
@@ -329,44 +332,82 @@ invoked after payment. Clock and parent actions have no public API name.
329
332
 
330
333
  `integer(1, 366)` declares an inclusive tunable bound, and `integer(1, 366)?`
331
334
  keeps the bound on a tunable the author may leave unset. The compiler-owned manifest
332
- publishes enum values, numeric minima and maxima, and cross-tunable constraints.
335
+ publishes enum values, numeric minima and maxima, and each header check.
333
336
  Bounds use minor units for money, basis points for percentages and milliseconds
334
337
  for durations. Money spans 0 through 999999999999999999 minor units; percentages
335
338
  span 0 through 10000 basis points. Durations start at 1 millisecond. Integers
336
- default to 0 through 9007199254740991 unless their declaration narrows the range. For example, `constraints { contact_from: less_than(contact_until) }`
337
- requires a valid hours interval. `at_most` and `greater_than` are also supported.
339
+ default to 0 through 9007199254740991 unless their declaration narrows the range.
338
340
  A refusal names the tunable. Empty `all(type)` selections lower to zero aggregates
339
341
  or no invocations, so a plan does not require a late-charge object.
340
342
 
341
- Headers can declare conditional bindings and parameter policy diagnostics:
343
+ A header states the rules its tunables must pass in one `checks` block. Each rule
344
+ carries its own message and fix:
342
345
 
343
346
  ```hsx
344
- dependencies {
345
- funds {
346
- selector: destination, is: held
347
- message: "Attachment `{attachment}` needs a funds binding."
348
- fix: "Bind funds to a hold attachment."
347
+ checks {
348
+ late_from < early_until {
349
+ message: "Attachment `{attachment}` opens the late window before the early one closes."
350
+ fix: "Choose a `late_from` shorter than `early_until`."
349
351
  }
350
- }
351
- parameterDiagnostics {
352
- amount {
353
- accepts: "a fixed amount"
354
- percentage: "a percentage-based charge"
352
+ first + second <= limit { message: "...", fix: "..." }
353
+ funds is set when destination is held { message: "...", fix: "..." }
354
+ fee is money {
355
+ message: "`{instrument}.fee` accepts a fixed amount. It cannot express a percentage-based charge."
355
356
  fix: "Author a rate calculation when the policy varies with a base amount."
356
357
  }
357
358
  }
358
359
  ```
359
360
 
360
- Each dependency names a declared tunable, an enum selector and one of its choices,
361
- or an optional selector and `set` or `unset`: `money.schedule` needs `count` when
362
- `every` is unset.
363
- The compiler checks selected dependencies before lowering and the manifest retains
364
- them. `{attachment}` in the message expands to the authored attachment name.
365
- Parameter diagnostics name a declared tunable and explain its accepted value,
366
- unsupported percentage semantics and repair. They do not change the tunable type.
361
+ A comparison uses the operators of `requires` and may add tunables with `+`.
362
+ `x is set` requires a binding, and `when s is c` scopes a rule to an enum choice,
363
+ or to `set` or `unset` of an optional tunable: `money.schedule` needs `count` when
364
+ `every` is unset. `x is <its type>` gives the words for the tunable's type rule,
365
+ such as a percentage where the header takes an amount. An operand bound to
366
+ `runtime` is checked when the agreement is created. The compiler runs every check
367
+ and every type rule of an attachment and returns each failure, so one draft shows
368
+ every broken rule at once. `{attachment}` expands to the authored attachment name
369
+ and `{instrument}` to the header instrument. `ceilings` stays separate, since it
370
+ supplies a value when the tunable is unset. The manifest lists each check as written.
371
+
372
+ A tunable given twice with the same value merges; given twice with different
373
+ values, the compiler names both sites and both values:
374
+ `late_forfeit is set twice with different values: 50% at 7:5 and 40% at 9:5`.
375
+ Every repeated declaration, `expose` or `rename` names both sites the same way.
376
+
367
377
  UDL refusals retain their UDL codes. A terminal-money refusal includes the owned
368
378
  account and the prover's action path in related diagnostic information.
369
379
 
380
+ ## Checks
381
+
382
+ A `check` block states one story and where the money ends. Append it to
383
+ `lesson.hsx`:
384
+
385
+ ```hsx
386
+ check "A booked lesson pays the studio" {
387
+ customer sara "Sara Ali" funded 150 SAR
388
+ object lesson: lesson for sara { student: "Sara" }
389
+ sara lesson.book_lesson -> pending
390
+ sara lesson.pay_for_lesson -> paid balances { sara: 0 SAR, operator: 150 SAR }
391
+ sara lesson.pay_for_lesson -> status 409 "state_conflict"
392
+ expect balances { sara: 0 SAR, operator: 150 SAR }
393
+ }
394
+ ```
395
+
396
+ `customer` declares a funded or empty balance; `organization` makes it a
397
+ business and `binds party` binds it to a declared party. `object` creates a
398
+ record for an owner. Each action line names the caller, the exposed action and
399
+ either the state it reaches or the refusal it expects. `-> status absent`
400
+ expects the action to be missing. `clock <date>` moves time, optionally
401
+ `until` a record reaches a state, and `close` closes a customer's account.
402
+ `balances` after a step and `expect balances` at the end compare settled
403
+ amounts; `held` compares money left in agreement accounts.
404
+
405
+ The compiler checks every name against the program and emits the stories in
406
+ `artifacts.checks`, outside the canonical document. Adding or editing a check
407
+ leaves the UDL bytes and `documentDigest` unchanged. An executor that reads
408
+ UDL alone ignores them; Hyperscale runs them before promotion and on every
409
+ deploy.
410
+
370
411
  ## Instruction cost
371
412
 
372
413
  `hsx cost company.hsx` reports `transfers`, `accounts` and `invocations` per
@@ -1,7 +1,6 @@
1
1
  // Riyadh camera shop holds a 1,000 SAR deposit on each rental and charges 50 SAR
2
2
  // for each day a camera comes back late, after one day of grace, up to 300 SAR.
3
3
  program camera_rentals "Camera rentals"
4
- use money
5
4
 
6
5
  // The customer owns the rental and pays both the deposit and any late fee.
7
6
  // The shop is payee, so its own session keeps a damaged camera's deposit with
@@ -1,7 +1,6 @@
1
1
  // Boston catering cards lets staff reserve supplier purchases up to 5,000 SAR each.
2
2
  // Supplier cancellation releases the reservation; captured purchases support a full refund or a reviewed dispute.
3
3
  program team_expense_cards "Boston catering cards"
4
- use cards
5
4
  party supplier: business
6
5
 
7
6
  // Bind supplier to the food wholesaler. Staff customers own their card records.
@@ -1,8 +1,6 @@
1
1
  // Portland cafe equipment finance lends 24,000 SAR over 12 months and refers debt seven days overdue.
2
2
  // Its agency earns 10% of each recovery from the lender, with at most four contacts per 30 days.
3
3
  program business_collections "Portland cafe equipment finance"
4
- use collections
5
- use financing
6
4
  party agency: business
7
5
 
8
6
  // Bind agency to the collector. The cafe owns the facility. Set price to
@@ -1,7 +1,6 @@
1
1
  // Seattle used laptops holds a buyer's 2,300 SAR until the laptop arrives and passes inspection.
2
2
  // Delivery has seven days; the buyer has 48 hours to accept or dispute before the operator reviews the sale.
3
3
  program used_device_sales "Seattle used laptops"
4
- use escrow
5
4
  party seller: business
6
5
 
7
6
  // Bind seller to the refurbisher. Set price to the agreed gross invoice, for
@@ -1,7 +1,6 @@
1
1
  // Boston language academy finance pays 6,900 SAR tuition to the academy at enrolment.
2
2
  // The student repays three monthly instalments of 2,300 SAR with no financing profit or late fee.
3
3
  program tuition_instalments "Boston language academy finance"
4
- use financing
5
4
  party academy: business
6
5
 
7
6
  // Bind academy to the training business. Its 6,000 SAR course plus 15% VAT
@@ -1,8 +1,6 @@
1
1
  // Portland device cover sells a 1,725 SAR tablet and a 115 SAR annual protection period.
2
2
  // The retailer keeps 10% of each premium; cancelled future periods reverse that commission and the insurer's portion.
3
3
  program device_insurance "Portland device cover"
4
- use insurance
5
- use money
6
4
 
7
5
  // The retailer invoices the tablet at 1,500 SAR plus 15% VAT outside
8
6
  // money.transfer. Purchase fee: 0%. The transfer pays the gross 1,725 SAR.
@@ -1,9 +1,6 @@
1
1
  // Bristol bakery funding raises 30,000 SAR for ovens from investors who commit at least 1,000 SAR each.
2
2
  // An unclosed round refunds its wallets at expiry; funded loans distribute repayments or record investor losses.
3
3
  program community_business_lending "Bristol bakery funding"
4
- use lending
5
- use financing
6
- use wallet
7
4
 
8
5
  // Set price to 30,000 SAR. The bakery owns the record; investors act as actor.
9
6
  // Company fee: 5% of collected profit, with 15% VAT on that fee, at distribution.
@@ -1,9 +1,6 @@
1
1
  // Boston used van finance funds a 34,500 SAR van over three monthly instalments.
2
2
  // The dealer is paid after delivery and acceptance; a verified return unwinds financing before the buyer gets a refund.
3
3
  program cars "Boston used van finance"
4
- use escrow
5
- use financing
6
- use purchase
7
4
  party dealer: business
8
5
 
9
6
  // Bind dealer to the vehicle seller. Set price to its gross 34,500 SAR invoice;
@@ -1,8 +1,6 @@
1
1
  // Boston design market sells a 2,000 SAR restaurant menu project with delivery in seven days.
2
2
  // The company keeps 10% plus 15% VAT on its fee; the designer receives 1,770 SAR after client acceptance.
3
3
  program freelance_marketplace "Boston design market"
4
- use marketplace
5
- use escrow
6
4
  party designer: business
7
5
 
8
6
  // Bind designer to the design studio. The client owns the project record.
@@ -1,7 +1,6 @@
1
1
  // Boston tutoring studio charges 172.50 SAR for a private Arabic lesson.
2
2
  // A paid booking can be refunded before the lesson or if the tutor cannot teach.
3
3
  program tutoring_studio "Boston tutoring studio"
4
- use money
5
4
 
6
5
  // The customer is the object's owner. Fee: 0% on top of the lesson price.
7
6
  // The studio invoices 150 SAR plus 15% VAT, 22.50 SAR, outside this transfer.
@@ -1,6 +1,5 @@
1
1
  // Equipment rental: refundable security and one hire, earned only after pickup.
2
2
  program equipment_hire "Equipment hire and security"
3
- use rental
4
3
 
5
4
  object rental "Rental deposit" {
6
5
  fields { item: text, renter: text, price: money }
@@ -1,8 +1,6 @@
1
1
  // Lyon workshop equipment finance lends 46,000 SAR and reports monthly repayments and arrears.
2
2
  // Ageing bands at 30, 60 and 90 days distinguish overdue balances from loans written off after 90 days.
3
3
  program equipment_loan_reports "Lyon workshop equipment finance"
4
- use reporting
5
- use financing
6
4
 
7
5
  // Set price to 46,000 SAR, the workshop's 40,000 SAR equipment invoice plus
8
6
  // 15% VAT charged by its supplier outside this loan. Profit is 6% annually on