@hyperscale0/hsx 1.0.338 → 1.0.340
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.
- package/dist/src/ast.d.ts +1 -0
- package/dist/src/ast.d.ts.map +1 -1
- package/dist/src/ast.js.map +1 -1
- package/dist/src/attachment-economics.d.ts +19 -0
- package/dist/src/attachment-economics.d.ts.map +1 -1
- package/dist/src/attachment-economics.js +101 -3
- package/dist/src/attachment-economics.js.map +1 -1
- package/dist/src/binding-contract.d.ts.map +1 -1
- package/dist/src/binding-contract.js +10 -4
- package/dist/src/binding-contract.js.map +1 -1
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +36 -8
- package/dist/src/compile.js.map +1 -1
- package/dist/src/examples-bundle.js +1 -1
- package/dist/src/examples-bundle.js.map +1 -1
- package/dist/src/headers.d.ts.map +1 -1
- package/dist/src/headers.js +3 -1
- package/dist/src/headers.js.map +1 -1
- package/dist/src/parse.js +13 -1
- package/dist/src/parse.js.map +1 -1
- package/dist/src/std-bundle.js +6 -6
- package/dist/src/std-bundle.js.map +1 -1
- package/dist/src/template-guide.d.ts.map +1 -1
- package/dist/src/template-guide.js +2 -1
- package/dist/src/template-guide.js.map +1 -1
- package/docs/README.md +5 -2
- package/examples/camera-rental.hsx +4 -2
- package/package.json +4 -4
- package/src/ast.ts +7 -1
- package/src/attachment-economics.ts +127 -2
- package/src/binding-contract.ts +13 -6
- package/src/compile.ts +63 -9
- package/src/examples-bundle.ts +1 -1
- package/src/headers.ts +6 -1
- package/src/parse.ts +16 -1
- package/src/std-bundle.ts +6 -6
- package/src/template-guide.ts +2 -1
- package/std/collections.hsx +4 -4
- package/std/financing.hsx +461 -266
- package/std/insurance.hsx +21 -5
- package/std/lending.hsx +13 -9
- package/std/money.hsx +88 -32
- package/std/reporting.hsx +6 -6
package/dist/src/ast.d.ts
CHANGED
package/dist/src/ast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AACD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACZ;AACD,MAAM,MAAM,IAAI,GACZ;IACE,IAAI,EACA,MAAM,GACN,MAAM,GACN,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,GACV,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;CACZ,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC/C;
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AA6FA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;QAC/B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -34,4 +34,23 @@ export declare function samePartyMoves(document: UdlDocument, selectors: Readonl
|
|
|
34
34
|
errors: Diagnostic[];
|
|
35
35
|
warnings: Diagnostic[];
|
|
36
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* The ledger books a classified move only when its sourceParty owns the
|
|
39
|
+
* account the money leaves (ledger-facts checkEconomicOwners). An account of
|
|
40
|
+
* self or of an adapter belongs to the company; a party's account belongs to
|
|
41
|
+
* that party. The one exception is a held earning: money held in an account of
|
|
42
|
+
* self that lands in the company's own account may name the customer it was
|
|
43
|
+
* held for. A mismatch compiles today and refuses every run with
|
|
44
|
+
* economic_source_unbound, so the action can never run. `owner` and `actor`
|
|
45
|
+
* can be one person at run time, so only a mismatch that can never resolve is
|
|
46
|
+
* an error.
|
|
47
|
+
*/
|
|
48
|
+
export declare function unboundEconomicSources(document: UdlDocument, selectors: ReadonlyMap<string, {
|
|
49
|
+
prefix: string;
|
|
50
|
+
root: string;
|
|
51
|
+
}>, attaches: ReadonlyMap<string, {
|
|
52
|
+
entry: Entry;
|
|
53
|
+
name: string;
|
|
54
|
+
template: InstrumentDecl;
|
|
55
|
+
}>): Diagnostic[];
|
|
37
56
|
//# sourceMappingURL=attachment-economics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-economics.d.ts","sourceRoot":"","sources":["../../src/attachment-economics.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"attachment-economics.d.ts","sourceRoot":"","sources":["../../src/attachment-economics.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,sBAAsB,EAE3B,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGxE,uFAAuF;AACvF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAC/C,YAAY,EAAE,KAAK,EAAE,EACrB,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,KAAK,OAAO,EACnC,OAAO,GAAE,SAAS,MAAM,EAAO,GAC9B,IAAI,CAoFN;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChE,QAAQ,EAAE,WAAW,CACnB,MAAM,EACN;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CACzD,GACA,UAAU,EAAE,CA2Ed;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChE,QAAQ,EAAE,WAAW,CACnB,MAAM,EACN;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CACzD,GACA;IAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,CAuFlD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChE,QAAQ,EAAE,WAAW,CACnB,MAAM,EACN;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CACzD,GACA,UAAU,EAAE,CAwFd"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { subjectPartyRoles, udlMoveSchema, } from "@hyperscale0/udl";
|
|
1
|
+
import { resolveField, subjectPartyRoles, udlMoveSchema, } from "@hyperscale0/udl";
|
|
2
2
|
import { fail } from "./diagnostics.js";
|
|
3
3
|
/** An attachment specializes its own instrument; imported definitions stay generic. */
|
|
4
4
|
export function applyAttachmentEconomics(document, instrument, parties, declarations, data, records = []) {
|
|
@@ -85,14 +85,29 @@ export function purposeWarnings(document, selectors, attaches) {
|
|
|
85
85
|
move.operation !== "internal_transfer.reserve"))
|
|
86
86
|
continue;
|
|
87
87
|
const path = `${selector.prefix}${actionName}${action.moves.length > 1 ? `.${move.key}` : ""}`;
|
|
88
|
-
|
|
88
|
+
// A self account names its owner, so its money is that owner's.
|
|
89
|
+
const account = /^self\.\w+$/.test(move.from)
|
|
90
|
+
? resolveField(document, instrument, move.from, action.input, action)
|
|
91
|
+
: undefined;
|
|
92
|
+
const from = party(move.from) ??
|
|
93
|
+
(account?.type === "account" &&
|
|
94
|
+
typeof account.owner === "string" &&
|
|
95
|
+
account.owner !== "self"
|
|
96
|
+
? account.owner
|
|
97
|
+
: undefined);
|
|
89
98
|
const to = party(move.to);
|
|
90
99
|
const purpose = operator(to)
|
|
91
100
|
? "earning"
|
|
92
101
|
: operator(from)
|
|
93
102
|
? "participant_payout"
|
|
94
103
|
: "pass_through";
|
|
95
|
-
|
|
104
|
+
// Money leaving an account of self is the company's: only an earning
|
|
105
|
+
// into the company may name the customer it was held for.
|
|
106
|
+
const source = from
|
|
107
|
+
? parameter(from)
|
|
108
|
+
: purpose === "earning"
|
|
109
|
+
? (parameters[0] ?? "owner")
|
|
110
|
+
: "programOperator";
|
|
96
111
|
warnings.push({
|
|
97
112
|
code: "economic_purpose_missing",
|
|
98
113
|
message: `${attach.name}: ${path} moves money with no declared purpose, so the books will not count it as revenue or a payout`,
|
|
@@ -190,4 +205,87 @@ export function samePartyMoves(document, selectors, attaches) {
|
|
|
190
205
|
}
|
|
191
206
|
return { errors, warnings };
|
|
192
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* The ledger books a classified move only when its sourceParty owns the
|
|
210
|
+
* account the money leaves (ledger-facts checkEconomicOwners). An account of
|
|
211
|
+
* self or of an adapter belongs to the company; a party's account belongs to
|
|
212
|
+
* that party. The one exception is a held earning: money held in an account of
|
|
213
|
+
* self that lands in the company's own account may name the customer it was
|
|
214
|
+
* held for. A mismatch compiles today and refuses every run with
|
|
215
|
+
* economic_source_unbound, so the action can never run. `owner` and `actor`
|
|
216
|
+
* can be one person at run time, so only a mismatch that can never resolve is
|
|
217
|
+
* an error.
|
|
218
|
+
*/
|
|
219
|
+
export function unboundEconomicSources(document, selectors, attaches) {
|
|
220
|
+
const errors = [];
|
|
221
|
+
const company = (name) => name === "operator" ||
|
|
222
|
+
name === "programOperator" ||
|
|
223
|
+
document.parties[name]?.role === "program_operator";
|
|
224
|
+
const identity = (name) => (company(name) ? "company" : name);
|
|
225
|
+
const customer = (name) => name === "owner" || name === "actor";
|
|
226
|
+
const bindings = new Map(document.objects.flatMap((object) => object.attachments.map((item) => [item.instrument, item.parties])));
|
|
227
|
+
for (const instrument of document.instruments) {
|
|
228
|
+
const selector = selectors.get(instrument.id);
|
|
229
|
+
const attach = selector && attaches.get(selector.root);
|
|
230
|
+
if (!selector || !attach)
|
|
231
|
+
continue;
|
|
232
|
+
const parties = bindings.get(instrument.id) ?? bindings.get(selector.root) ?? {};
|
|
233
|
+
// The founder's own parameter name, such as member for owner.
|
|
234
|
+
const spell = (name) => (!company(name) &&
|
|
235
|
+
Object.entries(parties).find(([, binding]) => ("role" in binding ? binding.role : binding.party) === name)?.[0]) ||
|
|
236
|
+
name;
|
|
237
|
+
for (const actionName of instrument.actionOrder) {
|
|
238
|
+
const action = instrument.actions[actionName];
|
|
239
|
+
for (const move of action.moves) {
|
|
240
|
+
// Only this instrument's own accounts: a path through another
|
|
241
|
+
// record names that record's parties, not this attachment's.
|
|
242
|
+
if (!move.economics ||
|
|
243
|
+
!("amount" in move) ||
|
|
244
|
+
!/^(?:party|self)\.\w+$/.test(move.from))
|
|
245
|
+
continue;
|
|
246
|
+
const account = resolveField(document, instrument, move.from, action.input, action);
|
|
247
|
+
if (account?.type !== "account")
|
|
248
|
+
continue;
|
|
249
|
+
const owner = account.owner === "self" || typeof account.owner !== "string"
|
|
250
|
+
? "company"
|
|
251
|
+
: identity(account.owner);
|
|
252
|
+
const source = identity(move.economics.sourceParty);
|
|
253
|
+
if (owner === source || (customer(owner) && customer(source)))
|
|
254
|
+
continue;
|
|
255
|
+
// A path to another record's account, such as a payment's held
|
|
256
|
+
// profit landing in self.plan.profitIncome, counts when that account
|
|
257
|
+
// is the company's or cannot be resolved here.
|
|
258
|
+
const destination = /^party\.\w+$/.test(move.to)
|
|
259
|
+
? undefined
|
|
260
|
+
: resolveField(document, instrument, move.to, action.input, action);
|
|
261
|
+
const toCompany = /^party\.\w+$/.test(move.to)
|
|
262
|
+
? company(move.to.slice("party.".length))
|
|
263
|
+
: destination?.type !== "account" ||
|
|
264
|
+
typeof destination.owner !== "string" ||
|
|
265
|
+
destination.owner === "self" ||
|
|
266
|
+
company(destination.owner);
|
|
267
|
+
const heldEarning = move.economics.purpose === "earning" &&
|
|
268
|
+
!move.economics.reversalOf &&
|
|
269
|
+
account.owner === "self" &&
|
|
270
|
+
source !== "company" &&
|
|
271
|
+
toCompany;
|
|
272
|
+
if (heldEarning)
|
|
273
|
+
continue;
|
|
274
|
+
const path = `${selector.prefix}${actionName}${action.moves.length > 1 ? `.${move.key}` : ""}`;
|
|
275
|
+
const owned = owner === "company" ? "your company's" : `the ${spell(owner)}'s`;
|
|
276
|
+
const fix = owner === "company" ? "programOperator" : owner;
|
|
277
|
+
errors.push({
|
|
278
|
+
code: "economic_source_unbound",
|
|
279
|
+
message: `${attach.name}: ${path} moves money out of ${move.from.startsWith("party.") ? spell(move.from.slice(6)) : move.from}, which is ${owned} account, but names ${spell(move.economics.sourceParty)} as the source. Every run of this action would refuse with economic_source_unbound.`,
|
|
280
|
+
fix: `Set sourceParty: ${fix === "programOperator" ? fix : spell(fix)} on economics ${path}, or move the money from an account ${spell(move.economics.sourceParty)} owns.`,
|
|
281
|
+
span: {
|
|
282
|
+
start: attach.entry.span.start,
|
|
283
|
+
end: attach.entry.span.start + `attach ${attach.name}`.length,
|
|
284
|
+
},
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return errors;
|
|
290
|
+
}
|
|
193
291
|
//# sourceMappingURL=attachment-economics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-economics.js","sourceRoot":"","sources":["../../src/attachment-economics.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,GAKd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,uFAAuF;AACvF,MAAM,UAAU,wBAAwB,CACtC,QAAqB,EACrB,UAAyB,EACzB,OAA+C,EAC/C,YAAqB,EACrB,IAAmC,EACnC,OAAO,GAAsB,EAAE;IAE/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,UAAW,CAAC;YAC3D,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,UAAW,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,MAAM;YACT,IAAI,CACF,WAAW,EACX,4BAA4B,UAAU,EAAE,EACxC,UAAU,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAoC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzJ,CAAC;QACJ,MAAM,IAAI,GAAG,OAAO;YAClB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC;YACnD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBACzB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,KAAK;YAChB,IAAI,CACF,WAAW,EACX,aAAa,QAAQ,6BAA6B,EAClD,MAAM,CAAC,KAAK,CAAC,MAAM;gBACjB,CAAC,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChF,CAAC,CAAC,mDAAmD,CACxD,CAAC;QACJ,IAAI,IAAI,CAAC,SAAS,KAAK,wBAAwB;YAC7C,IAAI,CACF,WAAW,EACX,aAAa,QAAQ,yBAAyB,EAC9C,uDAAuD,CACxD,CAAC;QACJ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YACpB,IAAI,CACF,WAAW,EACX,0BAA0B,QAAQ,EAAE,EACpC,wCAAwC,CACzC,CAAC;QACJ,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC;YACrC,GAAG,IAAI;YACP,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;YAC3C,IAAI,CACF,WAAW,EACX,yBAAyB,QAAQ,EAAE,EACnC,iEAAiE,CAClE,CAAC;QACJ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACxC,IACE,IAAI,CAAC,SAAS;YACd,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO;gBAC3C,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW;gBACpD,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,CAAC;YAErD,IAAI,CACF,WAAW,EACX,aAAa,QAAQ,mDAAmD,EACxE,gEAAgE,CACjE,CAAC;QACJ,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;QACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAA0B,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,UAAU;YACxD,IAAI,CACF,WAAW,EACX,iCAAiC,MAAM,EAAE,EACzC,mEAAmE,CACpE,CAAC;QACJ,IACE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACvC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CACvE,EACD,CAAC;YACD,IAAI,GAAG,GAAG,gBAAgB,CAAC;YAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE;gBACtD,GAAG,GAAG,iBAAiB,KAAK,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;gBACjB,CAAC,CAAC,EAAE,IAAI,EAAE,MAA0B,EAAE;gBACtC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAqB,EACrB,SAAgE,EAChE,QAGC;IAED,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAClE,CACF,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,IAAwB,EAAE,EAAE,CACzC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,CAAC,IAAwB,EAAE,EAAE,CAC5C,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,iBAAiB,CAAC;IACpD,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU;aAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;aACzE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,kEAAkE;QAClE,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CACjC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,CACL,OAAO,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CACvE,CAAC;QACJ,CAAC,CAAC,IAAI,IAAI,CAAC;QACb,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAE,CAAC;YAC/C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChC,IACE,IAAI,CAAC,SAAS;oBACd,CAAC,IAAI,CAAC,SAAS,KAAK,0BAA0B;wBAC5C,IAAI,CAAC,SAAS,KAAK,2BAA2B,CAAC;oBAEjD,SAAS;gBACX,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC/F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC;oBAC1B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACd,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,cAAc,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;gBACnE,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,0BAA0B;oBAChC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,8FAA8F;oBAC9H,GAAG,EAAE,iBAAiB,IAAI,eAAe,OAAO,kBAAkB,MAAM,oBAAoB,MAAM,CAAC,IAAI,EAAE;oBACzG,kEAAkE;oBAClE,IAAI,EAAE;wBACJ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;wBAC9B,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM;qBAC9D;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAqB,EACrB,SAAgE,EAChE,QAGC;IAED,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAClE,CACF,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,IAAwB,EAAE,EAAE,CACzC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9B,IAAI,KAAK,iBAAiB;QAC1B,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,kBAAkB;QACjD,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAClD,yDAAyD;QACzD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CACjC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAC3C,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAC3B,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CACzD,CACF,EAAE,CAAC,CAAC,CAAC,CAAC;QACT,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,CACpC,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;QACzB,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO;YAC/C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YACvB,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,UAAU,GAAG,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAChD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,UAAU,CAAE,CAAC,KAAK,EAAE,CAAC;gBACzD,MAAM,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3D,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrD,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;oBAAE,SAAS;gBAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/B,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrD,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC5B,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG;oBACX,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;oBAC9B,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM;iBAC9D,CAAC;gBACF,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,MAAM,GAAG,GACP,KAAK,KAAK,KAAK;wBACb,CAAC,CAAC,IAAI,SAAS,CAAC,UAAW,CAAC,IAAI,UAAU,6BAA6B,UAAU,GAAG;wBACpF,CAAC,CAAC,EAAE,CAAC;oBACT,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,qBAAqB,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC,kBAAkB,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,6BAA6B;wBACpJ,GAAG,EAAE,qEAAqE,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,eAAe,SAAS,CAAC,EAAE,CAAC,IAAI,OAAO,+CAA+C;wBAC1L,IAAI;qBACL,CAAC,CAAC;gBACL,CAAC;qBAAM;gBACL,8DAA8D;gBAC9D,6DAA6D;gBAC7D,CAAC,UAAU;oBACX,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC5B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC/B,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,qBAAqB,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC,iFAAiF;wBACjK,GAAG,EAAE,+CAA+C,SAAS,CAAC,OAAO,CAAC,IAAI,kBAAkB,qCAAqC;wBACjI,IAAI;qBACL,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"attachment-economics.js","sourceRoot":"","sources":["../../src/attachment-economics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-contract.d.ts","sourceRoot":"","sources":["../../src/binding-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAQ,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5D,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,KAAK,EAAE,KAAK;IADvB,YACW,KAAK,EAAE,KAAK,EACrB,OAAO,EAAE,MAAM,EAGhB;CACF;AAkDD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc;;;;;;;
|
|
1
|
+
{"version":3,"file":"binding-contract.d.ts","sourceRoot":"","sources":["../../src/binding-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAQ,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5D,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,KAAK,EAAE,KAAK;IADvB,YACW,KAAK,EAAE,KAAK,EACrB,OAAO,EAAE,MAAM,EAGhB;CACF;AAkDD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc;;;;;;;IAqCvD;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc;;;;;IAUxD"}
|
|
@@ -45,10 +45,16 @@ export function bindingDependencies(decl) {
|
|
|
45
45
|
const type = selector?.value.kind === "default"
|
|
46
46
|
? selector.value.type
|
|
47
47
|
: selector?.value;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
// An optional selector reads like `when every is unset`.
|
|
49
|
+
const presence = (type?.kind === "type" || type?.kind === "call") &&
|
|
50
|
+
type.name !== "enum" &&
|
|
51
|
+
!!type.optional &&
|
|
52
|
+
["set", "unset"].includes(values.get("is"));
|
|
53
|
+
if (!presence &&
|
|
54
|
+
(type?.kind !== "call" ||
|
|
55
|
+
type.name !== "enum" ||
|
|
56
|
+
!type.args.some((arg) => arg.kind === "name" && arg.value === values.get("is"))))
|
|
57
|
+
throw new BindingContractError(entry, "Dependency must select a declared enum choice, or set or unset of an optional tunable.");
|
|
52
58
|
return {
|
|
53
59
|
binding: entry.key,
|
|
54
60
|
when: values.get("selector"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-contract.js","sourceRoot":"","sources":["../../src/binding-contract.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"binding-contract.js","sourceRoot":"","sources":["../../src/binding-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/src/compile.js
CHANGED
|
@@ -5,7 +5,7 @@ import { validateUdl, resolveField, sameAccount, sameObjectField, subjectPartyRo
|
|
|
5
5
|
import { bindingDependencies, parameterDiagnostics, BindingContractError, } from "./binding-contract.js";
|
|
6
6
|
import { tunableBounds } from "./tunables.js";
|
|
7
7
|
import { parseProgram } from "./parse.js";
|
|
8
|
-
import { applyAttachmentEconomics, purposeWarnings, samePartyMoves, } from "./attachment-economics.js";
|
|
8
|
+
import { applyAttachmentEconomics, purposeWarnings, samePartyMoves, unboundEconomicSources, } from "./attachment-economics.js";
|
|
9
9
|
import { parseHeader } from "./header-source.js";
|
|
10
10
|
import { lineColAt, } from "./ast.js";
|
|
11
11
|
import { bundledStandardLibrary } from "./std-library.js";
|
|
@@ -664,7 +664,7 @@ export function compile(source, options = {}) {
|
|
|
664
664
|
const fallback = param.value.kind === "default" ? param.value.value : undefined;
|
|
665
665
|
const typeName = type.kind === "type" || type.kind === "call" ? type.name : text(type);
|
|
666
666
|
const partyParameter = attachmentInfo && typeName === "party";
|
|
667
|
-
const optional = type.kind === "type" && type.optional;
|
|
667
|
+
const optional = (type.kind === "type" || type.kind === "call") && !!type.optional;
|
|
668
668
|
// An optional party stays unset unless the attachment binds it, so a
|
|
669
669
|
// program party that shares its name does not switch it on.
|
|
670
670
|
const byName = partyParameter &&
|
|
@@ -723,9 +723,10 @@ export function compile(source, options = {}) {
|
|
|
723
723
|
}
|
|
724
724
|
for (const dependency of dependencies) {
|
|
725
725
|
const selected = environment.get(dependency.when);
|
|
726
|
-
|
|
727
|
-
selected.value === dependency.is
|
|
728
|
-
|
|
726
|
+
const holds = enums.has(dependency.when)
|
|
727
|
+
? selected?.kind === "name" && selected.value === dependency.is
|
|
728
|
+
: tunables.get(dependency.when) === (dependency.is === "set");
|
|
729
|
+
if (holds && !environment.has(dependency.binding)) {
|
|
729
730
|
throw new CompileFailure({
|
|
730
731
|
code: "HSX1001",
|
|
731
732
|
message: dependency.message.replaceAll("{attachment}", attachmentInfo?.attachmentName ?? id),
|
|
@@ -836,7 +837,8 @@ export function compile(source, options = {}) {
|
|
|
836
837
|
const target = templates.get(type);
|
|
837
838
|
const required = target?.parameters
|
|
838
839
|
.filter((p) => p.value.kind !== "default" &&
|
|
839
|
-
!(p.value.kind === "type"
|
|
840
|
+
!((p.value.kind === "type" || p.value.kind === "call") &&
|
|
841
|
+
p.value.optional))
|
|
840
842
|
.map((p) => p.key) ?? [];
|
|
841
843
|
fail({ span: origin }, `Attachment \`${attachmentInfo.attachmentName}\` needs a \`${parameter}\` binding. ${matches.length === 0
|
|
842
844
|
? `No \`${type}\` attachment exists on \`${attachmentInfo.subjectKindId}\`.`
|
|
@@ -1099,6 +1101,27 @@ export function compile(source, options = {}) {
|
|
|
1099
1101
|
throw new CompileFailure(parameterErrors[0]);
|
|
1100
1102
|
}
|
|
1101
1103
|
const body = entries(decl.body);
|
|
1104
|
+
// A ceiling caps a tunable by the value of an enum tunable, such as the
|
|
1105
|
+
// longest term per loan kind. An unset tunable takes the ceiling; a
|
|
1106
|
+
// supplied one may lower it, never raise it.
|
|
1107
|
+
for (const ceiling of asBlock(body.get("ceilings")).entries) {
|
|
1108
|
+
const table = entries(asBlock(ceiling.value));
|
|
1109
|
+
const by = table.get("by");
|
|
1110
|
+
const selected = by && environment.get(text(by));
|
|
1111
|
+
if (!by || selected?.kind !== "name")
|
|
1112
|
+
fail(ceiling, `ceiling ${ceiling.key} needs by: an enum tunable`, "write by: kind and one maximum per enum value");
|
|
1113
|
+
const maximum = table.get(selected.value);
|
|
1114
|
+
if (maximum?.kind !== "number")
|
|
1115
|
+
fail(ceiling, `ceiling ${ceiling.key} has no maximum for ${selected.value}`, `add ${selected.value}: number to the ceiling`);
|
|
1116
|
+
if (!tunables.get(ceiling.key)) {
|
|
1117
|
+
environment.set(ceiling.key, { ...maximum, span: origin });
|
|
1118
|
+
continue;
|
|
1119
|
+
}
|
|
1120
|
+
const supplied = environment.get(ceiling.key);
|
|
1121
|
+
if (supplied.kind !== "number" ||
|
|
1122
|
+
BigInt(supplied.value) > BigInt(maximum.value))
|
|
1123
|
+
fail(supplied, `${ceiling.key} for ${selected.value} is at most ${maximum.value}`, `choose ${ceiling.key} of ${maximum.value} or less, or omit it`);
|
|
1124
|
+
}
|
|
1102
1125
|
for (const constraint of asBlock(body.get("constraints")).entries) {
|
|
1103
1126
|
const rule = constraint.value;
|
|
1104
1127
|
if (rule.kind !== "call" ||
|
|
@@ -1108,6 +1131,9 @@ export function compile(source, options = {}) {
|
|
|
1108
1131
|
const left = environment.get(constraint.key), right = environment.get(text(rule.args[0]));
|
|
1109
1132
|
if (!left || !right)
|
|
1110
1133
|
fail(rule, "constraint needs two declared tunables", "name the compared tunables");
|
|
1134
|
+
// A runtime value is checked when the agreement is created.
|
|
1135
|
+
if ([left, right].some((expr) => expr.kind === "name" && expr.value === "runtime"))
|
|
1136
|
+
continue;
|
|
1111
1137
|
const numericKind = (expr) => expr.kind === "name" && /^P(?:\d|T)/.test(expr.value)
|
|
1112
1138
|
? "duration"
|
|
1113
1139
|
: expr.kind;
|
|
@@ -1131,6 +1157,7 @@ export function compile(source, options = {}) {
|
|
|
1131
1157
|
"summary",
|
|
1132
1158
|
"invariants",
|
|
1133
1159
|
"constraints",
|
|
1160
|
+
"ceilings",
|
|
1134
1161
|
"dependencies",
|
|
1135
1162
|
"parameterDiagnostics",
|
|
1136
1163
|
"reports",
|
|
@@ -3443,11 +3470,12 @@ export function compile(source, options = {}) {
|
|
|
3443
3470
|
}),
|
|
3444
3471
|
};
|
|
3445
3472
|
const sameParty = samePartyMoves(document, attachedSelectors, attachEntries);
|
|
3446
|
-
|
|
3473
|
+
const unbound = unboundEconomicSources(document, attachedSelectors, attachEntries);
|
|
3474
|
+
if (sameParty.errors.length || unbound.length)
|
|
3447
3475
|
return {
|
|
3448
3476
|
verdict: "invalid",
|
|
3449
3477
|
warnings: [],
|
|
3450
|
-
diagnostics: sameParty.errors.map((d) => diagnostic(d, "check")),
|
|
3478
|
+
diagnostics: [...sameParty.errors, ...unbound].map((d) => diagnostic(d, "check")),
|
|
3451
3479
|
};
|
|
3452
3480
|
return {
|
|
3453
3481
|
verdict: "valid",
|