@hyperscale0/udl 4.4.1 → 4.5.0
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 +20 -0
- package/README.md +1 -1
- package/dist/canonical.d.ts.map +1 -1
- package/dist/canonical.js +1 -29
- package/dist/canonical.js.map +1 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +9 -6
- package/dist/diagnostics.js.map +1 -1
- package/dist/evolution.d.ts.map +1 -1
- package/dist/evolution.js +6 -16
- package/dist/evolution.js.map +1 -1
- package/dist/json.d.ts +2 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +30 -0
- package/dist/json.js.map +1 -0
- package/dist/limits.d.ts +3 -30
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +4 -31
- package/dist/limits.js.map +1 -1
- package/dist/object-contract.d.ts.map +1 -1
- package/dist/object-contract.js +4 -1
- package/dist/object-contract.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +23 -0
- package/dist/parser.js.map +1 -1
- package/dist/reporting-validation.d.ts.map +1 -1
- package/dist/reporting-validation.js +12 -5
- package/dist/reporting-validation.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +3 -4
- package/dist/schema.js.map +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +157 -43
- package/dist/validation.js.map +1 -1
- package/docs/README.md +48 -32
- package/package.json +2 -2
- package/spec/README.md +48 -32
- package/src/canonical.ts +1 -35
- package/src/diagnostics.ts +9 -7
- package/src/evolution.ts +8 -18
- package/src/json.ts +34 -0
- package/src/limits.ts +4 -31
- package/src/object-contract.ts +5 -1
- package/src/parser.ts +22 -0
- package/src/reporting-validation.ts +12 -10
- package/src/schema.ts +7 -10
- package/src/validation.ts +220 -47
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqE1B,CAAC;AACH,eAAO,MAAM,kBAAkB;;;;;;;kBAO7B,CAAC;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkB9B,CAAC;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAS5B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,4BAA4B,CACpC,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,cAAc,GACpB,OAAO,CAYT"}
|
package/dist/schema.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as z from "zod";
|
|
2
2
|
import { reportDefinitionSchema } from "./reporting.js";
|
|
3
|
+
import { writeJson } from "./json.js";
|
|
3
4
|
export const UDL_FORMAT_VERSION = 4;
|
|
4
5
|
/** Counts the root and every nested invocation, including selected and ranged children. */
|
|
5
6
|
export const MAX_ACTION_EXPANSION = 4096;
|
|
@@ -463,10 +464,8 @@ export const udlDocumentSchema = z.strictObject({
|
|
|
463
464
|
});
|
|
464
465
|
/** Names and display text may differ; executable constraints must match. */
|
|
465
466
|
export function sameObjectField(left, right) {
|
|
466
|
-
const signature = (field) =>
|
|
467
|
-
|
|
468
|
-
value !== undefined)
|
|
469
|
-
.sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)));
|
|
467
|
+
const signature = (field) => writeJson(Object.fromEntries(Object.entries(field).filter(([key, value]) => !["name", "description", "optional"].includes(key) &&
|
|
468
|
+
value !== undefined)));
|
|
470
469
|
return signature(left) === signature(right);
|
|
471
470
|
}
|
|
472
471
|
//# sourceMappingURL=schema.js.map
|
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.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,aAAa,EAIlB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAG3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,aAAa,EAIlB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAG3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMxD,eAAO,MAAM,qBAAqB,YAChC,UAAU,EACV,YAAY,EACZ,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,CACH,CAAC;AAoCX,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAA;CAAE,CAAC;AAC/C,qBAAa,QAAS,SAAQ,KAAK;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE;IAAhD,YAAqB,MAAM,EAAE,SAAS,QAAQ,EAAE,EAG/C;CACF;AAwJD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,SAAS,QAAQ,EAAO,EAC/B,MAAM,CAAC,EAAE,SAAS,GAAG,gBAAgB,GACpC,QAAQ,GAAG,SAAS,CAEtB;AAED,uFAAuF;AACvF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,GAAG,gBAAgB,GACpC,qBAAqB,GAAG,SAAS,CASnC;AAiKD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAuuC/D;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAI1D"}
|
package/dist/validation.js
CHANGED
|
@@ -2,6 +2,8 @@ import { udlDocumentSchema, subjectPartyRoles, sameObjectField, MAX_ACTION_EXPAN
|
|
|
2
2
|
import { issue } from "./diagnostics.js";
|
|
3
3
|
import { validateReportDefinition } from "./reporting-validation.js";
|
|
4
4
|
import { analyzeInstrumentFinance } from "./finance.js";
|
|
5
|
+
import { UDL_LIMITS } from "./limits.js";
|
|
6
|
+
import { udlFieldValueSchema } from "./object-contract.js";
|
|
5
7
|
export const RESERVED_OBJECT_NAMES = [
|
|
6
8
|
"objectId",
|
|
7
9
|
"externalId",
|
|
@@ -12,7 +14,7 @@ export const RESERVED_OBJECT_NAMES = [
|
|
|
12
14
|
];
|
|
13
15
|
const reservedObjectNamesSet = new Set(RESERVED_OBJECT_NAMES);
|
|
14
16
|
function hasParty(document, instrument, name) {
|
|
15
|
-
if (document.parties
|
|
17
|
+
if (own(document.parties, name))
|
|
16
18
|
return true;
|
|
17
19
|
if (!instrument?.subject)
|
|
18
20
|
return false;
|
|
@@ -24,9 +26,9 @@ function hasParty(document, instrument, name) {
|
|
|
24
26
|
}
|
|
25
27
|
function moneyParty(document, instrument, name) {
|
|
26
28
|
return (hasParty(document, instrument, name) &&
|
|
27
|
-
(document.parties
|
|
28
|
-
(!document.parties
|
|
29
|
-
(!instrument?.subject && document.parties
|
|
29
|
+
(own(document.parties, name)?.kind === "business" ||
|
|
30
|
+
(!own(document.parties, name) && !!instrument?.subject) ||
|
|
31
|
+
(!instrument?.subject && own(document.parties, name)?.kind === "person")));
|
|
30
32
|
}
|
|
31
33
|
export class UdlError extends Error {
|
|
32
34
|
issues;
|
|
@@ -36,34 +38,68 @@ export class UdlError extends Error {
|
|
|
36
38
|
this.name = "UdlError";
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
|
-
/** Reject
|
|
41
|
+
/** Reject non-JSON properties before either the schema or serializer reads them. */
|
|
40
42
|
function bounded(value) {
|
|
41
43
|
const active = new Set();
|
|
44
|
+
const encoder = new TextEncoder();
|
|
42
45
|
let nodes = 0;
|
|
43
46
|
let bytes = 0;
|
|
47
|
+
const string = (value) => {
|
|
48
|
+
if (value.length > UDL_LIMITS.maxTotalStringLength)
|
|
49
|
+
return false;
|
|
50
|
+
bytes += encoder.encode(value).byteLength;
|
|
51
|
+
return bytes <= UDL_LIMITS.maxTotalStringLength;
|
|
52
|
+
};
|
|
44
53
|
const visit = (v, depth) => {
|
|
45
|
-
if (++nodes >
|
|
54
|
+
if (++nodes > UDL_LIMITS.maxNodes || depth > UDL_LIMITS.maxDepth)
|
|
46
55
|
return false;
|
|
47
|
-
if (typeof v === "string")
|
|
48
|
-
|
|
49
|
-
return bytes <= 1048576;
|
|
50
|
-
}
|
|
56
|
+
if (typeof v === "string")
|
|
57
|
+
return string(v);
|
|
51
58
|
if (v === null || typeof v === "boolean")
|
|
52
59
|
return true;
|
|
53
60
|
if (typeof v === "number")
|
|
54
61
|
return Number.isSafeInteger(v);
|
|
55
62
|
if (typeof v !== "object" || active.has(v))
|
|
56
63
|
return false;
|
|
57
|
-
|
|
64
|
+
const array = Array.isArray(v);
|
|
65
|
+
if (!array &&
|
|
58
66
|
Object.getPrototypeOf(v) !== Object.prototype &&
|
|
59
67
|
Object.getPrototypeOf(v) !== null)
|
|
60
68
|
return false;
|
|
69
|
+
const keys = Reflect.ownKeys(v);
|
|
70
|
+
if (array &&
|
|
71
|
+
(v.length > UDL_LIMITS.maxNodes || keys.length !== v.length + 1))
|
|
72
|
+
return false;
|
|
61
73
|
active.add(v);
|
|
62
|
-
|
|
74
|
+
for (const key of keys) {
|
|
75
|
+
if (array && key === "length")
|
|
76
|
+
continue;
|
|
77
|
+
if (typeof key !== "string" ||
|
|
78
|
+
key === "__proto__" ||
|
|
79
|
+
key.length > UDL_LIMITS.maxKeyLength ||
|
|
80
|
+
!string(key))
|
|
81
|
+
return false;
|
|
82
|
+
if (array && (!/^(0|[1-9][0-9]*)$/.test(key) || Number(key) >= v.length))
|
|
83
|
+
return false;
|
|
84
|
+
const descriptor = Object.getOwnPropertyDescriptor(v, key);
|
|
85
|
+
if (!descriptor?.enumerable ||
|
|
86
|
+
!("value" in descriptor) ||
|
|
87
|
+
!visit(descriptor.value, depth + 1))
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
63
90
|
active.delete(v);
|
|
64
|
-
return
|
|
91
|
+
return true;
|
|
65
92
|
};
|
|
66
|
-
|
|
93
|
+
try {
|
|
94
|
+
return visit(value, 0);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// Proxies may throw during reflection. They are not decoded JSON.
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function own(record, key) {
|
|
102
|
+
return record && Object.hasOwn(record, key) ? record[key] : undefined;
|
|
67
103
|
}
|
|
68
104
|
const targetIds = (target) => typeof target === "string" ? [target] : target;
|
|
69
105
|
const overlap = (a, b) => targetIds(a).some((id) => targetIds(b).includes(id));
|
|
@@ -278,7 +314,7 @@ export function validateUdl(value) {
|
|
|
278
314
|
duplicate(document.objects.map((o) => o.id), "$.objects");
|
|
279
315
|
duplicate(document.instruments.map((i) => i.id), "$.instruments");
|
|
280
316
|
for (const name of subjectPartyRoles)
|
|
281
|
-
if (document.parties
|
|
317
|
+
if (own(document.parties, name))
|
|
282
318
|
add(`$.parties.${name}`, `${name} is a reserved subject role`, "party_name_reserved");
|
|
283
319
|
const byObjectId = new Map(document.objects.map((o) => [o.id, o]));
|
|
284
320
|
const byId = new Map(document.instruments.map((i) => [i.id, i]));
|
|
@@ -325,6 +361,16 @@ export function validateUdl(value) {
|
|
|
325
361
|
}
|
|
326
362
|
}
|
|
327
363
|
}
|
|
364
|
+
if (f.type === "text" && f.value !== undefined) {
|
|
365
|
+
try {
|
|
366
|
+
if (!udlFieldValueSchema({ ...f, value: undefined }).safeParse(f.value)
|
|
367
|
+
.success)
|
|
368
|
+
add(where, `${f.name} constant violates its text constraints`);
|
|
369
|
+
}
|
|
370
|
+
catch {
|
|
371
|
+
// Invalid character classes already have a diagnostic above.
|
|
372
|
+
}
|
|
373
|
+
}
|
|
328
374
|
if (f.type === "ref") {
|
|
329
375
|
duplicate(targetIds(f.target), where);
|
|
330
376
|
for (const id of targetIds(f.target)) {
|
|
@@ -401,7 +447,7 @@ export function validateUdl(value) {
|
|
|
401
447
|
duplicate(obj.attachments.map((attachment) => attachment.instrument), `${base}.attachments`);
|
|
402
448
|
for (const [attachmentIndex, attachment] of obj.attachments.entries()) {
|
|
403
449
|
for (const [parameter, binding] of Object.entries(attachment.parties))
|
|
404
|
-
if ("party" in binding && !document.parties
|
|
450
|
+
if ("party" in binding && !own(document.parties, binding.party))
|
|
405
451
|
add(`${base}.attachments[${attachmentIndex}].parties.${parameter}`, `unknown declared party ${binding.party}`, "subject_party_unbound");
|
|
406
452
|
if (byId.get(attachment.instrument)?.subject !== obj.id)
|
|
407
453
|
add(`${base}.attachments`, `${attachment.instrument} must attach to ${obj.id}`);
|
|
@@ -431,10 +477,10 @@ export function validateUdl(value) {
|
|
|
431
477
|
}
|
|
432
478
|
const reportIds = new Set();
|
|
433
479
|
for (const [index, instrument] of document.instruments.entries()) {
|
|
434
|
-
for (const report of instrument.reports ?? []) {
|
|
435
|
-
const path = `$.instruments[${index}].reports`;
|
|
480
|
+
for (const [reportIndex, report] of (instrument.reports ?? []).entries()) {
|
|
481
|
+
const path = `$.instruments[${index}].reports[${reportIndex}]`;
|
|
436
482
|
if (reportIds.has(report.identity.id))
|
|
437
|
-
add(path, `duplicate report ${report.identity.id}
|
|
483
|
+
add(path, `duplicate report ${report.identity.id}`, "UDL2001");
|
|
438
484
|
reportIds.add(report.identity.id);
|
|
439
485
|
try {
|
|
440
486
|
validateReportDefinition(report, document);
|
|
@@ -449,6 +495,12 @@ export function validateUdl(value) {
|
|
|
449
495
|
const base = `$.instruments[${index}]`;
|
|
450
496
|
if (inst.subject && !byObjectId.has(inst.subject))
|
|
451
497
|
add(base, `unknown subject object ${inst.subject}`);
|
|
498
|
+
if (inst.subject &&
|
|
499
|
+
Object.values(inst.actions).some((action) => action.publicAction) &&
|
|
500
|
+
!byObjectId
|
|
501
|
+
.get(inst.subject)
|
|
502
|
+
?.attachments.some((attachment) => attachment.instrument === inst.id))
|
|
503
|
+
add(`${base}.subject`, "public subject actions require an object attachment", "UDL5001");
|
|
452
504
|
const field = (p, input = [], action) => resolveField(document, inst, p, input, action);
|
|
453
505
|
const expect = (p, type, where, input = [], action) => {
|
|
454
506
|
const party = p.startsWith("party.") ? p.split(".")[1] : undefined;
|
|
@@ -472,13 +524,31 @@ export function validateUdl(value) {
|
|
|
472
524
|
: type === "integer" || type === "percent" || type === "duration"
|
|
473
525
|
? typeof v.literal === "number" &&
|
|
474
526
|
Number.isSafeInteger(v.literal) &&
|
|
475
|
-
(type !== "percent" || (v.literal >= 0 && v.literal <= 10000))
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
527
|
+
(type !== "percent" || (v.literal >= 0 && v.literal <= 10000)) &&
|
|
528
|
+
(type !== "duration" || v.literal > 0)
|
|
529
|
+
: type === "date"
|
|
530
|
+
? udlFieldValueSchema({
|
|
531
|
+
name: "literal",
|
|
532
|
+
type: "date",
|
|
533
|
+
}).safeParse(v.literal).success
|
|
534
|
+
: type === "boolean"
|
|
535
|
+
? typeof v.literal === "boolean"
|
|
536
|
+
: typeof v.literal === "string";
|
|
479
537
|
if (!valid)
|
|
480
538
|
add(where, `literal must have type ${type}`);
|
|
481
539
|
};
|
|
540
|
+
const checkAssignment = (value, target, where, action) => {
|
|
541
|
+
checkValue(value, target.type, where, action.input, action);
|
|
542
|
+
if ("literal" in value) {
|
|
543
|
+
try {
|
|
544
|
+
if (!udlFieldValueSchema(target).safeParse(value.literal).success)
|
|
545
|
+
add(where, `literal violates constraints of ${target.name}`);
|
|
546
|
+
}
|
|
547
|
+
catch {
|
|
548
|
+
// Invalid field constraints are reported by checkFields.
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
};
|
|
482
552
|
checkFields(inst.fields, `${base}.fields`, false, inst);
|
|
483
553
|
const captures = new Set(Object.values(inst.actions).flatMap((a) => [
|
|
484
554
|
...a.moves.flatMap((m) => "capture" in m && m.capture ? [m.capture] : []),
|
|
@@ -554,7 +624,8 @@ export function validateUdl(value) {
|
|
|
554
624
|
const checkCalculations = (calculations, where, input = [], act) => {
|
|
555
625
|
duplicate(calculations.map((c) => c.target), where);
|
|
556
626
|
const dependencies = new Map();
|
|
557
|
-
for (const c of calculations) {
|
|
627
|
+
for (const [calculationIndex, c] of calculations.entries()) {
|
|
628
|
+
const calculationPath = `${where}[${calculationIndex}]`;
|
|
558
629
|
const arithmetic = ["sum", "subtract", "minimum", "divide"].includes(c.op);
|
|
559
630
|
const resultType = c.op === "at"
|
|
560
631
|
? (() => {
|
|
@@ -576,7 +647,12 @@ export function validateUdl(value) {
|
|
|
576
647
|
checkValue(v, arithmetic ? resultType : "money", where, input, act);
|
|
577
648
|
};
|
|
578
649
|
if (c.op === "at") {
|
|
579
|
-
expect(c.list, "list", where, input, act);
|
|
650
|
+
const list = expect(c.list, "list", where, input, act);
|
|
651
|
+
if (result?.type === "ref" &&
|
|
652
|
+
list?.type === "list" &&
|
|
653
|
+
(result.targetKind !== list.targetKind ||
|
|
654
|
+
result.target !== list.target))
|
|
655
|
+
add(calculationPath, "list extraction requires the same reference target", "UDL5001");
|
|
580
656
|
checkValue(c.position, "integer", where, input, act);
|
|
581
657
|
if ("literal" in c.position && Number(c.position.literal) < 1)
|
|
582
658
|
add(where, "list positions start at one");
|
|
@@ -584,6 +660,7 @@ export function validateUdl(value) {
|
|
|
584
660
|
}
|
|
585
661
|
if (c.op === "aggregate") {
|
|
586
662
|
const selected = checkSelection(c.selection, where, input);
|
|
663
|
+
operands.push({ field: c.selection.anchor }, ...Object.values(c.selection.where ?? {}));
|
|
587
664
|
if (c.measure !== "count" &&
|
|
588
665
|
(!selected ||
|
|
589
666
|
resolveField(document, selected, `self.${c.measure.sum}`)
|
|
@@ -603,9 +680,19 @@ export function validateUdl(value) {
|
|
|
603
680
|
checkValue(c.numerator, type, where, input, act);
|
|
604
681
|
checkValue(c.denominator, type, where, input, act);
|
|
605
682
|
}
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
683
|
+
for (const [operand, positive] of [
|
|
684
|
+
[c.numerator, false],
|
|
685
|
+
[c.denominator, true],
|
|
686
|
+
]) {
|
|
687
|
+
if ("literal" in operand &&
|
|
688
|
+
(typeof operand.literal === "number" ||
|
|
689
|
+
(typeof operand.literal === "string" &&
|
|
690
|
+
/^(0|[1-9][0-9]{0,17})$/.test(operand.literal))) &&
|
|
691
|
+
(positive
|
|
692
|
+
? BigInt(operand.literal) <= 0n
|
|
693
|
+
: BigInt(operand.literal) < 0n))
|
|
694
|
+
add(calculationPath, "ratio numerator must be nonnegative and denominator positive");
|
|
695
|
+
}
|
|
609
696
|
operands.push(c.numerator, c.denominator);
|
|
610
697
|
}
|
|
611
698
|
if (c.op === "sum" || c.op === "minimum")
|
|
@@ -632,7 +719,11 @@ export function validateUdl(value) {
|
|
|
632
719
|
}
|
|
633
720
|
if (c.op === "shift") {
|
|
634
721
|
checkValue(c.date, "date", where, input, act);
|
|
635
|
-
checkValue(c.milliseconds, "duration", where, input, act);
|
|
722
|
+
checkValue(c.milliseconds, "literal" in c.milliseconds ? "integer" : "duration", where, input, act);
|
|
723
|
+
if ("literal" in c.milliseconds &&
|
|
724
|
+
typeof c.milliseconds.literal === "number" &&
|
|
725
|
+
c.milliseconds.literal < 0)
|
|
726
|
+
add(where, "shift milliseconds must be nonnegative");
|
|
636
727
|
operands.push(c.date, c.milliseconds);
|
|
637
728
|
}
|
|
638
729
|
dependencies.set(c.target, operands.flatMap((v) => "field" in v && v.field.startsWith("self.")
|
|
@@ -666,11 +757,11 @@ export function validateUdl(value) {
|
|
|
666
757
|
add(base, "declare create and a declared initial state", "UDL3001");
|
|
667
758
|
duplicate(inst.actionOrder, `${base}.actionOrder`);
|
|
668
759
|
if (inst.actionOrder.length !== Object.keys(inst.actions).length ||
|
|
669
|
-
inst.actionOrder.some((a) => !inst.actions
|
|
760
|
+
inst.actionOrder.some((a) => !own(inst.actions, a)))
|
|
670
761
|
add(base, "actionOrder must list every action once");
|
|
671
762
|
const reachable = new Set([inst.lifecycle.initial]);
|
|
672
763
|
for (const [action, edge] of Object.entries(inst.lifecycle.transitions)) {
|
|
673
|
-
if (!inst.actions
|
|
764
|
+
if (!own(inst.actions, action) ||
|
|
674
765
|
action === "create" ||
|
|
675
766
|
(edge.to !== "preserve" && !states.has(edge.to)) ||
|
|
676
767
|
edge.from.some((s) => !states.has(s)))
|
|
@@ -716,6 +807,8 @@ export function validateUdl(value) {
|
|
|
716
807
|
}
|
|
717
808
|
else if (req.kind === "state") {
|
|
718
809
|
const target = expect(req.reference, "ref", where, input, act);
|
|
810
|
+
if (target?.type === "ref" && target.targetKind !== "instrument")
|
|
811
|
+
add(where, "state gates require an instrument reference", "UDL5001");
|
|
719
812
|
if (target?.type === "ref" &&
|
|
720
813
|
target.targetKind === "instrument" &&
|
|
721
814
|
req.states.some((s) => targetIds(target.target).some((id) => !byId.get(id)?.lifecycle.states.includes(s))))
|
|
@@ -765,7 +858,8 @@ export function validateUdl(value) {
|
|
|
765
858
|
checkRequirements(inst.invariants, `${base}.invariants`);
|
|
766
859
|
for (const [actionName, action] of Object.entries(inst.actions)) {
|
|
767
860
|
const where = `${base}.actions.${actionName}`;
|
|
768
|
-
if (actionName !== "create" &&
|
|
861
|
+
if (actionName !== "create" &&
|
|
862
|
+
!own(inst.lifecycle.transitions, actionName))
|
|
769
863
|
add(where, "action needs a lifecycle transition", "UDL3001");
|
|
770
864
|
if (action.subject) {
|
|
771
865
|
const subBase = `${where}.subject`;
|
|
@@ -773,7 +867,13 @@ export function validateUdl(value) {
|
|
|
773
867
|
...r.field,
|
|
774
868
|
name: r.objectField ?? r.field.name,
|
|
775
869
|
})), `${subBase}.requirements`, true);
|
|
776
|
-
|
|
870
|
+
duplicate(action.subject.requirements.map((requirement) => requirement.field.name), `${subBase}.requirements`);
|
|
871
|
+
for (const [requirementIndex, req,] of action.subject.requirements.entries()) {
|
|
872
|
+
for (const condition of (req.when ?? []).flat()) {
|
|
873
|
+
const target = byId.get(condition.instrument);
|
|
874
|
+
if (!own(target?.actions, condition.action))
|
|
875
|
+
add(`${subBase}.requirements[${requirementIndex}].when`, "subject condition needs a declared instrument action", "UDL5001");
|
|
876
|
+
}
|
|
777
877
|
if (req.field.optional)
|
|
778
878
|
add(`${subBase}.requirements`, `subject requirement ${req.field.name} cannot be optional`, "UDL2002");
|
|
779
879
|
const name = req.objectField ?? req.field.name;
|
|
@@ -792,7 +892,7 @@ export function validateUdl(value) {
|
|
|
792
892
|
if (adapter.snapshot) {
|
|
793
893
|
checkFields(adapter.snapshot.requirements, `${subBase}.adapters.${adapter.binding}.requirements`, true);
|
|
794
894
|
for (const reqField of adapter.snapshot.requirements) {
|
|
795
|
-
const objectName = adapter.renames
|
|
895
|
+
const objectName = own(adapter.renames, reqField.name) ?? reqField.name;
|
|
796
896
|
const requirement = action.subject.requirements.find((item) => (item.objectField ?? item.field.name) === objectName &&
|
|
797
897
|
sameObjectField(item.field, reqField));
|
|
798
898
|
if (!requirement)
|
|
@@ -871,12 +971,26 @@ export function validateUdl(value) {
|
|
|
871
971
|
to?.type === "account" &&
|
|
872
972
|
from.book !== to.book)
|
|
873
973
|
add(where, "moves cannot cross account books", "UDL4001");
|
|
974
|
+
const accountOwner = (field, path) => {
|
|
975
|
+
if (typeof field.owner === "string")
|
|
976
|
+
return `party:${field.owner}`;
|
|
977
|
+
const binding = field.owner.adapter;
|
|
978
|
+
const provider = path === `self.${field.name}`
|
|
979
|
+
? Object.values(inst.actions)
|
|
980
|
+
.flatMap((action) => action.subject?.adapters ?? [])
|
|
981
|
+
.find((entry) => entry.binding === binding && entry.snapshot)?.snapshot?.provider
|
|
982
|
+
: undefined;
|
|
983
|
+
return provider ? `provider:${provider}` : `binding:${binding}`;
|
|
984
|
+
};
|
|
874
985
|
const sameBoundAccount = from?.type === "account" &&
|
|
875
986
|
to?.type === "account" &&
|
|
876
|
-
from.owner !== "self"
|
|
877
|
-
|
|
987
|
+
(from.owner !== "self" ||
|
|
988
|
+
(move.from === `self.${from.name}` &&
|
|
989
|
+
move.to === `self.${to.name}`)) &&
|
|
990
|
+
accountOwner(from, move.from) === accountOwner(to, move.to) &&
|
|
878
991
|
from.book === to.book &&
|
|
879
|
-
(from.key ?? "
|
|
992
|
+
(from.key ?? (from.owner === "self" ? from.name : "balance")) ===
|
|
993
|
+
(to.key ?? (to.owner === "self" ? to.name : "balance"));
|
|
880
994
|
if (move.from === move.to || sameBoundAccount)
|
|
881
995
|
add(where, "a transfer needs distinct accounts", "UDL4001");
|
|
882
996
|
}
|
|
@@ -895,18 +1009,18 @@ export function validateUdl(value) {
|
|
|
895
1009
|
inst.calculate.some((c) => c.target === key))
|
|
896
1010
|
add(where, `cannot write immutable field ${key}`);
|
|
897
1011
|
else
|
|
898
|
-
|
|
1012
|
+
checkAssignment(v, target, `${where}.set.${key}`, action);
|
|
899
1013
|
}
|
|
900
1014
|
const checkArguments = (targetId, actionName, values, binding) => {
|
|
901
1015
|
const target = targetId
|
|
902
|
-
? byId.get(targetId)?.actions
|
|
1016
|
+
? own(byId.get(targetId)?.actions, actionName)
|
|
903
1017
|
: undefined;
|
|
904
1018
|
if (!target)
|
|
905
1019
|
return;
|
|
906
1020
|
for (const required of target.input)
|
|
907
1021
|
if (!required.optional &&
|
|
908
1022
|
!("value" in required && required.value !== undefined) &&
|
|
909
|
-
!(required.name
|
|
1023
|
+
!Object.hasOwn(values, required.name))
|
|
910
1024
|
add(where, `missing target input ${required.name}`);
|
|
911
1025
|
for (const [name, value] of Object.entries(values)) {
|
|
912
1026
|
const declared = target.input.find((f) => f.name === name);
|
|
@@ -919,7 +1033,7 @@ export function validateUdl(value) {
|
|
|
919
1033
|
add(where, "range binding requires an integer target input");
|
|
920
1034
|
continue;
|
|
921
1035
|
}
|
|
922
|
-
|
|
1036
|
+
checkAssignment(value, declared, where, action);
|
|
923
1037
|
if (declared.type === "ref" && "field" in value) {
|
|
924
1038
|
const supplied = field(value.field, action.input, action);
|
|
925
1039
|
if (supplied?.type !== "ref" ||
|
|
@@ -968,10 +1082,10 @@ export function validateUdl(value) {
|
|
|
968
1082
|
if (call.action === "create" && !("instrument" in call))
|
|
969
1083
|
add(where, "invocation references an existing instance and cannot create it again");
|
|
970
1084
|
const targetInst = byId.get(targetId);
|
|
971
|
-
|
|
1085
|
+
const targetAction = own(targetInst?.actions, call.action);
|
|
1086
|
+
if (!targetInst || !targetAction)
|
|
972
1087
|
add(where, "invocation target must name a declared action");
|
|
973
1088
|
else if (!call.guard) {
|
|
974
|
-
const targetAction = targetInst.actions[call.action];
|
|
975
1089
|
if (inst.subject &&
|
|
976
1090
|
targetInst.subject &&
|
|
977
1091
|
inst.subject === targetInst.subject) {
|