@hyperscale0/udl 1.0.125 → 1.0.130
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/field-value.d.ts.map +1 -1
- package/dist/field-value.js +7 -2
- package/dist/field-value.js.map +1 -1
- package/dist/finance.d.ts.map +1 -1
- package/dist/finance.js +87 -6
- package/dist/finance.js.map +1 -1
- package/dist/object-semantics-schema.d.ts +359 -0
- package/dist/object-semantics-schema.d.ts.map +1 -1
- package/dist/object-semantics.d.ts +3 -2
- package/dist/object-semantics.d.ts.map +1 -1
- package/dist/object-semantics.js +3 -2
- package/dist/object-semantics.js.map +1 -1
- package/dist/schema.d.ts +386 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +13 -0
- package/dist/schema.js.map +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +14 -0
- package/dist/validation.js.map +1 -1
- package/package.json +2 -2
- package/spec/README.md +11 -3
- package/spec/udl.schema.json +65 -0
- package/src/field-value.ts +8 -2
- package/src/finance.ts +113 -9
- package/src/object-semantics.ts +3 -2
- package/src/schema.ts +13 -0
- package/src/validation.ts +22 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../src/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../src/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAW/D,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,OAAO,CA+E9D"}
|
package/dist/field-value.js
CHANGED
|
@@ -2,6 +2,11 @@ import * as z from "zod";
|
|
|
2
2
|
import { udlObjectIdSchema } from "./schema.js";
|
|
3
3
|
const amount = z.string().regex(/^(0|[1-9][0-9]{0,17})$/);
|
|
4
4
|
const text = z.string().min(1).max(2048);
|
|
5
|
+
// HSX dates are instants; say so when a caller sends a calendar date.
|
|
6
|
+
const dateTime = z.iso.datetime({
|
|
7
|
+
offset: true,
|
|
8
|
+
error: "A date field takes an ISO 8601 date-time with an offset, such as 2026-12-01T00:00:00Z",
|
|
9
|
+
});
|
|
5
10
|
/** Values, rather than declarations. The same validator feeds forms and admission. */
|
|
6
11
|
export function udlFieldValueSchema(field) {
|
|
7
12
|
let schema;
|
|
@@ -29,7 +34,7 @@ export function udlFieldValueSchema(field) {
|
|
|
29
34
|
schema = field.targetKind === "object" ? udlObjectIdSchema : text;
|
|
30
35
|
break;
|
|
31
36
|
case "date":
|
|
32
|
-
schema =
|
|
37
|
+
schema = dateTime;
|
|
33
38
|
break;
|
|
34
39
|
case "duration":
|
|
35
40
|
schema = z.number().int().safe().positive();
|
|
@@ -66,7 +71,7 @@ export function udlFieldValueSchema(field) {
|
|
|
66
71
|
const item = field.item === "money"
|
|
67
72
|
? amount
|
|
68
73
|
: field.item === "date"
|
|
69
|
-
?
|
|
74
|
+
? dateTime
|
|
70
75
|
: field.item === "integer"
|
|
71
76
|
? z.number().int().safe()
|
|
72
77
|
: field.item === "ref" && field.targetKind === "object"
|
package/dist/field-value.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-value.js","sourceRoot":"","sources":["../src/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAiB,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC1D,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"field-value.js","sourceRoot":"","sources":["../src/field-value.ts"],"names":[],"mappings":"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"}
|
package/dist/finance.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finance.d.ts","sourceRoot":"","sources":["../src/finance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,aAAa,EAEd,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KACjC,CAAC;CACH;AAmCD,6FAA6F;AAC7F,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,aAAa,EACzB,QAAQ,CAAC,EAAE,WAAW,GACrB,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"finance.d.ts","sourceRoot":"","sources":["../src/finance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,aAAa,EAEd,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KACjC,CAAC;CACH;AAmCD,6FAA6F;AAC7F,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,aAAa,EACzB,QAAQ,CAAC,EAAE,WAAW,GACrB,YAAY,EAAE,CA6ZhB"}
|
package/dist/finance.js
CHANGED
|
@@ -54,9 +54,34 @@ export function analyzeInstrumentFinance(instrument, document) {
|
|
|
54
54
|
}
|
|
55
55
|
const problems = [];
|
|
56
56
|
const report = (message) => problems.push({ path: ".actions", message });
|
|
57
|
+
// A field some action sets is a free symbol: its default no longer holds.
|
|
58
|
+
const assigned = new Set(Object.values(instrument.actions).flatMap((action) => Object.keys(action.set ?? {}).map((key) => `self.${key}`)));
|
|
59
|
+
const reads = (calc) => JSON.stringify(calc)
|
|
60
|
+
.match(/"field":"[^"]+"/g)
|
|
61
|
+
?.map((match) => match.slice(9, -1)) ?? [];
|
|
62
|
+
// Calculated fields downstream of the seeds, following opaque and linear calculations.
|
|
63
|
+
const downstream = (seeds) => {
|
|
64
|
+
const found = new Set();
|
|
65
|
+
for (let grew = true; grew;) {
|
|
66
|
+
grew = false;
|
|
67
|
+
for (const calc of instrument.calculate) {
|
|
68
|
+
const target = `self.${calc.target}`;
|
|
69
|
+
if (found.has(target))
|
|
70
|
+
continue;
|
|
71
|
+
if (reads(calc).some((field) => seeds(field) || found.has(field))) {
|
|
72
|
+
found.add(target);
|
|
73
|
+
grew = true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return found;
|
|
78
|
+
};
|
|
79
|
+
const balanceBound = downstream((field) => field.endsWith(".balance") || field.endsWith(".reserved"));
|
|
57
80
|
const equations = new Map();
|
|
58
81
|
for (const field of instrument.fields)
|
|
59
|
-
if (field.type === "money" &&
|
|
82
|
+
if (field.type === "money" &&
|
|
83
|
+
field.value !== undefined &&
|
|
84
|
+
!assigned.has(`self.${field.name}`))
|
|
60
85
|
equations.set(`self.${field.name}`, new Map([["#", BigInt(field.value)]]));
|
|
61
86
|
for (const calc of instrument.calculate) {
|
|
62
87
|
if (calc.op === "sum" || calc.op === "subtract") {
|
|
@@ -94,9 +119,49 @@ export function analyzeInstrumentFinance(instrument, document) {
|
|
|
94
119
|
}
|
|
95
120
|
return result;
|
|
96
121
|
}
|
|
122
|
+
// A top-level create admits the snapshot it reads; an invoked child create
|
|
123
|
+
// reads its parent's live subject but keeps the parent's snapshot.
|
|
124
|
+
const invokedCreate = (document?.instruments ?? []).some((owner) => Object.values(owner.actions).some((candidate) => (candidate.invoke ?? []).some((call) => "instrument" in call &&
|
|
125
|
+
call.instrument === instrument.id &&
|
|
126
|
+
call.action === "create")));
|
|
97
127
|
let invocation = 0;
|
|
98
128
|
const apply = (state, action, name) => {
|
|
99
129
|
const scope = `${name}#${invocation++}`;
|
|
130
|
+
// An unknown balance becomes one opening symbol, so a whole-balance move cancels it.
|
|
131
|
+
const opening = `${scope}:opening:`;
|
|
132
|
+
for (const [account, balance] of state.balances)
|
|
133
|
+
if (balance === null)
|
|
134
|
+
state.balances.set(account, new Map([[`${opening}${account}`, 1n]]));
|
|
135
|
+
const start = new Map(state.balances);
|
|
136
|
+
// Moves read set fields after the set, so they get this invocation's symbol.
|
|
137
|
+
const changed = new Set(Object.keys(action.set ?? {}).map((key) => `self.${key}`));
|
|
138
|
+
const stale = downstream((field) => changed.has(field));
|
|
139
|
+
let fresh = new Set();
|
|
140
|
+
// An action that declares subject fields reads the live object, not the agreement.
|
|
141
|
+
const declared = new Set(name === "create" && !invokedCreate
|
|
142
|
+
? []
|
|
143
|
+
: (action.subject?.requirements ?? []).map((entry) => `subject.${entry.field.name}`));
|
|
144
|
+
const live = new Set([
|
|
145
|
+
...declared,
|
|
146
|
+
...downstream((field) => declared.has(field)),
|
|
147
|
+
]);
|
|
148
|
+
let reading = 0;
|
|
149
|
+
const external = (field) => /\.(balance|reserved)$/.test(field) && !owned.has(field.slice(0, -8));
|
|
150
|
+
const resolve = (sum) => {
|
|
151
|
+
let result = new Map();
|
|
152
|
+
for (const [key, coefficient] of sum) {
|
|
153
|
+
const account = key.slice(0, -8);
|
|
154
|
+
const scoped = balanceBound.has(key) ||
|
|
155
|
+
fresh.has(key) ||
|
|
156
|
+
live.has(key) ||
|
|
157
|
+
external(key);
|
|
158
|
+
const term = key.endsWith(".balance") && owned.has(account)
|
|
159
|
+
? (start.get(account) ?? null)
|
|
160
|
+
: new Map([[scoped ? `${scope}:${key}` : key, 1n]]);
|
|
161
|
+
result = add(result, term, coefficient);
|
|
162
|
+
}
|
|
163
|
+
return result;
|
|
164
|
+
};
|
|
100
165
|
const calculated = new Map();
|
|
101
166
|
const local = new Map((action.calculate ?? []).map((c) => [`self.${c.target}`, c]));
|
|
102
167
|
const amount = (value, seen = new Set()) => {
|
|
@@ -106,6 +171,9 @@ export function analyzeInstrumentFinance(instrument, document) {
|
|
|
106
171
|
if (value.field.endsWith(".balance") &&
|
|
107
172
|
owned.has(value.field.slice(0, -8)))
|
|
108
173
|
return state.balances.get(value.field.slice(0, -8)) ?? null;
|
|
174
|
+
// Another account's balance moves between reads, so each read is its own symbol.
|
|
175
|
+
if (external(value.field))
|
|
176
|
+
return new Map([[`${scope}:${reading++}:${value.field}`, 1n]]);
|
|
109
177
|
const calculation = local.get(value.field);
|
|
110
178
|
if (calculation && !seen.has(value.field)) {
|
|
111
179
|
const next = new Set([...seen, value.field]);
|
|
@@ -116,7 +184,7 @@ export function analyzeInstrumentFinance(instrument, document) {
|
|
|
116
184
|
return new Map([[`${scope}:${value.field}`, 1n]]);
|
|
117
185
|
}
|
|
118
186
|
}
|
|
119
|
-
return expand(raw(value, scope));
|
|
187
|
+
return resolve(expand(raw(value, scope)));
|
|
120
188
|
};
|
|
121
189
|
for (const requirement of action.requires)
|
|
122
190
|
if (requirement.kind === "compare" && requirement.operator === "==") {
|
|
@@ -145,6 +213,7 @@ export function analyzeInstrumentFinance(instrument, document) {
|
|
|
145
213
|
? state.balances.get(account)
|
|
146
214
|
: new Map(), value));
|
|
147
215
|
};
|
|
216
|
+
fresh = new Set([...changed, ...stale]);
|
|
148
217
|
for (const move of action.moves) {
|
|
149
218
|
if ("amount" in move) {
|
|
150
219
|
const value = amount(move.amount);
|
|
@@ -168,10 +237,22 @@ export function analyzeInstrumentFinance(instrument, document) {
|
|
|
168
237
|
state.holds.delete(move.transfer);
|
|
169
238
|
}
|
|
170
239
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
240
|
+
// Old values of set fields are gone; this invocation's values become current.
|
|
241
|
+
const settle = (sum) => sum === null ||
|
|
242
|
+
[...sum.keys()].some((key) => key.startsWith(opening) || fresh.has(key))
|
|
243
|
+
? null
|
|
244
|
+
: new Map([...sum].map(([key, value]) => {
|
|
245
|
+
const field = key.slice(scope.length + 1);
|
|
246
|
+
return key.startsWith(`${scope}:`) &&
|
|
247
|
+
fresh.has(field) &&
|
|
248
|
+
!balanceBound.has(field)
|
|
249
|
+
? [field, value]
|
|
250
|
+
: [key, value];
|
|
251
|
+
}));
|
|
252
|
+
for (const [account, balance] of state.balances)
|
|
253
|
+
state.balances.set(account, settle(balance));
|
|
254
|
+
for (const hold of state.holds.values())
|
|
255
|
+
hold.amount = settle(hold.amount);
|
|
175
256
|
};
|
|
176
257
|
const initial = {
|
|
177
258
|
status: instrument.lifecycle.initial,
|
package/dist/finance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finance.js","sourceRoot":"","sources":["../src/finance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"finance.js","sourceRoot":"","sources":["../src/finance.ts"],"names":[],"mappings":"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"}
|