instar 1.3.527 → 1.3.528
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/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +88 -1
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +14 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/CoherenceJournal.d.ts +1 -1
- package/dist/core/CoherenceJournal.d.ts.map +1 -1
- package/dist/core/CoherenceJournal.js +13 -2
- package/dist/core/CoherenceJournal.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +22 -1
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/RelationshipManager.d.ts +61 -1
- package/dist/core/RelationshipManager.d.ts.map +1 -1
- package/dist/core/RelationshipManager.js +86 -2
- package/dist/core/RelationshipManager.js.map +1 -1
- package/dist/core/RelationshipsReplicatedStore.d.ts +298 -0
- package/dist/core/RelationshipsReplicatedStore.d.ts.map +1 -0
- package/dist/core/RelationshipsReplicatedStore.js +660 -0
- package/dist/core/RelationshipsReplicatedStore.js.map +1 -0
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +5 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +2 -1
- package/dist/scaffold/templates.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +19 -19
- package/src/scaffold/templates.ts +2 -1
- package/upgrades/1.3.528.md +34 -0
- package/upgrades/side-effects/ws23-relationships.md +150 -0
|
@@ -12,6 +12,42 @@
|
|
|
12
12
|
* - Context injection before any interaction with a known person
|
|
13
13
|
*/
|
|
14
14
|
import type { RelationshipRecord, RelationshipManagerConfig, InteractionSummary, UserChannel } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* WS2.3 cross-machine replication seam (additive, dark by default). The manager
|
|
17
|
+
* routes EVERY persistence mutation through its single `save()` funnel and EVERY
|
|
18
|
+
* deletion through `delete()`/`mergeRelationships()`; when a replication emitter is
|
|
19
|
+
* injected, it emits a disclosure-minimized `relationship-record` envelope (`put` on
|
|
20
|
+
* save, `delete` tombstone on delete) so a relationship learned on one machine
|
|
21
|
+
* replicates to the others. PURE-INJECTED so the manager stays testable: the real
|
|
22
|
+
* wiring (server.ts) supplies an emitter gated behind
|
|
23
|
+
* `multiMachine.stateSync.relationships.enabled` (default false ⇒ NOT injected ⇒ a
|
|
24
|
+
* strict no-op, byte-identical single-machine behavior). The emitter NEVER throws
|
|
25
|
+
* out of a mutation — a replication failure must never break a local write (the
|
|
26
|
+
* emitter swallows + counts internally), so the manager calls it best-effort.
|
|
27
|
+
*/
|
|
28
|
+
export interface RelationshipReplicationEmitter {
|
|
29
|
+
/** Emit a `put` for a persisted record (called from the save funnel). */
|
|
30
|
+
emitPut(record: RelationshipRecord): void;
|
|
31
|
+
/** Emit a `delete` tombstone for a removed person, keyed on their channel set
|
|
32
|
+
* (called from delete + the merged-record half of mergeRelationships). */
|
|
33
|
+
emitDelete(channels: UserChannel[], deletedAt: string): void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* WS2.3 union-read seam (REQ-M7). The peer-read surface — "what do my OTHER machines
|
|
37
|
+
* know about this person" — resolves THROUGH the bypass-proof ReplicatedStoreReader
|
|
38
|
+
* union (server.ts injects this), so no caller reads a raw replica around the
|
|
39
|
+
* no-clobber rule. It returns the FOREIGN, READ-ONLY rendered context blocks (each
|
|
40
|
+
* already wrapped in the `<replicated-untrusted-data>` envelope). It is DISTINCT from
|
|
41
|
+
* the local-authoritative resolveByChannel/get/getContextForPerson — identity
|
|
42
|
+
* RESOLUTION of an inbound principal is LOCAL-ONLY (REQ-M14) and must NEVER read a
|
|
43
|
+
* foreign binding. Absent ⇒ no peer view (the single-machine no-op).
|
|
44
|
+
*/
|
|
45
|
+
export interface RelationshipPeerReadSeam {
|
|
46
|
+
/** Render the FOREIGN replicated context for the person reached by these channels
|
|
47
|
+
* (the union of every peer's replica for the matching identity surface), or [] when
|
|
48
|
+
* dark / no peer knows them. The result is quoted untrusted data, never authoritative. */
|
|
49
|
+
peerContextForChannels(channels: UserChannel[]): string[];
|
|
50
|
+
}
|
|
15
51
|
export declare class RelationshipManager {
|
|
16
52
|
private relationships;
|
|
17
53
|
/** Maps "channel_type:identifier" -> relationship ID for cross-platform resolution */
|
|
@@ -19,7 +55,31 @@ export declare class RelationshipManager {
|
|
|
19
55
|
/** Maps normalized name -> set of relationship IDs for fuzzy name resolution */
|
|
20
56
|
private nameIndex;
|
|
21
57
|
private config;
|
|
22
|
-
|
|
58
|
+
/** WS2.3 replication emitter (injected, dark by default). Absent ⇒ strict no-op. */
|
|
59
|
+
private replication?;
|
|
60
|
+
/** WS2.3 union-read seam (injected, dark by default). Absent ⇒ no peer view. */
|
|
61
|
+
private peerRead?;
|
|
62
|
+
constructor(config: RelationshipManagerConfig, replication?: RelationshipReplicationEmitter);
|
|
63
|
+
/**
|
|
64
|
+
* Late-bind the WS2.3 replication emitter (server.ts constructs the union
|
|
65
|
+
* reader/journal/clock AFTER the manager). Idempotent; passing undefined detaches
|
|
66
|
+
* (back to single-machine no-op). The emit funnel checks `this.replication` per
|
|
67
|
+
* mutation, so attaching mid-life takes effect on the next save/delete.
|
|
68
|
+
*/
|
|
69
|
+
setReplicationEmitter(emitter: RelationshipReplicationEmitter | undefined): void;
|
|
70
|
+
/** Late-bind the WS2.3 union-read seam (server.ts builds the union reader after the
|
|
71
|
+
* manager). Passing undefined detaches (no peer view). */
|
|
72
|
+
setPeerReadSeam(seam: RelationshipPeerReadSeam | undefined): void;
|
|
73
|
+
/**
|
|
74
|
+
* WS2.3 (REQ-M7/M14) — "what do my OTHER machines know about this person?" The
|
|
75
|
+
* peer-read surface, READ-ONLY + neutralized: it returns FOREIGN replicated context
|
|
76
|
+
* blocks (each already wrapped in `<replicated-untrusted-data>` and fully sanitized),
|
|
77
|
+
* tagged by origin, resolved THROUGH the bypass-proof union reader. It is a SEPARATE
|
|
78
|
+
* method from resolveByChannel/getContextForPerson — identity RESOLUTION of an
|
|
79
|
+
* inbound principal stays LOCAL-ONLY (REQ-M14): this never makes a foreign record the
|
|
80
|
+
* answer to "who is this". Returns [] when dark / no peer knows them.
|
|
81
|
+
*/
|
|
82
|
+
peerContextForChannels(channels: UserChannel[]): string[];
|
|
23
83
|
/** Normalize a name for fuzzy matching: lowercase, trim, collapse whitespace, strip leading @ */
|
|
24
84
|
private normalizeName;
|
|
25
85
|
/** Add a record to the name index */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipManager.d.ts","sourceRoot":"","sources":["../../src/core/RelationshipManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAEzB,kBAAkB,EAClB,WAAW,EACZ,MAAM,YAAY,CAAC;AAQpB,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAA8C;IACnE,sFAAsF;IACtF,OAAO,CAAC,YAAY,CAAkC;IACtD,gFAAgF;IAChF,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,MAAM,CAA4B;
|
|
1
|
+
{"version":3,"file":"RelationshipManager.d.ts","sourceRoot":"","sources":["../../src/core/RelationshipManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAEzB,kBAAkB,EAClB,WAAW,EACZ,MAAM,YAAY,CAAC;AAQpB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,8BAA8B;IAC7C,yEAAyE;IACzE,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C;+EAC2E;IAC3E,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9D;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,wBAAwB;IACvC;;+FAE2F;IAC3F,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;CAC3D;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAA8C;IACnE,sFAAsF;IACtF,OAAO,CAAC,YAAY,CAAkC;IACtD,gFAAgF;IAChF,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,MAAM,CAA4B;IAC1C,oFAAoF;IACpF,OAAO,CAAC,WAAW,CAAC,CAAiC;IACrD,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,CAA2B;gBAEhC,MAAM,EAAE,yBAAyB,EAAE,WAAW,CAAC,EAAE,8BAA8B;IAS3F;;;;;OAKG;IACH,qBAAqB,CAAC,OAAO,EAAE,8BAA8B,GAAG,SAAS,GAAG,IAAI;IAIhF;+DAC2D;IAC3D,eAAe,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI;IAIjE;;;;;;;;OAQG;IACH,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE;IAIzD,iGAAiG;IACjG,OAAO,CAAC,aAAa;IAIrB,qCAAqC;IACrC,OAAO,CAAC,SAAS;IAWjB,0CAA0C;IAC1C,OAAO,CAAC,WAAW;IASnB,6EAA6E;IAC7E,OAAO,CAAC,UAAU;IAQlB;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,kBAAkB;IA2CpE;;;;;;;;OAQG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqDxF;;;;;;OAMG;IACG,mBAAmB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAoBlH;;;OAGG;YACW,gBAAgB;IAsD9B;;OAEG;YACW,wBAAwB;IAmCtC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,kBAAkB,GAAG,IAAI;IAMjE;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAsCjD;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAI1C;;OAEG;IACH,MAAM,CAAC,MAAM,GAAE,cAAc,GAAG,QAAQ,GAAG,MAAuB,GAAG,kBAAkB,EAAE;IAYzF;;;;;OAKG;IACH,cAAc,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA0D1E;;OAEG;IACH,iBAAiB,CACf,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,kBAAkB,GAC9B,IAAI;IAkCP;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAOtD;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAyBnD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAoFzD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAqC3B;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOlD;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAYzC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAS5C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA4D9C;;OAEG;IACH,qBAAqB,CAAC,aAAa,GAAE,MAAW,GAAG,kBAAkB,EAAE;IAYvE,OAAO,CAAC,OAAO;IAyBf,OAAO,CAAC,IAAI;IA6BZ,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,qBAAqB;CA6B9B"}
|
|
@@ -26,13 +26,44 @@ export class RelationshipManager {
|
|
|
26
26
|
/** Maps normalized name -> set of relationship IDs for fuzzy name resolution */
|
|
27
27
|
nameIndex = new Map();
|
|
28
28
|
config;
|
|
29
|
-
|
|
29
|
+
/** WS2.3 replication emitter (injected, dark by default). Absent ⇒ strict no-op. */
|
|
30
|
+
replication;
|
|
31
|
+
/** WS2.3 union-read seam (injected, dark by default). Absent ⇒ no peer view. */
|
|
32
|
+
peerRead;
|
|
33
|
+
constructor(config, replication) {
|
|
30
34
|
this.config = config;
|
|
35
|
+
this.replication = replication;
|
|
31
36
|
if (!existsSync(config.relationshipsDir)) {
|
|
32
37
|
mkdirSync(config.relationshipsDir, { recursive: true });
|
|
33
38
|
}
|
|
34
39
|
this.loadAll();
|
|
35
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Late-bind the WS2.3 replication emitter (server.ts constructs the union
|
|
43
|
+
* reader/journal/clock AFTER the manager). Idempotent; passing undefined detaches
|
|
44
|
+
* (back to single-machine no-op). The emit funnel checks `this.replication` per
|
|
45
|
+
* mutation, so attaching mid-life takes effect on the next save/delete.
|
|
46
|
+
*/
|
|
47
|
+
setReplicationEmitter(emitter) {
|
|
48
|
+
this.replication = emitter;
|
|
49
|
+
}
|
|
50
|
+
/** Late-bind the WS2.3 union-read seam (server.ts builds the union reader after the
|
|
51
|
+
* manager). Passing undefined detaches (no peer view). */
|
|
52
|
+
setPeerReadSeam(seam) {
|
|
53
|
+
this.peerRead = seam;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* WS2.3 (REQ-M7/M14) — "what do my OTHER machines know about this person?" The
|
|
57
|
+
* peer-read surface, READ-ONLY + neutralized: it returns FOREIGN replicated context
|
|
58
|
+
* blocks (each already wrapped in `<replicated-untrusted-data>` and fully sanitized),
|
|
59
|
+
* tagged by origin, resolved THROUGH the bypass-proof union reader. It is a SEPARATE
|
|
60
|
+
* method from resolveByChannel/getContextForPerson — identity RESOLUTION of an
|
|
61
|
+
* inbound principal stays LOCAL-ONLY (REQ-M14): this never makes a foreign record the
|
|
62
|
+
* answer to "who is this". Returns [] when dark / no peer knows them.
|
|
63
|
+
*/
|
|
64
|
+
peerContextForChannels(channels) {
|
|
65
|
+
return this.peerRead ? this.peerRead.peerContextForChannels(channels) : [];
|
|
66
|
+
}
|
|
36
67
|
/** Normalize a name for fuzzy matching: lowercase, trim, collapse whitespace, strip leading @ */
|
|
37
68
|
normalizeName(name) {
|
|
38
69
|
return name.trim().toLowerCase().replace(/^@/, '').replace(/[\s_-]+/g, ' ');
|
|
@@ -476,6 +507,14 @@ Respond with ONLY: YES or NO`;
|
|
|
476
507
|
const merge = this.relationships.get(mergeId);
|
|
477
508
|
if (!keep || !merge)
|
|
478
509
|
return;
|
|
510
|
+
// WS2.3: snapshot the MERGED person's STANDALONE channel set BEFORE we fold its
|
|
511
|
+
// channels into the survivor — the coherent put(survivor)+delete(merged) pair the
|
|
512
|
+
// merge emits keys the tombstone on this OLD set. After the fold the survivor's
|
|
513
|
+
// channel set (and therefore its recordKey) SUBSUMES these, so the tombstone's
|
|
514
|
+
// recordKey is DISTINCT from the survivor's new recordKey — no replication loop,
|
|
515
|
+
// no tombstone that suppresses the survivor (the survivor's `put` carries the
|
|
516
|
+
// consolidated identity; the tombstone only retires the merged's standalone replica).
|
|
517
|
+
const mergedChannelsBefore = [...merge.channels];
|
|
479
518
|
// Merge channels (respect MAX_CHANNELS cap)
|
|
480
519
|
for (const channel of merge.channels) {
|
|
481
520
|
if (keep.channels.length >= MAX_CHANNELS)
|
|
@@ -522,11 +561,24 @@ Respond with ONLY: YES or NO`;
|
|
|
522
561
|
}
|
|
523
562
|
}
|
|
524
563
|
keep.significance = this.calculateSignificance(keep);
|
|
525
|
-
this.save(keep);
|
|
564
|
+
this.save(keep); // emits the survivor `put` (now carrying the consolidated channel set)
|
|
526
565
|
// Delete the merged record and clean up name index
|
|
527
566
|
this.unindexName(mergeId, merge.name);
|
|
528
567
|
this.relationships.delete(mergeId);
|
|
529
568
|
this.deleteFile(mergeId);
|
|
569
|
+
// WS2.3: emit the merged record's TOMBSTONE keyed on its OLD standalone channel
|
|
570
|
+
// set so peers retire its standalone replica — the `delete` half of the coherent
|
|
571
|
+
// put+delete pair. Best-effort; strict no-op when dark. The survivor's recordKey
|
|
572
|
+
// (now subsuming these channels) differs from this tombstone's recordKey, so the
|
|
573
|
+
// tombstone can never suppress the survivor (no dangling tombstone, no loop).
|
|
574
|
+
if (this.replication) {
|
|
575
|
+
try {
|
|
576
|
+
this.replication.emitDelete(mergedChannelsBefore, new Date().toISOString());
|
|
577
|
+
}
|
|
578
|
+
catch {
|
|
579
|
+
// @silent-fallback-ok — additive replication never breaks the local merge.
|
|
580
|
+
}
|
|
581
|
+
}
|
|
530
582
|
}
|
|
531
583
|
/**
|
|
532
584
|
* Delete a relationship and its disk file.
|
|
@@ -535,6 +587,9 @@ Respond with ONLY: YES or NO`;
|
|
|
535
587
|
const record = this.relationships.get(id);
|
|
536
588
|
if (!record)
|
|
537
589
|
return false;
|
|
590
|
+
// Snapshot the channel set BEFORE we mutate the indexes — the WS2.3 tombstone is
|
|
591
|
+
// keyed on the channel-set identity surface (REQ-D4/D17), not the local UUID.
|
|
592
|
+
const channels = [...record.channels];
|
|
538
593
|
// Remove channel index entries
|
|
539
594
|
for (const channel of record.channels) {
|
|
540
595
|
const channelKey = `${channel.type}:${channel.identifier}`;
|
|
@@ -546,6 +601,19 @@ Respond with ONLY: YES or NO`;
|
|
|
546
601
|
this.unindexName(id, record.name);
|
|
547
602
|
this.relationships.delete(id);
|
|
548
603
|
this.deleteFile(id);
|
|
604
|
+
// WS2.3 (§4.2 REQ-D4): a delete propagates as a `relationship-record` `op:'delete'`
|
|
605
|
+
// TOMBSTONE keyed on the channel-set identity surface so it reaches the same human's
|
|
606
|
+
// record on every machine (incl. an offline-then-rejoining peer, §4.3) — never a
|
|
607
|
+
// record absence that cannot distinguish "deleted" from "never replicated". Emitted
|
|
608
|
+
// AFTER the durable local delete; best-effort; strict no-op when dark.
|
|
609
|
+
if (this.replication) {
|
|
610
|
+
try {
|
|
611
|
+
this.replication.emitDelete(channels, new Date().toISOString());
|
|
612
|
+
}
|
|
613
|
+
catch {
|
|
614
|
+
// @silent-fallback-ok — additive replication never breaks the local delete.
|
|
615
|
+
}
|
|
616
|
+
}
|
|
549
617
|
return true;
|
|
550
618
|
}
|
|
551
619
|
/**
|
|
@@ -687,6 +755,22 @@ Respond with ONLY: YES or NO`;
|
|
|
687
755
|
catch { /* ignore */ }
|
|
688
756
|
throw err;
|
|
689
757
|
}
|
|
758
|
+
// WS2.3 (ws23-relationships-userregistry-security §5 REQ-M3/M4): the single
|
|
759
|
+
// persistence funnel is the ONE place a `relationship-record` `put` is emitted,
|
|
760
|
+
// so every mutator (findOrCreate, updateNotes, linkChannel, addTags, …) replicates
|
|
761
|
+
// through it without per-method wiring. Best-effort + AFTER the durable local
|
|
762
|
+
// write succeeded: a replication failure must NEVER break the local write (the
|
|
763
|
+
// injected emitter swallows + counts internally). Strict no-op when no emitter is
|
|
764
|
+
// injected (the dark default).
|
|
765
|
+
if (this.replication) {
|
|
766
|
+
try {
|
|
767
|
+
this.replication.emitPut(record);
|
|
768
|
+
}
|
|
769
|
+
catch {
|
|
770
|
+
// @silent-fallback-ok — replication is additive; a local write must never fail
|
|
771
|
+
// because cross-machine emission did. The emitter records its own failures.
|
|
772
|
+
}
|
|
773
|
+
}
|
|
690
774
|
}
|
|
691
775
|
deleteFile(id) {
|
|
692
776
|
this.validateId(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipManager.js","sourceRoot":"","sources":["../../src/core/RelationshipManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAc,MAAM,IAAI,CAAC;AAC7G,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAQpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,0DAA0D;AAC1D,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,qCAAqC;AACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,OAAO,mBAAmB;IACtB,aAAa,GAAoC,IAAI,GAAG,EAAE,CAAC;IACnE,sFAAsF;IAC9E,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;IACtD,gFAAgF;IACxE,SAAS,GAA6B,IAAI,GAAG,EAAE,CAAC;IAChD,MAAM,CAA4B;IAE1C,YAAY,MAAiC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,iGAAiG;IACzF,aAAa,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,qCAAqC;IAC7B,SAAS,CAAC,EAAU,EAAE,IAAY;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,0CAA0C;IAClC,WAAW,CAAC,EAAU,EAAE,IAAY;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACf,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,6EAA6E;IACrE,UAAU,CAAC,EAAU;QAC3B,IAAI,CAAC,gEAAgE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,kDAAkD,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,sEAAsE;IAEtE;;;;OAIG;IACH,YAAY,CAAC,IAAY,EAAE,OAAoB;QAC7C,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAE3D,qDAAqD;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,wDAAwD;YACxD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,8EAA8E;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,2DAA2D;YAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wDAAwD;QACxD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAuB;YACjC,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI;YACJ,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,gBAAgB,EAAE,GAAG;YACrB,eAAe,EAAE,GAAG;YACpB,gBAAgB,EAAE,CAAC;YACnB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,CAAC;YACf,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,OAAoB;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAE9C,qDAAqD;QACrD,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,+CAA+C;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9C,4DAA4D;YAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,yEAAyE;YACzE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACxF,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACxC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAuB;YACjC,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI;YACJ,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,gBAAgB,EAAE,GAAG;YACrB,eAAe,EAAE,GAAG;YACpB,gBAAgB,EAAE,CAAC;YACnB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,CAAC;YACf,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAE9C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,OAAO,GAAiF,EAAE,CAAC;QAEjG,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,uEAAuE;IAEvE;;;OAGG;IACK,KAAK,CAAC,gBAAgB,CAC5B,YAAkC,EAClC,IAAY,EACZ,OAAoB,EACpB,UAAgC;QAEhC,MAAM,qBAAqB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;YACzD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,iBAAiB,QAAQ,cAAc,MAAM,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChH,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG;;;WAGR,IAAI;aACF,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU;;;EAG7C,qBAAqB;;;;;;;;;sCASe,CAAC;QAEnC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,oCAAoC;YAC/L,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE9C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAClD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;oBAC5C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,iDAAiD;YACjD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;QAED,kEAAkE;QAClE,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CACpC,YAAkC,EAClC,OAA6B,EAC7B,MAAc;QAEd,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;YACzD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,iBAAiB,QAAQ,cAAc,MAAM,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACpH,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG;;kBAED,MAAM;;;EAGtB,YAAY;;;;;;;;6BAQe,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,oCAAoC;YAC/L,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAoB;QACnC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,IAAY;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QAEpB,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,yBAAyB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBAClB,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACrC,IAAI,CAAC,EAAE,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACf,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAA6C,cAAc;QAChE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,cAAc;gBACjB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;YAC7D,KAAK,QAAQ;gBACX,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YAChF,KAAK,MAAM;gBACT,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,MAAM,MAAM,GAA6D,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,sEAAsE;QACtE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;qBAC5B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;qBACvC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;gBACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO;4BACP,MAAM,EAAE,0BAA0B,GAAG,GAAG;yBACzC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;gBACrB,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,GAAG;gBAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACnB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;yBAC5B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;yBACvC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;oBACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO;4BACP,MAAM,EAAE,4BAA4B,SAAS,GAAG;yBACjD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sEAAsE;IAEtE;;OAEG;IACH,iBAAiB,CACf,EAAU,EACV,WAA+B;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,CAAC,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;QAC/C,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAE1B,0CAA0C;QAC1C,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACzE,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,CACzD,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CACnC,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,yBAAyB;YACzB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBAC9B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,EAAU,EAAE,KAAa;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,EAAU,EAAE,UAAkB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,EAAU,EAAE,OAAoB;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAE3D,0DAA0D;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YACpC,uCAAuC;YACvC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACjG,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,wCAAwC,YAAY,iBAAiB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjG,OAAO;YACT,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc,EAAE,OAAe;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QAE5B,4CAA4C;QAC5C,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY;gBAAE,MAAM;YAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QACzE,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAC;aAChF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACtD,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE7C,+DAA+D;QAC/D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;gBAAE,MAAM;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,qCAAqC;QACrC,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACjD,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC;QAEhD,iCAAiC;QACjC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;gBACrB,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,oBAAoB,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC;gBAC3F,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC7C,CAAC;QAED,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACjC,CAAC;QAED,aAAa;QACb,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhB,mDAAmD;QACnD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,+BAA+B;QAC/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC7C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,EAAU,EAAE,QAAgB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,EAAU,EAAE,IAAc;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,EAAU,EAAE,IAAc;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO;QACpC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED,sEAAsE;IAEtE;;;OAGG;IACH,mBAAmB,CAAC,EAAU;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,mEAAmE;QACnE,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAU,EAAE,CACrC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,KAAK,GAAa;YACtB,iCAAiC,QAAQ,IAAI;YAC7C,SAAS,QAAQ,EAAE;YACnB,gBAAgB,MAAM,CAAC,gBAAgB,EAAE;YACzC,qBAAqB,MAAM,CAAC,eAAe,EAAE;YAC7C,uBAAuB,MAAM,CAAC,gBAAgB,EAAE;YAChD,iBAAiB,MAAM,CAAC,YAAY,KAAK;SAC1C,CAAC;QAEF,kCAAkC;QAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,gBAAwB,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,SAAS,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,sEAAsE;IAE9D,OAAO;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAEtD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;gBACzF,+EAA+E;gBAC/E,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC;gBACvC,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,4CAA4C,IAAI,gBAAgB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;oBAClG,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnC,KAAK,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,MAA0B;QACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACzE,iDAAiD;QACjD,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACxF,IAAI,CAAC;YACH,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qCAAqC,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5H,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,EAAU;QAC3B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,qCAAqC,EAAE,CAAC,CAAC;QAChG,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;IAED,sEAAsE;IAE9D,qBAAqB,CAAC,MAA0B;QACtD,gCAAgC;QAChC,kCAAkC;QAClC,2CAA2C;QAC3C,oCAAoC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;QACnE,MAAM,wBAAwB,GAAG,CAAC,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAEjF,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,mCAAmC;QACnC,IAAI,MAAM,CAAC,gBAAgB,IAAI,EAAE;YAAE,KAAK,IAAI,CAAC,CAAC;aACzC,IAAI,MAAM,CAAC,gBAAgB,IAAI,EAAE;YAAE,KAAK,IAAI,CAAC,CAAC;aAC9C,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aAC7C,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAElD,iCAAiC;QACjC,IAAI,wBAAwB,GAAG,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aACxC,IAAI,wBAAwB,GAAG,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aAC7C,IAAI,wBAAwB,GAAG,EAAE;YAAE,KAAK,IAAI,CAAC,CAAC;QAEnD,2BAA2B;QAC3B,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;YAAE,KAAK,IAAI,CAAC,CAAC;aACtC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aAC1C,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"RelationshipManager.js","sourceRoot":"","sources":["../../src/core/RelationshipManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAc,MAAM,IAAI,CAAC;AAC7G,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAQpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,0DAA0D;AAC1D,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,qCAAqC;AACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAwChC,MAAM,OAAO,mBAAmB;IACtB,aAAa,GAAoC,IAAI,GAAG,EAAE,CAAC;IACnE,sFAAsF;IAC9E,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;IACtD,gFAAgF;IACxE,SAAS,GAA6B,IAAI,GAAG,EAAE,CAAC;IAChD,MAAM,CAA4B;IAC1C,oFAAoF;IAC5E,WAAW,CAAkC;IACrD,gFAAgF;IACxE,QAAQ,CAA4B;IAE5C,YAAY,MAAiC,EAAE,WAA4C;QACzF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,OAAmD;QACvE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED;+DAC2D;IAC3D,eAAe,CAAC,IAA0C;QACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;;;;;;;OAQG;IACH,sBAAsB,CAAC,QAAuB;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,CAAC;IAED,iGAAiG;IACzF,aAAa,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,qCAAqC;IAC7B,SAAS,CAAC,EAAU,EAAE,IAAY;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,0CAA0C;IAClC,WAAW,CAAC,EAAU,EAAE,IAAY;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACf,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,6EAA6E;IACrE,UAAU,CAAC,EAAU;QAC3B,IAAI,CAAC,gEAAgE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,kDAAkD,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,sEAAsE;IAEtE;;;;OAIG;IACH,YAAY,CAAC,IAAY,EAAE,OAAoB;QAC7C,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAE3D,qDAAqD;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,wDAAwD;YACxD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,8EAA8E;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,2DAA2D;YAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wDAAwD;QACxD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAuB;YACjC,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI;YACJ,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,gBAAgB,EAAE,GAAG;YACrB,eAAe,EAAE,GAAG;YACpB,gBAAgB,EAAE,CAAC;YACnB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,CAAC;YACf,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,OAAoB;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAE9C,qDAAqD;QACrD,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,+CAA+C;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9C,4DAA4D;YAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,yEAAyE;YACzE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACxF,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACxC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAuB;YACjC,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI;YACJ,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,gBAAgB,EAAE,GAAG;YACrB,eAAe,EAAE,GAAG;YACpB,gBAAgB,EAAE,CAAC;YACnB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,CAAC;YACf,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAE9C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,OAAO,GAAiF,EAAE,CAAC;QAEjG,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,uEAAuE;IAEvE;;;OAGG;IACK,KAAK,CAAC,gBAAgB,CAC5B,YAAkC,EAClC,IAAY,EACZ,OAAoB,EACpB,UAAgC;QAEhC,MAAM,qBAAqB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;YACzD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,iBAAiB,QAAQ,cAAc,MAAM,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChH,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG;;;WAGR,IAAI;aACF,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU;;;EAG7C,qBAAqB;;;;;;;;;sCASe,CAAC;QAEnC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,oCAAoC;YAC/L,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE9C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAClD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;oBAC5C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,iDAAiD;YACjD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;QAED,kEAAkE;QAClE,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CACpC,YAAkC,EAClC,OAA6B,EAC7B,MAAc;QAEd,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;YACzD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,iBAAiB,QAAQ,cAAc,MAAM,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACpH,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG;;kBAED,MAAM;;;EAGtB,YAAY;;;;;;;;6BAQe,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,oCAAoC;YAC/L,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAoB;QACnC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,IAAY;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QAEpB,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,yBAAyB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBAClB,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACrC,IAAI,CAAC,EAAE,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACf,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAA6C,cAAc;QAChE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,cAAc;gBACjB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;YAC7D,KAAK,QAAQ;gBACX,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YAChF,KAAK,MAAM;gBACT,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,MAAM,MAAM,GAA6D,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,sEAAsE;QACtE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;qBAC5B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;qBACvC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;gBACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO;4BACP,MAAM,EAAE,0BAA0B,GAAG,GAAG;yBACzC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;gBACrB,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,GAAG;gBAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACnB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;yBAC5B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;yBACvC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;oBACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO;4BACP,MAAM,EAAE,4BAA4B,SAAS,GAAG;yBACjD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sEAAsE;IAEtE;;OAEG;IACH,iBAAiB,CACf,EAAU,EACV,WAA+B;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,CAAC,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;QAC/C,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAE1B,0CAA0C;QAC1C,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACzE,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,CACzD,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CACnC,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,yBAAyB;YACzB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBAC9B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,EAAU,EAAE,KAAa;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,EAAU,EAAE,UAAkB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,EAAU,EAAE,OAAoB;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAE3D,0DAA0D;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YACpC,uCAAuC;YACvC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACjG,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,wCAAwC,YAAY,iBAAiB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjG,OAAO;YACT,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc,EAAE,OAAe;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QAE5B,gFAAgF;QAChF,kFAAkF;QAClF,gFAAgF;QAChF,+EAA+E;QAC/E,iFAAiF;QACjF,8EAA8E;QAC9E,sFAAsF;QACtF,MAAM,oBAAoB,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEjD,4CAA4C;QAC5C,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY;gBAAE,MAAM;YAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QACzE,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAC;aAChF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACtD,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE7C,+DAA+D;QAC/D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;gBAAE,MAAM;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,qCAAqC;QACrC,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACjD,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC;QAEhD,iCAAiC;QACjC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;gBACrB,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,oBAAoB,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC;gBAC3F,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC7C,CAAC;QAED,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACjC,CAAC;QAED,aAAa;QACb,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uEAAuE;QAExF,mDAAmD;QACnD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzB,gFAAgF;QAChF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,8EAA8E;QAC9E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACP,2EAA2E;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,iFAAiF;QACjF,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtC,+BAA+B;QAC/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC7C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEpB,oFAAoF;QACpF,qFAAqF;QACrF,iFAAiF;QACjF,oFAAoF;QACpF,uEAAuE;QACvE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,4EAA4E;YAC9E,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,EAAU,EAAE,QAAgB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,EAAU,EAAE,IAAc;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,EAAU,EAAE,IAAc;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO;QACpC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED,sEAAsE;IAEtE;;;OAGG;IACH,mBAAmB,CAAC,EAAU;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,mEAAmE;QACnE,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAU,EAAE,CACrC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,KAAK,GAAa;YACtB,iCAAiC,QAAQ,IAAI;YAC7C,SAAS,QAAQ,EAAE;YACnB,gBAAgB,MAAM,CAAC,gBAAgB,EAAE;YACzC,qBAAqB,MAAM,CAAC,eAAe,EAAE;YAC7C,uBAAuB,MAAM,CAAC,gBAAgB,EAAE;YAChD,iBAAiB,MAAM,CAAC,YAAY,KAAK;SAC1C,CAAC;QAEF,kCAAkC;QAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,gBAAwB,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,SAAS,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,sEAAsE;IAE9D,OAAO;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAEtD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;gBACzF,+EAA+E;gBAC/E,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC;gBACvC,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,4CAA4C,IAAI,gBAAgB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;oBAClG,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnC,KAAK,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,MAA0B;QACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACzE,iDAAiD;QACjD,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACxF,IAAI,CAAC;YACH,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qCAAqC,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5H,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,4EAA4E;QAC5E,gFAAgF;QAChF,mFAAmF;QACnF,8EAA8E;QAC9E,+EAA+E;QAC/E,kFAAkF;QAClF,+BAA+B;QAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,+EAA+E;gBAC/E,4EAA4E;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,EAAU;QAC3B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,qCAAqC,EAAE,CAAC,CAAC;QAChG,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;IAED,sEAAsE;IAE9D,qBAAqB,CAAC,MAA0B;QACtD,gCAAgC;QAChC,kCAAkC;QAClC,2CAA2C;QAC3C,oCAAoC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;QACnE,MAAM,wBAAwB,GAAG,CAAC,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAEjF,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,mCAAmC;QACnC,IAAI,MAAM,CAAC,gBAAgB,IAAI,EAAE;YAAE,KAAK,IAAI,CAAC,CAAC;aACzC,IAAI,MAAM,CAAC,gBAAgB,IAAI,EAAE;YAAE,KAAK,IAAI,CAAC,CAAC;aAC9C,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aAC7C,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAElD,iCAAiC;QACjC,IAAI,wBAAwB,GAAG,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aACxC,IAAI,wBAAwB,GAAG,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aAC7C,IAAI,wBAAwB,GAAG,EAAE;YAAE,KAAK,IAAI,CAAC,CAAC;QAEnD,2BAA2B;QAC3B,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;YAAE,KAAK,IAAI,CAAC,CAAC;aACtC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aAC1C,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RelationshipsReplicatedStore — the SECOND concrete consumer of the HLC
|
|
3
|
+
* replicated-store foundation (WS2.3) and the FIRST PII kind. It layers the
|
|
4
|
+
* `relationship-record` replicated kind onto the generic substrate
|
|
5
|
+
* (ReplicatedRecordEnvelope / UnionReader / ConflictStore / RollbackUnmerge /
|
|
6
|
+
* ReplicationBudget / StoreSnapshot) so that a person the agent knows on machine
|
|
7
|
+
* A is known on machine B — ONE relationship graph, not one-per-machine.
|
|
8
|
+
*
|
|
9
|
+
* It is the literal analog of `PreferencesReplicatedStore.ts` (the WS2.1 reference
|
|
10
|
+
* consumer), with the PII-specific hardening the security spec
|
|
11
|
+
* (`ws23-relationships-userregistry-security.md`) demands. THIS IS PURE LOGIC. No
|
|
12
|
+
* fs, no Date directly, no network. It defines:
|
|
13
|
+
*
|
|
14
|
+
* A. The `relationship-record` store schema — a STRICT typed validator that
|
|
15
|
+
* TYPE-CLAMPS every known field (REQ-M3): ISO-8601-only dates, finite-number
|
|
16
|
+
* counts, length-clamped free text. A foreign record is fully attacker-
|
|
17
|
+
* controlled (§2.3 injection), so the clamp is the defense that makes markup
|
|
18
|
+
* un-smuggleable through a field that bypasses sanitize() on render. The
|
|
19
|
+
* schema is a DISCRIMINATED UNION on `op` (gap #8): an `op:'put'` VALUE schema
|
|
20
|
+
* AND an `op:'delete'` TOMBSTONE schema coexist under the one kind, so a
|
|
21
|
+
* tombstone is never marked invalid/suspect by the value schema (REQ-D6).
|
|
22
|
+
*
|
|
23
|
+
* B. The disclosure-minimized PROJECTION (REQ-M4) — `buildRelationshipRecordData`
|
|
24
|
+
* emits ONLY the enumerated resolution + merge-relevant fields, NEVER the raw
|
|
25
|
+
* on-disk blob and NEVER the local UUID `id`. `recordKey` is the cross-machine
|
|
26
|
+
* IDENTITY SURFACE (REQ-D17), derived deterministically from the sorted
|
|
27
|
+
* channel-uids (a person is "the same" across machines by their channels,
|
|
28
|
+
* mirroring resolveByChannel) — never the per-machine `randomUUID()` id.
|
|
29
|
+
*
|
|
30
|
+
* C. The TOMBSTONE builder — `buildRelationshipTombstoneData` emits an
|
|
31
|
+
* `op:'delete'` record `{ recordKey, op, hlc, origin, deletedAt }` (§4.2) so a
|
|
32
|
+
* delete/erasure propagates as a positive signal across an offline-then-
|
|
33
|
+
* rejoining peer (§4.3) instead of a record absence that cannot distinguish
|
|
34
|
+
* "deleted" from "never replicated".
|
|
35
|
+
*
|
|
36
|
+
* D. The union-aware read — `mergeUnionToRelationships` collapses a
|
|
37
|
+
* `Map<recordKey, UnionResult>` (from ReplicatedStoreReader.readAll('relationships'))
|
|
38
|
+
* into the merged relationship view. HIGH-impact (preferences/relationships):
|
|
39
|
+
* an OPEN concurrent conflict is APPEND-BOTH-AND-FLAG — both versions surface,
|
|
40
|
+
* never a silent clobber; the read NEVER writes a foreign record into the local
|
|
41
|
+
* store (REQ-M7 read-only union).
|
|
42
|
+
*
|
|
43
|
+
* E. Foreign-record render safety — `renderForeignRelationshipContext` wraps a
|
|
44
|
+
* replicated record in an explicit `<replicated-untrusted-data origin="…">`
|
|
45
|
+
* envelope (§2.3) and sanitizes EVERY rendered field (the ISO-8601/finite-
|
|
46
|
+
* number type-clamps on apply already make the date/count fields injection-
|
|
47
|
+
* safe; the free-text fields are escaped here). There is no "trusted because
|
|
48
|
+
* machine-set" render slot for a foreign record.
|
|
49
|
+
*
|
|
50
|
+
* SAFETY POSTURE (§14): MECHANISM, dark by default. Nothing here blocks a
|
|
51
|
+
* user-initiated action. The local UUID `id`, the local `channelIndex`/`nameIndex`,
|
|
52
|
+
* and any local-only bookkeeping are NEVER part of the replicated schema and are
|
|
53
|
+
* stripped from every emitted projection (REQ-M4 disclosure minimization).
|
|
54
|
+
*/
|
|
55
|
+
import type { RelationshipRecord, UserChannel } from './types.js';
|
|
56
|
+
import type { StoreFieldSchema, ReplicatedEnvelope } from './ReplicatedRecordEnvelope.js';
|
|
57
|
+
import type { ImpactTier, OriginRecord, UnionResult } from './UnionReader.js';
|
|
58
|
+
import type { ReplicatedKindBounds } from './ReplicationBudget.js';
|
|
59
|
+
import type { HlcTimestamp } from './HybridLogicalClock.js';
|
|
60
|
+
/** The stateSync config sub-key + advert suffix for this store (e.g.
|
|
61
|
+
* `multiMachine.stateSync.relationships.enabled`). Equal to the advert flag key
|
|
62
|
+
* `stateSyncReceive['relationships']`. */
|
|
63
|
+
export declare const RELATIONSHIP_STORE_KEY = "relationships";
|
|
64
|
+
/** The JournalKind string this store rides — the DUAL-REGISTRY's dynamic half.
|
|
65
|
+
* MUST also be present in CoherenceJournal.JOURNAL_KINDS (the static half), or the
|
|
66
|
+
* store advertises receive=true yet serves/applies/pulls nothing (§4 callout). */
|
|
67
|
+
export declare const RELATIONSHIP_RECORD_KIND = "relationship-record";
|
|
68
|
+
/**
|
|
69
|
+
* Relationships are HIGH-impact (security spec §5 REQ-M9 / parent §WS2): a
|
|
70
|
+
* concurrent divergent VALUE edit to the SAME identity surface from different
|
|
71
|
+
* origins goes through APPEND-BOTH-AND-FLAG — both versions preserved, ONE deduped
|
|
72
|
+
* conflict, never a silent overwrite (auto-merging two divergent people could fuse
|
|
73
|
+
* two distinct humans). The CONSUMER read path injects BOTH variants — see
|
|
74
|
+
* mergeUnionToRelationships.
|
|
75
|
+
*/
|
|
76
|
+
export declare const RELATIONSHIP_IMPACT_TIER: ImpactTier;
|
|
77
|
+
/** Mirrors RelationshipManager.MAX_NOTES_LENGTH. */
|
|
78
|
+
export declare const MAX_NOTES_LENGTH = 10000;
|
|
79
|
+
/** Mirrors RelationshipManager.MAX_CHANNELS. */
|
|
80
|
+
export declare const MAX_CHANNELS = 50;
|
|
81
|
+
/** Themes cap (RelationshipManager keeps themes ≤ 20). */
|
|
82
|
+
export declare const MAX_THEMES = 20;
|
|
83
|
+
/** Recent-interactions cap fallback (config `maxRecentInteractions`; the projection
|
|
84
|
+
* clamps to this hard ceiling so a hostile peer can't inflate the count). */
|
|
85
|
+
export declare const MAX_RECENT_INTERACTIONS = 50;
|
|
86
|
+
/** Per-free-text-string clamp for name / arcSummary / communicationStyle / category /
|
|
87
|
+
* each tag / each interaction summary / each channel identifier. */
|
|
88
|
+
export declare const MAX_FREETEXT_LENGTH = 2000;
|
|
89
|
+
/** A channel `type` is a short slug. */
|
|
90
|
+
export declare const MAX_CHANNEL_TYPE_LENGTH = 64;
|
|
91
|
+
/** Tags cap. */
|
|
92
|
+
export declare const MAX_TAGS = 50;
|
|
93
|
+
/**
|
|
94
|
+
* Per-kind replication bounds (§8 / REQ-D1). A PII store is NEVER `rotateKeep: 0`
|
|
95
|
+
* (rotate but never delete) — unbounded PII history is a compliance defect. The
|
|
96
|
+
* relationship store is chatty (recordInteraction fires on every message), so the
|
|
97
|
+
* rate cap COALESCES (latest state per recordKey per interval, REQ-M12). The
|
|
98
|
+
* per-kind maxFileBytes here is the journal-level fallback; the aggregate replicated
|
|
99
|
+
* PII byte ceiling (REQ-D2, 64 MiB) caps the cross-(peer,kind) footprint.
|
|
100
|
+
*/
|
|
101
|
+
export declare const RELATIONSHIP_RECORD_BOUNDS: ReplicatedKindBounds;
|
|
102
|
+
/**
|
|
103
|
+
* Per-entry size cap RAISED to 64KB for this PII kind (REQ-M3, gap #10). The
|
|
104
|
+
* default APPLIER_MAX_ENTRY_BYTES = 8KB is SMALLER than a fat relationship
|
|
105
|
+
* (MAX_NOTES_LENGTH=10_000 alone, PLUS bounded recentInteractions + MAX_CHANNELS),
|
|
106
|
+
* so under it the highest-PII records would never replicate AND would wedge the
|
|
107
|
+
* stream. 64KB is provably above the disclosure-minimized projection's maximum:
|
|
108
|
+
* name(2k) + notes(10k) + 20 themes×2k(40k) is already the dominant term, but
|
|
109
|
+
* themes are SHORT topic slugs in practice and EACH free-text is clamped to 2k —
|
|
110
|
+
* the realistic max (notes 10k + 50 channels×(64+2000) ≈ 103k worst-case) shows
|
|
111
|
+
* why we additionally enforce a HARD post-projection ceiling: a record that STILL
|
|
112
|
+
* exceeds 64KB after projection is REJECTED with a named error (not silent-
|
|
113
|
+
* truncate, not suspect-wedge). See assertProjectionUnderCap.
|
|
114
|
+
*/
|
|
115
|
+
export declare const RELATIONSHIP_MAX_ENTRY_BYTES: number;
|
|
116
|
+
/**
|
|
117
|
+
* The store-specific field names the `relationship-record` VALUE schema OWNS (the
|
|
118
|
+
* unknown-field counter's allowlist). The local UUID `id` is DELIBERATELY ABSENT
|
|
119
|
+
* — it is per-machine and never replicated (REQ-D17 keys on the identity surface,
|
|
120
|
+
* not the id). `recordKey`/`hlc`/`op`/`origin`/`observed` are reserved envelope
|
|
121
|
+
* fields, never store fields.
|
|
122
|
+
*/
|
|
123
|
+
export declare const RELATIONSHIP_STORE_KNOWN_FIELDS: ReadonlyArray<string>;
|
|
124
|
+
/** The tombstone's store-owned fields beyond the reserved envelope set (REQ-D6).
|
|
125
|
+
* `deletedAt` is the only store field a delete carries. */
|
|
126
|
+
export declare const RELATIONSHIP_TOMBSTONE_KNOWN_FIELDS: ReadonlyArray<string>;
|
|
127
|
+
/** Is `v` a valid ISO-8601 date string (and ONLY a date — no trailing markup)? A
|
|
128
|
+
* string that Date.parse rejects, or that round-trips to a different string, is not
|
|
129
|
+
* a clean ISO date and is rejected. */
|
|
130
|
+
export declare function isIso8601(v: unknown): v is string;
|
|
131
|
+
/**
|
|
132
|
+
* The `relationship-record` store schema (§4 / REQ-M3) — a DISCRIMINATED UNION on
|
|
133
|
+
* `op` (gap #8). Strict typed validation on top of the envelope: reject free text
|
|
134
|
+
* beyond the known fields, TYPE-CLAMP every known field, validate the date/number
|
|
135
|
+
* fields so markup cannot smuggle through a render slot that bypasses sanitize().
|
|
136
|
+
* Returns the validated store-specific object (known fields only), or null to reject
|
|
137
|
+
* the WHOLE record. PURE (no I/O, no mutation of `raw`).
|
|
138
|
+
*
|
|
139
|
+
* The `op` discriminator: the envelope validator has ALREADY validated `op` ∈
|
|
140
|
+
* {put,delete} before calling this. We branch on it so a tombstone
|
|
141
|
+
* `{recordKey, op:'delete', hlc, origin, deletedAt}` passes (only `deletedAt` is a
|
|
142
|
+
* legal store field for a delete) WITHOUT being marked invalid by the rich VALUE
|
|
143
|
+
* schema (REQ-D6).
|
|
144
|
+
*/
|
|
145
|
+
export declare const relationshipRecordStoreSchema: StoreFieldSchema;
|
|
146
|
+
/**
|
|
147
|
+
* Normalize one channel into its stable uid form `type:identifier` (lowercased
|
|
148
|
+
* type, trimmed identifier). This is the SAME `${type}:${identifier}` key
|
|
149
|
+
* RelationshipManager.channelIndex uses to collide a person across platforms.
|
|
150
|
+
*/
|
|
151
|
+
export declare function channelUid(channel: UserChannel): string;
|
|
152
|
+
/**
|
|
153
|
+
* Derive the cross-machine-stable recordKey for a relationship (REQ-D17). A person
|
|
154
|
+
* is "the same" across machines by their CHANNEL SET (mirroring resolveByChannel),
|
|
155
|
+
* NOT by the per-machine `randomUUID()` id — VM-A and VM-B mint different UUIDs for
|
|
156
|
+
* the same human, so a UUID-keyed record could never collide them.
|
|
157
|
+
*
|
|
158
|
+
* The key is a deterministic, collision-resistant hash of the SORTED, de-duplicated
|
|
159
|
+
* channel-uids: `sha256(sorted(channelUids).join('\n'))`, hex-truncated to 32 chars
|
|
160
|
+
* (the same shape UnionReader.conflictId uses). Sorting makes it order-independent
|
|
161
|
+
* (the two machines converge to the SAME key for the same channel set); the hash
|
|
162
|
+
* makes it a bounded, non-path-shaped string (the envelope's recordKey jail accepts
|
|
163
|
+
* it). A relationship with NO channels (a degenerate local-only record) is NOT
|
|
164
|
+
* replicable — it has no cross-machine identity surface — and is reported as null so
|
|
165
|
+
* the caller skips emission (it can never collide a stranger by an empty key).
|
|
166
|
+
*
|
|
167
|
+
* COLLISION SAFETY: two DIFFERENT people share a key ONLY if they share the EXACT
|
|
168
|
+
* same full channel set — which is the manager's own definition of "the same
|
|
169
|
+
* person" (resolveByChannel returns one record per channel-uid). SPLIT-IDENTITY
|
|
170
|
+
* SAFETY: the same person derives the SAME key on both machines IFF both hold the
|
|
171
|
+
* same channel set; when their channel sets differ (one machine learned an extra
|
|
172
|
+
* channel) the keys differ — which is correct (they are not yet provably the same
|
|
173
|
+
* person on the machine missing the channel), and the union/erasure intersection
|
|
174
|
+
* logic (REQ-D17) reconciles them by channel-uid overlap, never by key equality.
|
|
175
|
+
*/
|
|
176
|
+
export declare function deriveRelationshipRecordKey(channels: ReadonlyArray<UserChannel>): string | null;
|
|
177
|
+
/** The `data` object a `relationship-record` journal entry carries. */
|
|
178
|
+
export type RelationshipRecordData = Record<string, unknown>;
|
|
179
|
+
/** Input to buildRelationshipRecordData: the record to emit, the freshly-ticked
|
|
180
|
+
* hlc, this machine's origin id, and the observed-witness (the hlc already merged
|
|
181
|
+
* for THIS recordKey before writing, or absent — §7.2). */
|
|
182
|
+
export interface BuildRelationshipRecordInput {
|
|
183
|
+
record: RelationshipRecord;
|
|
184
|
+
hlc: HlcTimestamp;
|
|
185
|
+
origin: string;
|
|
186
|
+
/** The HLC already merged for THIS recordKey before writing, or absent (§7.2). */
|
|
187
|
+
observed?: HlcTimestamp;
|
|
188
|
+
}
|
|
189
|
+
/** The named error a record-over-cap surfaces (REQ-M3): not silent-truncate, not
|
|
190
|
+
* suspect-wedge. */
|
|
191
|
+
export declare class RelationshipRecordTooLargeError extends Error {
|
|
192
|
+
readonly recordKey: string;
|
|
193
|
+
readonly bytes: number;
|
|
194
|
+
constructor(recordKey: string, bytes: number);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Build the disclosure-minimized `relationship-record` envelope `data` for an
|
|
198
|
+
* `op:'put'` (REQ-M4). Emits ONLY the enumerated resolution + merge-relevant
|
|
199
|
+
* fields — NEVER the raw on-disk blob, NEVER the local UUID `id`. recordKey = the
|
|
200
|
+
* derived channel-set identity surface (REQ-D17).
|
|
201
|
+
*
|
|
202
|
+
* Returns null when the record has NO channels (no cross-machine identity surface ⇒
|
|
203
|
+
* not replicable — the caller skips emission). Throws RelationshipRecordTooLargeError
|
|
204
|
+
* when the projection STILL exceeds the 64KB per-entry cap (a record that big is a
|
|
205
|
+
* NAMED, surfaced rejection, REQ-M3 gap #10 — never silent-truncate).
|
|
206
|
+
*/
|
|
207
|
+
export declare function buildRelationshipRecordData(input: BuildRelationshipRecordInput): RelationshipRecordData | null;
|
|
208
|
+
/** Throw RelationshipRecordTooLargeError if the projected data serializes over the
|
|
209
|
+
* per-entry cap (REQ-M3). The cap is set so a legal disclosure-minimized record can
|
|
210
|
+
* never reach it; this is the belt-and-suspenders named rejection. */
|
|
211
|
+
export declare function assertProjectionUnderCap(recordKey: string, data: RelationshipRecordData): void;
|
|
212
|
+
/** Input to buildRelationshipTombstoneData: the channel set of the deleted person
|
|
213
|
+
* (to derive the recordKey identity surface), the freshly-ticked hlc, the origin,
|
|
214
|
+
* and the deletedAt timestamp. */
|
|
215
|
+
export interface BuildRelationshipTombstoneInput {
|
|
216
|
+
channels: ReadonlyArray<UserChannel>;
|
|
217
|
+
hlc: HlcTimestamp;
|
|
218
|
+
origin: string;
|
|
219
|
+
deletedAt: string;
|
|
220
|
+
observed?: HlcTimestamp;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Build an `op:'delete'` TOMBSTONE `data` for a relationship erasure (§4.2 REQ-D4).
|
|
224
|
+
* recordKey = the SAME channel-set identity surface the value records key on, so the
|
|
225
|
+
* tombstone reaches the same human's record on every machine even though the local
|
|
226
|
+
* UUIDs differ. Returns null when the person has no channels (no identity surface to
|
|
227
|
+
* tombstone). The exact field set is `{ recordKey, op:'delete', hlc, origin,
|
|
228
|
+
* deletedAt }` (the REQ-D6 tombstone schema branch).
|
|
229
|
+
*/
|
|
230
|
+
export declare function buildRelationshipTombstoneData(input: BuildRelationshipTombstoneInput): RelationshipRecordData | null;
|
|
231
|
+
/** A merged relationship view entry: the projected record fields PLUS its origin
|
|
232
|
+
* machine id (so a foreign record is rendered inside the untrusted-data envelope).
|
|
233
|
+
* This is READ-ONLY — it is NEVER written back into the local store (REQ-M7). */
|
|
234
|
+
export interface MergedRelationshipView {
|
|
235
|
+
recordKey: string;
|
|
236
|
+
origin: string;
|
|
237
|
+
/** The validated, type-clamped projection fields (the receive-side schema already
|
|
238
|
+
* ran on apply; here `data` is that validated portion). */
|
|
239
|
+
data: Record<string, unknown>;
|
|
240
|
+
/** True when this view entry is one of ≥2 concurrent variants of an OPEN conflict
|
|
241
|
+
* (append-both — both surface; the read NEVER suppresses a usable view). */
|
|
242
|
+
conflicted: boolean;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Collapse a `Map<recordKey, UnionResult>` (from
|
|
246
|
+
* ReplicatedStoreReader.readAll('relationships')) into the merged relationship view.
|
|
247
|
+
* HIGH-impact contract (REQ-M9):
|
|
248
|
+
* - A resolved single value ⇒ that one view entry.
|
|
249
|
+
* - An OPEN concurrent conflict ⇒ BOTH (all) `put` variants as separate entries
|
|
250
|
+
* (append-both — the read NEVER suppresses a usable view waiting on operator
|
|
251
|
+
* resolution). A `delete` variant contributes nothing to display.
|
|
252
|
+
* - A delete-resolved key (every origin's latest is a tombstone) ⇒ nothing.
|
|
253
|
+
* The read is READ-ONLY: a replicated record NEVER clobbers a divergent local
|
|
254
|
+
* record (REQ-M7) — the local store files are never written here.
|
|
255
|
+
*/
|
|
256
|
+
export declare function mergeUnionToRelationships(union: Map<string, UnionResult>): MergedRelationshipView[];
|
|
257
|
+
/**
|
|
258
|
+
* Render a FOREIGN (replicated) relationship record into a session-context block,
|
|
259
|
+
* wrapped in an explicit `<replicated-untrusted-data origin="…">` envelope (§2.3)
|
|
260
|
+
* so the session model treats it as a PEER'S CLAIM to re-ground against, never a
|
|
261
|
+
* directive. EVERY rendered field is escaped — there is no "trusted because machine-
|
|
262
|
+
* set" slot. (The date/count fields were already ISO-8601/finite-number type-clamped
|
|
263
|
+
* on apply, so they cannot carry markup; we escape defensively regardless.)
|
|
264
|
+
*
|
|
265
|
+
* This is the foreign-record analog of RelationshipManager.getContextForPerson — a
|
|
266
|
+
* caller asking "what do my OTHER machines know about this person" gets this block,
|
|
267
|
+
* NEVER the local-authoritative context. A null `data.name` (a malformed view) yields
|
|
268
|
+
* null.
|
|
269
|
+
*/
|
|
270
|
+
export declare function renderForeignRelationshipContext(view: MergedRelationshipView): string | null;
|
|
271
|
+
/**
|
|
272
|
+
* Build an OriginRecord for the OWN relationship store (the single-origin
|
|
273
|
+
* materialization the union reader merges against peer replicas). recordKey =
|
|
274
|
+
* derived channel-set identity surface; the envelope carries a SYNTHETIC own-origin
|
|
275
|
+
* HLC stamp derived deterministically from the record's lastInteraction (physical)
|
|
276
|
+
* so the own record has a well-formed, stable position relative to peer records.
|
|
277
|
+
* Returns null for a channel-less record (no identity surface). The local UUID `id`
|
|
278
|
+
* is NEVER carried into the replicated namespace (REQ-M4 / REQ-D17).
|
|
279
|
+
*/
|
|
280
|
+
export declare function relationshipToOriginRecord(record: RelationshipRecord, origin: string): OriginRecord | null;
|
|
281
|
+
/** The ReplicatedKindRegistry registration for the `relationship-record` store.
|
|
282
|
+
* server.ts registers this onto the shared registry; the dual-registry coupling
|
|
283
|
+
* test asserts `kind` is also present in JOURNAL_KINDS. */
|
|
284
|
+
export declare const RELATIONSHIP_KIND_REGISTRATION: {
|
|
285
|
+
readonly kind: "relationship-record";
|
|
286
|
+
readonly store: "relationships";
|
|
287
|
+
readonly schema: StoreFieldSchema;
|
|
288
|
+
};
|
|
289
|
+
/** Convenience: the store's contributing journal kinds (for rollback-unmerge's
|
|
290
|
+
* kindsForStore('relationships') wiring). */
|
|
291
|
+
export declare function relationshipContributingKinds(): string[];
|
|
292
|
+
/** The store's impact tier resolver, for ReplicatedStoreReader.tierOf. Returns HIGH
|
|
293
|
+
* for the `relationships` store (and HIGH for any unknown store — the conservative
|
|
294
|
+
* append-both-and-flag direction, never a silent clobber). */
|
|
295
|
+
export declare function relationshipTierOf(_store: string): ImpactTier;
|
|
296
|
+
/** Re-export the envelope type for callers building/applying relationship-record envelopes. */
|
|
297
|
+
export type { ReplicatedEnvelope };
|
|
298
|
+
//# sourceMappingURL=RelationshipsReplicatedStore.d.ts.map
|