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":"effective.js","sourceRoot":"","sources":["../src/effective.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { AuthoringContractError, parseAuthorDraftCommand, parseHolarchyChange, parseHolarchyDraft, planHolarchyChangeSet, previewBasis, projectHolarchySnapshot, sha256Basis, } from "./authoring";
|
|
2
|
+
export type { HolarchyChangeSetPlan, HolarchyMutationPlanStep, PlannedIdentityCreate, PlannedVersionAppend, VersionEntity } from "./authoring";
|
|
3
|
+
export { EffectiveFactValidationError, assertEffectiveEvent, booleanValue, effectiveEventsInRange, isCanonicalDay, isUtcInstant, jsonObject, nullableString, numberValue, projectEffectiveRows, stringValue, } from "./effective";
|
|
4
|
+
export { OrganizationSnapshotProjectionError, projectOrganizationSnapshot } from "./effective-snapshot";
|
|
5
|
+
export { HolonAuthorityContractError, commitHolonAuthority, digestHolonAuthoritySnapshot, normalizeHolonAuthorityTables } from "./authority-store";
|
|
6
|
+
export { validateDesiredHolarchy } from "./validator";
|
|
7
|
+
export type { DesiredEffectiveFact, DesiredGovernancePolicyVersion, DesiredHolarchyFacts, DesiredHolonVersion, DesiredMemberVersion, DesiredMembershipVersion, DesiredRoleAssignmentVersion, DesiredRoleVersion, } from "./validator";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { AuthoringContractError, parseAuthorDraftCommand, parseHolarchyChange, parseHolarchyDraft, planHolarchyChangeSet, previewBasis, projectHolarchySnapshot, sha256Basis, } from "./authoring";
|
|
2
|
+
export { EffectiveFactValidationError, assertEffectiveEvent, booleanValue, effectiveEventsInRange, isCanonicalDay, isUtcInstant, jsonObject, nullableString, numberValue, projectEffectiveRows, stringValue, } from "./effective";
|
|
3
|
+
export { OrganizationSnapshotProjectionError, projectOrganizationSnapshot } from "./effective-snapshot";
|
|
4
|
+
export { HolonAuthorityContractError, commitHolonAuthority, digestHolonAuthoritySnapshot, normalizeHolonAuthorityTables } from "./authority-store";
|
|
5
|
+
export { validateDesiredHolarchy } from "./validator";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type EffectiveDatedFact, type HolonDiagnostic, type MemberPrincipalKind, type MembershipMode, type OrganizationalSubjectType } from "holarchy-core-contract";
|
|
2
|
+
export interface DesiredEffectiveFact extends EffectiveDatedFact {
|
|
3
|
+
readonly path: string;
|
|
4
|
+
}
|
|
5
|
+
export interface DesiredMemberVersion extends DesiredEffectiveFact {
|
|
6
|
+
readonly memberId: string;
|
|
7
|
+
readonly displayName: string;
|
|
8
|
+
readonly principalKind: MemberPrincipalKind;
|
|
9
|
+
}
|
|
10
|
+
export interface DesiredHolonVersion extends DesiredEffectiveFact {
|
|
11
|
+
readonly holonId: string;
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly purpose: string;
|
|
14
|
+
readonly boundary: string;
|
|
15
|
+
}
|
|
16
|
+
export interface DesiredMembershipVersion extends DesiredEffectiveFact {
|
|
17
|
+
readonly membershipId: string;
|
|
18
|
+
readonly subjectId: string;
|
|
19
|
+
readonly parentHolonId: string;
|
|
20
|
+
readonly mode: MembershipMode;
|
|
21
|
+
}
|
|
22
|
+
export interface DesiredRoleVersion extends DesiredEffectiveFact {
|
|
23
|
+
readonly roleId: string;
|
|
24
|
+
readonly name: string;
|
|
25
|
+
readonly purpose: string;
|
|
26
|
+
readonly domainsJson: string;
|
|
27
|
+
readonly accountabilitiesJson: string;
|
|
28
|
+
readonly policiesJson: string;
|
|
29
|
+
readonly capabilityRequirementsJson: string;
|
|
30
|
+
}
|
|
31
|
+
export interface DesiredRoleAssignmentVersion extends DesiredEffectiveFact {
|
|
32
|
+
readonly roleAssignmentId: string;
|
|
33
|
+
readonly membershipId: string;
|
|
34
|
+
readonly roleId: string;
|
|
35
|
+
}
|
|
36
|
+
export interface DesiredGovernancePolicyVersion extends DesiredEffectiveFact {
|
|
37
|
+
readonly governancePolicyId: string;
|
|
38
|
+
readonly holonId: string;
|
|
39
|
+
readonly name: string;
|
|
40
|
+
readonly profile: string;
|
|
41
|
+
readonly rulesJson: string;
|
|
42
|
+
}
|
|
43
|
+
export interface DesiredHolarchyFacts {
|
|
44
|
+
readonly subjects: readonly {
|
|
45
|
+
readonly id: string;
|
|
46
|
+
readonly subjectType: OrganizationalSubjectType;
|
|
47
|
+
}[];
|
|
48
|
+
readonly members: readonly {
|
|
49
|
+
readonly id: string;
|
|
50
|
+
readonly subjectId: string;
|
|
51
|
+
}[];
|
|
52
|
+
readonly memberVersions: readonly DesiredMemberVersion[];
|
|
53
|
+
readonly holons: readonly {
|
|
54
|
+
readonly id: string;
|
|
55
|
+
readonly subjectId: string;
|
|
56
|
+
readonly code?: string;
|
|
57
|
+
}[];
|
|
58
|
+
readonly holonVersions: readonly DesiredHolonVersion[];
|
|
59
|
+
readonly memberships: readonly {
|
|
60
|
+
readonly id: string;
|
|
61
|
+
}[];
|
|
62
|
+
readonly membershipVersions: readonly DesiredMembershipVersion[];
|
|
63
|
+
readonly roles: readonly {
|
|
64
|
+
readonly id: string;
|
|
65
|
+
readonly holonId: string;
|
|
66
|
+
}[];
|
|
67
|
+
readonly roleVersions: readonly DesiredRoleVersion[];
|
|
68
|
+
readonly roleAssignments: readonly {
|
|
69
|
+
readonly id: string;
|
|
70
|
+
}[];
|
|
71
|
+
readonly roleAssignmentVersions: readonly DesiredRoleAssignmentVersion[];
|
|
72
|
+
readonly governancePolicies: readonly {
|
|
73
|
+
readonly id: string;
|
|
74
|
+
readonly holonId: string;
|
|
75
|
+
}[];
|
|
76
|
+
readonly governancePolicyVersions: readonly DesiredGovernancePolicyVersion[];
|
|
77
|
+
}
|
|
78
|
+
export declare function validateDesiredHolarchy(facts: DesiredHolarchyFacts, effectiveDate: string): readonly HolonDiagnostic[];
|
|
79
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { MEMBER_PRINCIPAL_KINDS, } from "holarchy-core-contract";
|
|
2
|
+
import { isCanonicalDay, isUtcInstant } from "./effective";
|
|
3
|
+
function diagnostic(code, path, message) { return { code, path, message }; }
|
|
4
|
+
const order = (left, right) => left.effectiveDate.localeCompare(right.effectiveDate) || left.sequence - right.sequence;
|
|
5
|
+
function latest(rows, key, day) {
|
|
6
|
+
const grouped = new Map();
|
|
7
|
+
for (const row of rows) {
|
|
8
|
+
const id = String(row[key]);
|
|
9
|
+
grouped.set(id, [...(grouped.get(id) ?? []), row]);
|
|
10
|
+
}
|
|
11
|
+
return [...grouped.values()].map((group) => group.filter((row) => row.effectiveDate <= day).sort(order).at(-1))
|
|
12
|
+
.filter((row) => row !== undefined && row.effectiveState === true);
|
|
13
|
+
}
|
|
14
|
+
function validateEvents(rows, logicalKey, errors) {
|
|
15
|
+
const orders = new Set();
|
|
16
|
+
for (const row of rows) {
|
|
17
|
+
const runtime = row;
|
|
18
|
+
if (typeof runtime.id !== "string" || typeof runtime[logicalKey] !== "string" || !isCanonicalDay(runtime.effectiveDate)
|
|
19
|
+
|| typeof runtime.effectiveState !== "boolean" || !isUtcInstant(runtime.createdAt) || typeof runtime.createdBy !== "string"
|
|
20
|
+
|| typeof runtime.changeSetId !== "string" || !Number.isSafeInteger(runtime.sequence) || Number(runtime.sequence) < 0) {
|
|
21
|
+
errors.push(diagnostic("INVALID_EFFECTIVE_FACT", row.path, `${String(runtime.id ?? logicalKey)} has an invalid effective fact shape`));
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const key = `${String(runtime[logicalKey])}:${runtime.effectiveDate}:${runtime.sequence}`;
|
|
25
|
+
if (orders.has(key))
|
|
26
|
+
errors.push(diagnostic("DUPLICATE_EFFECTIVE_ORDER", `${row.path}.sequence`, `${key} does not uniquely order the logical event stream`));
|
|
27
|
+
orders.add(key);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function validateDesiredHolarchy(facts, effectiveDate) {
|
|
31
|
+
if (!isCanonicalDay(effectiveDate))
|
|
32
|
+
return [diagnostic("INVALID_TIMELINE", "$.effectiveDate", `Invalid effectiveDate ${effectiveDate}`)];
|
|
33
|
+
const errors = [];
|
|
34
|
+
validateEvents(facts.memberVersions, "memberId", errors);
|
|
35
|
+
validateEvents(facts.holonVersions, "holonId", errors);
|
|
36
|
+
validateEvents(facts.membershipVersions, "membershipId", errors);
|
|
37
|
+
validateEvents(facts.roleVersions, "roleId", errors);
|
|
38
|
+
validateEvents(facts.roleAssignmentVersions, "roleAssignmentId", errors);
|
|
39
|
+
validateEvents(facts.governancePolicyVersions, "governancePolicyId", errors);
|
|
40
|
+
for (const row of facts.memberVersions) {
|
|
41
|
+
if (!MEMBER_PRINCIPAL_KINDS.includes(row.principalKind)) {
|
|
42
|
+
errors.push(diagnostic("INVALID_EFFECTIVE_FACT", `${row.path}.principalKind`, `MemberVersion principalKind must be one of ${MEMBER_PRINCIPAL_KINDS.join(", ")}`));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const sequences = new Map();
|
|
46
|
+
for (const row of [...facts.memberVersions, ...facts.holonVersions, ...facts.membershipVersions, ...facts.roleVersions, ...facts.roleAssignmentVersions, ...facts.governancePolicyVersions]) {
|
|
47
|
+
const prior = sequences.get(row.sequence);
|
|
48
|
+
if (prior !== undefined)
|
|
49
|
+
errors.push(diagnostic("DUPLICATE_EFFECTIVE_ORDER", `${row.path}.sequence`, `sequence ${row.sequence} is already used by ${prior.id}`));
|
|
50
|
+
sequences.set(row.sequence, row);
|
|
51
|
+
}
|
|
52
|
+
if (errors.some(({ code }) => code === "INVALID_EFFECTIVE_FACT"))
|
|
53
|
+
return errors;
|
|
54
|
+
const subjects = new Map(facts.subjects.map((row) => [row.id, row]));
|
|
55
|
+
const members = new Map(facts.members.map((row) => [row.id, row]));
|
|
56
|
+
const holons = new Map(facts.holons.map((row) => [row.id, row]));
|
|
57
|
+
const memberships = new Set(facts.memberships.map(({ id }) => id));
|
|
58
|
+
const roles = new Map(facts.roles.map((row) => [row.id, row]));
|
|
59
|
+
const roleAssignments = new Set(facts.roleAssignments.map(({ id }) => id));
|
|
60
|
+
const governancePolicies = new Map(facts.governancePolicies.map((row) => [row.id, row]));
|
|
61
|
+
for (const member of facts.members)
|
|
62
|
+
if (subjects.get(member.subjectId)?.subjectType !== "member")
|
|
63
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", `$.facts.members.${member.id}`, `${member.id} must reference one member OrganizationalSubject`));
|
|
64
|
+
for (const holon of facts.holons)
|
|
65
|
+
if (subjects.get(holon.subjectId)?.subjectType !== "holon")
|
|
66
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", `$.facts.holons.${holon.id}`, `${holon.id} must reference one holon OrganizationalSubject`));
|
|
67
|
+
for (const subject of facts.subjects) {
|
|
68
|
+
const count = subject.subjectType === "member" ? facts.members.filter(({ subjectId }) => subjectId === subject.id).length : facts.holons.filter(({ subjectId }) => subjectId === subject.id).length;
|
|
69
|
+
if (count !== 1)
|
|
70
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", `$.facts.subjects.${subject.id}`, `${subject.id} requires exactly one ${subject.subjectType} identity`));
|
|
71
|
+
}
|
|
72
|
+
for (const row of facts.memberVersions)
|
|
73
|
+
if (!members.has(row.memberId))
|
|
74
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", row.path, `${row.id} references a missing Member`));
|
|
75
|
+
for (const row of facts.holonVersions)
|
|
76
|
+
if (!holons.has(row.holonId))
|
|
77
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", row.path, `${row.id} references a missing Holon`));
|
|
78
|
+
for (const row of facts.membershipVersions) {
|
|
79
|
+
if (!memberships.has(row.membershipId) || !subjects.has(row.subjectId) || !holons.has(row.parentHolonId)) {
|
|
80
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", row.path, `${row.id} references a missing HolonMembership, subject, or parent Holon`));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
for (const role of facts.roles)
|
|
84
|
+
if (!holons.has(role.holonId))
|
|
85
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", `$.facts.roles.${role.id}`, `${role.id} references a missing Holon`));
|
|
86
|
+
for (const row of facts.roleVersions)
|
|
87
|
+
if (!roles.has(row.roleId))
|
|
88
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", row.path, `${row.id} references a missing Role`));
|
|
89
|
+
for (const row of facts.roleAssignmentVersions) {
|
|
90
|
+
if (!roleAssignments.has(row.roleAssignmentId) || !memberships.has(row.membershipId) || !roles.has(row.roleId)) {
|
|
91
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", row.path, `${row.id} references a missing RoleAssignment, Membership, or Role`));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
for (const policy of facts.governancePolicies)
|
|
95
|
+
if (!holons.has(policy.holonId))
|
|
96
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", `$.facts.governancePolicies.${policy.id}`, `${policy.id} references a missing Holon`));
|
|
97
|
+
for (const row of facts.governancePolicyVersions) {
|
|
98
|
+
const identity = governancePolicies.get(row.governancePolicyId);
|
|
99
|
+
if (identity === undefined || identity.holonId !== row.holonId || !holons.has(row.holonId))
|
|
100
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", row.path, `${row.id} references a missing or mismatched GovernancePolicy or Holon`));
|
|
101
|
+
}
|
|
102
|
+
const boundaries = new Set([effectiveDate, ...[...sequences.values()].map(({ effectiveDate: date }) => date)]);
|
|
103
|
+
const holonSubjectById = new Map(facts.holons.map(({ id, subjectId }) => [id, subjectId]));
|
|
104
|
+
for (const day of [...boundaries].sort()) {
|
|
105
|
+
const activeMemberVersions = latest(facts.memberVersions, "memberId", day);
|
|
106
|
+
const activeHolonVersions = latest(facts.holonVersions, "holonId", day);
|
|
107
|
+
const activeMemberships = latest(facts.membershipVersions, "membershipId", day);
|
|
108
|
+
const activeRoleVersions = latest(facts.roleVersions, "roleId", day);
|
|
109
|
+
const activeAssignments = latest(facts.roleAssignmentVersions, "roleAssignmentId", day);
|
|
110
|
+
const activePolicies = latest(facts.governancePolicyVersions, "governancePolicyId", day);
|
|
111
|
+
const activeMemberIds = new Set(activeMemberVersions.map(({ memberId }) => memberId));
|
|
112
|
+
const activeHolonIds = new Set(activeHolonVersions.map(({ holonId }) => holonId));
|
|
113
|
+
const activeRoleIds = new Set(activeRoleVersions.map(({ roleId }) => roleId));
|
|
114
|
+
const activeMembershipIds = new Set(activeMemberships.map(({ membershipId }) => membershipId));
|
|
115
|
+
const activeSubjectIds = new Set([
|
|
116
|
+
...facts.members.filter(({ id }) => activeMemberIds.has(id)).map(({ subjectId }) => subjectId),
|
|
117
|
+
...facts.holons.filter(({ id }) => activeHolonIds.has(id)).map(({ subjectId }) => subjectId),
|
|
118
|
+
]);
|
|
119
|
+
for (const membership of activeMemberships) {
|
|
120
|
+
if (!subjects.has(membership.subjectId) || !holons.has(membership.parentHolonId))
|
|
121
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", membership.path, `${membership.membershipId} has a missing subject or parent Holon`));
|
|
122
|
+
else if (!activeSubjectIds.has(membership.subjectId) || !activeHolonIds.has(membership.parentHolonId))
|
|
123
|
+
errors.push(diagnostic("DEPENDENT_FACT_ACTIVE", membership.path, `${membership.membershipId} remains effective while its subject or parent Holon is inactive on ${day}`));
|
|
124
|
+
}
|
|
125
|
+
for (const roleVersion of activeRoleVersions) {
|
|
126
|
+
const role = roles.get(roleVersion.roleId);
|
|
127
|
+
if (role !== undefined && !activeHolonIds.has(role.holonId))
|
|
128
|
+
errors.push(diagnostic("DEPENDENT_FACT_ACTIVE", roleVersion.path, `${roleVersion.roleId} remains effective while its Holon is inactive on ${day}`));
|
|
129
|
+
}
|
|
130
|
+
for (const policy of activePolicies)
|
|
131
|
+
if (!activeHolonIds.has(policy.holonId))
|
|
132
|
+
errors.push(diagnostic("DEPENDENT_FACT_ACTIVE", policy.path, `${policy.governancePolicyId} remains effective while its Holon is inactive on ${day}`));
|
|
133
|
+
const bySubject = new Map();
|
|
134
|
+
for (const membership of activeMemberships)
|
|
135
|
+
bySubject.set(membership.subjectId, [...(bySubject.get(membership.subjectId) ?? []), membership]);
|
|
136
|
+
for (const [subjectId, parents] of bySubject) {
|
|
137
|
+
const primary = parents.filter(({ mode }) => mode === "primary");
|
|
138
|
+
if (primary.length === 0)
|
|
139
|
+
errors.push(diagnostic("PRIMARY_MEMBERSHIP_REQUIRED", parents[0].path, `${subjectId} has parents but no primary Membership on ${day}`));
|
|
140
|
+
else if (primary.length > 1)
|
|
141
|
+
errors.push(diagnostic("MULTIPLE_PRIMARY_MEMBERSHIPS", primary[1].path, `${subjectId} has multiple primary Memberships on ${day}`));
|
|
142
|
+
}
|
|
143
|
+
const visit = (subjectId, subjectPath, edgePath) => {
|
|
144
|
+
for (const edge of bySubject.get(subjectId) ?? []) {
|
|
145
|
+
const parentSubjectId = holonSubjectById.get(edge.parentHolonId) ?? edge.parentHolonId;
|
|
146
|
+
const cycleStart = subjectPath.indexOf(parentSubjectId);
|
|
147
|
+
if (cycleStart >= 0)
|
|
148
|
+
return [...edgePath.slice(cycleStart), edge];
|
|
149
|
+
const cycle = visit(parentSubjectId, [...subjectPath, parentSubjectId], [...edgePath, edge]);
|
|
150
|
+
if (cycle !== undefined)
|
|
151
|
+
return cycle;
|
|
152
|
+
}
|
|
153
|
+
return undefined;
|
|
154
|
+
};
|
|
155
|
+
for (const subjectId of bySubject.keys()) {
|
|
156
|
+
const cycle = visit(subjectId, [subjectId], []);
|
|
157
|
+
if (cycle !== undefined) {
|
|
158
|
+
const changed = cycle.find(({ path }) => path.startsWith("$.changeSet") || path.startsWith("$.invocation") || path.startsWith("$.items"));
|
|
159
|
+
errors.push(diagnostic("HOLARCHY_CYCLE", changed?.path ?? cycle.at(-1).path, `Combined primary and affiliate graph contains a cycle through ${subjectId} on ${day}`));
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
for (const assignment of activeAssignments) {
|
|
164
|
+
const membership = activeMemberships.find(({ membershipId }) => membershipId === assignment.membershipId);
|
|
165
|
+
const role = roles.get(assignment.roleId);
|
|
166
|
+
if (!memberships.has(assignment.membershipId) || role === undefined)
|
|
167
|
+
errors.push(diagnostic("TEMPORAL_REFERENCE_NOT_FOUND", assignment.path, `${assignment.roleAssignmentId} has a missing Membership or Role`));
|
|
168
|
+
else if (!activeMembershipIds.has(assignment.membershipId) || !activeRoleIds.has(assignment.roleId))
|
|
169
|
+
errors.push(diagnostic("DEPENDENT_FACT_ACTIVE", assignment.path, `${assignment.roleAssignmentId} remains effective while its Membership or Role is inactive on ${day}`));
|
|
170
|
+
else if (membership?.parentHolonId !== role.holonId)
|
|
171
|
+
errors.push(diagnostic("ROLE_SCOPE_MISMATCH", assignment.path, `${assignment.roleAssignmentId} binds a Role outside its Membership Holon on ${day}`));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return errors.filter((item, index) => errors.findIndex((candidate) => candidate.code === item.code && candidate.path === item.path && candidate.message === item.message) === index);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAMvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA0B3D,SAAS,UAAU,CAAC,IAA6B,EAAE,IAAY,EAAE,OAAe,IAAqB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,CAAC,CAAC;AACrI,MAAM,KAAK,GAAG,CAAC,IAA0B,EAAE,KAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACnK,SAAS,MAAM,CAAiC,IAAkB,EAAE,GAAY,EAAE,GAAW;IAC3F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5G,MAAM,CAAC,CAAC,GAAG,EAAY,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,cAAc,CAAiC,IAAkB,EAAE,UAAmB,EAAE,MAAyB;IACxH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAyC,CAAC;QAC1D,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,UAAoB,CAAC,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC;eAC5H,OAAO,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;eACxH,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxH,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC,CAAC;YACvI,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,UAAoB,CAAC,CAAC,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,GAAG,GAAG,CAAC,IAAI,WAAW,EAAE,GAAG,GAAG,mDAAmD,CAAC,CAAC,CAAC;QAC7J,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAA2B,EAAE,aAAqB;IACxF,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;QAAE,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,yBAAyB,aAAa,EAAE,CAAC,CAAC,CAAC;IACzI,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACvD,cAAc,CAAC,KAAK,CAAC,kBAAkB,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IACjE,cAAc,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrD,cAAc,CAAC,KAAK,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACzE,cAAc,CAAC,KAAK,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC7E,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,CAAE,sBAA6C,CAAC,QAAQ,CAAE,GAA0C,CAAC,aAAa,CAAC,EAAE,CAAC;YACxH,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,GAAG,GAAG,CAAC,IAAI,gBAAgB,EAAE,8CAA8C,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACpK,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,kBAAkB,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,sBAAsB,EAAE,GAAG,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC5L,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,GAAG,GAAG,CAAC,IAAI,WAAW,EAAE,YAAY,GAAG,CAAC,QAAQ,uBAAuB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjK,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,wBAAwB,CAAC;QAAE,OAAO,MAAM,CAAC;IAEhF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO;QAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,mBAAmB,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,kDAAkD,CAAC,CAAC,CAAC;IAC1P,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM;QAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,WAAW,KAAK,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,kBAAkB,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,iDAAiD,CAAC,CAAC,CAAC;IAClP,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;QACpM,IAAI,KAAK,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,oBAAoB,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,yBAAyB,OAAO,CAAC,WAAW,WAAW,CAAC,CAAC,CAAC;IACnL,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,cAAc;QAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,8BAA8B,CAAC,CAAC,CAAC;IACnL,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,aAAa;QAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAC/K,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACzG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,iEAAiE,CAAC,CAAC,CAAC;QAChJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;QAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,iBAAiB,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAC5L,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY;QAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAC3K,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/G,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,2DAA2D,CAAC,CAAC,CAAC;QAC1I,CAAC;IACH,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB;QAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,8BAA8B,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAC9N,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,+DAA+D,CAAC,CAAC,CAAC;IAC1O,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/G,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3F,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAC3E,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrE,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC;QACzF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAClF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9E,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/F,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;YAC/B,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;YAC9F,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;SAC7F,CAAC,CAAC;QAEH,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,YAAY,wCAAwC,CAAC,CAAC,CAAC;iBAC1N,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,YAAY,uEAAuE,GAAG,EAAE,CAAC,CAAC,CAAC;QACnR,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,kBAAkB,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,qDAAqD,GAAG,EAAE,CAAC,CAAC,CAAC;QACnN,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,cAAc;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,kBAAkB,qDAAqD,GAAG,EAAE,CAAC,CAAC,CAAC;QAEpO,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsC,CAAC;QAChE,KAAK,MAAM,UAAU,IAAI,iBAAiB;YAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9I,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,GAAG,SAAS,6CAA6C,GAAG,EAAE,CAAC,CAAC,CAAC;iBAC9J,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,GAAG,SAAS,wCAAwC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpK,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAE,WAA8B,EAAE,QAA6C,EAAmD,EAAE;YAClK,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClD,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;gBACvF,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACxD,IAAI,UAAU,IAAI,CAAC;oBAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;gBAClE,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,GAAG,WAAW,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC7F,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,KAAK,CAAC;YACxC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1I,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,iEAAiE,SAAS,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;gBACvK,MAAM;YACR,CAAC;QACH,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAY,KAAK,UAAU,CAAC,YAAY,CAAC,CAAC;YAC1G,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,gBAAgB,mCAAmC,CAAC,CAAC,CAAC;iBAC5M,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,gBAAgB,kEAAkE,GAAG,EAAE,CAAC,CAAC,CAAC;iBACzQ,IAAI,UAAU,EAAE,aAAa,KAAK,IAAI,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,gBAAgB,iDAAiD,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7M,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC;AACvL,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "holarchy-core-logic",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"files": ["dist"],
|
|
8
|
+
"exports": { ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js", "default": "./dist/index.js" } },
|
|
9
|
+
"scripts": { "typecheck": "bun x tsc -p tsconfig.typecheck.json", "build": "bun x tsc -p tsconfig.json" },
|
|
10
|
+
"dependencies": { "holarchy-core-contract": "0.1.1", "depa-domain-protocol": "0.1.0" },
|
|
11
|
+
"devDependencies": { "typescript": "^5.9.3" }
|
|
12
|
+
}
|