@hyperscale0/udl 1.0.0-alpha.4 → 1.0.0-beta.1
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/CHANGELOG.md +56 -1
- package/README.md +22 -20
- package/dist/evolution.d.ts +17 -0
- package/dist/evolution.d.ts.map +1 -1
- package/dist/evolution.js +54 -0
- package/dist/evolution.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +207 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +205 -1
- package/dist/schema.js.map +1 -1
- package/dist/validation.d.ts +6 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +323 -14
- package/dist/validation.js.map +1 -1
- package/package.json +1 -1
- package/spec/README.md +10 -7
- package/spec/udl.schema.json +289 -0
- package/src/evolution.ts +99 -0
- package/src/index.ts +4 -0
- package/src/schema.ts +238 -1
- package/src/validation.ts +504 -19
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/validation.d.ts
CHANGED
|
@@ -25,6 +25,12 @@ export declare function assertValidUdl(value: unknown): UdlDocument;
|
|
|
25
25
|
* standard validator or sealed format validators run.
|
|
26
26
|
*/
|
|
27
27
|
export declare function validateUdlSchemaValue(schema: Readonly<Record<string, unknown>>, value: unknown): ValidationResult;
|
|
28
|
+
/**
|
|
29
|
+
* Validates one schema document against the sealed UDL JSON Schema subset
|
|
30
|
+
* without applying it to a value. Frozen tenant contracts use this at their
|
|
31
|
+
* persistence boundary so an unreadable schema cannot become immutable state.
|
|
32
|
+
*/
|
|
33
|
+
export declare function validateUdlJsonSchema(schema: unknown): readonly UdlIssue[];
|
|
28
34
|
/**
|
|
29
35
|
* One budget's worth of reference-shape classification: the memo of the answers
|
|
30
36
|
* already bought and what is left of the probe budget. What is guaranteed is
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAGL,KAAK,WAAW,EAMjB,MAAM,aAAa,CAAC;AAKrB,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjE,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;gBAEzB,MAAM,EAAE,SAAS,QAAQ,EAAE;CAUxC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAiC/D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,KAAK,EAAE,OAAO,GACb,gBAAgB,CA2BlB;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAGL,KAAK,WAAW,EAMjB,MAAM,aAAa,CAAC;AAKrB,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjE,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;gBAEzB,MAAM,EAAE,SAAS,QAAQ,EAAE;CAUxC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAiC/D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,KAAK,EAAE,OAAO,GACb,gBAAgB,CA2BlB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,QAAQ,EAAE,CAkB1E;AAynED;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5E;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAeD,wBAAgB,wBAAwB,IAAI,oBAAoB,CAwB/D"}
|
package/dist/validation.js
CHANGED
|
@@ -37,7 +37,7 @@ export function validateUdl(value) {
|
|
|
37
37
|
issues: [
|
|
38
38
|
{
|
|
39
39
|
code: "resource_limit",
|
|
40
|
-
message: `document exceeds ${UDL_LIMITS.maxSchemaProbes} reference-shape checks; declare fewer nouns or
|
|
40
|
+
message: `document exceeds ${UDL_LIMITS.maxSchemaProbes} reference-shape checks; declare fewer nouns, reference gates, or payout intents`,
|
|
41
41
|
path: "$.nouns",
|
|
42
42
|
},
|
|
43
43
|
],
|
|
@@ -85,6 +85,30 @@ export function validateUdlSchemaValue(schema, value) {
|
|
|
85
85
|
const errors = [...standard.errors, ...sealedErrors];
|
|
86
86
|
return { errors, valid: errors.length === 0 };
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Validates one schema document against the sealed UDL JSON Schema subset
|
|
90
|
+
* without applying it to a value. Frozen tenant contracts use this at their
|
|
91
|
+
* persistence boundary so an unreadable schema cannot become immutable state.
|
|
92
|
+
*/
|
|
93
|
+
export function validateUdlJsonSchema(schema) {
|
|
94
|
+
const admissionIssue = structuralBudgetIssue(schema);
|
|
95
|
+
if (admissionIssue)
|
|
96
|
+
return [admissionIssue];
|
|
97
|
+
if (!isRecord(schema)) {
|
|
98
|
+
return [
|
|
99
|
+
{
|
|
100
|
+
code: "invalid_shape",
|
|
101
|
+
message: "JSON Schema must be an object",
|
|
102
|
+
path: "$",
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
}
|
|
106
|
+
const issues = [];
|
|
107
|
+
validateJsonSchema(schema, [], (path, message) => {
|
|
108
|
+
issues.push({ code: "invalid_semantics", message, path: jsonPath(path) });
|
|
109
|
+
});
|
|
110
|
+
return issues;
|
|
111
|
+
}
|
|
88
112
|
function admissionValidationResult(issue, invalidKeyword) {
|
|
89
113
|
return {
|
|
90
114
|
errors: [
|
|
@@ -100,6 +124,7 @@ function admissionValidationResult(issue, invalidKeyword) {
|
|
|
100
124
|
}
|
|
101
125
|
const positiveMoneyPattern = "^[1-9][0-9]{0,17}$";
|
|
102
126
|
const nonNegativeMoneyPattern = "^(0|[1-9][0-9]{0,17})$";
|
|
127
|
+
const currencyPattern = "^[A-Z]{3}$";
|
|
103
128
|
const sealedDateTimeFormat = "hyperscale-date-time";
|
|
104
129
|
const jsonSchemaFormats = new Set([
|
|
105
130
|
"hyperscale-date",
|
|
@@ -636,21 +661,30 @@ function validateNoun(noun, nounIndex, nouns, subjects, references, add) {
|
|
|
636
661
|
}
|
|
637
662
|
function validateSetsAt(noun, base, add) {
|
|
638
663
|
const writers = new Map();
|
|
664
|
+
const markerFields = new Set();
|
|
639
665
|
for (const [verbName, verb] of Object.entries(noun.verbs)) {
|
|
640
666
|
if (!verb.setsAt)
|
|
641
667
|
continue;
|
|
642
668
|
const path = [...base, "verbs", verbName, "setsAt"];
|
|
643
|
-
const { field, offset } = verb.setsAt;
|
|
669
|
+
const { field, marker, offset } = verb.setsAt;
|
|
670
|
+
if (marker)
|
|
671
|
+
markerFields.add(field);
|
|
644
672
|
if (verbName === "create") {
|
|
645
673
|
add(path, "setsAt requires a lifecycle transition and cannot run on create");
|
|
646
674
|
}
|
|
647
|
-
const
|
|
648
|
-
if (
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
675
|
+
const fieldWriters = writers.get(field) ?? [];
|
|
676
|
+
if (fieldWriters.length > 0) {
|
|
677
|
+
const alternatives = [...fieldWriters, verbName];
|
|
678
|
+
const targets = new Set(alternatives.map((writer) => noun.lifecycle.transitions[writer]?.to));
|
|
679
|
+
const reentrant = alternatives.some((writer) => {
|
|
680
|
+
const transition = noun.lifecycle.transitions[writer];
|
|
681
|
+
return transition?.from.includes(transition.to) === true;
|
|
682
|
+
});
|
|
683
|
+
if (targets.size !== 1 || targets.has(undefined) || reentrant) {
|
|
684
|
+
add([...path, "field"], `${field} has multiple writers without one shared one-way destination`);
|
|
685
|
+
}
|
|
653
686
|
}
|
|
687
|
+
writers.set(field, [...fieldWriters, verbName]);
|
|
654
688
|
const schema = noun.fields[field];
|
|
655
689
|
if (!schema) {
|
|
656
690
|
add([...path, "field"], `setsAt references unknown field ${field}`);
|
|
@@ -669,30 +703,41 @@ function validateSetsAt(noun, base, add) {
|
|
|
669
703
|
add([...path, "offset"], "setsAt.offset must be a positive fixed ISO-8601 duration");
|
|
670
704
|
}
|
|
671
705
|
const readers = Object.entries(noun.verbs).filter(([, candidate]) => candidate.due?.field === field || candidate.deadline?.field === field);
|
|
706
|
+
if (marker) {
|
|
707
|
+
if (readers.length > 0) {
|
|
708
|
+
add(path, `setsAt marker field ${field} cannot drive a due condition or deadline`);
|
|
709
|
+
}
|
|
710
|
+
continue;
|
|
711
|
+
}
|
|
672
712
|
if (readers.length === 0) {
|
|
673
713
|
add(path, `setsAt field ${field} must anchor at least one due condition or deadline`);
|
|
674
714
|
continue;
|
|
675
715
|
}
|
|
716
|
+
}
|
|
717
|
+
for (const [field, fieldWriters] of writers) {
|
|
718
|
+
if (markerFields.has(field))
|
|
719
|
+
continue;
|
|
720
|
+
const readers = Object.entries(noun.verbs).filter(([, candidate]) => candidate.due?.field === field || candidate.deadline?.field === field);
|
|
676
721
|
for (const [readerName] of readers) {
|
|
677
|
-
if (
|
|
678
|
-
|
|
679
|
-
add([...base, "verbs", readerName], `verb ${readerName} can read ${field} before writer ${verbName}`);
|
|
722
|
+
if (!verbGroupDominatesReader(noun, fieldWriters, readerName)) {
|
|
723
|
+
add([...base, "verbs", readerName], `verb ${readerName} can read ${field} before writers ${fieldWriters.join(" or ")}`);
|
|
680
724
|
}
|
|
681
725
|
}
|
|
682
726
|
}
|
|
683
727
|
}
|
|
684
|
-
function
|
|
685
|
-
if (
|
|
728
|
+
function verbGroupDominatesReader(noun, writers, reader) {
|
|
729
|
+
if (writers.length === 0)
|
|
686
730
|
return false;
|
|
687
731
|
const readerTransition = noun.lifecycle.transitions[reader];
|
|
688
732
|
if (!readerTransition)
|
|
689
733
|
return false;
|
|
734
|
+
const removed = new Set(writers);
|
|
690
735
|
const reachable = new Set([noun.lifecycle.initial]);
|
|
691
736
|
const pending = [noun.lifecycle.initial];
|
|
692
737
|
while (pending.length > 0) {
|
|
693
738
|
const state = pending.shift();
|
|
694
739
|
for (const [verb, transition] of Object.entries(noun.lifecycle.transitions)) {
|
|
695
|
-
if (verb
|
|
740
|
+
if (removed.has(verb) ||
|
|
696
741
|
!transition.from.includes(state) ||
|
|
697
742
|
reachable.has(transition.to)) {
|
|
698
743
|
continue;
|
|
@@ -761,6 +806,7 @@ function validateUpdate(noun, base, states, add) {
|
|
|
761
806
|
});
|
|
762
807
|
}
|
|
763
808
|
function validateVerbs(noun, base, nouns, references, add) {
|
|
809
|
+
validatePayoutsAndSettlement(noun, base, references, add);
|
|
764
810
|
for (const [verb, definition] of Object.entries(noun.verbs)) {
|
|
765
811
|
const verbBase = [...base, "verbs", verb];
|
|
766
812
|
if (verb === "create" && definition.input) {
|
|
@@ -769,6 +815,12 @@ function validateVerbs(noun, base, nouns, references, add) {
|
|
|
769
815
|
if (definition.input && definition.input.type !== "object") {
|
|
770
816
|
add([...verbBase, "input", "type"], "verb input must declare an object-shaped JSON Schema");
|
|
771
817
|
}
|
|
818
|
+
const inputFields = recordValue(definition.input?.properties);
|
|
819
|
+
for (const [refKey, inputKey] of Object.entries(definition.captureInput ?? {})) {
|
|
820
|
+
if (!Object.hasOwn(inputFields, inputKey)) {
|
|
821
|
+
add([...verbBase, "captureInput", refKey], `captured receipt input references undeclared verb input field ${inputKey}`);
|
|
822
|
+
}
|
|
823
|
+
}
|
|
772
824
|
addDuplicateIssues(definition.moves.map((move) => move.key), [...verbBase, "moves"], "move key", add);
|
|
773
825
|
if (definition.earnable && definition.moves.length === 0) {
|
|
774
826
|
add(verbBase, "earnable requires a money move");
|
|
@@ -812,7 +864,106 @@ function validateVerbs(noun, base, nouns, references, add) {
|
|
|
812
864
|
add([...drainBase, "path"], `requiresDrainedAccount reads ${path}, which is not declared`);
|
|
813
865
|
}
|
|
814
866
|
}
|
|
867
|
+
if (definition.signedSum) {
|
|
868
|
+
const sumBase = [...verbBase, "signedSum"];
|
|
869
|
+
if (verb === "create") {
|
|
870
|
+
add(sumBase, "signedSum cannot run on create: no parent row exists yet");
|
|
871
|
+
}
|
|
872
|
+
const generatedRefs = [
|
|
873
|
+
{
|
|
874
|
+
key: definition.signedSum.amountRef,
|
|
875
|
+
path: [...sumBase, "amountRef"],
|
|
876
|
+
},
|
|
877
|
+
...definition.signedSum.sources.map((source, sourceIndex) => ({
|
|
878
|
+
key: source.subtotalRef,
|
|
879
|
+
path: [...sumBase, "sources", sourceIndex, "subtotalRef"],
|
|
880
|
+
})),
|
|
881
|
+
];
|
|
882
|
+
addDuplicateIssues(generatedRefs.map((ref) => ref.key), sumBase, "signed sum ref", add);
|
|
883
|
+
const existingRefs = new Set([
|
|
884
|
+
...Object.entries(noun.verbs).flatMap(([candidateVerb, candidate]) => [
|
|
885
|
+
...Object.keys(candidate.captureInput ?? {}),
|
|
886
|
+
...[...candidate.steps, ...candidate.moves].flatMap((step) => Object.keys(step.capture ?? {})),
|
|
887
|
+
...(candidateVerb !== verb && candidate.signedSum
|
|
888
|
+
? [
|
|
889
|
+
candidate.signedSum.amountRef,
|
|
890
|
+
...candidate.signedSum.sources.map((source) => source.subtotalRef),
|
|
891
|
+
]
|
|
892
|
+
: []),
|
|
893
|
+
]),
|
|
894
|
+
...(noun.unwind ? ["unwindRefund", "unwindPenalty"] : []),
|
|
895
|
+
...(noun.subject ? ["subject"] : []),
|
|
896
|
+
]);
|
|
897
|
+
for (const ref of generatedRefs) {
|
|
898
|
+
if (existingRefs.has(ref.key)) {
|
|
899
|
+
add(ref.path, `signed sum ref ${ref.key} collides with an existing noun ref key`);
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
if (!definition.signedSum.sources.some((source) => source.sign === "add")) {
|
|
903
|
+
add([...sumBase, "sources"], "signedSum needs at least one add source");
|
|
904
|
+
}
|
|
905
|
+
const parentCurrencies = Object.entries(noun.fields).filter(([, schema]) => isCurrencySchema(schema));
|
|
906
|
+
if (parentCurrencies.length !== 1) {
|
|
907
|
+
add(sumBase, `signedSum parent ${noun.id} needs exactly one currency field`);
|
|
908
|
+
}
|
|
909
|
+
const sourceKeys = definition.signedSum.sources.map((source) => `${source.nounId}:${source.refField}:${source.amountField}:${source.sign}:${[...source.statuses].sort().join(",")}`);
|
|
910
|
+
addDuplicateIssues(sourceKeys, [...sumBase, "sources"], "signed sum source", add);
|
|
911
|
+
definition.signedSum.sources.forEach((source, sourceIndex) => {
|
|
912
|
+
for (let priorIndex = 0; priorIndex < sourceIndex; priorIndex += 1) {
|
|
913
|
+
const prior = definition.signedSum?.sources[priorIndex];
|
|
914
|
+
if (!prior ||
|
|
915
|
+
prior.nounId !== source.nounId ||
|
|
916
|
+
prior.refField !== source.refField ||
|
|
917
|
+
prior.amountField !== source.amountField ||
|
|
918
|
+
prior.sign !== source.sign) {
|
|
919
|
+
continue;
|
|
920
|
+
}
|
|
921
|
+
const priorStatuses = new Set(prior.statuses);
|
|
922
|
+
const overlap = source.statuses.filter((status) => priorStatuses.has(status));
|
|
923
|
+
if (overlap.length === 0)
|
|
924
|
+
continue;
|
|
925
|
+
add([...sumBase, "sources", sourceIndex, "statuses"], `signed sum source overlaps source ${priorIndex} on statuses ${overlap.join(", ")}`);
|
|
926
|
+
}
|
|
927
|
+
});
|
|
928
|
+
definition.signedSum.sources.forEach((source, sourceIndex) => {
|
|
929
|
+
const sourceBase = [...sumBase, "sources", sourceIndex];
|
|
930
|
+
const child = nouns.get(source.nounId);
|
|
931
|
+
if (!child) {
|
|
932
|
+
add([...sourceBase, "nounId"], `signedSum references unknown noun ${source.nounId}`);
|
|
933
|
+
return;
|
|
934
|
+
}
|
|
935
|
+
const refSchema = child.fields[source.refField];
|
|
936
|
+
if (!refSchema || !references.accepts(refSchema, noun.idPrefix)) {
|
|
937
|
+
add([...sourceBase, "refField"], `${source.nounId}.${source.refField} must reference ${noun.id}`);
|
|
938
|
+
}
|
|
939
|
+
const amountSchema = child.fields[source.amountField];
|
|
940
|
+
if (!amountSchema || !isMoneySchema(amountSchema)) {
|
|
941
|
+
add([...sourceBase, "amountField"], `${source.nounId}.${source.amountField} must be a money field`);
|
|
942
|
+
}
|
|
943
|
+
const childCurrencies = Object.entries(child.fields).filter(([, schema]) => isCurrencySchema(schema));
|
|
944
|
+
if (childCurrencies.length !== 1) {
|
|
945
|
+
add([...sourceBase, "nounId"], `signedSum source ${source.nounId} needs exactly one currency field`);
|
|
946
|
+
}
|
|
947
|
+
addDuplicateIssues(source.statuses, [...sourceBase, "statuses"], "signed sum status", add);
|
|
948
|
+
source.statuses.forEach((status, statusIndex) => {
|
|
949
|
+
if (!child.lifecycle.states.includes(status)) {
|
|
950
|
+
add([...sourceBase, "statuses", statusIndex], `signedSum status ${status} is not declared by ${source.nounId}`);
|
|
951
|
+
}
|
|
952
|
+
});
|
|
953
|
+
});
|
|
954
|
+
const amountPath = `refs.${definition.signedSum.amountRef}`;
|
|
955
|
+
const payoutMoves = Object.values(noun.verbs).flatMap((candidate) => candidate.moves.filter((move) => move.operation === "internal_transfer.create" &&
|
|
956
|
+
move.bind.amount?.from === "instance" &&
|
|
957
|
+
move.bind.amount.path === amountPath));
|
|
958
|
+
const payouts = Object.values(noun.verbs).filter((candidate) => candidate.payout?.amount === amountPath);
|
|
959
|
+
if (payoutMoves.length + payouts.length !== 1) {
|
|
960
|
+
add(sumBase, `signedSum requires exactly one payout or noun transfer whose amount is ${amountPath}`);
|
|
961
|
+
}
|
|
962
|
+
}
|
|
815
963
|
if (definition.due) {
|
|
964
|
+
if (definition.publicIntent) {
|
|
965
|
+
add([...verbBase, "publicIntent"], "a system due verb cannot declare a public intent");
|
|
966
|
+
}
|
|
816
967
|
const transition = noun.lifecycle.transitions[verb];
|
|
817
968
|
if (definition.due.every) {
|
|
818
969
|
// A recurring due verb is stationary: each occurrence fires in place
|
|
@@ -865,6 +1016,152 @@ function validateVerbs(noun, base, nouns, references, add) {
|
|
|
865
1016
|
}
|
|
866
1017
|
}
|
|
867
1018
|
}
|
|
1019
|
+
function validatePayoutsAndSettlement(noun, base, references, add) {
|
|
1020
|
+
const payoutEntries = Object.entries(noun.verbs).filter(([, definition]) => definition.payout !== undefined);
|
|
1021
|
+
const settlementEntries = Object.entries(noun.verbs).filter(([, definition]) => definition.requiresSettlement !== undefined);
|
|
1022
|
+
if (payoutEntries.length > 0 && settlementEntries.length !== 1) {
|
|
1023
|
+
add([...base, "verbs"], `payout-owning noun must declare exactly one settlement gate; found ${settlementEntries.length}`);
|
|
1024
|
+
}
|
|
1025
|
+
const settlementRequirement = settlementEntries.length === 1
|
|
1026
|
+
? settlementEntries[0]?.[1].requiresSettlement
|
|
1027
|
+
: undefined;
|
|
1028
|
+
if (settlementRequirement) {
|
|
1029
|
+
for (const [verb, definition] of payoutEntries) {
|
|
1030
|
+
if (definition.payout?.capture === settlementRequirement.payoutRef) {
|
|
1031
|
+
continue;
|
|
1032
|
+
}
|
|
1033
|
+
add([...base, "verbs", verb, "payout", "capture"], `verb ${verb} payout capture ${definition.payout?.capture} is not covered by settlement payoutRef ${settlementRequirement.payoutRef}`);
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
const reservedRefs = new Set([
|
|
1037
|
+
...Object.values(noun.verbs).flatMap((verb) => Object.keys(verb.captureInput ?? {})),
|
|
1038
|
+
...Object.values(noun.verbs).flatMap((verb) => [...verb.steps, ...verb.moves].flatMap((step) => Object.keys(step.capture ?? {}))),
|
|
1039
|
+
...Object.values(noun.verbs).flatMap((verb) => verb.signedSum
|
|
1040
|
+
? [
|
|
1041
|
+
verb.signedSum.amountRef,
|
|
1042
|
+
...verb.signedSum.sources.map((source) => source.subtotalRef),
|
|
1043
|
+
]
|
|
1044
|
+
: []),
|
|
1045
|
+
...(noun.unwind ? ["unwindRefund", "unwindPenalty"] : []),
|
|
1046
|
+
...(noun.subject ? ["subject"] : []),
|
|
1047
|
+
]);
|
|
1048
|
+
const moneyWriters = moneyRefWriters(noun);
|
|
1049
|
+
const payoutWriters = new Map();
|
|
1050
|
+
for (const [verb, definition] of Object.entries(noun.verbs)) {
|
|
1051
|
+
if (!definition.payout)
|
|
1052
|
+
continue;
|
|
1053
|
+
const payout = definition.payout;
|
|
1054
|
+
const payoutBase = [...base, "verbs", verb, "payout"];
|
|
1055
|
+
if (verb === "create") {
|
|
1056
|
+
add(payoutBase, "create cannot declare a payout intent");
|
|
1057
|
+
}
|
|
1058
|
+
if (definition.steps.length > 0 || definition.moves.length > 0) {
|
|
1059
|
+
add(payoutBase, `verb ${verb} payout intent cannot combine with kernel steps or moves`);
|
|
1060
|
+
}
|
|
1061
|
+
const prior = payoutWriters.get(payout.capture) ?? [];
|
|
1062
|
+
if (reservedRefs.has(payout.capture) || prior.length > 0) {
|
|
1063
|
+
add([...payoutBase, "capture"], `payout capture ${payout.capture} collides with an existing noun ref key`);
|
|
1064
|
+
}
|
|
1065
|
+
payoutWriters.set(payout.capture, [...prior, verb]);
|
|
1066
|
+
const amount = payout.amount;
|
|
1067
|
+
const [scope, key] = amount.split(".");
|
|
1068
|
+
const amountWriters = moneyWriters.get(key) ?? [];
|
|
1069
|
+
const amountDeclared = scope === "fields"
|
|
1070
|
+
? isMoneySchema(noun.fields[key] ?? {})
|
|
1071
|
+
: scope === "refs" && amountWriters.length > 0;
|
|
1072
|
+
if (!amountDeclared) {
|
|
1073
|
+
add([...payoutBase, "amount"], `payout amount ${amount} must name a declared money field or money ref`);
|
|
1074
|
+
}
|
|
1075
|
+
else if (scope === "refs" &&
|
|
1076
|
+
!amountWriters.includes(verb) &&
|
|
1077
|
+
!amountWriters.includes("create") &&
|
|
1078
|
+
!verbGroupDominatesReader(noun, amountWriters, verb)) {
|
|
1079
|
+
add([...payoutBase, "amount"], `payout amount ${amount} can be read before money writers ${amountWriters.join(" or ")}`);
|
|
1080
|
+
}
|
|
1081
|
+
const currency = noun.fields[payout.currencyField];
|
|
1082
|
+
if (!currency || !isCurrencySchema(currency)) {
|
|
1083
|
+
add([...payoutBase, "currencyField"], `payout currencyField ${payout.currencyField} must name a currency field`);
|
|
1084
|
+
}
|
|
1085
|
+
const source = noun.fields[payout.sourceAccountField];
|
|
1086
|
+
if (!source || !references.accepts(source, "acct")) {
|
|
1087
|
+
add([...payoutBase, "sourceAccountField"], `payout sourceAccountField ${payout.sourceAccountField} must name an account-id field`);
|
|
1088
|
+
}
|
|
1089
|
+
const beneficiary = noun.fields[payout.beneficiaryField];
|
|
1090
|
+
if (!beneficiary || !references.accepts(beneficiary, "ben")) {
|
|
1091
|
+
add([...payoutBase, "beneficiaryField"], `payout beneficiaryField ${payout.beneficiaryField} must name a beneficiary-id field`);
|
|
1092
|
+
}
|
|
1093
|
+
const beneficiaryPartyField = noun.parties?.beneficiary;
|
|
1094
|
+
if (!beneficiaryPartyField) {
|
|
1095
|
+
add([...payoutBase, "beneficiaryPartyField"], "payout requires parties.beneficiary to bind its destination party");
|
|
1096
|
+
}
|
|
1097
|
+
else if (payout.beneficiaryPartyField !== beneficiaryPartyField) {
|
|
1098
|
+
add([...payoutBase, "beneficiaryPartyField"], `payout beneficiaryPartyField ${payout.beneficiaryPartyField} must equal parties.beneficiary ${beneficiaryPartyField}`);
|
|
1099
|
+
}
|
|
1100
|
+
}
|
|
1101
|
+
const settlementCaptures = new Set();
|
|
1102
|
+
for (const [verb, definition] of Object.entries(noun.verbs)) {
|
|
1103
|
+
if (!definition.requiresSettlement)
|
|
1104
|
+
continue;
|
|
1105
|
+
const requirement = definition.requiresSettlement;
|
|
1106
|
+
const requirementBase = [
|
|
1107
|
+
...base,
|
|
1108
|
+
"verbs",
|
|
1109
|
+
verb,
|
|
1110
|
+
"requiresSettlement",
|
|
1111
|
+
];
|
|
1112
|
+
if (reservedRefs.has(requirement.capture) ||
|
|
1113
|
+
payoutWriters.has(requirement.capture) ||
|
|
1114
|
+
settlementCaptures.has(requirement.capture)) {
|
|
1115
|
+
add([...requirementBase, "capture"], `settlement capture ${requirement.capture} collides with an existing noun ref key`);
|
|
1116
|
+
}
|
|
1117
|
+
settlementCaptures.add(requirement.capture);
|
|
1118
|
+
const writers = payoutWriters.get(requirement.payoutRef) ?? [];
|
|
1119
|
+
if (writers.length === 0) {
|
|
1120
|
+
add([...requirementBase, "payoutRef"], `requiresSettlement payoutRef ${requirement.payoutRef} is not captured by a payout intent`);
|
|
1121
|
+
}
|
|
1122
|
+
else if (!verbGroupDominatesReader(noun, writers, verb)) {
|
|
1123
|
+
add(requirementBase, `requiresSettlement can read ${requirement.payoutRef} before payout writers ${writers.join(" or ")}`);
|
|
1124
|
+
}
|
|
1125
|
+
if (!noun.lifecycle.transitions[verb]) {
|
|
1126
|
+
add(requirementBase, "requiresSettlement needs a lifecycle transition and cannot run on create");
|
|
1127
|
+
}
|
|
1128
|
+
const callerFacets = [
|
|
1129
|
+
definition.port ? "port" : undefined,
|
|
1130
|
+
definition.publicIntent ? "publicIntent" : undefined,
|
|
1131
|
+
definition.input ? "input" : undefined,
|
|
1132
|
+
definition.captureInput ? "captureInput" : undefined,
|
|
1133
|
+
definition.due ? "due" : undefined,
|
|
1134
|
+
definition.deadline ? "deadline" : undefined,
|
|
1135
|
+
].filter((facet) => facet !== undefined);
|
|
1136
|
+
for (const facet of callerFacets) {
|
|
1137
|
+
add([...base, "verbs", verb, facet], `requiresSettlement is system-only and cannot declare ${facet}`);
|
|
1138
|
+
}
|
|
1139
|
+
if (definition.steps.length > 0) {
|
|
1140
|
+
add([...base, "verbs", verb, "steps"], "requiresSettlement cannot add kernel steps");
|
|
1141
|
+
}
|
|
1142
|
+
if (definition.moves.length > 0) {
|
|
1143
|
+
add([...base, "verbs", verb, "moves"], "requiresSettlement cannot move money");
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1146
|
+
}
|
|
1147
|
+
function moneyRefWriters(noun) {
|
|
1148
|
+
const writers = new Map();
|
|
1149
|
+
for (const [verbName, verb] of Object.entries(noun.verbs)) {
|
|
1150
|
+
const refs = [
|
|
1151
|
+
...(verb.signedSum
|
|
1152
|
+
? [
|
|
1153
|
+
verb.signedSum.amountRef,
|
|
1154
|
+
...verb.signedSum.sources.map((source) => source.subtotalRef),
|
|
1155
|
+
]
|
|
1156
|
+
: []),
|
|
1157
|
+
...[...verb.steps, ...verb.moves].flatMap((step) => Object.entries(step.capture ?? {}).flatMap(([ref, output]) => output === "postedAmount" ? [ref] : [])),
|
|
1158
|
+
];
|
|
1159
|
+
for (const ref of refs) {
|
|
1160
|
+
writers.set(ref, [...(writers.get(ref) ?? []), verbName]);
|
|
1161
|
+
}
|
|
1162
|
+
}
|
|
1163
|
+
return writers;
|
|
1164
|
+
}
|
|
868
1165
|
/**
|
|
869
1166
|
* Shape rules for one resolved reference gate: derived bindings and the
|
|
870
1167
|
* uniqueness claim are create-only, bind keys must be declared immutable
|
|
@@ -930,7 +1227,16 @@ function validateGateShape(noun, verb, gate, target, base, add) {
|
|
|
930
1227
|
/** Every `refs.<key>` a noun's instances can legitimately carry. */
|
|
931
1228
|
function declaredRefKeys(noun) {
|
|
932
1229
|
return new Set([
|
|
1230
|
+
...Object.values(noun.verbs).flatMap((verb) => verb.payout ? [verb.payout.capture] : []),
|
|
1231
|
+
...Object.values(noun.verbs).flatMap((verb) => verb.requiresSettlement ? [verb.requiresSettlement.capture] : []),
|
|
1232
|
+
...Object.values(noun.verbs).flatMap((verb) => Object.keys(verb.captureInput ?? {})),
|
|
933
1233
|
...Object.values(noun.verbs).flatMap((verb) => [...verb.steps, ...verb.moves].flatMap((step) => Object.keys(step.capture ?? {}))),
|
|
1234
|
+
...Object.values(noun.verbs).flatMap((verb) => verb.signedSum
|
|
1235
|
+
? [
|
|
1236
|
+
verb.signedSum.amountRef,
|
|
1237
|
+
...verb.signedSum.sources.map((source) => source.subtotalRef),
|
|
1238
|
+
]
|
|
1239
|
+
: []),
|
|
934
1240
|
...(noun.unwind ? ["unwindRefund", "unwindPenalty"] : []),
|
|
935
1241
|
...(noun.subject ? ["subject"] : []),
|
|
936
1242
|
]);
|
|
@@ -1192,6 +1498,9 @@ function isMoneySchema(schema) {
|
|
|
1192
1498
|
return (schema.pattern === positiveMoneyPattern ||
|
|
1193
1499
|
schema.pattern === nonNegativeMoneyPattern);
|
|
1194
1500
|
}
|
|
1501
|
+
function isCurrencySchema(schema) {
|
|
1502
|
+
return schema.pattern === currencyPattern;
|
|
1503
|
+
}
|
|
1195
1504
|
/**
|
|
1196
1505
|
* One sample id per prefix, built here and nowhere else. The probe below asks
|
|
1197
1506
|
* a schema two questions and the answers are only comparable while both
|