@sentropic/h2a 0.16.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/org-parse.d.ts +37 -0
- package/dist/org-parse.d.ts.map +1 -0
- package/dist/org-parse.js +303 -0
- package/dist/org-parse.js.map +1 -0
- package/dist/org.d.ts +67 -0
- package/dist/org.d.ts.map +1 -1
- package/dist/org.js +91 -0
- package/dist/org.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -27,8 +27,10 @@ export { H2A_NHI_EXPORT_KEY_USE, H2A_NHI_SPIFFE_PATH_ENCODINGS, nhiSpiffeId, nhi
|
|
|
27
27
|
export type { H2ANhiTrustBundle, H2ANhiTrustBundleInput, H2ANhiTrustBundleKey } from "./nhi-export.js";
|
|
28
28
|
export { H2A_BLOCKAGE_BODY_KIND, H2A_BLOCKAGE_CLEARED_BODY_KIND, blockageEnvelope, isActiveBlockage } from "./blockage.js";
|
|
29
29
|
export type { H2ABlockage, H2ABlockageBody } from "./blockage.js";
|
|
30
|
-
export { H2A_ORG_PROPOSAL_BODY_KIND, H2A_ORG_RATIFIED_BODY_KIND, orgAssignmentEnvelope, validateOrgManifest } from "./org.js";
|
|
31
|
-
export type { H2AOrgAssignmentActor, H2AOrgAssignmentBody, H2AOrgAssignmentKind, H2AOrgCommEdge, H2AOrgInstance, H2AOrgManifest, H2AOrgValidationError, H2AOrgValidationResult } from "./org.js";
|
|
30
|
+
export { H2A_ORG_PROPOSAL_BODY_KIND, H2A_ORG_RATIFIED_BODY_KIND, diffOrgManifest, effectiveOrgInstances, orgAssignmentEnvelope, validateOrgManifest } from "./org.js";
|
|
31
|
+
export type { H2AOrgAssignmentActor, H2AOrgAssignmentBody, H2AOrgAssignmentKind, H2AOrgCommEdge, H2AOrgDiff, H2AOrgDiffEntry, H2AOrgInstance, H2AOrgManifest, H2AOrgMembershipGrant, H2AOrgRegisteredInstance, H2AOrgValidationError, H2AOrgValidationResult } from "./org.js";
|
|
32
|
+
export { H2A_ORG_MANIFEST_FILENAME, parseOrgManifest } from "./org-parse.js";
|
|
33
|
+
export type { H2AOrgParseResult, YamlValue } from "./org-parse.js";
|
|
32
34
|
export { H2A_SYSML_REF_KIND, isH2ASysmlRef, sysmlRefEquals, validateSysmlRef } from "./sysml.js";
|
|
33
35
|
export type { H2ASysmlRef, H2ASysmlRefValidation, H2ASysmlRefValidationError } from "./sysml.js";
|
|
34
36
|
export { assertValidNegotiationState } from "./negotiation.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,8 @@ export { H2A_HOST_BRIDGE_CLAUSES, H2A_HOST_BRIDGE_PROFILES, auditHostBridge, get
|
|
|
13
13
|
export { H2A_NHI_ATTESTATION_BODY_KIND, H2A_NHI_DEFAULT_LONG_LIVED_KEY_DAYS, H2A_NHI_RISK_IDS, auditNhiPosture, nhiAttestationEnvelope, nhiInventory, nhiKeyFingerprint } from "./nhi.js";
|
|
14
14
|
export { H2A_NHI_EXPORT_KEY_USE, H2A_NHI_SPIFFE_PATH_ENCODINGS, nhiSpiffeId, nhiTrustBundle } from "./nhi-export.js";
|
|
15
15
|
export { H2A_BLOCKAGE_BODY_KIND, H2A_BLOCKAGE_CLEARED_BODY_KIND, blockageEnvelope, isActiveBlockage } from "./blockage.js";
|
|
16
|
-
export { H2A_ORG_PROPOSAL_BODY_KIND, H2A_ORG_RATIFIED_BODY_KIND, orgAssignmentEnvelope, validateOrgManifest } from "./org.js";
|
|
16
|
+
export { H2A_ORG_PROPOSAL_BODY_KIND, H2A_ORG_RATIFIED_BODY_KIND, diffOrgManifest, effectiveOrgInstances, orgAssignmentEnvelope, validateOrgManifest } from "./org.js";
|
|
17
|
+
export { H2A_ORG_MANIFEST_FILENAME, parseOrgManifest } from "./org-parse.js";
|
|
17
18
|
export { H2A_SYSML_REF_KIND, isH2ASysmlRef, sysmlRefEquals, validateSysmlRef } from "./sysml.js";
|
|
18
19
|
export { assertValidNegotiationState } from "./negotiation.js";
|
|
19
20
|
export { canonicalize, computeHash } from "./canonical.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAWlB,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EACL,2CAA2C,EAC3C,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,oCAAoC,EACpC,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EACL,kCAAkC,EAClC,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAOvB,OAAO,EACL,uBAAuB,EACvB,8CAA8C,EAC9C,iCAAiC,EACjC,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EACL,sCAAsC,EACtC,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,uBAAuB,EACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAOrB,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,yCAAyC,EACzC,+BAA+B,EAC/B,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAatB,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAYzB,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,EACnC,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAqBlB,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,WAAW,EACX,cAAc,EACf,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EVO-7 slice 2 — pure, zero-dependency reader for the committed org manifest
|
|
3
|
+
* (`org.h2a.yaml`). h2a carries no runtime dependencies, so rather than pull in
|
|
4
|
+
* a YAML library we parse the small block-YAML subset the manifest needs:
|
|
5
|
+
* block mappings, block sequences (`- `), flow sequences (`[a, b]`), scalars
|
|
6
|
+
* (optionally single/double quoted), `#` comments and blank lines. A document
|
|
7
|
+
* that begins with `{` or `[` is parsed as JSON instead (a manifest may be
|
|
8
|
+
* committed as `org.h2a.json`). Anything outside the subset is rejected with a
|
|
9
|
+
* line-anchored error rather than silently mis-parsed.
|
|
10
|
+
*
|
|
11
|
+
* Parsing is pure (no filesystem): the CLI reads the file and hands the text
|
|
12
|
+
* in. Shape-coercion here only checks the manifest *types*; the h2a invariants
|
|
13
|
+
* (a PRINCIPAL exists, unique instances, canonical roles, …) stay in
|
|
14
|
+
* {@link validateOrgManifest}. Live provisioning is a later CLI slice.
|
|
15
|
+
*/
|
|
16
|
+
import type { H2AOrgManifest } from "./org.js";
|
|
17
|
+
/** Canonical filename of the committed org manifest. */
|
|
18
|
+
export declare const H2A_ORG_MANIFEST_FILENAME = "org.h2a.yaml";
|
|
19
|
+
/** A value produced by the block-YAML subset reader. */
|
|
20
|
+
export type YamlValue = string | YamlValue[] | {
|
|
21
|
+
[key: string]: YamlValue;
|
|
22
|
+
};
|
|
23
|
+
/** Outcome of {@link parseOrgManifest}: a typed manifest, or shape errors. */
|
|
24
|
+
export interface H2AOrgParseResult {
|
|
25
|
+
/** Present only when the document parsed AND matched the manifest shape. */
|
|
26
|
+
readonly manifest?: H2AOrgManifest;
|
|
27
|
+
/** Human-readable parse / shape errors (line- or path-anchored). Empty on success. */
|
|
28
|
+
readonly errors: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parse a committed org manifest (`org.h2a.yaml` block-YAML subset, or JSON)
|
|
32
|
+
* into a typed {@link H2AOrgManifest}. Total — never throws: a malformed
|
|
33
|
+
* document or a shape mismatch yields `{ errors }` with no `manifest`. Run the
|
|
34
|
+
* returned manifest through {@link validateOrgManifest} for the h2a invariants.
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseOrgManifest(source: string): H2AOrgParseResult;
|
|
37
|
+
//# sourceMappingURL=org-parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-parse.d.ts","sourceRoot":"","sources":["../src/org-parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAkC,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/E,wDAAwD;AACxD,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AAExD,wDAAwD;AACxD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE5E,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC3B;AAwRD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAQlE"}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EVO-7 slice 2 — pure, zero-dependency reader for the committed org manifest
|
|
3
|
+
* (`org.h2a.yaml`). h2a carries no runtime dependencies, so rather than pull in
|
|
4
|
+
* a YAML library we parse the small block-YAML subset the manifest needs:
|
|
5
|
+
* block mappings, block sequences (`- `), flow sequences (`[a, b]`), scalars
|
|
6
|
+
* (optionally single/double quoted), `#` comments and blank lines. A document
|
|
7
|
+
* that begins with `{` or `[` is parsed as JSON instead (a manifest may be
|
|
8
|
+
* committed as `org.h2a.json`). Anything outside the subset is rejected with a
|
|
9
|
+
* line-anchored error rather than silently mis-parsed.
|
|
10
|
+
*
|
|
11
|
+
* Parsing is pure (no filesystem): the CLI reads the file and hands the text
|
|
12
|
+
* in. Shape-coercion here only checks the manifest *types*; the h2a invariants
|
|
13
|
+
* (a PRINCIPAL exists, unique instances, canonical roles, …) stay in
|
|
14
|
+
* {@link validateOrgManifest}. Live provisioning is a later CLI slice.
|
|
15
|
+
*/
|
|
16
|
+
/** Canonical filename of the committed org manifest. */
|
|
17
|
+
export const H2A_ORG_MANIFEST_FILENAME = "org.h2a.yaml";
|
|
18
|
+
/** Internal: a parse failure carrying a line-anchored message. Never escapes the module. */
|
|
19
|
+
class OrgParseError extends Error {
|
|
20
|
+
}
|
|
21
|
+
/** `key:` or `key: value` — the only mapping-entry form the subset accepts. */
|
|
22
|
+
const ENTRY_RE = /^([A-Za-z0-9_.-]+):(?:\s+(.*))?$/;
|
|
23
|
+
function isEntry(text) {
|
|
24
|
+
return ENTRY_RE.test(text);
|
|
25
|
+
}
|
|
26
|
+
/** Drop a trailing `#` comment that is not inside quotes (and not mid-token). */
|
|
27
|
+
function stripComment(line) {
|
|
28
|
+
let inSingle = false;
|
|
29
|
+
let inDouble = false;
|
|
30
|
+
for (let i = 0; i < line.length; i++) {
|
|
31
|
+
const c = line[i];
|
|
32
|
+
if (c === "'" && !inDouble)
|
|
33
|
+
inSingle = !inSingle;
|
|
34
|
+
else if (c === '"' && !inSingle)
|
|
35
|
+
inDouble = !inDouble;
|
|
36
|
+
else if (c === "#" && !inSingle && !inDouble && (i === 0 || /\s/.test(line[i - 1]))) {
|
|
37
|
+
return line.slice(0, i);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return line;
|
|
41
|
+
}
|
|
42
|
+
/** Split a source string into non-blank, comment-free logical lines with indent. */
|
|
43
|
+
function tokenize(source) {
|
|
44
|
+
const out = [];
|
|
45
|
+
const raw = source.split(/\r?\n/);
|
|
46
|
+
for (let i = 0; i < raw.length; i++) {
|
|
47
|
+
const lead = raw[i].slice(0, raw[i].length - raw[i].trimStart().length);
|
|
48
|
+
if (lead.includes("\t")) {
|
|
49
|
+
throw new OrgParseError(`line ${i + 1}: tab indentation is not supported`);
|
|
50
|
+
}
|
|
51
|
+
const stripped = stripComment(raw[i]);
|
|
52
|
+
if (stripped.trim() === "")
|
|
53
|
+
continue;
|
|
54
|
+
const indent = stripped.length - stripped.trimStart().length;
|
|
55
|
+
out.push({ indent, text: stripped.trim(), n: i + 1 });
|
|
56
|
+
}
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
function parseScalar(text) {
|
|
60
|
+
const t = text.trim();
|
|
61
|
+
if (t.length >= 2 && t.startsWith('"') && t.endsWith('"')) {
|
|
62
|
+
try {
|
|
63
|
+
return JSON.parse(t);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return t.slice(1, -1);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (t.length >= 2 && t.startsWith("'") && t.endsWith("'")) {
|
|
70
|
+
return t.slice(1, -1).replace(/''/g, "'");
|
|
71
|
+
}
|
|
72
|
+
return t;
|
|
73
|
+
}
|
|
74
|
+
/** Split a flow-sequence body on top-level commas (ignoring quoted commas). */
|
|
75
|
+
function splitFlow(inner) {
|
|
76
|
+
const parts = [];
|
|
77
|
+
let cur = "";
|
|
78
|
+
let inSingle = false;
|
|
79
|
+
let inDouble = false;
|
|
80
|
+
for (const c of inner) {
|
|
81
|
+
if (c === "'" && !inDouble) {
|
|
82
|
+
inSingle = !inSingle;
|
|
83
|
+
cur += c;
|
|
84
|
+
}
|
|
85
|
+
else if (c === '"' && !inSingle) {
|
|
86
|
+
inDouble = !inDouble;
|
|
87
|
+
cur += c;
|
|
88
|
+
}
|
|
89
|
+
else if (c === "," && !inSingle && !inDouble) {
|
|
90
|
+
parts.push(cur);
|
|
91
|
+
cur = "";
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
cur += c;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
parts.push(cur);
|
|
98
|
+
return parts;
|
|
99
|
+
}
|
|
100
|
+
function parseScalarOrFlow(text) {
|
|
101
|
+
const t = text.trim();
|
|
102
|
+
if (t.startsWith("[") && t.endsWith("]")) {
|
|
103
|
+
const inner = t.slice(1, -1).trim();
|
|
104
|
+
if (inner === "")
|
|
105
|
+
return [];
|
|
106
|
+
return splitFlow(inner).map((s) => parseScalar(s));
|
|
107
|
+
}
|
|
108
|
+
return parseScalar(t);
|
|
109
|
+
}
|
|
110
|
+
/** Parse the block-YAML subset (or JSON) into a generic value. Throws OrgParseError. */
|
|
111
|
+
function parseDocument(source) {
|
|
112
|
+
const trimmed = source.trim();
|
|
113
|
+
if (trimmed === "")
|
|
114
|
+
return {};
|
|
115
|
+
if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
|
|
116
|
+
try {
|
|
117
|
+
return JSON.parse(trimmed);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
throw new OrgParseError(`invalid JSON: ${error.message}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const lines = tokenize(source);
|
|
124
|
+
if (lines.length === 0)
|
|
125
|
+
return {};
|
|
126
|
+
let idx = 0;
|
|
127
|
+
function applyEntry(map, key, valueText, ownerIndent) {
|
|
128
|
+
if (valueText !== undefined && valueText !== "") {
|
|
129
|
+
map[key] = parseScalarOrFlow(valueText);
|
|
130
|
+
}
|
|
131
|
+
else if (idx < lines.length && lines[idx].indent > ownerIndent) {
|
|
132
|
+
map[key] = parseNode(lines[idx].indent);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
map[key] = "";
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function parseMap(indent, seed) {
|
|
139
|
+
const map = {};
|
|
140
|
+
if (seed)
|
|
141
|
+
applyEntry(map, seed.key, seed.valueText, indent);
|
|
142
|
+
while (idx < lines.length && lines[idx].indent === indent && isEntry(lines[idx].text)) {
|
|
143
|
+
const m = ENTRY_RE.exec(lines[idx].text);
|
|
144
|
+
idx++;
|
|
145
|
+
if (m)
|
|
146
|
+
applyEntry(map, m[1], m[2], indent);
|
|
147
|
+
}
|
|
148
|
+
return map;
|
|
149
|
+
}
|
|
150
|
+
function parseSeq(indent) {
|
|
151
|
+
const arr = [];
|
|
152
|
+
while (idx < lines.length &&
|
|
153
|
+
lines[idx].indent === indent &&
|
|
154
|
+
(lines[idx].text === "-" || lines[idx].text.startsWith("- "))) {
|
|
155
|
+
const line = lines[idx];
|
|
156
|
+
const after = line.text === "-" ? "" : line.text.slice(2).trim();
|
|
157
|
+
idx++;
|
|
158
|
+
if (after === "") {
|
|
159
|
+
if (idx < lines.length && lines[idx].indent > indent)
|
|
160
|
+
arr.push(parseNode(lines[idx].indent));
|
|
161
|
+
else
|
|
162
|
+
arr.push("");
|
|
163
|
+
}
|
|
164
|
+
else if (isEntry(after)) {
|
|
165
|
+
const m = ENTRY_RE.exec(after);
|
|
166
|
+
arr.push(m ? parseMap(indent + 2, { key: m[1], valueText: m[2] }) : after);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
arr.push(parseScalarOrFlow(after));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return arr;
|
|
173
|
+
}
|
|
174
|
+
function parseNode(indent) {
|
|
175
|
+
const first = lines[idx];
|
|
176
|
+
if (first.text === "-" || first.text.startsWith("- "))
|
|
177
|
+
return parseSeq(indent);
|
|
178
|
+
if (isEntry(first.text))
|
|
179
|
+
return parseMap(indent, undefined);
|
|
180
|
+
throw new OrgParseError(`line ${first.n}: expected a mapping or a sequence`);
|
|
181
|
+
}
|
|
182
|
+
const value = parseNode(lines[0].indent);
|
|
183
|
+
if (idx < lines.length) {
|
|
184
|
+
throw new OrgParseError(`line ${lines[idx].n}: unexpected indentation`);
|
|
185
|
+
}
|
|
186
|
+
return value;
|
|
187
|
+
}
|
|
188
|
+
function isRecord(v) {
|
|
189
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
190
|
+
}
|
|
191
|
+
/** Coerce a `scopes`/`mandateRights`-style field into a string list (a bare scalar → one-element). */
|
|
192
|
+
function coerceStringList(v, path, errors) {
|
|
193
|
+
if (v === undefined)
|
|
194
|
+
return undefined;
|
|
195
|
+
if (typeof v === "string")
|
|
196
|
+
return v === "" ? [] : [v];
|
|
197
|
+
if (Array.isArray(v)) {
|
|
198
|
+
const out = [];
|
|
199
|
+
v.forEach((el, i) => {
|
|
200
|
+
if (typeof el === "string")
|
|
201
|
+
out.push(el);
|
|
202
|
+
else
|
|
203
|
+
errors.push(`${path}[${i}]: expected a string`);
|
|
204
|
+
});
|
|
205
|
+
return out;
|
|
206
|
+
}
|
|
207
|
+
errors.push(`${path}: expected a sequence of strings`);
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
function coerceManifest(value) {
|
|
211
|
+
const errors = [];
|
|
212
|
+
if (!isRecord(value)) {
|
|
213
|
+
return { errors: ["document: expected a mapping at the top level"] };
|
|
214
|
+
}
|
|
215
|
+
const scope = value.scope;
|
|
216
|
+
if (typeof scope !== "string" || scope === "") {
|
|
217
|
+
errors.push("scope: a non-empty string is required");
|
|
218
|
+
}
|
|
219
|
+
let version;
|
|
220
|
+
if (value.version !== undefined) {
|
|
221
|
+
if (typeof value.version === "string")
|
|
222
|
+
version = value.version;
|
|
223
|
+
else
|
|
224
|
+
errors.push("version: expected a string");
|
|
225
|
+
}
|
|
226
|
+
const instances = [];
|
|
227
|
+
if (!Array.isArray(value.instances)) {
|
|
228
|
+
errors.push("instances: expected a sequence");
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
value.instances.forEach((raw, i) => {
|
|
232
|
+
if (!isRecord(raw)) {
|
|
233
|
+
errors.push(`instances[${i}]: expected a mapping`);
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const id = raw.instance;
|
|
237
|
+
const role = raw.role;
|
|
238
|
+
if (typeof id !== "string")
|
|
239
|
+
errors.push(`instances[${i}].instance: expected a string`);
|
|
240
|
+
if (typeof role !== "string")
|
|
241
|
+
errors.push(`instances[${i}].role: expected a string`);
|
|
242
|
+
const scopes = coerceStringList(raw.scopes, `instances[${i}].scopes`, errors) ?? [];
|
|
243
|
+
const rights = coerceStringList(raw.mandateRights, `instances[${i}].mandateRights`, errors);
|
|
244
|
+
if (typeof id === "string" && typeof role === "string") {
|
|
245
|
+
instances.push({
|
|
246
|
+
instance: id,
|
|
247
|
+
role: role,
|
|
248
|
+
scopes,
|
|
249
|
+
...(rights ? { mandateRights: rights } : {})
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
let commEdges;
|
|
255
|
+
if (value.commEdges !== undefined) {
|
|
256
|
+
if (!Array.isArray(value.commEdges)) {
|
|
257
|
+
errors.push("commEdges: expected a sequence");
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
commEdges = [];
|
|
261
|
+
value.commEdges.forEach((raw, i) => {
|
|
262
|
+
if (!isRecord(raw)) {
|
|
263
|
+
errors.push(`commEdges[${i}]: expected a mapping`);
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
const from = raw.from;
|
|
267
|
+
const to = raw.to;
|
|
268
|
+
if (typeof from !== "string")
|
|
269
|
+
errors.push(`commEdges[${i}].from: expected a string`);
|
|
270
|
+
if (typeof to !== "string")
|
|
271
|
+
errors.push(`commEdges[${i}].to: expected a string`);
|
|
272
|
+
if (typeof from === "string" && typeof to === "string")
|
|
273
|
+
commEdges.push({ from, to });
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
if (errors.length > 0)
|
|
278
|
+
return { errors };
|
|
279
|
+
const manifest = {
|
|
280
|
+
scope: scope,
|
|
281
|
+
...(version !== undefined ? { version } : {}),
|
|
282
|
+
instances,
|
|
283
|
+
...(commEdges !== undefined ? { commEdges } : {})
|
|
284
|
+
};
|
|
285
|
+
return { manifest, errors: [] };
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Parse a committed org manifest (`org.h2a.yaml` block-YAML subset, or JSON)
|
|
289
|
+
* into a typed {@link H2AOrgManifest}. Total — never throws: a malformed
|
|
290
|
+
* document or a shape mismatch yields `{ errors }` with no `manifest`. Run the
|
|
291
|
+
* returned manifest through {@link validateOrgManifest} for the h2a invariants.
|
|
292
|
+
*/
|
|
293
|
+
export function parseOrgManifest(source) {
|
|
294
|
+
let value;
|
|
295
|
+
try {
|
|
296
|
+
value = parseDocument(source);
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
return { errors: [error.message] };
|
|
300
|
+
}
|
|
301
|
+
return coerceManifest(value);
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=org-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-parse.js","sourceRoot":"","sources":["../src/org-parse.ts"],"names":[],"mappings":"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"}
|
package/dist/org.d.ts
CHANGED
|
@@ -101,4 +101,71 @@ export declare function orgAssignmentEnvelope(input: {
|
|
|
101
101
|
readonly kind?: H2AOrgAssignmentKind;
|
|
102
102
|
readonly createdAt?: string;
|
|
103
103
|
}): H2AEnvelope<H2AOrgAssignmentBody>;
|
|
104
|
+
/** A live registry entry, reduced to the fields the org diff reconciles against. */
|
|
105
|
+
export interface H2AOrgRegisteredInstance {
|
|
106
|
+
readonly instance: string;
|
|
107
|
+
readonly roles: readonly string[];
|
|
108
|
+
readonly scopes: readonly string[];
|
|
109
|
+
}
|
|
110
|
+
/** One reconciliation finding between the declared manifest and the live registry. */
|
|
111
|
+
export interface H2AOrgDiffEntry {
|
|
112
|
+
readonly instance: string;
|
|
113
|
+
readonly declaredRole?: string;
|
|
114
|
+
readonly registeredRoles?: readonly string[];
|
|
115
|
+
readonly declaredScopes?: readonly string[];
|
|
116
|
+
readonly registeredScopes?: readonly string[];
|
|
117
|
+
/** Declared scopes the registered instance is not (yet) a member of. */
|
|
118
|
+
readonly missingScopes?: readonly string[];
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Drift between a declared org manifest and the live registry. `inSync` is true
|
|
122
|
+
* iff all four finding buckets are empty (the live estate matches the declared
|
|
123
|
+
* org exactly). Read-only — describing drift, never reconciling it.
|
|
124
|
+
*/
|
|
125
|
+
export interface H2AOrgDiff {
|
|
126
|
+
readonly scope: string;
|
|
127
|
+
/** Declared instances present and fully consistent (role + scopes). */
|
|
128
|
+
readonly matched: string[];
|
|
129
|
+
/** Declared but not registered. */
|
|
130
|
+
readonly missing: H2AOrgDiffEntry[];
|
|
131
|
+
/** Registered but not declared. */
|
|
132
|
+
readonly undeclared: H2AOrgDiffEntry[];
|
|
133
|
+
/** Registered, but its declared role is not among its registered roles. */
|
|
134
|
+
readonly roleMismatch: H2AOrgDiffEntry[];
|
|
135
|
+
/** Registered, but missing one or more declared scopes. */
|
|
136
|
+
readonly scopeGaps: H2AOrgDiffEntry[];
|
|
137
|
+
readonly inSync: boolean;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Reconcile a declared org manifest against the live registry instances. Pure +
|
|
141
|
+
* total: the CLI gathers `listInstances()` and hands the reduced rows in. This
|
|
142
|
+
* is the read-only precursor to provisioning — it reports what provisioning
|
|
143
|
+
* *would* change, without changing anything.
|
|
144
|
+
*/
|
|
145
|
+
export declare function diffOrgManifest(manifest: H2AOrgManifest, registered: readonly H2AOrgRegisteredInstance[]): H2AOrgDiff;
|
|
146
|
+
/**
|
|
147
|
+
* An append-only org-membership grant (provisioning, DEC-109). Mirrors the
|
|
148
|
+
* DEC-078 keyring: role/scope membership is layered over a registration via a
|
|
149
|
+
* separate event log (`registry/org-membership.jsonl`) — never a registration
|
|
150
|
+
* rewrite — so provisioning a ratified org is additive and idempotent. A grant
|
|
151
|
+
* only ever *augments* an already-registered (keyed) instance; it never conjures
|
|
152
|
+
* an identity (reconcile keyed-only — the resolved provisioning fork).
|
|
153
|
+
*/
|
|
154
|
+
export interface H2AOrgMembershipGrant {
|
|
155
|
+
readonly instance: string;
|
|
156
|
+
readonly role: string;
|
|
157
|
+
readonly scope: string;
|
|
158
|
+
/** The actor that granted it (e.g. the ratifying PRINCIPAL). */
|
|
159
|
+
readonly by?: string;
|
|
160
|
+
readonly at: string;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The *effective* registry view: each registered instance's roles + scopes,
|
|
164
|
+
* unioned across all its registration rows AND any membership grants. Grants to
|
|
165
|
+
* an unregistered instance are ignored (keyed-only). Pure — the CLI gathers
|
|
166
|
+
* `listInstances()` + `listOrgMembership()` and hands them in; `diffOrgManifest`
|
|
167
|
+
* then reconciles the manifest against this view, so a provisioned org reads
|
|
168
|
+
* back in-sync without ever rewriting a registration.
|
|
169
|
+
*/
|
|
170
|
+
export declare function effectiveOrgInstances(registrations: readonly H2AOrgRegisteredInstance[], grants: readonly H2AOrgMembershipGrant[]): H2AOrgRegisteredInstance[];
|
|
104
171
|
//# sourceMappingURL=org.d.ts.map
|
package/dist/org.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../src/org.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,EAAa,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvE,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAClD,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACpD;AAED,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,oBAAoB,GACpB,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC;CAC1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,sBAAsB,CA0CpF;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAC5B,OAAO,0BAA0B,GACjC,OAAO,0BAA0B,CAAC;AAEtC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAkBpC"}
|
|
1
|
+
{"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../src/org.ts"],"names":[],"mappings":"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"}
|
package/dist/org.js
CHANGED
|
@@ -111,4 +111,95 @@ export function orgAssignmentEnvelope(input) {
|
|
|
111
111
|
createdAt
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Reconcile a declared org manifest against the live registry instances. Pure +
|
|
116
|
+
* total: the CLI gathers `listInstances()` and hands the reduced rows in. This
|
|
117
|
+
* is the read-only precursor to provisioning — it reports what provisioning
|
|
118
|
+
* *would* change, without changing anything.
|
|
119
|
+
*/
|
|
120
|
+
export function diffOrgManifest(manifest, registered) {
|
|
121
|
+
const byInstance = new Map();
|
|
122
|
+
for (const r of registered)
|
|
123
|
+
byInstance.set(r.instance, r);
|
|
124
|
+
const matched = [];
|
|
125
|
+
const missing = [];
|
|
126
|
+
const roleMismatch = [];
|
|
127
|
+
const scopeGaps = [];
|
|
128
|
+
const declared = new Set();
|
|
129
|
+
for (const inst of manifest.instances) {
|
|
130
|
+
declared.add(inst.instance);
|
|
131
|
+
const reg = byInstance.get(inst.instance);
|
|
132
|
+
if (!reg) {
|
|
133
|
+
missing.push({
|
|
134
|
+
instance: inst.instance,
|
|
135
|
+
declaredRole: inst.role,
|
|
136
|
+
declaredScopes: inst.scopes
|
|
137
|
+
});
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
let consistent = true;
|
|
141
|
+
if (!reg.roles.includes(inst.role)) {
|
|
142
|
+
consistent = false;
|
|
143
|
+
roleMismatch.push({
|
|
144
|
+
instance: inst.instance,
|
|
145
|
+
declaredRole: inst.role,
|
|
146
|
+
registeredRoles: reg.roles
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
const missingScopes = inst.scopes.filter((s) => !reg.scopes.includes(s));
|
|
150
|
+
if (missingScopes.length > 0) {
|
|
151
|
+
consistent = false;
|
|
152
|
+
scopeGaps.push({
|
|
153
|
+
instance: inst.instance,
|
|
154
|
+
declaredScopes: inst.scopes,
|
|
155
|
+
registeredScopes: reg.scopes,
|
|
156
|
+
missingScopes
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
if (consistent)
|
|
160
|
+
matched.push(inst.instance);
|
|
161
|
+
}
|
|
162
|
+
const undeclared = [];
|
|
163
|
+
for (const reg of registered) {
|
|
164
|
+
if (!declared.has(reg.instance)) {
|
|
165
|
+
undeclared.push({ instance: reg.instance, registeredRoles: reg.roles, registeredScopes: reg.scopes });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
const inSync = missing.length === 0 &&
|
|
169
|
+
roleMismatch.length === 0 &&
|
|
170
|
+
scopeGaps.length === 0 &&
|
|
171
|
+
undeclared.length === 0;
|
|
172
|
+
return { scope: manifest.scope, matched, missing, undeclared, roleMismatch, scopeGaps, inSync };
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The *effective* registry view: each registered instance's roles + scopes,
|
|
176
|
+
* unioned across all its registration rows AND any membership grants. Grants to
|
|
177
|
+
* an unregistered instance are ignored (keyed-only). Pure — the CLI gathers
|
|
178
|
+
* `listInstances()` + `listOrgMembership()` and hands them in; `diffOrgManifest`
|
|
179
|
+
* then reconciles the manifest against this view, so a provisioned org reads
|
|
180
|
+
* back in-sync without ever rewriting a registration.
|
|
181
|
+
*/
|
|
182
|
+
export function effectiveOrgInstances(registrations, grants) {
|
|
183
|
+
const acc = new Map();
|
|
184
|
+
for (const r of registrations) {
|
|
185
|
+
const entry = acc.get(r.instance) ?? { roles: new Set(), scopes: new Set() };
|
|
186
|
+
for (const role of r.roles)
|
|
187
|
+
entry.roles.add(role);
|
|
188
|
+
for (const scope of r.scopes)
|
|
189
|
+
entry.scopes.add(scope);
|
|
190
|
+
acc.set(r.instance, entry);
|
|
191
|
+
}
|
|
192
|
+
for (const g of grants) {
|
|
193
|
+
const entry = acc.get(g.instance);
|
|
194
|
+
if (!entry)
|
|
195
|
+
continue; // keyed-only: never materialize an unregistered instance
|
|
196
|
+
entry.roles.add(g.role);
|
|
197
|
+
entry.scopes.add(g.scope);
|
|
198
|
+
}
|
|
199
|
+
return [...acc.entries()].map(([instance, { roles, scopes }]) => ({
|
|
200
|
+
instance,
|
|
201
|
+
roles: [...roles],
|
|
202
|
+
scopes: [...scopes]
|
|
203
|
+
}));
|
|
204
|
+
}
|
|
114
205
|
//# sourceMappingURL=org.js.map
|
package/dist/org.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org.js","sourceRoot":"","sources":["../src/org.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"org.js","sourceRoot":"","sources":["../src/org.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAkC,MAAM,YAAY,CAAC;AA6CvE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAwB;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,SAAS,CAAC,CAAC;IAE9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrC,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC;AAiBzD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAKrC;IACC,MAAM,IAAI,GAAyB;QACjC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,0BAA0B;QAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9D,MAAM,EAAE,GAAG,OAAO,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5F,OAAO,cAAc,CAAuB;QAC1C,EAAE;QACF,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;YAC9B,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;SACzB;QACD,IAAI;QACJ,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAwCD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAwB,EACxB,UAA+C;IAE/C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,YAAY,GAAsB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACtC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,IAAI;gBACvB,cAAc,EAAE,IAAI,CAAC,MAAM;aAC5B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,UAAU,GAAG,KAAK,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,IAAI;gBACvB,eAAe,EAAE,GAAG,CAAC,KAAK;aAC3B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,UAAU,GAAG,KAAK,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,gBAAgB,EAAE,GAAG,CAAC,MAAM;gBAC5B,aAAa;aACd,CAAC,CAAC;QACL,CAAC;QACD,IAAI,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,KAAK,CAAC;QACpB,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,SAAS,CAAC,MAAM,KAAK,CAAC;QACtB,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;IAE1B,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAClG,CAAC;AAmBD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAAkD,EAClD,MAAwC;IAExC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuD,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,EAAU,EAAE,MAAM,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;QAC7F,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,SAAS,CAAC,yDAAyD;QAC/E,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,QAAQ;QACR,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;QACjB,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;KACpB,CAAC,CAAC,CAAC;AACN,CAAC"}
|