@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,7 +1,8 @@
1
- import { type StandardLibrary } from "./std-library.ts";
2
1
  export declare const HEADER_NAMES: readonly ["money", "marketplace", "escrow", "booking", "wallet", "financing", "lending", "insurance", "collections", "cards", "savings", "reporting"];
2
+ /** The headers a program names through qualified names such as booking.reservation, in first-named order. */
3
+ export declare function namedHeaders(source: string, std?: ReadonlyMap<string, string>): string[];
3
4
  /** The compiler frontend owns header metadata used by docs and catalogue consumers. */
4
- export declare function headerManifest(library?: StandardLibrary, names?: readonly string[]): {
5
+ export declare function headerManifest(std?: ReadonlyMap<string, string>, names?: readonly string[]): {
5
6
  version: number;
6
7
  headers: {
7
8
  name: string;
@@ -12,7 +13,6 @@ export declare function headerManifest(library?: StandardLibrary, names?: readon
12
13
  states: string[];
13
14
  summary: string;
14
15
  authoringTemplate: {
15
- requiredImport: string;
16
16
  instancePlaceholder: string;
17
17
  source: string;
18
18
  requiredBindings: {
@@ -30,24 +30,15 @@ export declare function headerManifest(library?: StandardLibrary, names?: readon
30
30
  required: boolean;
31
31
  default?: string;
32
32
  }[];
33
- dependencies: {
34
- binding: string;
35
- when: string;
36
- is: string;
33
+ checks: {
34
+ rule: string;
35
+ when?: {
36
+ selector: string;
37
+ is: string;
38
+ };
37
39
  message: string;
38
40
  fix: string;
39
41
  }[];
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
42
  parties: string[];
52
43
  subject: {
53
44
  name: string;
@@ -1 +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,SAAS,EACT,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;;;;;;;;;gBAuGK,cAAc;gBACd,mBAAmB;gBACnB,MAAM;gBAON,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAvGT,MAAM;yBAAW,MAAM;uBAAS,MAAM;;;;EAgK5D"}
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/headers.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,YACvB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,EACX,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,CACH,CAAC;AAEX,6GAA6G;AAC7G,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAwB,GACtD,MAAM,EAAE,CAaV;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAC5B,GAAG,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAwB,EACvD,KAAK,GAAE,SAAS,MAAM,EAAiB;IAGrC,OAAO;IACP,OAAO;;;;;;;;;gBAuGK,mBAAmB;gBACnB,MAAM;gBAON,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAtGT,MAAM;yBAAW,MAAM;uBAAS,MAAM;;;;EA+I5D"}
@@ -1,7 +1,7 @@
1
- import { bindingDependencies, parameterDiagnostics, } from "./binding-contract.js";
2
1
  import { tunableBounds } from "./tunables.js";
3
- import { parseHeader } from "./header-source.js";
4
- import { bundledStandardLibrary } from "./std-library.js";
2
+ import { instrumentChecks, parseHeader } from "./header-source.js";
3
+ import { defaultToolchain } from "./toolchain.js";
4
+ import { scan } from "./lex.js";
5
5
  export const HEADER_NAMES = [
6
6
  "money",
7
7
  "marketplace",
@@ -16,12 +16,25 @@ export const HEADER_NAMES = [
16
16
  "savings",
17
17
  "reporting",
18
18
  ];
19
+ /** The headers a program names through qualified names such as booking.reservation, in first-named order. */
20
+ export function namedHeaders(source, std = defaultToolchain.std) {
21
+ const tokens = scan(source).tokens.filter((t) => t.kind !== "comment");
22
+ const named = new Set();
23
+ tokens.forEach((token, i) => {
24
+ if (token.kind === "name" &&
25
+ tokens[i + 1]?.text === "." &&
26
+ tokens[i - 1]?.text !== "." &&
27
+ std.has(token.text))
28
+ named.add(token.text);
29
+ });
30
+ return [...named];
31
+ }
19
32
  /** The compiler frontend owns header metadata used by docs and catalogue consumers. */
20
- export function headerManifest(library = bundledStandardLibrary, names = HEADER_NAMES) {
33
+ export function headerManifest(std = defaultToolchain.std, names = HEADER_NAMES) {
21
34
  return {
22
35
  version: 1,
23
36
  headers: names.map((name) => {
24
- const source = library.source(name);
37
+ const source = std.get(name);
25
38
  if (!source)
26
39
  throw new Error(`Missing standard header ${name}`);
27
40
  const parsed = parseHeader(source, name);
@@ -105,7 +118,6 @@ export function headerManifest(library = bundledStandardLibrary, names = HEADER_
105
118
  ? summary.value
106
119
  : decl.name.replaceAll("_", " "),
107
120
  authoringTemplate: {
108
- requiredImport: `use ${name}`,
109
121
  instancePlaceholder: "${instance}",
110
122
  source: "attach ${instance} = " +
111
123
  `${name}.${decl.name} { ` +
@@ -120,23 +132,13 @@ export function headerManifest(library = bundledStandardLibrary, names = HEADER_
120
132
  })),
121
133
  },
122
134
  tunables,
123
- dependencies: bindingDependencies(decl).map(({ span: _span, ...dependency }) => dependency),
124
- parameterDiagnostics: parameterDiagnostics(decl),
125
- constraints: (() => {
126
- const block = decl.body.entries.find((entry) => entry.key === "constraints")?.value;
127
- return block?.kind === "block"
128
- ? block.entries.map((entry) => {
129
- if (entry.value.kind !== "call" ||
130
- entry.value.args.length !== 1)
131
- throw new Error("invalid tunable constraint");
132
- return {
133
- tunable: entry.key,
134
- relation: entry.value.name,
135
- other: spelling(entry.value.args[0]),
136
- };
137
- })
138
- : [];
139
- })(),
135
+ // Each rule as written, scoped by its when, with its own words.
136
+ checks: instrumentChecks(decl).map((check) => ({
137
+ rule: spelling(check.rule),
138
+ ...(check.when ? { when: check.when } : {}),
139
+ message: check.message,
140
+ fix: check.fix,
141
+ })),
140
142
  parties: tunables
141
143
  .filter((t) => t.type === "party")
142
144
  .map((t) => t.name),
@@ -1 +1 @@
1
- {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/headers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/headers.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
- export { compile, type CompileDiagnostic, type CompileOptions, type CompileResult, type CompileWarning, type CompileOriginMapEntry, type AdapterBindingTarget, } from "./compile.ts";
1
+ export { compile, type CompileDiagnostic, type CompileResult, type CompileWarning, type CompileOriginMapEntry, type CompileTerm, type CompileTermOverride, } from "./compile.ts";
2
+ export type { CompiledCheck, CompiledCheckStep } from "./checks.ts";
3
+ export { defaultToolchain, toolchain, type AdapterBindingTarget, type Toolchain, } from "./toolchain.ts";
2
4
  export type { ProviderAdapter } from "@hyperscale0/adl";
3
5
  export { parseProgram } from "./parse.ts";
4
6
  export { lex, KEYWORDS } from "./lex.ts";
5
7
  export { format } from "./format.ts";
6
- export { bundledStandardLibrary, type StandardLibrary } from "./std-library.ts";
7
8
  export { buildUdlCostManifest, type UdlCostManifest } from "./cost.ts";
8
9
  export type { Program, Decl, AssignmentDecl, ObjectDecl, InstrumentDecl, Expr, Span, Diagnostic, } from "./ast.ts";
9
- export { headerManifest, HEADER_NAMES } from "./headers.ts";
10
+ export { headerManifest, HEADER_NAMES, namedHeaders } from "./headers.ts";
10
11
  export { templateGuide, templateIndex, type TemplateGuide, type TemplateIndexEntry, } from "./template-guide.ts";
11
12
  //# 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,aAAa,EAClB,KAAK,cAAc,EACnB,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;AAC5D,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,KAAK,oBAAoB,EACzB,KAAK,SAAS,GACf,MAAM,gBAAgB,CAAC;AACxB,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,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,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  export { compile, } from "./compile.js";
2
+ export { defaultToolchain, toolchain, } from "./toolchain.js";
2
3
  export { parseProgram } from "./parse.js";
3
4
  export { lex, KEYWORDS } from "./lex.js";
4
5
  export { format } from "./format.js";
5
- export { bundledStandardLibrary } from "./std-library.js";
6
6
  export { buildUdlCostManifest } from "./cost.js";
7
- export { headerManifest, HEADER_NAMES } from "./headers.js";
7
+ export { headerManifest, HEADER_NAMES, namedHeaders } from "./headers.js";
8
8
  export { templateGuide, templateIndex, } from "./template-guide.js";
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAOR,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;AAC5D,OAAO,EACL,aAAa,EACb,aAAa,GAGd,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAOR,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,SAAS,GAGV,MAAM,gBAAgB,CAAC;AAExB,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,oBAAoB,EAAwB,MAAM,WAAW,CAAC;AAYvE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,aAAa,GAGd,MAAM,qBAAqB,CAAC"}
@@ -2,7 +2,6 @@
2
2
  export declare const KEYWORD_HELP: {
3
3
  program: [string, string];
4
4
  header: [string];
5
- use: [string];
6
5
  party: [string, string];
7
6
  role: [string];
8
7
  currency: [string];
@@ -11,12 +10,11 @@ export declare const KEYWORD_HELP: {
11
10
  lifecycle: [string, string];
12
11
  action: [string, string];
13
12
  expose: [string, string];
14
- hide: [string];
15
13
  as: [string];
16
14
  cap: [string, string];
17
15
  of: [string];
18
16
  when: [string];
19
- constraints: [string];
17
+ checks: [string];
20
18
  requires: [string, string];
21
19
  invariants: [string, string];
22
20
  moves: [string, string];
@@ -26,7 +24,7 @@ export declare const KEYWORD_HELP: {
26
24
  is: [string];
27
25
  has: [string];
28
26
  family: [string];
29
- check: [string];
27
+ check: [string, string];
30
28
  result: [string];
31
29
  maxAge: [string];
32
30
  instruction: [string];
@@ -1 +1 @@
1
- {"version":3,"file":"keywords.d.ts","sourceRoot":"","sources":["../../src/keywords.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIgD,CAAC"}
1
+ {"version":3,"file":"keywords.d.ts","sourceRoot":"","sources":["../../src/keywords.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmIgD,CAAC"}
@@ -5,7 +5,6 @@ export const KEYWORD_HELP = {
5
5
  "Product contract",
6
6
  ],
7
7
  header: ["Names a reusable library of instruments."],
8
- use: ["Makes a header's instruments available to this program."],
9
8
  party: [
10
9
  "Declares a person, business or staff party. Staff authority requires a permission role.",
11
10
  "Parties",
@@ -29,7 +28,6 @@ export const KEYWORD_HELP = {
29
28
  "Makes an attached action available under a public name.",
30
29
  "Object action bindings",
31
30
  ],
32
- hide: ["Removes an action from the program's public actions."],
33
31
  as: ["Gives an exposed action its public name."],
34
32
  cap: ["Limits a percentage charge to a maximum money amount.", "Capped rate"],
35
33
  of: [
@@ -38,8 +36,8 @@ export const KEYWORD_HELP = {
38
36
  when: [
39
37
  "Includes clauses for a selected enum value or a field present on a bound reference.",
40
38
  ],
41
- constraints: [
42
- "Requires parameter values to agree with each other before the program can be used.",
39
+ checks: [
40
+ "Rules each attachment's tunables must pass, each with its own message and fix.",
43
41
  ],
44
42
  requires: [
45
43
  "Rejects an action unless the stated condition holds.",
@@ -64,7 +62,10 @@ export const KEYWORD_HELP = {
64
62
  is: ["Selects rules for one named parameter choice."],
65
63
  has: ["Selects clauses when a bound reference declares the named field."],
66
64
  family: ["Names an instrument family or the family of an evidence check."],
67
- check: ["Names the provider check whose evidence the action requires."],
65
+ check: [
66
+ "Declares a Build check: customers, steps and the balances they end on. Inside evidence, names the provider check the action requires.",
67
+ "Build checks",
68
+ ],
68
69
  result: ["Names the required outcome of an evidence check."],
69
70
  maxAge: ["Limits how old the required evidence may be."],
70
71
  instruction: ["Binds evidence to the captured boundary instruction."],
@@ -1 +1 @@
1
- {"version":3,"file":"keywords.js","sourceRoot":"","sources":["../../src/keywords.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE;QACP,mDAAmD;QACnD,kBAAkB;KACnB;IACD,MAAM,EAAE,CAAC,0CAA0C,CAAC;IACpD,GAAG,EAAE,CAAC,yDAAyD,CAAC;IAChE,KAAK,EAAE;QACL,yFAAyF;QACzF,SAAS;KACV;IACD,IAAI,EAAE,CAAC,gEAAgE,CAAC;IACxE,QAAQ,EAAE,CAAC,2DAA2D,CAAC;IACvE,UAAU,EAAE;QACV,8DAA8D;QAC9D,aAAa;KACd;IACD,MAAM,EAAE,CAAC,qDAAqD,EAAE,QAAQ,CAAC;IACzE,SAAS,EAAE;QACT,+DAA+D;QAC/D,WAAW;KACZ;IACD,MAAM,EAAE;QACN,kEAAkE;QAClE,SAAS;KACV;IACD,MAAM,EAAE;QACN,yDAAyD;QACzD,wBAAwB;KACzB;IACD,IAAI,EAAE,CAAC,sDAAsD,CAAC;IAC9D,EAAE,EAAE,CAAC,0CAA0C,CAAC;IAChD,GAAG,EAAE,CAAC,uDAAuD,EAAE,aAAa,CAAC;IAC7E,EAAE,EAAE;QACF,2EAA2E;KAC5E;IACD,IAAI,EAAE;QACJ,qFAAqF;KACtF;IACD,WAAW,EAAE;QACX,oFAAoF;KACrF;IACD,QAAQ,EAAE;QACR,sDAAsD;QACtD,cAAc;KACf;IACD,UAAU,EAAE;QACV,qDAAqD;QACrD,YAAY;KACb;IACD,KAAK,EAAE;QACL,gEAAgE;QAChE,OAAO;KACR;IACD,IAAI,EAAE;QACJ,wEAAwE;KACzE;IACD,EAAE,EAAE,CAAC,iEAAiE,CAAC;IACvE,EAAE,EAAE;QACF,oEAAoE;QACpE,mBAAmB;KACpB;IACD,EAAE,EAAE,CAAC,+CAA+C,CAAC;IACrD,GAAG,EAAE,CAAC,kEAAkE,CAAC;IACzE,MAAM,EAAE,CAAC,gEAAgE,CAAC;IAC1E,KAAK,EAAE,CAAC,8DAA8D,CAAC;IACvE,MAAM,EAAE,CAAC,kDAAkD,CAAC;IAC5D,MAAM,EAAE,CAAC,8CAA8C,CAAC;IACxD,WAAW,EAAE,CAAC,sDAAsD,CAAC;IACrE,QAAQ,EAAE,CAAC,yDAAyD,CAAC;IACrE,GAAG,EAAE,CAAC,iCAAiC,CAAC;IACxC,MAAM,EAAE;QACN,kEAAkE;QAClE,oBAAoB;KACrB;IACD,EAAE,EAAE,CAAC,wDAAwD,CAAC;IAC9D,KAAK,EAAE;QACL,6CAA6C;QAC7C,uBAAuB;KACxB;IACD,GAAG,EAAE;QACH,4DAA4D;QAC5D,uBAAuB;KACxB;IACD,KAAK,EAAE;QACL,sDAAsD;QACtD,mBAAmB;KACpB;IACD,OAAO,EAAE,CAAC,wDAAwD,CAAC;IACnE,GAAG,EAAE,CAAC,wDAAwD,CAAC;IAC/D,QAAQ,EAAE,CAAC,sDAAsD,CAAC;IAClE,QAAQ,EAAE;QACR,uEAAuE;QACvE,sBAAsB;KACvB;IACD,OAAO,EAAE;QACP,2CAA2C;QAC3C,2BAA2B;KAC5B;IACD,IAAI,EAAE,CAAC,2CAA2C,EAAE,wBAAwB,CAAC;IAC7E,IAAI,EAAE;QACJ,uEAAuE;QACvE,wBAAwB;KACzB;IACD,OAAO,EAAE,CAAC,+DAA+D,CAAC;IAC1E,GAAG,EAAE,CAAC,iDAAiD,EAAE,WAAW,CAAC;IACrE,MAAM,EAAE;QACN,uDAAuD;QACvD,aAAa;KACd;IACD,MAAM,EAAE;QACN,iEAAiE;QACjE,UAAU;KACX;IACD,MAAM,EAAE;QACN,2DAA2D;QAC3D,qBAAqB;KACtB;IACD,OAAO,EAAE;QACP,mEAAmE;QACnE,sBAAsB;KACvB;IACD,MAAM,EAAE;QACN,uDAAuD;QACvD,2BAA2B;KAC5B;IACD,OAAO,EAAE;QACP,gDAAgD;QAChD,sBAAsB;KACvB;CACsE,CAAC"}
1
+ {"version":3,"file":"keywords.js","sourceRoot":"","sources":["../../src/keywords.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE;QACP,mDAAmD;QACnD,kBAAkB;KACnB;IACD,MAAM,EAAE,CAAC,0CAA0C,CAAC;IACpD,KAAK,EAAE;QACL,yFAAyF;QACzF,SAAS;KACV;IACD,IAAI,EAAE,CAAC,gEAAgE,CAAC;IACxE,QAAQ,EAAE,CAAC,2DAA2D,CAAC;IACvE,UAAU,EAAE;QACV,8DAA8D;QAC9D,aAAa;KACd;IACD,MAAM,EAAE,CAAC,qDAAqD,EAAE,QAAQ,CAAC;IACzE,SAAS,EAAE;QACT,+DAA+D;QAC/D,WAAW;KACZ;IACD,MAAM,EAAE;QACN,kEAAkE;QAClE,SAAS;KACV;IACD,MAAM,EAAE;QACN,yDAAyD;QACzD,wBAAwB;KACzB;IACD,EAAE,EAAE,CAAC,0CAA0C,CAAC;IAChD,GAAG,EAAE,CAAC,uDAAuD,EAAE,aAAa,CAAC;IAC7E,EAAE,EAAE;QACF,2EAA2E;KAC5E;IACD,IAAI,EAAE;QACJ,qFAAqF;KACtF;IACD,MAAM,EAAE;QACN,gFAAgF;KACjF;IACD,QAAQ,EAAE;QACR,sDAAsD;QACtD,cAAc;KACf;IACD,UAAU,EAAE;QACV,qDAAqD;QACrD,YAAY;KACb;IACD,KAAK,EAAE;QACL,gEAAgE;QAChE,OAAO;KACR;IACD,IAAI,EAAE;QACJ,wEAAwE;KACzE;IACD,EAAE,EAAE,CAAC,iEAAiE,CAAC;IACvE,EAAE,EAAE;QACF,oEAAoE;QACpE,mBAAmB;KACpB;IACD,EAAE,EAAE,CAAC,+CAA+C,CAAC;IACrD,GAAG,EAAE,CAAC,kEAAkE,CAAC;IACzE,MAAM,EAAE,CAAC,gEAAgE,CAAC;IAC1E,KAAK,EAAE;QACL,uIAAuI;QACvI,cAAc;KACf;IACD,MAAM,EAAE,CAAC,kDAAkD,CAAC;IAC5D,MAAM,EAAE,CAAC,8CAA8C,CAAC;IACxD,WAAW,EAAE,CAAC,sDAAsD,CAAC;IACrE,QAAQ,EAAE,CAAC,yDAAyD,CAAC;IACrE,GAAG,EAAE,CAAC,iCAAiC,CAAC;IACxC,MAAM,EAAE;QACN,kEAAkE;QAClE,oBAAoB;KACrB;IACD,EAAE,EAAE,CAAC,wDAAwD,CAAC;IAC9D,KAAK,EAAE;QACL,6CAA6C;QAC7C,uBAAuB;KACxB;IACD,GAAG,EAAE;QACH,4DAA4D;QAC5D,uBAAuB;KACxB;IACD,KAAK,EAAE;QACL,sDAAsD;QACtD,mBAAmB;KACpB;IACD,OAAO,EAAE,CAAC,wDAAwD,CAAC;IACnE,GAAG,EAAE,CAAC,wDAAwD,CAAC;IAC/D,QAAQ,EAAE,CAAC,sDAAsD,CAAC;IAClE,QAAQ,EAAE;QACR,uEAAuE;QACvE,sBAAsB;KACvB;IACD,OAAO,EAAE;QACP,2CAA2C;QAC3C,2BAA2B;KAC5B;IACD,IAAI,EAAE,CAAC,2CAA2C,EAAE,wBAAwB,CAAC;IAC7E,IAAI,EAAE;QACJ,uEAAuE;QACvE,wBAAwB;KACzB;IACD,OAAO,EAAE,CAAC,+DAA+D,CAAC;IAC1E,GAAG,EAAE,CAAC,iDAAiD,EAAE,WAAW,CAAC;IACrE,MAAM,EAAE;QACN,uDAAuD;QACvD,aAAa;KACd;IACD,MAAM,EAAE;QACN,iEAAiE;QACjE,UAAU;KACX;IACD,MAAM,EAAE;QACN,2DAA2D;QAC3D,qBAAqB;KACtB;IACD,OAAO,EAAE;QACP,mEAAmE;QACnE,sBAAsB;KACvB;IACD,MAAM,EAAE;QACN,uDAAuD;QACvD,2BAA2B;KAC5B;IACD,OAAO,EAAE;QACP,gDAAgD;QAChD,sBAAsB;KACvB;CACsE,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import type { Span } from "./ast.ts";
2
- import { type StandardLibrary } from "./std-library.ts";
3
- export type { StandardLibrary } from "./std-library.ts";
2
+ import { type Toolchain } from "./toolchain.ts";
4
3
  export type HsxTokenClass = "keyword" | "header" | "instrument" | "action" | "party" | "role" | "field" | "parameter" | "type" | "state" | "money" | "number" | "percent" | "duration" | "date" | "string" | "comment" | "operator" | "punctuation" | "name";
5
4
  export interface HsxHighlight {
6
5
  start: number;
@@ -20,7 +19,7 @@ export interface HsxHover {
20
19
  header?: string;
21
20
  }
22
21
  /** Total, sorted, non-overlapping UTF-16 spans, including incomplete source. */
23
- export declare function highlight(source: string, library?: StandardLibrary): HsxHighlight[];
22
+ export declare function highlight(source: string, toolchain?: Toolchain): HsxHighlight[];
24
23
  /** Offsets use half-open UTF-16 spans. Whitespace and out-of-range offsets return null. */
25
- export declare function describe(source: string, offset: number, library?: StandardLibrary): HsxHover | null;
24
+ export declare function describe(source: string, offset: number, toolchain?: Toolchain): HsxHover | null;
26
25
  //# sourceMappingURL=language.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../src/language.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,IAAI,EAAE,MAAM,UAAU,CAAC;AAKlD,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChF,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,GACT,UAAU,GACV,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,MAAM,CAAC;AACX,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,aAAa,CAAC;CACtB;AACD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8iBD,gFAAgF;AAChF,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAwC,GAChD,YAAY,EAAE,CAEhB;AACD,2FAA2F;AAC3F,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAwC,GAChD,QAAQ,GAAG,IAAI,CAiBjB"}
1
+ {"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../src/language.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,IAAI,EAAE,MAAM,UAAU,CAAC;AAM7D,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,GACT,UAAU,GACV,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,MAAM,CAAC;AACX,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,aAAa,CAAC;CACtB;AACD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAolBD,gFAAgF;AAChF,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,SAA4B,GACtC,YAAY,EAAE,CAEhB;AA+BD,2FAA2F;AAC3F,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,SAA4B,GACtC,QAAQ,GAAG,IAAI,CAkCjB"}
@@ -1,9 +1,27 @@
1
+ import { compile } from "./compile.js";
1
2
  import { headerManifest } from "./headers.js";
2
3
  import { KEYWORD_HELP } from "./keywords.js";
3
4
  import { KEYWORDS, scan } from "./lex.js";
4
5
  import { parseProgram } from "./parse.js";
5
- import { bundledStandardLibrary } from "./std-library.js";
6
+ import { defaultToolchain } from "./toolchain.js";
6
7
  const keywords = new Set(KEYWORDS);
8
+ const CHECK_WORDS = new Set([
9
+ "customer",
10
+ "organization",
11
+ "funded",
12
+ "binds",
13
+ "clock",
14
+ "until",
15
+ "record",
16
+ "close",
17
+ "remember",
18
+ "status",
19
+ "balances",
20
+ "expect",
21
+ "held",
22
+ "pending",
23
+ ]);
24
+ const CHECK_HELP = "A check step. Promote runs every check in an isolated world and refuses a Build whose check fails.";
7
25
  const types = new Set([
8
26
  "money",
9
27
  "account",
@@ -19,11 +37,11 @@ const types = new Set([
19
37
  "list",
20
38
  "policy",
21
39
  ]);
22
- // Cache by source bytes, not library identity: callers can edit their own headers.
40
+ // Cache by source bytes, not toolchain identity: callers can edit their own headers.
23
41
  const headerCache = new Map();
24
- function header(name, library) {
42
+ function header(name, toolchain) {
25
43
  try {
26
- const source = library.source(name);
44
+ const source = toolchain.std.get(name);
27
45
  if (!source)
28
46
  return;
29
47
  const cached = headerCache.get(name);
@@ -31,7 +49,7 @@ function header(name, library) {
31
49
  return cached.value;
32
50
  let value;
33
51
  try {
34
- value = headerManifest({ source: () => source }, [name]).headers[0];
52
+ value = headerManifest(new Map([[name, source]]), [name]).headers[0];
35
53
  }
36
54
  catch {
37
55
  /* Half-written headers have no metadata yet. */
@@ -64,17 +82,33 @@ function instrumentHelp(object, owner) {
64
82
  label: a.name,
65
83
  value: `${a.summary} Actor: ${a.actor}`,
66
84
  })),
85
+ ...object.checks.map((check) => ({
86
+ label: "check",
87
+ value: `${check.rule}${check.when ? ` when ${check.when.selector} is ${check.when.is}` : ""}: ${check.message}`,
88
+ })),
67
89
  ],
68
90
  };
69
91
  }
70
- function analyze(source, library) {
92
+ function analyze(source, toolchain) {
71
93
  const all = scan(source).tokens.filter((t) => t.kind !== "eof");
72
94
  const tokens = all.filter((t) => t.kind !== "comment");
73
95
  const helps = new Map();
74
96
  const classes = new Map();
75
97
  const bindings = new Map();
76
- const imports = new Map();
77
- const headerHelp = new Map();
98
+ // A qualified name such as booking.reservation names its header directly.
99
+ const headerHelp = (value) => ({
100
+ kind: "header",
101
+ title: value.name,
102
+ header: value.name,
103
+ summary: value.objects
104
+ .map((o) => o.summary)
105
+ .slice(0, 2)
106
+ .join(" "),
107
+ details: value.objects.map((o) => ({
108
+ label: o.qualifiedName,
109
+ value: o.summary,
110
+ })),
111
+ });
78
112
  const whole = { start: 0, end: source.length };
79
113
  const text = (span) => source.slice(span.start, span.end);
80
114
  const mark = (token, kind, help) => {
@@ -112,29 +146,6 @@ function analyze(source, library) {
112
146
  for (let i = 0; i < tokens.length; i++) {
113
147
  const token = tokens[i];
114
148
  const previous = tokens[i - 1]?.text;
115
- if (previous === "use") {
116
- const value = header(token.text, library);
117
- if (value)
118
- imports.set(token.text, value);
119
- mark(token, "header", value
120
- ? {
121
- kind: "header",
122
- title: value.name,
123
- header: value.name,
124
- summary: value.objects
125
- .map((o) => o.summary)
126
- .slice(0, 2)
127
- .join(" "),
128
- details: value.objects.map((o) => ({
129
- label: o.qualifiedName,
130
- value: o.summary,
131
- })),
132
- }
133
- : undefined);
134
- const help = helps.get(token.span.start);
135
- if (help)
136
- headerHelp.set(token.text, help);
137
- }
138
149
  if (previous === "program" ||
139
150
  previous === "object" ||
140
151
  previous === "header")
@@ -148,7 +159,6 @@ function analyze(source, library) {
148
159
  previous === "action" ||
149
160
  previous === "attach" ||
150
161
  previous === "expose" ||
151
- previous === "hide" ||
152
162
  previous === "as")
153
163
  mark(token, previous === "instrument" || previous === "attach"
154
164
  ? "instrument"
@@ -167,9 +177,7 @@ function analyze(source, library) {
167
177
  }
168
178
  const attachment = (target, scope) => {
169
179
  const [owner, name] = target.split(".");
170
- const object = imports
171
- .get(owner ?? "")
172
- ?.objects.find((o) => o.name === name);
180
+ const object = header(owner ?? "", toolchain)?.objects.find((o) => o.name === name);
173
181
  if (!object)
174
182
  return;
175
183
  for (const parameter of object.tunables)
@@ -282,6 +290,30 @@ function analyze(source, library) {
282
290
  walk(expr.cap, scope);
283
291
  }
284
292
  };
293
+ const at = (span) => tokens[atStart.get(span.start) ?? -1];
294
+ // A check's step words are keywords inside the check alone.
295
+ const checkHelp = (check) => {
296
+ for (const token of tokens)
297
+ if (token.span.start > check.span.start &&
298
+ token.span.end < check.span.end &&
299
+ CHECK_WORDS.has(token.text))
300
+ mark(token, "keyword", {
301
+ kind: "keyword",
302
+ title: token.text,
303
+ summary: CHECK_HELP,
304
+ });
305
+ for (const statement of check.statements) {
306
+ if (statement.kind === "customer")
307
+ mark(at(statement.id.span), "party", declared(statement.id.name, "party", check.span, statement.id.span, `customer ${statement.id.name}`, `${statement.title}, a customer of check "${check.name}".`));
308
+ if (statement.kind === "action") {
309
+ mark(at(statement.action.span), "action");
310
+ if (statement.state)
311
+ mark(at(statement.state.span), "state");
312
+ }
313
+ if (statement.kind === "clock" && statement.until)
314
+ mark(at(statement.until.state.span), "state");
315
+ }
316
+ };
285
317
  // The parser owns declarations and scopes. A parse failure leaves lexical context intact.
286
318
  try {
287
319
  const parsed = parseProgram(source);
@@ -308,6 +340,8 @@ function analyze(source, library) {
308
340
  walk(decl.body, decl.span);
309
341
  }
310
342
  }
343
+ for (const check of parsed.program.checks)
344
+ checkHelp(check);
311
345
  }
312
346
  catch {
313
347
  /* Arbitrary editor input must not interrupt typing. */
@@ -320,12 +354,13 @@ function analyze(source, library) {
320
354
  const previous = tokens[i - 1]?.text;
321
355
  const next = tokens[i + 1]?.text;
322
356
  const owner = previous === "." ? tokens[i - 2]?.text : undefined;
323
- const imported = owner ? imports.get(owner) : undefined;
357
+ const imported = owner ? header(owner, toolchain) : undefined;
324
358
  const object = imported?.objects.find((o) => o.name === token.text);
359
+ const named = next === "." ? header(token.text, toolchain) : undefined;
325
360
  if (object && owner)
326
361
  mark(token, "instrument", instrumentHelp(object, owner));
327
- else if (imports.has(token.text) && next === ".")
328
- mark(token, "header", headerHelp.get(token.text));
362
+ else if (named)
363
+ mark(token, "header", headerHelp(named));
329
364
  else if (!helps.has(token.span.start)) {
330
365
  const candidates = bindings
331
366
  .get(token.text)
@@ -342,7 +377,6 @@ function analyze(source, library) {
342
377
  const isReference = !keywords.has(token.text) ||
343
378
  previous === "." ||
344
379
  previous === "expose" ||
345
- previous === "hide" ||
346
380
  next === ":" ||
347
381
  [":", "=", "fee", "moves", "from", "to", "(", ",", "["].includes(previous ?? "") ||
348
382
  binding?.declaration === token.span.start;
@@ -406,36 +440,65 @@ function analyze(source, library) {
406
440
  }
407
441
  // One editor document is retained. Hovering never reparses the same keystroke.
408
442
  let last;
409
- function analysis(source, library) {
410
- // Custom libraries may change without changing identity; only the bundled library is immutable.
411
- if (library === bundledStandardLibrary &&
412
- last?.source === source &&
413
- last.library === library)
443
+ function analysis(source, toolchain) {
444
+ // A test toolchain may change its headers in place; the default never does.
445
+ if (toolchain === defaultToolchain && last?.source === source)
414
446
  return last.result;
415
- const result = analyze(source, library);
416
- if (library === bundledStandardLibrary)
417
- last = { source, library, result };
447
+ const result = analyze(source, toolchain);
448
+ if (toolchain === defaultToolchain)
449
+ last = { source, result };
418
450
  return result;
419
451
  }
420
452
  /** Total, sorted, non-overlapping UTF-16 spans, including incomplete source. */
421
- export function highlight(source, library = bundledStandardLibrary) {
422
- return analysis(source, library).highlights.map((span) => ({ ...span }));
453
+ export function highlight(source, toolchain = defaultToolchain) {
454
+ return analysis(source, toolchain).highlights.map((span) => ({ ...span }));
423
455
  }
456
+ // The terms of the attach line around an offset, from the last valid compile.
457
+ let compiled;
458
+ function termsAt(source, offset, toolchain) {
459
+ if (compiled?.source !== source || compiled.toolchain !== toolchain) {
460
+ const origins = compile(source, toolchain).artifacts?.originMap ?? [];
461
+ compiled = {
462
+ source,
463
+ toolchain,
464
+ // A record shares its attach line's span; the attach comes first.
465
+ terms: (at) => origins.find((entry) => entry.terms && entry.span.start <= at && at < entry.span.end)?.terms,
466
+ };
467
+ }
468
+ return compiled.terms(offset);
469
+ }
470
+ const inForce = (term) => `${term.text} (${term.from === "std" ? `${term.source} default` : term.from === "party" ? "the party of that name" : "set by the program"})`;
424
471
  /** Offsets use half-open UTF-16 spans. Whitespace and out-of-range offsets return null. */
425
- export function describe(source, offset, library = bundledStandardLibrary) {
472
+ export function describe(source, offset, toolchain = defaultToolchain) {
426
473
  if (!Number.isInteger(offset) || offset < 0 || offset >= source.length)
427
474
  return null;
428
- const result = analysis(source, library);
475
+ const result = analysis(source, toolchain);
429
476
  const span = result.highlights.find((s) => s.start <= offset && offset < s.end);
430
477
  const hover = span && result.hovers.get(span.start);
431
- return hover
432
- ? {
433
- ...hover,
434
- span: { ...hover.span },
435
- ...(hover.details
436
- ? { details: hover.details.map((d) => ({ ...d })) }
437
- : {}),
438
- }
439
- : null;
478
+ if (!hover)
479
+ return null;
480
+ const details = hover.details?.map((d) => ({ ...d }));
481
+ // A std tunable and an attach line show the value in force and who set it.
482
+ const terms = (hover.kind === "parameter" && hover.header) ||
483
+ (hover.kind === "instrument" &&
484
+ source.lastIndexOf("attach", offset) > source.lastIndexOf("{", offset))
485
+ ? termsAt(source, offset, toolchain)
486
+ : undefined;
487
+ const term = terms?.find((t) => t.name === hover.title);
488
+ const added = hover.kind === "parameter"
489
+ ? term
490
+ ? [{ label: "In force", value: inForce(term) }]
491
+ : []
492
+ : (terms ?? []).map((t) => ({
493
+ label: `${t.name} in force`,
494
+ value: inForce(t),
495
+ }));
496
+ return {
497
+ ...hover,
498
+ span: { ...hover.span },
499
+ ...(details || added.length
500
+ ? { details: [...(details ?? []), ...added] }
501
+ : {}),
502
+ };
440
503
  }
441
504
  //# sourceMappingURL=language.js.map