holarchy-core-logic 0.1.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/dist/authoring.d.ts +44 -0
- package/dist/authoring.d.ts.map +1 -0
- package/dist/authoring.js +580 -0
- package/dist/authoring.js.map +1 -0
- package/dist/authority-store.d.ts +11 -0
- package/dist/authority-store.d.ts.map +1 -0
- package/dist/authority-store.js +170 -0
- package/dist/authority-store.js.map +1 -0
- package/dist/effective-snapshot.d.ts +7 -0
- package/dist/effective-snapshot.d.ts.map +1 -0
- package/dist/effective-snapshot.js +160 -0
- package/dist/effective-snapshot.js.map +1 -0
- package/dist/effective.d.ts +21 -0
- package/dist/effective.d.ts.map +1 -0
- package/dist/effective.js +72 -0
- package/dist/effective.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/validator.d.ts +79 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +176 -0
- package/dist/validator.js.map +1 -0
- package/package.json +12 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authoring.js","sourceRoot":"","sources":["../src/authoring.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type CommitHolonAuthorityConfig, type CommitHolonAuthorityInput, type HolonAuthorityCommitReceipt, type HolonAuthoritySnapshot, type HolonAuthorityTables, type HolonGovernanceRuntime } from "holarchy-core-contract";
|
|
2
|
+
export declare class HolonAuthorityContractError extends Error {
|
|
3
|
+
readonly code: string;
|
|
4
|
+
readonly path: string;
|
|
5
|
+
constructor(code: string, path: string, message: string);
|
|
6
|
+
}
|
|
7
|
+
export declare function normalizeHolonAuthorityTables(value: unknown): HolonAuthorityTables;
|
|
8
|
+
export declare function digestHolonAuthoritySnapshot(snapshot: HolonAuthoritySnapshot): string;
|
|
9
|
+
/** Direct Processor: output = fn(runtime, input, config). */
|
|
10
|
+
export declare function commitHolonAuthority(runtime: HolonGovernanceRuntime, input: CommitHolonAuthorityInput, config: CommitHolonAuthorityConfig): Promise<HolonAuthorityCommitReceipt>;
|
|
11
|
+
//# sourceMappingURL=authority-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authority-store.d.ts","sourceRoot":"","sources":["../src/authority-store.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAEhC,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAGhC,qBAAa,2BAA4B,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAnC,IAAI,EAAE,MAAM,EAAW,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1E;AAsFD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAclF;AASD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,CAErF;AAMD,6DAA6D;AAC7D,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,yBAAyB,EAChC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,2BAA2B,CAAC,CAiBtC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { HOLON_AUTHORITY_API_VERSION, HOLON_AUTHORITY_ENTITIES, } from "holarchy-core-contract";
|
|
3
|
+
export class HolonAuthorityContractError extends Error {
|
|
4
|
+
code;
|
|
5
|
+
path;
|
|
6
|
+
constructor(code, path, message) {
|
|
7
|
+
super(`${path}: ${message}`);
|
|
8
|
+
this.code = code;
|
|
9
|
+
this.path = path;
|
|
10
|
+
this.name = "HolonAuthorityContractError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const fail = (code, path, message) => { throw new HolonAuthorityContractError(code, path, message); };
|
|
14
|
+
function dataRecord(value, path) {
|
|
15
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
16
|
+
return fail("invalid-record", path, "Expected a plain data object");
|
|
17
|
+
let prototype;
|
|
18
|
+
let keys;
|
|
19
|
+
try {
|
|
20
|
+
prototype = Object.getPrototypeOf(value);
|
|
21
|
+
keys = Reflect.ownKeys(value);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return fail("invalid-record", path, "Object shape cannot be inspected safely");
|
|
25
|
+
}
|
|
26
|
+
if (prototype !== Object.prototype && prototype !== null)
|
|
27
|
+
return fail("invalid-record", path, "Custom prototypes are not supported");
|
|
28
|
+
const result = Object.create(null);
|
|
29
|
+
for (const key of keys) {
|
|
30
|
+
if (typeof key !== "string")
|
|
31
|
+
return fail("invalid-record", path, "Symbol fields are not supported");
|
|
32
|
+
let descriptor;
|
|
33
|
+
try {
|
|
34
|
+
descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return fail("invalid-record", `${path}.${key}`, "Field cannot be inspected safely");
|
|
38
|
+
}
|
|
39
|
+
if (descriptor === undefined || !("value" in descriptor) || !descriptor.enumerable)
|
|
40
|
+
return fail("invalid-record", `${path}.${key}`, "Expected an enumerable own data field");
|
|
41
|
+
result[key] = descriptor.value;
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
function dataArray(value, path) {
|
|
46
|
+
if (!Array.isArray(value) || Object.getPrototypeOf(value) !== Array.prototype)
|
|
47
|
+
return fail("invalid-array", path, "Expected a plain array");
|
|
48
|
+
const keys = Reflect.ownKeys(value);
|
|
49
|
+
const length = value.length;
|
|
50
|
+
for (const key of keys) {
|
|
51
|
+
if (key === "length")
|
|
52
|
+
continue;
|
|
53
|
+
if (typeof key !== "string" || !/^(0|[1-9][0-9]*)$/.test(key) || Number(key) >= length)
|
|
54
|
+
return fail("invalid-array", path, "Unsupported array field");
|
|
55
|
+
}
|
|
56
|
+
const result = [];
|
|
57
|
+
for (let index = 0; index < length; index += 1) {
|
|
58
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
|
|
59
|
+
if (descriptor === undefined || !("value" in descriptor) || !descriptor.enumerable)
|
|
60
|
+
return fail("invalid-array", `${path}[${index}]`, "Expected a dense own-data item");
|
|
61
|
+
result.push(descriptor.value);
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
function json(value, path, seen = new WeakSet()) {
|
|
66
|
+
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
67
|
+
return value;
|
|
68
|
+
if (typeof value === "number") {
|
|
69
|
+
if (!Number.isFinite(value))
|
|
70
|
+
return fail("invalid-json", path, "Expected a finite number");
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
73
|
+
if (typeof value !== "object")
|
|
74
|
+
return fail("invalid-json", path, "Expected JSON data");
|
|
75
|
+
if (seen.has(value))
|
|
76
|
+
return fail("invalid-json", path, "Cyclic data is not supported");
|
|
77
|
+
seen.add(value);
|
|
78
|
+
const result = Array.isArray(value)
|
|
79
|
+
? dataArray(value, path).map((item, index) => json(item, `${path}[${index}]`, seen))
|
|
80
|
+
: Object.fromEntries(Object.entries(dataRecord(value, path)).map(([key, item]) => [key, json(item, `${path}.${key}`, seen)]));
|
|
81
|
+
seen.delete(value);
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
const compareCodeUnits = (left, right) => left < right ? -1 : left > right ? 1 : 0;
|
|
85
|
+
const idOf = (row, path) => typeof row.id === "string" && row.id.length > 0 ? row.id : fail("invalid-row-id", `${path}.id`, "Expected a non-empty id");
|
|
86
|
+
const ENTITY_FIELDS = Object.freeze({
|
|
87
|
+
OrganizationalSubject: Object.freeze(["id", "subjectType"]),
|
|
88
|
+
Member: Object.freeze(["id", "subjectId", "createdAt", "createdBy"]),
|
|
89
|
+
MemberVersion: Object.freeze(["id", "memberId", "displayName", "principalKind", "effectiveDate", "effectiveState", "createdAt", "createdBy", "changeSetId", "sequence"]),
|
|
90
|
+
Holon: Object.freeze(["id", "subjectId", "code", "createdAt", "createdBy"]),
|
|
91
|
+
HolonVersion: Object.freeze(["id", "holonId", "name", "purpose", "boundary", "effectiveDate", "effectiveState", "createdAt", "createdBy", "changeSetId", "sequence"]),
|
|
92
|
+
HolonMembership: Object.freeze(["id", "createdAt", "createdBy"]),
|
|
93
|
+
HolonMembershipVersion: Object.freeze(["id", "membershipId", "parentHolonId", "subjectId", "mode", "effectiveDate", "effectiveState", "createdAt", "createdBy", "changeSetId", "sequence"]),
|
|
94
|
+
Role: Object.freeze(["id", "holonId", "createdAt", "createdBy"]),
|
|
95
|
+
RoleVersion: Object.freeze(["id", "roleId", "name", "purpose", "domainsJson", "accountabilitiesJson", "policiesJson", "capabilityRequirementsJson", "effectiveDate", "effectiveState", "createdAt", "createdBy", "changeSetId", "sequence"]),
|
|
96
|
+
RoleAssignment: Object.freeze(["id", "createdAt", "createdBy"]),
|
|
97
|
+
RoleAssignmentVersion: Object.freeze(["id", "roleAssignmentId", "membershipId", "roleId", "effectiveDate", "effectiveState", "createdAt", "createdBy", "changeSetId", "sequence"]),
|
|
98
|
+
GovernancePolicy: Object.freeze(["id", "holonId", "createdAt", "createdBy"]),
|
|
99
|
+
GovernancePolicyVersion: Object.freeze(["id", "governancePolicyId", "holonId", "name", "profile", "rulesJson", "effectiveDate", "effectiveState", "createdAt", "createdBy", "changeSetId", "sequence"]),
|
|
100
|
+
HolarchyChangeSet: Object.freeze(["id", "title", "state", "effectiveDate", "actorRef", "revision", "createdAt", "createdBy", "updatedAt", "updatedBy", "approvedBy", "appliedAt"]),
|
|
101
|
+
HolarchyChange: Object.freeze(["id", "changeSetId", "order", "kind", "resourceId", "effectiveState", "payloadJson"]),
|
|
102
|
+
HolarchyChangeEvent: Object.freeze(["id", "changeSetId", "kind", "createdAt", "actorRef", "detailJson"]),
|
|
103
|
+
});
|
|
104
|
+
function exactEntityRow(entity, row, path) {
|
|
105
|
+
const fields = ENTITY_FIELDS[entity];
|
|
106
|
+
const keys = Object.keys(row);
|
|
107
|
+
for (const field of fields)
|
|
108
|
+
if (!Object.hasOwn(row, field))
|
|
109
|
+
fail("missing-row-field", `${path}.${field}`, `Required ${entity} field is missing`);
|
|
110
|
+
for (const key of keys)
|
|
111
|
+
if (!fields.includes(key))
|
|
112
|
+
fail("extra-row-field", `${path}.${key}`, `Unsupported ${entity} field`);
|
|
113
|
+
return row;
|
|
114
|
+
}
|
|
115
|
+
export function normalizeHolonAuthorityTables(value) {
|
|
116
|
+
const source = dataRecord(value, "$.tables");
|
|
117
|
+
const allowed = new Set(HOLON_AUTHORITY_ENTITIES);
|
|
118
|
+
const result = Object.create(null);
|
|
119
|
+
for (const entity of HOLON_AUTHORITY_ENTITIES)
|
|
120
|
+
result[entity] = Object.freeze([]);
|
|
121
|
+
for (const [key, rowsValue] of Object.entries(source)) {
|
|
122
|
+
if (!allowed.has(key))
|
|
123
|
+
fail("unknown-entity", `$.tables.${key}`, "Unknown Holon authority entity");
|
|
124
|
+
const entity = key;
|
|
125
|
+
const rows = dataArray(rowsValue, `$.tables.${key}`).map((row, index) => exactEntityRow(entity, json(row, `$.tables.${key}[${index}]`), `$.tables.${key}[${index}]`));
|
|
126
|
+
const ids = rows.map((row, index) => idOf(row, `$.tables.${key}[${index}]`));
|
|
127
|
+
if (new Set(ids).size !== ids.length)
|
|
128
|
+
fail("duplicate-row", `$.tables.${key}`, "Duplicate row identity");
|
|
129
|
+
result[entity] = Object.freeze([...rows].sort((left, right) => compareCodeUnits(idOf(left, "$.row"), idOf(right, "$.row"))).map(Object.freeze));
|
|
130
|
+
}
|
|
131
|
+
return Object.freeze(result);
|
|
132
|
+
}
|
|
133
|
+
function canonical(value) {
|
|
134
|
+
if (value === null || typeof value !== "object")
|
|
135
|
+
return JSON.stringify(value);
|
|
136
|
+
if (Array.isArray(value))
|
|
137
|
+
return `[${value.map(canonical).join(",")}]`;
|
|
138
|
+
const record = value;
|
|
139
|
+
return `{${Object.keys(record).sort(compareCodeUnits).map((key) => `${JSON.stringify(key)}:${canonical(record[key])}`).join(",")}}`;
|
|
140
|
+
}
|
|
141
|
+
export function digestHolonAuthoritySnapshot(snapshot) {
|
|
142
|
+
return `sha256:${createHash("sha256").update(canonical(snapshot), "utf8").digest("hex")}`;
|
|
143
|
+
}
|
|
144
|
+
function requiredString(value, path) {
|
|
145
|
+
return typeof value === "string" && value.length > 0 ? value : fail("invalid-string", path, "Expected a non-empty string");
|
|
146
|
+
}
|
|
147
|
+
/** Direct Processor: output = fn(runtime, input, config). */
|
|
148
|
+
export async function commitHolonAuthority(runtime, input, config) {
|
|
149
|
+
if (!Number.isSafeInteger(input.expectedRevision) || input.expectedRevision < 0)
|
|
150
|
+
fail("invalid-revision", "$.expectedRevision", "Expected a non-negative integer");
|
|
151
|
+
const current = await runtime.store.load();
|
|
152
|
+
if (current.apiVersion !== HOLON_AUTHORITY_API_VERSION)
|
|
153
|
+
fail("invalid-authority", "$.current.apiVersion", "Unsupported authority version");
|
|
154
|
+
if (current.authorityId !== requiredString(config.authorityId, "$.config.authorityId"))
|
|
155
|
+
fail("authority-mismatch", "$.config.authorityId", "Authority identity does not match the owner");
|
|
156
|
+
if (current.revision !== input.expectedRevision)
|
|
157
|
+
fail("revision-conflict", "$.expectedRevision", "Authority revision changed");
|
|
158
|
+
const tables = normalizeHolonAuthorityTables(input.tables);
|
|
159
|
+
const sequence = Math.max(0, ...Object.values(tables).flatMap((rows) => rows ?? []).map((row) => typeof row.sequence === "number" && Number.isSafeInteger(row.sequence) ? row.sequence : 0));
|
|
160
|
+
const next = Object.freeze({ apiVersion: HOLON_AUTHORITY_API_VERSION, authorityId: current.authorityId, revision: current.revision + 1, sequence, tables });
|
|
161
|
+
const stateDigest = digestHolonAuthoritySnapshot(next);
|
|
162
|
+
return runtime.store.compareAndSwap(Object.freeze({
|
|
163
|
+
expectedRevision: current.revision,
|
|
164
|
+
executionId: requiredString(config.executionId, "$.config.executionId"),
|
|
165
|
+
executionInstant: requiredString(config.executionInstant, "$.config.executionInstant"),
|
|
166
|
+
stateDigest,
|
|
167
|
+
next,
|
|
168
|
+
}));
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=authority-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authority-store.js","sourceRoot":"","sources":["../src/authority-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ProjectOrganizationSnapshotConfig, type ProjectOrganizationSnapshotInput, type ProjectOrganizationSnapshotOutput, type ProjectOrganizationSnapshotRuntime } from "holarchy-core-contract";
|
|
2
|
+
export declare class OrganizationSnapshotProjectionError extends Error {
|
|
3
|
+
readonly path: string;
|
|
4
|
+
constructor(path: string, message: string);
|
|
5
|
+
}
|
|
6
|
+
export declare function projectOrganizationSnapshot(runtime: ProjectOrganizationSnapshotRuntime, inputValue: ProjectOrganizationSnapshotInput, configValue: ProjectOrganizationSnapshotConfig): Promise<ProjectOrganizationSnapshotOutput>;
|
|
7
|
+
//# sourceMappingURL=effective-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective-snapshot.d.ts","sourceRoot":"","sources":["../src/effective-snapshot.ts"],"names":[],"mappings":"AAEA,OAAO,EAWL,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACxC,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,mCAAoC,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AA0GD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,kCAAkC,EAC3C,UAAU,EAAE,gCAAgC,EAC5C,WAAW,EAAE,iCAAiC,GAC7C,OAAO,CAAC,iCAAiC,CAAC,CAsC5C"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { HOLON_EFFECTIVE_SNAPSHOT_API_VERSION, HOLON_EFFECTIVE_SNAPSHOT_KIND, canonicalHolonEffectiveSnapshotBytes, computeHolonEffectiveSnapshotTreeDigest, normalizeHolonEffectiveSnapshot, normalizeHolonEffectiveSnapshotTree, validateHolonEffectiveSnapshotIssuanceReceipt, } from "holarchy-core-contract";
|
|
3
|
+
export class OrganizationSnapshotProjectionError extends Error {
|
|
4
|
+
path;
|
|
5
|
+
constructor(path, message) {
|
|
6
|
+
super(`${path}: ${message}`);
|
|
7
|
+
this.path = path;
|
|
8
|
+
this.name = "OrganizationSnapshotProjectionError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function invalid(path, message) {
|
|
12
|
+
throw new OrganizationSnapshotProjectionError(path, message);
|
|
13
|
+
}
|
|
14
|
+
function exactDataObject(value, expectedKeys, path) {
|
|
15
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
16
|
+
invalid(path, "Expected a plain object");
|
|
17
|
+
const prototype = Object.getPrototypeOf(value);
|
|
18
|
+
if (prototype !== Object.prototype && prototype !== null)
|
|
19
|
+
invalid(path, "Expected a plain object");
|
|
20
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
21
|
+
const keys = Reflect.ownKeys(descriptors);
|
|
22
|
+
if (keys.some((key) => typeof key !== "string"))
|
|
23
|
+
invalid(path, "symbol properties are not allowed");
|
|
24
|
+
const expected = new Set(expectedKeys);
|
|
25
|
+
for (const key of keys) {
|
|
26
|
+
if (!expected.has(key))
|
|
27
|
+
invalid(`${path}.${key}`, "Unsupported field");
|
|
28
|
+
const descriptor = descriptors[key];
|
|
29
|
+
if (descriptor === undefined || !("value" in descriptor) || descriptor.enumerable !== true) {
|
|
30
|
+
invalid(`${path}.${key}`, "Expected an enumerable own-data property");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const output = Object.create(null);
|
|
34
|
+
for (const key of expectedKeys) {
|
|
35
|
+
const descriptor = descriptors[key];
|
|
36
|
+
if (descriptor === undefined || !("value" in descriptor) || descriptor.enumerable !== true)
|
|
37
|
+
invalid(`${path}.${key}`, "Required field is missing");
|
|
38
|
+
output[key] = descriptor.value;
|
|
39
|
+
}
|
|
40
|
+
return Object.freeze(output);
|
|
41
|
+
}
|
|
42
|
+
function exactString(value, path) {
|
|
43
|
+
if (typeof value !== "string" || value.length === 0 || value !== value.trim())
|
|
44
|
+
invalid(path, "Expected an exact non-empty string");
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
function utcInstant(value, path) {
|
|
48
|
+
const result = exactString(value, path);
|
|
49
|
+
const parsed = Date.parse(result);
|
|
50
|
+
if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(result) || Number.isNaN(parsed) || new Date(parsed).toISOString() !== result) {
|
|
51
|
+
invalid(path, "Expected a canonical UTC instant");
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
function bound(value, minimum, path) {
|
|
56
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < minimum)
|
|
57
|
+
invalid(path, `Expected a safe integer >= ${minimum}`);
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
function normalizeInput(value) {
|
|
61
|
+
const input = exactDataObject(value, ["rootHolonRef", "effectiveAt"], "$.input");
|
|
62
|
+
return Object.freeze({
|
|
63
|
+
rootHolonRef: exactString(input.rootHolonRef, "$.input.rootHolonRef"),
|
|
64
|
+
effectiveAt: utcInstant(input.effectiveAt, "$.input.effectiveAt"),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function normalizeConfig(value) {
|
|
68
|
+
const config = exactDataObject(value, ["maxDepth", "maxRecords"], "$.config");
|
|
69
|
+
return Object.freeze({
|
|
70
|
+
maxDepth: bound(config.maxDepth, 0, "$.config.maxDepth"),
|
|
71
|
+
maxRecords: bound(config.maxRecords, 1, "$.config.maxRecords"),
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function snapshotId(sourceAuthorityId, sourceRevision, input) {
|
|
75
|
+
const identity = JSON.stringify([sourceAuthorityId, sourceRevision, input.rootHolonRef, input.effectiveAt]);
|
|
76
|
+
return `holon-effective-snapshot:${createHash("sha256").update(identity).digest("hex")}`;
|
|
77
|
+
}
|
|
78
|
+
function nestedHolonChildren(records) {
|
|
79
|
+
const holonBySubject = new Map(records.filter((record) => record.kind === "Holon").map((record) => [record.subjectId, record.id]));
|
|
80
|
+
const children = new Map();
|
|
81
|
+
for (const record of records) {
|
|
82
|
+
if (record.kind !== "HolonMembershipVersion")
|
|
83
|
+
continue;
|
|
84
|
+
const childId = holonBySubject.get(record.subjectId);
|
|
85
|
+
if (childId === undefined)
|
|
86
|
+
continue;
|
|
87
|
+
children.set(record.parentHolonId, [...(children.get(record.parentHolonId) ?? []), childId]);
|
|
88
|
+
}
|
|
89
|
+
return children;
|
|
90
|
+
}
|
|
91
|
+
function assertTraversalBounds(tree, config) {
|
|
92
|
+
if (tree.records.length > config.maxRecords)
|
|
93
|
+
invalid("$.config.maxRecords", `Snapshot requires ${tree.records.length} records`);
|
|
94
|
+
const children = nestedHolonChildren(tree.records);
|
|
95
|
+
const indegree = new Map();
|
|
96
|
+
const depths = new Map([[tree.rootHolonRef, 0]]);
|
|
97
|
+
for (const record of tree.records)
|
|
98
|
+
if (record.kind === "Holon")
|
|
99
|
+
indegree.set(record.id, 0);
|
|
100
|
+
for (const childIds of children.values()) {
|
|
101
|
+
for (const childId of childIds)
|
|
102
|
+
indegree.set(childId, (indegree.get(childId) ?? 0) + 1);
|
|
103
|
+
}
|
|
104
|
+
const queue = [...indegree.entries()].filter(([, count]) => count === 0).map(([holonId]) => holonId);
|
|
105
|
+
for (let index = 0; index < queue.length; index += 1) {
|
|
106
|
+
const parentId = queue[index];
|
|
107
|
+
const parentDepth = depths.get(parentId) ?? 0;
|
|
108
|
+
for (const childId of children.get(parentId) ?? []) {
|
|
109
|
+
const childDepth = Math.max(depths.get(childId) ?? 0, parentDepth + 1);
|
|
110
|
+
if (childDepth > config.maxDepth)
|
|
111
|
+
invalid("$.config.maxDepth", `Nested Holon '${childId}' requires depth ${childDepth}`);
|
|
112
|
+
depths.set(childId, childDepth);
|
|
113
|
+
const remaining = (indegree.get(childId) ?? 1) - 1;
|
|
114
|
+
indegree.set(childId, remaining);
|
|
115
|
+
if (remaining === 0)
|
|
116
|
+
queue.push(childId);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export async function projectOrganizationSnapshot(runtime, inputValue, configValue) {
|
|
121
|
+
const input = normalizeInput(inputValue);
|
|
122
|
+
const config = normalizeConfig(configValue);
|
|
123
|
+
if (runtime === null || typeof runtime !== "object" || runtime.timeline === null || typeof runtime.timeline !== "object"
|
|
124
|
+
|| typeof runtime.timeline.readEffectiveOrganization !== "function") {
|
|
125
|
+
invalid("$.runtime.timeline", "Expected the organization timeline read port");
|
|
126
|
+
}
|
|
127
|
+
const sourceValue = await runtime.timeline.readEffectiveOrganization(input);
|
|
128
|
+
const source = exactDataObject(sourceValue, ["sourceAuthorityId", "sourceRevision", "observedAt", "records"], "$.runtime.timeline.result");
|
|
129
|
+
const sourceAuthorityId = exactString(source.sourceAuthorityId, "$.runtime.timeline.result.sourceAuthorityId");
|
|
130
|
+
const sourceRevision = exactString(source.sourceRevision, "$.runtime.timeline.result.sourceRevision");
|
|
131
|
+
const observedAt = utcInstant(source.observedAt, "$.runtime.timeline.result.observedAt");
|
|
132
|
+
if (!Array.isArray(source.records))
|
|
133
|
+
invalid("$.runtime.timeline.result.records", "Expected an array");
|
|
134
|
+
if (source.records.length > config.maxRecords) {
|
|
135
|
+
invalid("$.config.maxRecords", `Snapshot authority returned ${source.records.length} records`);
|
|
136
|
+
}
|
|
137
|
+
const tree = normalizeHolonEffectiveSnapshotTree({
|
|
138
|
+
apiVersion: HOLON_EFFECTIVE_SNAPSHOT_API_VERSION,
|
|
139
|
+
kind: HOLON_EFFECTIVE_SNAPSHOT_KIND,
|
|
140
|
+
snapshotId: snapshotId(sourceAuthorityId, sourceRevision, input),
|
|
141
|
+
rootHolonRef: input.rootHolonRef,
|
|
142
|
+
effectiveAt: input.effectiveAt,
|
|
143
|
+
sourceRevision,
|
|
144
|
+
records: source.records,
|
|
145
|
+
});
|
|
146
|
+
assertTraversalBounds(tree, config);
|
|
147
|
+
const treeDigest = await computeHolonEffectiveSnapshotTreeDigest(tree);
|
|
148
|
+
const snapshot = normalizeHolonEffectiveSnapshot({ ...tree, treeDigest });
|
|
149
|
+
const canonicalBytes = await canonicalHolonEffectiveSnapshotBytes(snapshot);
|
|
150
|
+
const issuanceReceipt = validateHolonEffectiveSnapshotIssuanceReceipt({
|
|
151
|
+
snapshotRef: snapshot.snapshotId,
|
|
152
|
+
sourceAuthorityId,
|
|
153
|
+
sourceRevision,
|
|
154
|
+
effectiveAt: input.effectiveAt,
|
|
155
|
+
treeDigest,
|
|
156
|
+
issuedAt: observedAt,
|
|
157
|
+
}, snapshot);
|
|
158
|
+
return Object.freeze({ snapshot, canonicalBytes, issuanceReceipt });
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=effective-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective-snapshot.js","sourceRoot":"","sources":["../src/effective-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { EffectiveDatedFact } from "holarchy-core-contract";
|
|
2
|
+
import type { JsonObject, JsonValue } from "depa-domain-protocol";
|
|
3
|
+
export interface EffectiveEventRow extends JsonObject, EffectiveDatedFact {
|
|
4
|
+
}
|
|
5
|
+
export declare class EffectiveFactValidationError extends Error {
|
|
6
|
+
readonly path: string;
|
|
7
|
+
constructor(path: string, message: string);
|
|
8
|
+
}
|
|
9
|
+
export declare function isCanonicalDay(value: unknown): value is string;
|
|
10
|
+
export declare function isUtcInstant(value: unknown): value is string;
|
|
11
|
+
export declare function assertEffectiveEvent(row: JsonObject, path: string): asserts row is EffectiveEventRow;
|
|
12
|
+
export declare function projectEffectiveRows(rows: readonly JsonObject[], logicalIdKey: string, effectiveDate: string, path?: string): readonly EffectiveEventRow[];
|
|
13
|
+
export declare function effectiveEventsInRange(rows: readonly JsonObject[], from: string, to: string, path?: string): readonly EffectiveEventRow[];
|
|
14
|
+
export declare function parseJson(value: unknown): JsonValue;
|
|
15
|
+
export declare function parseStringArray(value: unknown): readonly string[];
|
|
16
|
+
export declare function jsonObject(value: unknown): JsonObject;
|
|
17
|
+
export declare function stringValue(row: JsonObject, key: string): string;
|
|
18
|
+
export declare function nullableString(row: JsonObject, key: string): string | null;
|
|
19
|
+
export declare function numberValue(row: JsonObject, key: string): number;
|
|
20
|
+
export declare function booleanValue(row: JsonObject, key: string, path?: string): boolean;
|
|
21
|
+
//# sourceMappingURL=effective.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective.d.ts","sourceRoot":"","sources":["../src/effective.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,WAAW,iBAAkB,SAAQ,UAAU,EAAE,kBAAkB;CAAG;AAE5E,qBAAa,4BAA6B,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAI9D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE5D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,iBAAiB,CAQpG;AAID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,SAAY,GAAG,SAAS,iBAAiB,EAAE,CAkB7J;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,SAAY,GAAG,SAAS,iBAAiB,EAAE,CAI5I;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAA6E;AACjI,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAA2I;AAC9M,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAA2G;AACjK,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAoH;AACrL,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAwJ;AACnO,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAkH;AACnL,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,OAAO,CAA+J"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export class EffectiveFactValidationError extends Error {
|
|
2
|
+
path;
|
|
3
|
+
constructor(path, message) {
|
|
4
|
+
super(`${path}: ${message}`);
|
|
5
|
+
this.path = path;
|
|
6
|
+
this.name = "EffectiveFactValidationError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function isCanonicalDay(value) {
|
|
10
|
+
if (typeof value !== "string" || !/^\d{4}-\d{2}-\d{2}$/.test(value))
|
|
11
|
+
return false;
|
|
12
|
+
const date = new Date(`${value}T00:00:00.000Z`);
|
|
13
|
+
return !Number.isNaN(date.valueOf()) && date.toISOString().slice(0, 10) === value;
|
|
14
|
+
}
|
|
15
|
+
export function isUtcInstant(value) {
|
|
16
|
+
return typeof value === "string" && /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/.test(value) && !Number.isNaN(Date.parse(value));
|
|
17
|
+
}
|
|
18
|
+
export function assertEffectiveEvent(row, path) {
|
|
19
|
+
for (const key of ["id", "createdBy", "changeSetId"]) {
|
|
20
|
+
if (typeof row[key] !== "string" || row[key].length === 0)
|
|
21
|
+
throw new EffectiveFactValidationError(`${path}.${key}`, `${key} must be a non-empty string`);
|
|
22
|
+
}
|
|
23
|
+
if (!isCanonicalDay(row.effectiveDate))
|
|
24
|
+
throw new EffectiveFactValidationError(`${path}.effectiveDate`, "effectiveDate must be a canonical YYYY-MM-DD date");
|
|
25
|
+
if (typeof row.effectiveState !== "boolean")
|
|
26
|
+
throw new EffectiveFactValidationError(`${path}.effectiveState`, "effectiveState must be a boolean");
|
|
27
|
+
if (!isUtcInstant(row.createdAt))
|
|
28
|
+
throw new EffectiveFactValidationError(`${path}.createdAt`, "createdAt must be a UTC instant");
|
|
29
|
+
if (!Number.isSafeInteger(row.sequence) || Number(row.sequence) < 0)
|
|
30
|
+
throw new EffectiveFactValidationError(`${path}.sequence`, "sequence must be a non-negative safe integer");
|
|
31
|
+
}
|
|
32
|
+
const compareEvents = (left, right) => left.effectiveDate.localeCompare(right.effectiveDate) || left.sequence - right.sequence;
|
|
33
|
+
export function projectEffectiveRows(rows, logicalIdKey, effectiveDate, path = "$.facts") {
|
|
34
|
+
if (!isCanonicalDay(effectiveDate))
|
|
35
|
+
throw new EffectiveFactValidationError("$.effectiveDate", "effectiveDate must be a canonical YYYY-MM-DD date");
|
|
36
|
+
const groups = new Map();
|
|
37
|
+
for (const [index, row] of rows.entries()) {
|
|
38
|
+
assertEffectiveEvent(row, `${path}[${index}]`);
|
|
39
|
+
const logicalId = row[logicalIdKey];
|
|
40
|
+
if (typeof logicalId !== "string" || logicalId.length === 0)
|
|
41
|
+
throw new EffectiveFactValidationError(`${path}[${index}].${logicalIdKey}`, `${logicalIdKey} must be a non-empty string`);
|
|
42
|
+
const group = groups.get(logicalId) ?? [];
|
|
43
|
+
if (group.some((candidate) => candidate.effectiveDate === row.effectiveDate && candidate.sequence === row.sequence)) {
|
|
44
|
+
throw new EffectiveFactValidationError(`${path}[${index}].sequence`, `duplicate (${logicalIdKey}, effectiveDate, sequence) order`);
|
|
45
|
+
}
|
|
46
|
+
group.push(row);
|
|
47
|
+
groups.set(logicalId, group);
|
|
48
|
+
}
|
|
49
|
+
return [...groups.values()]
|
|
50
|
+
.map((group) => group.filter((row) => row.effectiveDate <= effectiveDate).sort(compareEvents).at(-1))
|
|
51
|
+
.filter((row) => row !== undefined && row.effectiveState === true)
|
|
52
|
+
.sort((left, right) => String(left[logicalIdKey]).localeCompare(String(right[logicalIdKey])));
|
|
53
|
+
}
|
|
54
|
+
export function effectiveEventsInRange(rows, from, to, path = "$.facts") {
|
|
55
|
+
if (!isCanonicalDay(from) || !isCanonicalDay(to) || from >= to)
|
|
56
|
+
throw new EffectiveFactValidationError("$.timeline", "range must use canonical dates with from before to");
|
|
57
|
+
return rows.map((row, index) => { assertEffectiveEvent(row, `${path}[${index}]`); return row; })
|
|
58
|
+
.filter((row) => row.effectiveDate >= from && row.effectiveDate < to).sort(compareEvents);
|
|
59
|
+
}
|
|
60
|
+
export function parseJson(value) { return typeof value === "string" ? JSON.parse(value) : null; }
|
|
61
|
+
export function parseStringArray(value) { const parsed = parseJson(value); return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : []; }
|
|
62
|
+
export function jsonObject(value) { return typeof value === "object" && value !== null && !Array.isArray(value) ? value : {}; }
|
|
63
|
+
export function stringValue(row, key) { const value = row[key]; if (typeof value !== "string")
|
|
64
|
+
throw new Error(`${key} must be a string`); return value; }
|
|
65
|
+
export function nullableString(row, key) { const value = row[key]; if (value === null)
|
|
66
|
+
return null; if (typeof value !== "string")
|
|
67
|
+
throw new Error(`${key} must be string|null`); return value; }
|
|
68
|
+
export function numberValue(row, key) { const value = row[key]; if (typeof value !== "number")
|
|
69
|
+
throw new Error(`${key} must be number`); return value; }
|
|
70
|
+
export function booleanValue(row, key, path = "$") { const value = row[key]; if (typeof value !== "boolean")
|
|
71
|
+
throw new EffectiveFactValidationError(`${path}.${key}`, `${key} must be a boolean`); return value; }
|
|
72
|
+
//# sourceMappingURL=effective.js.map
|