holarchy-core-logic 0.1.1 → 0.1.2

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/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export { AuthoringContractError, parseAuthorDraftCommand, parseHolarchyChange, p
2
2
  export type { HolarchyChangeSetPlan, HolarchyMutationPlanStep, PlannedIdentityCreate, PlannedVersionAppend, VersionEntity } from "./authoring";
3
3
  export { EffectiveFactValidationError, assertEffectiveEvent, booleanValue, effectiveEventsInRange, isCanonicalDay, isUtcInstant, jsonObject, nullableString, numberValue, projectEffectiveRows, stringValue, } from "./effective";
4
4
  export { OrganizationSnapshotProjectionError, projectOrganizationSnapshot } from "./effective-snapshot";
5
+ export { OrganizationSnapshotTimelineError, createOrganizationSnapshotTimelineReadPort, type OrganizationSnapshotTimelineRuntime, } from "./organization-snapshot-timeline";
5
6
  export { HolonAuthorityContractError, commitHolonAuthority, digestHolonAuthoritySnapshot, normalizeHolonAuthorityTables } from "./authority-store";
6
7
  export { validateDesiredHolarchy } from "./validator";
7
8
  export type { DesiredEffectiveFact, DesiredGovernancePolicyVersion, DesiredHolarchyFacts, DesiredHolonVersion, DesiredMemberVersion, DesiredMembershipVersion, DesiredRoleAssignmentVersion, DesiredRoleVersion, } from "./validator";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,uBAAuB,EACvB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/I,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACnJ,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EACV,oBAAoB,EACpB,8BAA8B,EAC9B,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,uBAAuB,EACvB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/I,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EACL,iCAAiC,EACjC,0CAA0C,EAC1C,KAAK,mCAAmC,GACzC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACnJ,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EACV,oBAAoB,EACpB,8BAA8B,EAC9B,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { AuthoringContractError, parseAuthorDraftCommand, parseHolarchyChange, parseHolarchyDraft, planHolarchyChangeSet, previewBasis, projectHolarchySnapshot, sha256Basis, } from "./authoring";
2
2
  export { EffectiveFactValidationError, assertEffectiveEvent, booleanValue, effectiveEventsInRange, isCanonicalDay, isUtcInstant, jsonObject, nullableString, numberValue, projectEffectiveRows, stringValue, } from "./effective";
3
3
  export { OrganizationSnapshotProjectionError, projectOrganizationSnapshot } from "./effective-snapshot";
4
+ export { OrganizationSnapshotTimelineError, createOrganizationSnapshotTimelineReadPort, } from "./organization-snapshot-timeline";
4
5
  export { HolonAuthorityContractError, commitHolonAuthority, digestHolonAuthoritySnapshot, normalizeHolonAuthorityTables } from "./authority-store";
5
6
  export { validateDesiredHolarchy } from "./validator";
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,uBAAuB,EACvB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACnJ,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,uBAAuB,EACvB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EACL,iCAAiC,EACjC,0CAA0C,GAE3C,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACnJ,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type HolonAuthorityStorePort, type OrganizationSnapshotTimelineReadPort } from "holarchy-core-contract";
2
+ export interface OrganizationSnapshotTimelineRuntime {
3
+ readonly store: HolonAuthorityStorePort;
4
+ readonly observedAt: () => string;
5
+ }
6
+ export declare class OrganizationSnapshotTimelineError extends Error {
7
+ readonly path: string;
8
+ constructor(path: string, message: string);
9
+ }
10
+ export declare function createOrganizationSnapshotTimelineReadPort(runtime: OrganizationSnapshotTimelineRuntime): OrganizationSnapshotTimelineReadPort;
11
+ //# sourceMappingURL=organization-snapshot-timeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-snapshot-timeline.d.ts","sourceRoot":"","sources":["../src/organization-snapshot-timeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,uBAAuB,EAE5B,KAAK,oCAAoC,EAE1C,MAAM,wBAAwB,CAAC;AAIhC,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC;CACnC;AAED,qBAAa,iCAAkC,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AAgSD,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,mCAAmC,GAC3C,oCAAoC,CAoBtC"}
@@ -0,0 +1,282 @@
1
+ import { HOLON_AUTHORITY_API_VERSION, normalizeHolonEffectiveSnapshotTree, } from "holarchy-core-contract";
2
+ import { normalizeHolonAuthorityTables } from "./authority-store";
3
+ export class OrganizationSnapshotTimelineError extends Error {
4
+ path;
5
+ constructor(path, message) {
6
+ super(`${path}: ${message}`);
7
+ this.path = path;
8
+ this.name = "OrganizationSnapshotTimelineError";
9
+ }
10
+ }
11
+ const fail = (path, message) => { throw new OrganizationSnapshotTimelineError(path, message); };
12
+ const compareCodeUnits = (left, right) => left < right ? -1 : left > right ? 1 : 0;
13
+ function dataRecord(value, path) {
14
+ if (value === null || typeof value !== "object" || Array.isArray(value))
15
+ fail(path, "Expected a plain data object");
16
+ const prototype = Object.getPrototypeOf(value);
17
+ if (prototype !== Object.prototype && prototype !== null)
18
+ fail(path, "Expected a plain data object");
19
+ const descriptors = Object.getOwnPropertyDescriptors(value);
20
+ const keys = Reflect.ownKeys(descriptors);
21
+ if (keys.some((key) => typeof key !== "string"))
22
+ fail(path, "Symbol fields are not supported");
23
+ const output = Object.create(null);
24
+ for (const key of keys) {
25
+ const descriptor = descriptors[key];
26
+ if (descriptor === undefined || !("value" in descriptor) || descriptor.enumerable !== true) {
27
+ fail(`${path}.${key}`, "Expected an enumerable own data field");
28
+ }
29
+ output[key] = descriptor.value;
30
+ }
31
+ return output;
32
+ }
33
+ function exactRecord(value, keys, path) {
34
+ const record = dataRecord(value, path);
35
+ const expected = new Set(keys);
36
+ for (const key of Object.keys(record))
37
+ if (!expected.has(key))
38
+ fail(`${path}.${key}`, "Unsupported field");
39
+ for (const key of keys)
40
+ if (!Object.hasOwn(record, key))
41
+ fail(`${path}.${key}`, "Required field is missing");
42
+ return record;
43
+ }
44
+ function exactString(value, path) {
45
+ if (typeof value !== "string" || value.length === 0 || value.trim() !== value)
46
+ fail(path, "Expected an exact non-empty string");
47
+ return value;
48
+ }
49
+ function utcInstant(value, path) {
50
+ const instant = exactString(value, path);
51
+ const parsed = Date.parse(instant);
52
+ if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(instant) || Number.isNaN(parsed) || new Date(parsed).toISOString() !== instant) {
53
+ fail(path, "Expected a canonical UTC instant");
54
+ }
55
+ return instant;
56
+ }
57
+ function safeInteger(value, path) {
58
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0)
59
+ fail(path, "Expected a non-negative safe integer");
60
+ return value;
61
+ }
62
+ function normalizeInput(value) {
63
+ const input = exactRecord(value, ["rootHolonRef", "effectiveAt"], "$.input");
64
+ return Object.freeze({
65
+ rootHolonRef: exactString(input.rootHolonRef, "$.input.rootHolonRef"),
66
+ effectiveAt: utcInstant(input.effectiveAt, "$.input.effectiveAt"),
67
+ });
68
+ }
69
+ function normalizeAuthority(value) {
70
+ const authority = exactRecord(value, ["apiVersion", "authorityId", "revision", "sequence", "tables"], "$.authority");
71
+ if (authority.apiVersion !== HOLON_AUTHORITY_API_VERSION)
72
+ fail("$.authority.apiVersion", "Unsupported authority version");
73
+ return Object.freeze({
74
+ apiVersion: HOLON_AUTHORITY_API_VERSION,
75
+ authorityId: exactString(authority.authorityId, "$.authority.authorityId"),
76
+ revision: safeInteger(authority.revision, "$.authority.revision"),
77
+ sequence: safeInteger(authority.sequence, "$.authority.sequence"),
78
+ tables: normalizeHolonAuthorityTables(authority.tables),
79
+ });
80
+ }
81
+ function rowString(row, key, path) {
82
+ return exactString(row[key], `${path}.${key}`);
83
+ }
84
+ function rowSequence(row, path) {
85
+ return safeInteger(row.sequence, `${path}.sequence`);
86
+ }
87
+ function selectVersions(rows, logicalKey, day, path) {
88
+ const groups = new Map();
89
+ for (let index = 0; index < rows.length; index += 1) {
90
+ const row = rows[index];
91
+ const rowPath = `${path}[${index}]`;
92
+ const logicalId = rowString(row, logicalKey, rowPath);
93
+ const effectiveDate = rowString(row, "effectiveDate", rowPath);
94
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(effectiveDate) || Number.isNaN(Date.parse(`${effectiveDate}T00:00:00.000Z`))) {
95
+ fail(`${rowPath}.effectiveDate`, "Expected a canonical effective date");
96
+ }
97
+ if (typeof row.effectiveState !== "boolean")
98
+ fail(`${rowPath}.effectiveState`, "Expected a boolean effective state");
99
+ rowSequence(row, rowPath);
100
+ groups.set(logicalId, [...(groups.get(logicalId) ?? []), row]);
101
+ }
102
+ const selected = new Map();
103
+ for (const [logicalId, group] of groups) {
104
+ const orders = new Set();
105
+ for (const row of group) {
106
+ const order = `${String(row.effectiveDate)}\0${String(row.sequence)}`;
107
+ if (orders.has(order))
108
+ fail(path, `Duplicate effective order for '${logicalId}'`);
109
+ orders.add(order);
110
+ }
111
+ const current = [...group]
112
+ .filter((row) => String(row.effectiveDate) <= day)
113
+ .sort((left, right) => compareCodeUnits(String(left.effectiveDate), String(right.effectiveDate)) || rowSequence(left, path) - rowSequence(right, path))
114
+ .at(-1);
115
+ if (current?.effectiveState === true)
116
+ selected.set(logicalId, current);
117
+ }
118
+ return selected;
119
+ }
120
+ function identityMap(rows, path) {
121
+ const result = new Map();
122
+ for (let index = 0; index < rows.length; index += 1) {
123
+ const row = rows[index];
124
+ const id = rowString(row, "id", `${path}[${index}]`);
125
+ if (result.has(id))
126
+ fail(path, `Duplicate stable identity '${id}'`);
127
+ result.set(id, row);
128
+ }
129
+ return result;
130
+ }
131
+ function pairActive(identities, versions, path) {
132
+ const result = new Map();
133
+ for (const [id, version] of versions) {
134
+ const identity = identities.get(id);
135
+ if (identity === undefined)
136
+ fail(path, `Selected Version has no stable identity '${id}'`);
137
+ result.set(id, { identity: identity, version });
138
+ }
139
+ return result;
140
+ }
141
+ function stableRecord(kind, row) {
142
+ return { kind, ...row };
143
+ }
144
+ function selectedVersionRecord(kind, row) {
145
+ if (kind === "RoleVersion") {
146
+ const { domainsJson, accountabilitiesJson, policiesJson, capabilityRequirementsJson, ...rest } = row;
147
+ return {
148
+ kind,
149
+ ...rest,
150
+ domains: parseJson(domainsJson, "$.RoleVersion.domainsJson"),
151
+ accountabilities: parseJson(accountabilitiesJson, "$.RoleVersion.accountabilitiesJson"),
152
+ policies: parseJson(policiesJson, "$.RoleVersion.policiesJson"),
153
+ capabilityRequirements: parseJson(capabilityRequirementsJson, "$.RoleVersion.capabilityRequirementsJson"),
154
+ };
155
+ }
156
+ if (kind === "GovernancePolicyVersion") {
157
+ const { rulesJson, ...rest } = row;
158
+ return { kind, ...rest, rules: parseJson(rulesJson, "$.GovernancePolicyVersion.rulesJson") };
159
+ }
160
+ return { kind, ...row };
161
+ }
162
+ function parseJson(value, path) {
163
+ const source = exactString(value, path);
164
+ try {
165
+ return JSON.parse(source);
166
+ }
167
+ catch {
168
+ return fail(path, "Expected canonical JSON data");
169
+ }
170
+ }
171
+ function projectRecords(authority, input) {
172
+ const day = input.effectiveAt.slice(0, 10);
173
+ const tables = authority.tables;
174
+ const subjects = identityMap(tables.OrganizationalSubject ?? [], "$.tables.OrganizationalSubject");
175
+ const holons = pairActive(identityMap(tables.Holon ?? [], "$.tables.Holon"), selectVersions(tables.HolonVersion ?? [], "holonId", day, "$.tables.HolonVersion"), "$.tables.HolonVersion");
176
+ const members = pairActive(identityMap(tables.Member ?? [], "$.tables.Member"), selectVersions(tables.MemberVersion ?? [], "memberId", day, "$.tables.MemberVersion"), "$.tables.MemberVersion");
177
+ const memberships = pairActive(identityMap(tables.HolonMembership ?? [], "$.tables.HolonMembership"), selectVersions(tables.HolonMembershipVersion ?? [], "membershipId", day, "$.tables.HolonMembershipVersion"), "$.tables.HolonMembershipVersion");
178
+ const roles = pairActive(identityMap(tables.Role ?? [], "$.tables.Role"), selectVersions(tables.RoleVersion ?? [], "roleId", day, "$.tables.RoleVersion"), "$.tables.RoleVersion");
179
+ const assignments = pairActive(identityMap(tables.RoleAssignment ?? [], "$.tables.RoleAssignment"), selectVersions(tables.RoleAssignmentVersion ?? [], "roleAssignmentId", day, "$.tables.RoleAssignmentVersion"), "$.tables.RoleAssignmentVersion");
180
+ const policies = pairActive(identityMap(tables.GovernancePolicy ?? [], "$.tables.GovernancePolicy"), selectVersions(tables.GovernancePolicyVersion ?? [], "governancePolicyId", day, "$.tables.GovernancePolicyVersion"), "$.tables.GovernancePolicyVersion");
181
+ if (!holons.has(input.rootHolonRef))
182
+ fail("$.input.rootHolonRef", "Root Holon is not effective in this authority revision");
183
+ const subjectOwners = new Map();
184
+ for (const [id, pair] of holons)
185
+ addSubjectOwner(subjectOwners, subjects, pair.identity, "holon", "Holon", id);
186
+ for (const [id, pair] of members)
187
+ addSubjectOwner(subjectOwners, subjects, pair.identity, "member", "Member", id);
188
+ const reachableHolons = new Set([input.rootHolonRef]);
189
+ const reachableMembers = new Set();
190
+ const reachableMemberships = new Set();
191
+ let changed = true;
192
+ while (changed) {
193
+ changed = false;
194
+ for (const [id, pair] of memberships) {
195
+ const parentHolonId = rowString(pair.version, "parentHolonId", `$.memberships.${id}`);
196
+ if (!reachableHolons.has(parentHolonId))
197
+ continue;
198
+ const owner = subjectOwners.get(rowString(pair.version, "subjectId", `$.memberships.${id}`))
199
+ ?? fail(`$.memberships.${id}.subjectId`, "Effective membership has no effective subject owner");
200
+ reachableMemberships.add(id);
201
+ const target = owner.kind === "Holon" ? reachableHolons : reachableMembers;
202
+ if (!target.has(owner.id)) {
203
+ target.add(owner.id);
204
+ changed = true;
205
+ }
206
+ }
207
+ }
208
+ const reachableRoles = new Set([...roles].filter(([, pair]) => reachableHolons.has(rowString(pair.identity, "holonId", "$.roles"))).map(([id]) => id));
209
+ const reachablePolicies = new Set([...policies].filter(([, pair]) => reachableHolons.has(rowString(pair.identity, "holonId", "$.policies"))).map(([id]) => id));
210
+ const reachableAssignments = new Set();
211
+ for (const [id, pair] of assignments) {
212
+ const membershipId = rowString(pair.version, "membershipId", `$.assignments.${id}`);
213
+ const roleId = rowString(pair.version, "roleId", `$.assignments.${id}`);
214
+ const hasMembership = reachableMemberships.has(membershipId);
215
+ const hasRole = reachableRoles.has(roleId);
216
+ if (hasMembership !== hasRole)
217
+ fail(`$.assignments.${id}`, "Effective assignment crosses the selected root closure");
218
+ if (hasMembership)
219
+ reachableAssignments.add(id);
220
+ }
221
+ const records = [];
222
+ const selectedSubjectIds = new Set();
223
+ for (const id of reachableHolons)
224
+ selectedSubjectIds.add(rowString(holons.get(id).identity, "subjectId", `$.holons.${id}`));
225
+ for (const id of reachableMembers)
226
+ selectedSubjectIds.add(rowString(members.get(id).identity, "subjectId", `$.members.${id}`));
227
+ for (const id of [...selectedSubjectIds].sort(compareCodeUnits))
228
+ records.push(stableRecord("OrganizationalSubject", subjects.get(id)));
229
+ appendPairs(records, "Holon", "HolonVersion", holons, reachableHolons);
230
+ appendPairs(records, "Member", "MemberVersion", members, reachableMembers);
231
+ appendPairs(records, "HolonMembership", "HolonMembershipVersion", memberships, reachableMemberships);
232
+ appendPairs(records, "Role", "RoleVersion", roles, reachableRoles);
233
+ appendPairs(records, "RoleAssignment", "RoleAssignmentVersion", assignments, reachableAssignments);
234
+ appendPairs(records, "GovernancePolicy", "GovernancePolicyVersion", policies, reachablePolicies);
235
+ return normalizeHolonEffectiveSnapshotTree({
236
+ apiVersion: "holon.workbench/v1",
237
+ kind: "HolonEffectiveSnapshot",
238
+ snapshotId: "authority-projection-validation",
239
+ rootHolonRef: input.rootHolonRef,
240
+ effectiveAt: input.effectiveAt,
241
+ sourceRevision: String(authority.revision),
242
+ records,
243
+ }).records;
244
+ }
245
+ function addSubjectOwner(owners, subjects, identity, expectedType, kind, id) {
246
+ const subjectId = rowString(identity, "subjectId", `$.${kind}.${id}`);
247
+ const subject = subjects.get(subjectId);
248
+ if (subject === undefined || subject.subjectType !== expectedType)
249
+ fail(`$.${kind}.${id}.subjectId`, "Stable identity has no matching OrganizationalSubject");
250
+ if (owners.has(subjectId))
251
+ fail(`$.subjects.${subjectId}`, "OrganizationalSubject has multiple stable owners");
252
+ owners.set(subjectId, { kind, id });
253
+ }
254
+ function appendPairs(records, identityKind, versionKind, pairs, selectedIds) {
255
+ for (const id of [...selectedIds].sort(compareCodeUnits)) {
256
+ const pair = pairs.get(id) ?? fail(`$.${identityKind}.${id}`, "Selected closure identity is missing");
257
+ records.push(stableRecord(identityKind, pair.identity), selectedVersionRecord(versionKind, pair.version));
258
+ }
259
+ }
260
+ export function createOrganizationSnapshotTimelineReadPort(runtime) {
261
+ const runtimeRecord = exactRecord(runtime, ["store", "observedAt"], "$.runtime");
262
+ const store = runtimeRecord.store;
263
+ if (store === null || typeof store !== "object" || typeof store.load !== "function") {
264
+ fail("$.runtime.store", "Expected a HolonAuthorityStorePort");
265
+ }
266
+ if (typeof runtimeRecord.observedAt !== "function")
267
+ fail("$.runtime.observedAt", "Expected an observation clock");
268
+ return Object.freeze({
269
+ async readEffectiveOrganization(inputValue) {
270
+ const input = normalizeInput(inputValue);
271
+ const authority = normalizeAuthority(await store.load());
272
+ const observedAt = utcInstant(runtimeRecord.observedAt(), "$.runtime.observedAt.result");
273
+ return Object.freeze({
274
+ sourceAuthorityId: authority.authorityId,
275
+ sourceRevision: String(authority.revision),
276
+ observedAt,
277
+ records: projectRecords(authority, input),
278
+ });
279
+ },
280
+ });
281
+ }
282
+ //# sourceMappingURL=organization-snapshot-timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-snapshot-timeline.js","sourceRoot":"","sources":["../src/organization-snapshot-timeline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "holarchy-core-logic",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",