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.
@@ -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