@cello-protocol/daemon 0.0.182 → 0.0.184
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/agent-settings-keys.d.ts.map +1 -1
- package/dist/agent-settings-keys.js +18 -0
- package/dist/agent-settings-keys.js.map +1 -1
- package/dist/close-session-handler.d.ts.map +1 -1
- package/dist/close-session-handler.js +90 -16
- package/dist/close-session-handler.js.map +1 -1
- package/dist/consortium-bootstrap.d.ts.map +1 -1
- package/dist/consortium-bootstrap.js +117 -2
- package/dist/consortium-bootstrap.js.map +1 -1
- package/dist/content-encryption-status.d.ts +97 -0
- package/dist/content-encryption-status.d.ts.map +1 -0
- package/dist/content-encryption-status.js +122 -0
- package/dist/content-encryption-status.js.map +1 -0
- package/dist/content-park-client.d.ts +10 -0
- package/dist/content-park-client.d.ts.map +1 -1
- package/dist/content-park-client.js +84 -3
- package/dist/content-park-client.js.map +1 -1
- package/dist/content-park.d.ts.map +1 -1
- package/dist/content-park.js +184 -13
- package/dist/content-park.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +671 -67
- package/dist/daemon.js.map +1 -1
- package/dist/document-handlers.d.ts.map +1 -1
- package/dist/document-handlers.js +119 -0
- package/dist/document-handlers.js.map +1 -1
- package/dist/document-layer.d.ts +0 -2
- package/dist/document-layer.d.ts.map +1 -1
- package/dist/document-layer.js.map +1 -1
- package/dist/frame-values.d.ts.map +1 -1
- package/dist/frame-values.js +14 -0
- package/dist/frame-values.js.map +1 -1
- package/dist/inclusion-proof-handlers.d.ts +43 -0
- package/dist/inclusion-proof-handlers.d.ts.map +1 -0
- package/dist/inclusion-proof-handlers.js +565 -0
- package/dist/inclusion-proof-handlers.js.map +1 -0
- package/dist/inclusion-proof.d.ts +151 -0
- package/dist/inclusion-proof.d.ts.map +1 -0
- package/dist/inclusion-proof.js +228 -0
- package/dist/inclusion-proof.js.map +1 -0
- package/dist/initiate-session-handler.d.ts.map +1 -1
- package/dist/initiate-session-handler.js +34 -3
- package/dist/initiate-session-handler.js.map +1 -1
- package/dist/manifest-deps.d.ts +0 -11
- package/dist/manifest-deps.d.ts.map +1 -1
- package/dist/manifest-deps.js +28 -2
- package/dist/manifest-deps.js.map +1 -1
- package/dist/manifest-validity.d.ts +2 -0
- package/dist/manifest-validity.d.ts.map +1 -1
- package/dist/manifest-validity.js +1 -1
- package/dist/manifest-validity.js.map +1 -1
- package/dist/network-directory-node.d.ts +16 -0
- package/dist/network-directory-node.d.ts.map +1 -1
- package/dist/network-directory-node.js +40 -0
- package/dist/network-directory-node.js.map +1 -1
- package/dist/notification-handlers.d.ts.map +1 -1
- package/dist/notification-handlers.js +71 -2
- package/dist/notification-handlers.js.map +1 -1
- package/dist/outbound-sessions.d.ts +6 -0
- package/dist/outbound-sessions.d.ts.map +1 -1
- package/dist/outbound-sessions.js +50 -7
- package/dist/outbound-sessions.js.map +1 -1
- package/dist/park-envelope.d.ts +23 -0
- package/dist/park-envelope.d.ts.map +1 -1
- package/dist/park-envelope.js +76 -0
- package/dist/park-envelope.js.map +1 -1
- package/dist/register-handler.d.ts.map +1 -1
- package/dist/register-handler.js +76 -0
- package/dist/register-handler.js.map +1 -1
- package/dist/relay-only.d.ts +133 -0
- package/dist/relay-only.d.ts.map +1 -0
- package/dist/relay-only.js +183 -0
- package/dist/relay-only.js.map +1 -0
- package/dist/retry-queue.d.ts +26 -1
- package/dist/retry-queue.d.ts.map +1 -1
- package/dist/retry-queue.js +18 -1
- package/dist/retry-queue.js.map +1 -1
- package/dist/seal-coordinator.d.ts +51 -1
- package/dist/seal-coordinator.d.ts.map +1 -1
- package/dist/seal-coordinator.js +248 -1
- package/dist/seal-coordinator.js.map +1 -1
- package/dist/seal-escalation.d.ts.map +1 -1
- package/dist/seal-escalation.js +28 -0
- package/dist/seal-escalation.js.map +1 -1
- package/dist/seal-failure-store.d.ts.map +1 -1
- package/dist/seal-failure-store.js +5 -1
- package/dist/seal-failure-store.js.map +1 -1
- package/dist/sealed-leaf-set.d.ts +92 -0
- package/dist/sealed-leaf-set.d.ts.map +1 -0
- package/dist/sealed-leaf-set.js +129 -0
- package/dist/sealed-leaf-set.js.map +1 -0
- package/dist/session-ceremony.d.ts +27 -1
- package/dist/session-ceremony.d.ts.map +1 -1
- package/dist/session-ceremony.js +109 -7
- package/dist/session-ceremony.js.map +1 -1
- package/dist/session-content-handlers.d.ts +12 -0
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +39 -4
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-node-manager.d.ts +387 -4
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +3529 -279
- package/dist/session-node-manager.js.map +1 -1
- package/dist/session-read-handlers.d.ts.map +1 -1
- package/dist/session-read-handlers.js +16 -1
- package/dist/session-read-handlers.js.map +1 -1
- package/dist/session-relay-client.d.ts +163 -1
- package/dist/session-relay-client.d.ts.map +1 -1
- package/dist/session-relay-client.js +540 -6
- package/dist/session-relay-client.js.map +1 -1
- package/dist/session-salt-agreement.d.ts +58 -4
- package/dist/session-salt-agreement.d.ts.map +1 -1
- package/dist/session-salt-agreement.js +110 -3
- package/dist/session-salt-agreement.js.map +1 -1
- package/dist/signal-submission.d.ts +11 -1
- package/dist/signal-submission.d.ts.map +1 -1
- package/dist/signal-submission.js.map +1 -1
- package/dist/signaling-connect.d.ts +18 -1
- package/dist/signaling-connect.d.ts.map +1 -1
- package/dist/signaling-connect.js +164 -1
- package/dist/signaling-connect.js.map +1 -1
- package/dist/submission-retry.d.ts +208 -0
- package/dist/submission-retry.d.ts.map +1 -0
- package/dist/submission-retry.js +505 -0
- package/dist/submission-retry.js.map +1 -0
- package/dist/types.d.ts +33 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vocabulary.d.ts +13 -3
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +14 -3
- package/dist/vocabulary.js.map +1 -1
- package/dist/wire-content-hash.d.ts +15 -3
- package/dist/wire-content-hash.d.ts.map +1 -1
- package/dist/wire-content-hash.js +15 -3
- package/dist/wire-content-hash.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CELLO Daemon — relay-only routing (`DOD-M15-RELAYONLY-1`).
|
|
3
|
+
*
|
|
4
|
+
* The feature half of the IP disclosure. A direct session reveals the operator's IP permanently;
|
|
5
|
+
* relay routing is the mitigation, and until now it was a footnote in an architecture document
|
|
6
|
+
* rather than something an operator could switch on.
|
|
7
|
+
*
|
|
8
|
+
* ─── ⚠️ WHY THIS IS NOT A `transport_mode` SETTING ─────────────────────────────────────────────
|
|
9
|
+
*
|
|
10
|
+
* `transport_mode` DOES NOT CONTROL WHETHER A DIRECT CONNECTION HAPPENS, and a setting that wrote it
|
|
11
|
+
* would be a privacy control that does not protect privacy:
|
|
12
|
+
*
|
|
13
|
+
* - The directory already defaults the label to relay (`requestedTransportMode ?? "relay"`), so in
|
|
14
|
+
* the ordinary case the label ALREADY reads "relay".
|
|
15
|
+
* - And the client dials directly anyway — the gate is `counterparty_session_addrs.length > 0`,
|
|
16
|
+
* *"regardless of the transport_mode LABEL"*, in `initiate-session-handler.ts`'s own words.
|
|
17
|
+
*
|
|
18
|
+
* So the IP is exposed today on a path whose label already claims otherwise, and an operator who set
|
|
19
|
+
* a label-only flag would be told they were protected while they were not.
|
|
20
|
+
*
|
|
21
|
+
* ─── The two halves, and why the second is the one that makes it a control ────────────────────
|
|
22
|
+
*
|
|
23
|
+
* A direct connection leaks the IP in BOTH directions:
|
|
24
|
+
*
|
|
25
|
+
* 1. **We dial only their CIRCUIT** — `dialableAddrs`. Dialling their direct address hands them
|
|
26
|
+
* ours; dialling the circuit terminates at the relay and reveals nothing.
|
|
27
|
+
* 2. **We publish only our own CIRCUIT** — `publishableEndpoint`. The only route they hold points
|
|
28
|
+
* at the relay, which protects the operator **even against a counterparty who ignores the flag**.
|
|
29
|
+
*
|
|
30
|
+
* The second is load-bearing: *a control that depends on the other side honouring it is not a
|
|
31
|
+
* control.* The first alone would leave us reachable by anyone who kept our address.
|
|
32
|
+
*
|
|
33
|
+
* ⚠️ **AND NEITHER HALF IS SUFFICIENT WHILE libp2p CAN SPEAK FOR US.** These functions filter what
|
|
34
|
+
* the DIRECTORY is told. `identify` hands a peer our listen addresses on the first relayed
|
|
35
|
+
* connection, and `dcutr` actively hole-punches a relayed connection into a direct one — the inbound
|
|
36
|
+
* side starts that upgrade, and a relay-only responder IS the inbound side. Both bypass everything
|
|
37
|
+
* here, peer-to-peer. `createNode`'s `holePunch: { enabled: false }` closes the second; the announce
|
|
38
|
+
* filter closes the first. **Without those, this file filters the paperwork and leaves the wire
|
|
39
|
+
* open** — see `DOD-M15-RELAYONLY-1`.
|
|
40
|
+
*
|
|
41
|
+
* `publishableEndpoint` is applied INSIDE `getStandingReceiverInfo` — the single method both publish
|
|
42
|
+
* paths draw from — rather than at its call sites. Suppressing at call sites would be a hand-kept
|
|
43
|
+
* list, and a fourth publish path added later would leak while every test stayed green. At the choke
|
|
44
|
+
* point a new caller inherits the protection instead of having to be told about it.
|
|
45
|
+
*/
|
|
46
|
+
/** The per-agent settings key. Lower-snake, dotted namespace, per `agent-settings-keys.ts`. */
|
|
47
|
+
export const RELAY_ONLY_KEY = "transport.relay_only";
|
|
48
|
+
/**
|
|
49
|
+
* Is relay-only routing ON for this agent?
|
|
50
|
+
*
|
|
51
|
+
* ⚠️ THE FAILURE DIRECTION IS CHOSEN, not incidental. **Only the exact string `"true"` is ON.**
|
|
52
|
+
* Unset reads OFF because the daemon must run correctly on defaults alone; a corrupt or unparseable
|
|
53
|
+
* value also reads OFF, because reading a value nobody validated as ON would silently break every
|
|
54
|
+
* ordinary direct session.
|
|
55
|
+
*
|
|
56
|
+
* That leaves one hazard — a typo'd value that the operator believes turned the control on — and it
|
|
57
|
+
* is closed at the WRITE boundary instead: `validateSettingValue` refuses anything but `"true"` and
|
|
58
|
+
* `"false"`, loudly, so a mistyped value can never be stored to be misread here.
|
|
59
|
+
*/
|
|
60
|
+
export function isRelayOnly(getSetting) {
|
|
61
|
+
return getSetting(RELAY_ONLY_KEY) === "true";
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The setting's state when the read itself may fail — `"on" | "off" | "unknown"`.
|
|
65
|
+
*
|
|
66
|
+
* ⚠️ **"THE DATABASE IS GONE" IS NOT A VALUE, AND TREATING IT AS ONE FAILS TOWARD DISCLOSURE.**
|
|
67
|
+
* `getSetting` returns `null` both for *unset* and for *no database*, and `isRelayOnly` reads both
|
|
68
|
+
* as OFF. Unset-means-off is right; **db-gone-means-off is not** — the standing receiver outlives
|
|
69
|
+
* the database during shutdown, so an offer arriving in that window would publish the operator's
|
|
70
|
+
* real addresses with relay-only switched on.
|
|
71
|
+
*
|
|
72
|
+
* A read that THROWS is also `"unknown"` rather than an escaping exception: this sits on a ceremony
|
|
73
|
+
* path with no catch, where a throw becomes an unhandled rejection and the offer vanishes with no
|
|
74
|
+
* local log — the initiator then sees `counterparty_did_not_accept` and blames its own subsystem.
|
|
75
|
+
*
|
|
76
|
+
* The caller decides what `"unknown"` costs. For publishing, it must cost a refusal, never a guess.
|
|
77
|
+
*/
|
|
78
|
+
export function relayOnlyState(getSetting, readable) {
|
|
79
|
+
if (!readable)
|
|
80
|
+
return "unknown";
|
|
81
|
+
try {
|
|
82
|
+
return getSetting(RELAY_ONLY_KEY) === "true" ? "on" : "off";
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return "unknown";
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* A relay-CIRCUIT multiaddr — the address that discloses nothing about the operator.
|
|
90
|
+
*
|
|
91
|
+
* ⚠️ THIS IS THE DISTINCTION THE WHOLE UNIT TURNS ON, and getting it wrong the first time took the
|
|
92
|
+
* operator OFF THE NETWORK rather than making them private. A `/p2p-circuit` address names the
|
|
93
|
+
* **RELAY's** address and our peer id. It terminates at the relay. Publishing one tells a
|
|
94
|
+
* counterparty how to reach us *through* the relay and tells them nothing about where we are;
|
|
95
|
+
* dialing one reveals us to the relay we already chose, not to them.
|
|
96
|
+
*
|
|
97
|
+
* So relay-only is not "no addresses". It is "circuit addresses only".
|
|
98
|
+
*/
|
|
99
|
+
export function isCircuitAddr(addr) {
|
|
100
|
+
// ⚠️ PARSED, never substring-matched. `addr.includes("/p2p-circuit")` was defeatable by the
|
|
101
|
+
// COUNTERPARTY, who controls these strings — the directory copies them verbatim and the FROST
|
|
102
|
+
// signature attests that the quorum agreed on the assignment, NOT that its contents are circuits.
|
|
103
|
+
//
|
|
104
|
+
// /dns4/p2p-circuit.attacker.example/tcp/443/p2p/12D3KooWTheirs
|
|
105
|
+
//
|
|
106
|
+
// contains the literal text, resolves through the DNS transport, and would have been dialled
|
|
107
|
+
// directly — handing over the operator's IP with relay-only switched ON, while the suppression log
|
|
108
|
+
// reported `suppressed: 0`. A control a peer can defeat by naming a host is precisely what this
|
|
109
|
+
// line rules out.
|
|
110
|
+
//
|
|
111
|
+
// EXACT SEGMENT match on the multiaddr's own `/`-delimited components. `p2p-circuit` is a
|
|
112
|
+
// standalone protocol with no value, so it appears as a whole segment; a hostname that merely
|
|
113
|
+
// CONTAINS the text appears as `p2p-circuit.attacker.example`, which is a different segment and is
|
|
114
|
+
// correctly rejected.
|
|
115
|
+
//
|
|
116
|
+
// Deliberately NOT `multiaddr().protoNames()`, which would be the stricter parse: that lives in
|
|
117
|
+
// `@multiformats/multiaddr`, a dependency `core/daemon` does not have. Reaching for it here would
|
|
118
|
+
// add a package to the daemon to make one boolean stricter, and this client is installed on
|
|
119
|
+
// operators' machines where install weight is a user-facing cost. The exact-segment test defeats
|
|
120
|
+
// the demonstrated bypass with no new dependency.
|
|
121
|
+
//
|
|
122
|
+
// ⚠️ RESIDUAL, stated rather than left implied: this proves the address CLAIMS a circuit hop, not
|
|
123
|
+
// that the circuit runs through a relay we chose. A peer could name a relay we hold no reservation
|
|
124
|
+
// with. Binding the embedded relay peer id to our own reservations is the stronger check and is
|
|
125
|
+
// NOT done here.
|
|
126
|
+
return addr.split("/").includes("p2p-circuit");
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The endpoint as it may leave this machine.
|
|
130
|
+
*
|
|
131
|
+
* ⚠️ **AN EMPTY ADDRESS ARRAY IS NOT A PRIVATE FRAME, IT IS A MALFORMED ONE.** The first build of
|
|
132
|
+
* this published `addrs: []` and the directory refuses exactly that on both sides — a
|
|
133
|
+
* `session_request` whose `initiator_session_addrs` is empty is rejected outright, and a
|
|
134
|
+
* `session_offer_accept` is only folded in `if (counterparty_session_addrs.length > 0)`, **with no
|
|
135
|
+
* `else`**, so the accept was silently dropped and the offer waiter never resolved. The operator
|
|
136
|
+
* switched on a privacy control and was told their counterparty was offline.
|
|
137
|
+
*
|
|
138
|
+
* So we publish the **circuit-only subset**: enough for the directory to build a real assignment and
|
|
139
|
+
* for the counterparty to reach us over the relay, and nothing that points at the operator.
|
|
140
|
+
*
|
|
141
|
+
* A genuinely empty result is meaningful and is NOT silently published — see `relayOnlyReachable`.
|
|
142
|
+
* A null endpoint stays null: "no standing receiver" and "a receiver at no address" are different
|
|
143
|
+
* facts, and collapsing them would let a caller advertise an endpoint that does not exist.
|
|
144
|
+
*/
|
|
145
|
+
export function publishableEndpoint(endpoint, relayOnly) {
|
|
146
|
+
if (endpoint === null)
|
|
147
|
+
return null;
|
|
148
|
+
if (!relayOnly)
|
|
149
|
+
return endpoint;
|
|
150
|
+
return { peerId: endpoint.peerId, addrs: endpoint.addrs.filter(isCircuitAddr) };
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Can a relay-only agent actually be reached with what it is about to publish?
|
|
154
|
+
*
|
|
155
|
+
* FALSE means it holds **no relay reservation yet**, so the circuit-only subset is empty. That must
|
|
156
|
+
* become a LOUD LOCAL REFUSAL rather than an empty publish: an empty publish is refused by the
|
|
157
|
+
* directory as malformed and surfaces to the operator as "the counterparty is offline", which is a
|
|
158
|
+
* lie about someone else's state caused by a setting on this machine.
|
|
159
|
+
*/
|
|
160
|
+
export function relayOnlyReachable(endpoint, relayOnly) {
|
|
161
|
+
if (!relayOnly)
|
|
162
|
+
return true;
|
|
163
|
+
if (endpoint === null)
|
|
164
|
+
return false;
|
|
165
|
+
return endpoint.addrs.some(isCircuitAddr);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Which of the counterparty's advertised addresses may we dial?
|
|
169
|
+
*
|
|
170
|
+
* ⚠️ Returns the FILTERED LIST, not a boolean, because "relay-only" does not mean "do not connect" —
|
|
171
|
+
* it means "connect only over the circuit". The first build refused every address including the
|
|
172
|
+
* `/p2p-circuit` one, which is the relay route this setting exists to force everything onto, so it
|
|
173
|
+
* dropped every session onto the store-and-forward backstop.
|
|
174
|
+
*
|
|
175
|
+
* The counterparty may not be relay-only themselves, so they will still advertise direct addresses:
|
|
176
|
+
* those are dropped, because dialing one hands them our IP with our own setting switched on.
|
|
177
|
+
*/
|
|
178
|
+
export function dialableAddrs(addrs, relayOnly) {
|
|
179
|
+
if (!relayOnly)
|
|
180
|
+
return [...addrs];
|
|
181
|
+
return addrs.filter(isCircuitAddr);
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=relay-only.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-only.js","sourceRoot":"","sources":["../src/relay-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAGH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,UAA0C;IACpE,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC5B,UAA0C,EAC1C,QAAiB;IAEjB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAQD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,4FAA4F;IAC5F,8FAA8F;IAC9F,kGAAkG;IAClG,EAAE;IACF,oEAAoE;IACpE,EAAE;IACF,6FAA6F;IAC7F,mGAAmG;IACnG,gGAAgG;IAChG,kBAAkB;IAClB,EAAE;IACF,0FAA0F;IAC1F,8FAA8F;IAC9F,mGAAmG;IACnG,sBAAsB;IACtB,EAAE;IACF,gGAAgG;IAChG,kGAAkG;IAClG,4FAA4F;IAC5F,iGAAiG;IACjG,kDAAkD;IAClD,EAAE;IACF,kGAAkG;IAClG,mGAAmG;IACnG,gGAAgG;IAChG,iBAAiB;IACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAkB,EAClB,SAAkB;IAElB,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAoC,EAAE,SAAkB;IACzF,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,KAAwB,EAAE,SAAkB;IACxE,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC"}
|
package/dist/retry-queue.d.ts
CHANGED
|
@@ -69,11 +69,26 @@ export interface AwaitingContentEntry {
|
|
|
69
69
|
position: number;
|
|
70
70
|
}
|
|
71
71
|
/** Result of a park attempt during the awaiting-ACK drain. */
|
|
72
|
+
/**
|
|
73
|
+
* ⚠️ `retryAfterMs` on the FAILURE member — `DOD-M15-RELAYABUSE-1`, review HIGH-2.
|
|
74
|
+
*
|
|
75
|
+
* The relay tells us exactly when a throttle clears, and until now only the LIVE send path could
|
|
76
|
+
* hear it: the drain path returned `{parked:false, error}` and dropped the number on the floor. With
|
|
77
|
+
* a backlog larger than one window that is the whole feature undone — the relay allows N per window,
|
|
78
|
+
* the drain deposits N, every remaining item is refused carrying a fresh delay, and all of them fall
|
|
79
|
+
* back to waiting for an unrelated reconnect. Which is precisely the condition the retry timer was
|
|
80
|
+
* added to fix.
|
|
81
|
+
*
|
|
82
|
+
* It sits on the failure member for the same reason `sequenceNumber` does elsewhere: a refusal still
|
|
83
|
+
* carries information the caller needs, and dropping it because the operation failed is how a
|
|
84
|
+
* value ends up with no reader.
|
|
85
|
+
*/
|
|
72
86
|
export type ParkResult = {
|
|
73
87
|
parked: true;
|
|
74
88
|
} | {
|
|
75
89
|
parked: false;
|
|
76
90
|
error: string;
|
|
91
|
+
retryAfterMs?: number;
|
|
77
92
|
};
|
|
78
93
|
export type ParkFn = (entry: AwaitingContentEntry) => Promise<ParkResult>;
|
|
79
94
|
export declare class RetryQueue {
|
|
@@ -162,6 +177,16 @@ export declare class RetryQueue {
|
|
|
162
177
|
* the failed item stays queued for the next reconnect / startup flush. Returns the
|
|
163
178
|
* number of entries successfully parked.
|
|
164
179
|
*/
|
|
165
|
-
drainAwaitingToPark(agentId: string, sessionId: string, parkFn: ParkFn
|
|
180
|
+
drainAwaitingToPark(agentId: string, sessionId: string, parkFn: ParkFn,
|
|
181
|
+
/**
|
|
182
|
+
* DOD-M15-RELAYABUSE-1 review HIGH-2: called ONCE per pass with the largest retry delay any
|
|
183
|
+
* refusal in that pass reported, or never if none did.
|
|
184
|
+
*
|
|
185
|
+
* ⚠️ Per PASS, not per item, and that is the whole point. A backlog larger than one rate-limit
|
|
186
|
+
* window produces a refusal per remaining item, each carrying its own delay; scheduling on each
|
|
187
|
+
* would be one timer per message — the flood the limiter exists to prevent, generated by the
|
|
188
|
+
* code that respects it. The largest delay is the one that is actually true for the window.
|
|
189
|
+
*/
|
|
190
|
+
onRetryAfter?: (retryAfterMs: number) => void): Promise<number>;
|
|
166
191
|
}
|
|
167
192
|
//# sourceMappingURL=retry-queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry-queue.d.ts","sourceRoot":"","sources":["../src/retry-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,gEAAgE;AAChE,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+CAA+C;AAC/C,MAAM,MAAM,YAAY,GAAG;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF,MAAM,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;sFAIkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC;IACxB;;;;;kCAK8B;IAC9B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"retry-queue.d.ts","sourceRoot":"","sources":["../src/retry-queue.ts"],"names":[],"mappings":"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"}
|
package/dist/retry-queue.js
CHANGED
|
@@ -595,12 +595,23 @@ export class RetryQueue {
|
|
|
595
595
|
* the failed item stays queued for the next reconnect / startup flush. Returns the
|
|
596
596
|
* number of entries successfully parked.
|
|
597
597
|
*/
|
|
598
|
-
async drainAwaitingToPark(agentId, sessionId, parkFn
|
|
598
|
+
async drainAwaitingToPark(agentId, sessionId, parkFn,
|
|
599
|
+
/**
|
|
600
|
+
* DOD-M15-RELAYABUSE-1 review HIGH-2: called ONCE per pass with the largest retry delay any
|
|
601
|
+
* refusal in that pass reported, or never if none did.
|
|
602
|
+
*
|
|
603
|
+
* ⚠️ Per PASS, not per item, and that is the whole point. A backlog larger than one rate-limit
|
|
604
|
+
* window produces a refusal per remaining item, each carrying its own delay; scheduling on each
|
|
605
|
+
* would be one timer per message — the flood the limiter exists to prevent, generated by the
|
|
606
|
+
* code that respects it. The largest delay is the one that is actually true for the window.
|
|
607
|
+
*/
|
|
608
|
+
onRetryAfter) {
|
|
599
609
|
const ak = this.#ak(agentId, sessionId);
|
|
600
610
|
const q = this.#awaiting.get(ak);
|
|
601
611
|
if (!q || q.length === 0)
|
|
602
612
|
return 0;
|
|
603
613
|
let parked = 0;
|
|
614
|
+
let maxRetryAfterMs = 0;
|
|
604
615
|
for (const entry of [...q]) {
|
|
605
616
|
let result;
|
|
606
617
|
try {
|
|
@@ -610,6 +621,9 @@ export class RetryQueue {
|
|
|
610
621
|
result = { parked: false, error: err instanceof Error ? err.message : String(err) };
|
|
611
622
|
}
|
|
612
623
|
if (!result.parked) {
|
|
624
|
+
if (result.retryAfterMs !== undefined && result.retryAfterMs > 0) {
|
|
625
|
+
maxRetryAfterMs = Math.max(maxRetryAfterMs, result.retryAfterMs);
|
|
626
|
+
}
|
|
613
627
|
// `result.error` MUST be logged. Every failure branch of the park target
|
|
614
628
|
// (owning_agent_not_found, no_persisted_relay_endpoint, no_counterparty,
|
|
615
629
|
// standing_receiver_unavailable, signing_key_unavailable) is otherwise invisible — the only
|
|
@@ -668,6 +682,9 @@ export class RetryQueue {
|
|
|
668
682
|
}
|
|
669
683
|
if (q.length === 0)
|
|
670
684
|
this.#awaiting.delete(ak);
|
|
685
|
+
// ONCE per pass — see the parameter's note on why this is not per item.
|
|
686
|
+
if (maxRetryAfterMs > 0)
|
|
687
|
+
onRetryAfter?.(maxRetryAfterMs);
|
|
671
688
|
return parked;
|
|
672
689
|
}
|
|
673
690
|
}
|
package/dist/retry-queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry-queue.js","sourceRoot":"","sources":["../src/retry-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AA2DpC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAEzF,MAAM,OAAO,UAAU;IACZ,GAAG,CAAiB;IACpB,OAAO,CAAS;IACzB,uFAAuF;IACvF,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC/C,4DAA4D;IAC5D,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,6EAA6E;IAC7E,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEtD,YAAY,EAAkB,EAAE,MAAc;QAC5C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,sEAAsE;QACtE,iGAAiG;QACjG,8FAA8F;QAC9F,sDAAsD;QACtD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;KAgBb,CAAC,CAAC;QACH,+FAA+F;QAC/F,2FAA2F;QAC3F,qDAAqD;QACrD;;;;;;;;WAQG;QACH,KAAK,MAAM,GAAG,IAAI;YAChB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;YACzC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;YACzC,2FAA2F;YAC3F,4FAA4F;YAC5F,kFAAkF;YAClF,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;SAC3C,EAAE,CAAC;YACF,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE,MAAM,GAAG,CAAC;YACrD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;;KAGb,CAAC,CAAC;QACH,2FAA2F;QAC3F,kGAAkG;QAClG,EAAE;QACF,kGAAkG;QAClG,0FAA0F;QAC1F,2FAA2F;QAC3F,uFAAuF;QACvF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;;KAGb,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,GAAG,CAAC,OAAe,EAAE,SAAiB;QACpC,OAAO,GAAG,OAAO,OAAO,SAAS,EAAE,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG;aAClB,OAAO,CAAC,4NAA4N,CAAC;aACrO,GAAG,EAaF,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC3B,4FAA4F;gBAC5F,yFAAyF;gBACzF,8FAA8F;gBAC9F,gGAAgG;gBAChG,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE;wBACpD,SAAS,EAAE,GAAG,CAAC,UAAU;wBACzB,KAAK,EAAE,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,SAAS;wBAC5C,MAAM,EAAE,wDAAwD;qBACjE,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAyB;oBAClC,OAAO,EAAE,GAAG,CAAC,QAAQ;oBACrB,SAAS,EAAE,GAAG,CAAC,UAAU;oBACzB,cAAc,EAAE,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,SAAS;oBACrD,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC9D,yFAAyF;oBACzF,qFAAqF;oBACrF,cAAc,EAAE,GAAG,CAAC,gBAAgB,IAAI,SAAS;oBACjD,cAAc,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtF,cAAc,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtF,QAAQ,EAAE,GAAG,CAAC,SAAS;oBACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ;iBACvB,CAAC;gBACF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACnD,qFAAqF;gBACrF,wFAAwF;gBACxF,8EAA8E;gBAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,GAAG,CAAC,QAAQ,GAAG,WAAW;oBAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC7E,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;oBAAC,CAAC,GAAG,EAAE,CAAC;oBAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACd,SAAS;YACX,CAAC;YAED,sFAAsF;YACtF,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,GAAG,CAAC,QAAQ,GAAG,UAAU;gBAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAExF,MAAM,KAAK,GAAoB;gBAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;gBACzB,QAAQ,EAAE,GAAG,CAAC,SAAS;gBACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC9D,QAAQ,EAAE,GAAG,CAAC,SAAS;gBACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAC;YAEF,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH;;;OAGG;IACH,SAAS,CAAC,CAAa;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,SAAS,CAAC,CAAa;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,SAAiB,EAAE,KAAiB,EAAE,WAAuB;QACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,YAAY,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC5C,CAAC;QAED,4CAA4C;QAC5C,IAAI,YAAY,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,iBAAiB;YACjB,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG;qBACL,OAAO,CAAC,+DAA+D,CAAC;qBACxE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBACjD,SAAS;oBACT,KAAK,EAAE,MAAM,CAAC,QAAQ;oBACtB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;YACD,+CAA+C;YAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACzC,SAAS;gBACT,KAAK,EAAE,MAAM,CAAC,QAAQ;gBACtB,UAAU,EAAE,eAAe;aAC5B,CAAC,CAAC;YACH,wBAAwB;YACxB,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAED,wBAAwB;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAoB;YAC7B,SAAS;YACT,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,YAAY;SACvB,CAAC;QAEF,uBAAuB;QACvB,IAAI,CAAC;YACH,IAAI,CAAC,GAAG;iBACL,OAAO,CACN;qCAC2B,CAC5B;iBACA,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS;gBACT,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,qEAAqE;QACvE,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACxC,SAAS;YACT,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,YAAY,CAAC,MAAM;SAChC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,MAAgB;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,sEAAsE;QACtE,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE/C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,uEAAuE;gBACvE,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,IAAI,CAAC,GAAG;yBACL,OAAO,CAAC,4EAA4E,CAAC;yBACrF,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;wBACjD,SAAS;wBACT,KAAK,EAAE,KAAK,CAAC,QAAQ;wBACrB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC;gBACD,+DAA+D;gBAC/D,MAAM;YACR,CAAC;YAED,0BAA0B;YAC1B,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG;qBACL,OAAO,CAAC,gEAAgE,CAAC;qBACzE,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBACjD,SAAS;oBACT,KAAK,EAAE,KAAK,CAAC,QAAQ;oBACrB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;YAED,qBAAqB;YACrB,YAAY,CAAC,KAAK,EAAE,CAAC;YAErB,iCAAiC;YACjC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YAEzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC3C,SAAS;gBACT,KAAK,EAAE,KAAK,CAAC,QAAQ;gBACrB,aAAa;aACd,CAAC,CAAC;YAEH,SAAS,EAAE,CAAC;QACd,CAAC;QAED,6BAA6B;QAC7B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,SAAiB,EAAE,cAAsC;QAC3E,gGAAgG;QAChG,4FAA4F;QAC5F,6FAA6F;QAC7F,8FAA8F;QAC9F,+FAA+F;QAC/F,OAAO;QACP,IAAI,MAAoC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,GAAG;iBACd,OAAO,CAAC,6EAA6E,CAAC;iBACtF,GAAG,CAAC,SAAS,CAA4C,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS;gBACT,SAAS,EAAE,sBAAsB;gBACjC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,MAAM,EAAE,uFAAuF;aAChG,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,6FAA6F;YAC7F,4FAA4F;YAC5F,0EAA0E;YAC1E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG;iBACpB,OAAO,CAAC,mEAAmE,CAAC;iBAC5E,GAAG,CAAC,SAAS,CAA6C,CAAC;YAC9D,4FAA4F;YAC5F,6FAA6F;YAC7F,kEAAkE;YAClE,IAAI,MAAM,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBACjD,SAAS;oBACT,SAAS,EAAE,sBAAsB;oBACjC,KAAK,EAAE,0CAA0C;oBACjD,MAAM,EAAE,6EAA6E;iBACtF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,yFAAyF;YACzF,0EAA0E;YAC1E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS;gBACT,SAAS,EAAE,sBAAsB;gBACjC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,MAAM,EAAE,6EAA6E;aACtF,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAED,+FAA+F;QAC/F,oDAAoD;QACpD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE;gBACtD,SAAS;gBACT,KAAK,EAAE,GAAG,CAAC,SAAS;gBACpB,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,2FAA2F;aACpG,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC7C,SAAS;YACT,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE,cAAc;SACvB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,2BAA2B;QACzB,IAAI,IAAmD,CAAC;QACxD,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,GAAG;iBACZ,OAAO,CACN;;;;sDAI4C,CAC7C;iBACA,GAAG,EAA8D,CAAC;QACvE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS,EAAE,4BAA4B;gBACvC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,MAAM,EAAE,gFAAgF;aACzF,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAC/B,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CACjD,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE;gBACzD,YAAY,EAAE,IAAI,CAAC,MAAM;gBACzB,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mDAAmD;IACnD,aAAa;QACX,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gDAAgD;IAChD,eAAe,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,+FAA+F;IAC/F,iBAAiB,CAAC,SAAiB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjC,CAAC;IAED,4CAA4C;IAE5C;;;;OAIG;IACH;;;;;;OAMG;IACH;;;;;;;;;OASG;IACH,sBAAsB,CAAC,OAAe,EAAE,SAAiB,EAAE,WAAuB,EAAE,WAAuB,EAAE,cAAsC,EAAE,cAAsC,EAAE,cAAkC;QAC7N,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,CAAC,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC;QAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,EAAE,CAAC;YACvD,8FAA8F;YAC9F,6FAA6F;YAC7F,6FAA6F;YAC7F,yFAAyF;YACzF,mFAAmF;YACnF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE;gBACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc;gBAC/C,MAAM,EAAE,wFAAwF;aACjG,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE5B,iGAAiG;QACjG,kGAAkG;QAClG,gGAAgG;QAChG,+FAA+F;QAC/F,gGAAgG;QAChG,IAAI,CAAC;YACH,IAAI,CAAC,GAAG;iBACL,OAAO,CACN;uDAC6C,CAC9C;iBACA,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EACnH,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EACnD,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EACnD,cAAc,IAAI,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,OAAO;gBACP,SAAS;gBACT,KAAK,EAAE,cAAc;gBACrB,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,2EAA2E;aACpF,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChI,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,gBAAgB,CAAC,OAAe,EAAE,SAAiB,EAAE,WAAuB;QAC1E,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC;YACpE,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,GAAG;iBACL,OAAO,CAAC,6GAA6G,CAAC;iBACtH,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,gBAAgB,CAAC,OAAe,EAAE,SAAiB;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,mGAAmG;IACnG,mBAAmB;QACjB,MAAM,GAAG,GAAkD,EAAE,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAe,EAAE,SAAiB,EAAE,MAAc;QAC1E,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACnC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3B,IAAI,MAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACtF,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,yEAAyE;gBACzE,yEAAyE;gBACzE,4FAA4F;gBAC5F,4FAA4F;gBAC5F,cAAc;gBACd,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9C,yFAAyF;oBACzF,yFAAyF;oBACzF,sEAAsE;oBACtE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE;wBAC3C,OAAO;wBACP,SAAS;wBACT,WAAW,EAAE,KAAK,CAAC,cAAc;wBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,MAAM,EAAE,wIAAwI;qBACjJ,CAAC,CAAC;oBACH,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC9B,IAAI,IAAI,KAAK,CAAC,CAAC;wBAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACnC,IAAI,CAAC;wBACH,IAAI,CAAC,GAAG;6BACL,OAAO,CAAC,6GAA6G,CAAC;6BACtH,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;oBACnD,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;4BACjD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,EAAE,qBAAqB;4BACjF,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;4BACvD,MAAM,EAAE,2EAA2E;yBACpF,CAAC,CAAC;oBACL,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE;oBACvC,OAAO;oBACP,SAAS;oBACT,WAAW,EAAE,KAAK,CAAC,cAAc;oBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;gBACH,SAAS,CAAC,0CAA0C;YACtD,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG;qBACL,OAAO,CAAC,6GAA6G,CAAC;qBACtH,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBACjD,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBAChG,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"retry-queue.js","sourceRoot":"","sources":["../src/retry-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAyEpC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAEzF,MAAM,OAAO,UAAU;IACZ,GAAG,CAAiB;IACpB,OAAO,CAAS;IACzB,uFAAuF;IACvF,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC/C,4DAA4D;IAC5D,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,6EAA6E;IAC7E,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEtD,YAAY,EAAkB,EAAE,MAAc;QAC5C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,sEAAsE;QACtE,iGAAiG;QACjG,8FAA8F;QAC9F,sDAAsD;QACtD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;KAgBb,CAAC,CAAC;QACH,+FAA+F;QAC/F,2FAA2F;QAC3F,qDAAqD;QACrD;;;;;;;;WAQG;QACH,KAAK,MAAM,GAAG,IAAI;YAChB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;YACzC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;YACzC,2FAA2F;YAC3F,4FAA4F;YAC5F,kFAAkF;YAClF,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;SAC3C,EAAE,CAAC;YACF,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE,MAAM,GAAG,CAAC;YACrD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;;KAGb,CAAC,CAAC;QACH,2FAA2F;QAC3F,kGAAkG;QAClG,EAAE;QACF,kGAAkG;QAClG,0FAA0F;QAC1F,2FAA2F;QAC3F,uFAAuF;QACvF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;;KAGb,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,GAAG,CAAC,OAAe,EAAE,SAAiB;QACpC,OAAO,GAAG,OAAO,OAAO,SAAS,EAAE,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG;aAClB,OAAO,CAAC,4NAA4N,CAAC;aACrO,GAAG,EAaF,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC3B,4FAA4F;gBAC5F,yFAAyF;gBACzF,8FAA8F;gBAC9F,gGAAgG;gBAChG,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE;wBACpD,SAAS,EAAE,GAAG,CAAC,UAAU;wBACzB,KAAK,EAAE,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,SAAS;wBAC5C,MAAM,EAAE,wDAAwD;qBACjE,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAyB;oBAClC,OAAO,EAAE,GAAG,CAAC,QAAQ;oBACrB,SAAS,EAAE,GAAG,CAAC,UAAU;oBACzB,cAAc,EAAE,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,SAAS;oBACrD,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC9D,yFAAyF;oBACzF,qFAAqF;oBACrF,cAAc,EAAE,GAAG,CAAC,gBAAgB,IAAI,SAAS;oBACjD,cAAc,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtF,cAAc,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtF,QAAQ,EAAE,GAAG,CAAC,SAAS;oBACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ;iBACvB,CAAC;gBACF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACnD,qFAAqF;gBACrF,wFAAwF;gBACxF,8EAA8E;gBAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,GAAG,CAAC,QAAQ,GAAG,WAAW;oBAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC7E,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;oBAAC,CAAC,GAAG,EAAE,CAAC;oBAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACd,SAAS;YACX,CAAC;YAED,sFAAsF;YACtF,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,GAAG,CAAC,QAAQ,GAAG,UAAU;gBAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAExF,MAAM,KAAK,GAAoB;gBAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;gBACzB,QAAQ,EAAE,GAAG,CAAC,SAAS;gBACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC9D,QAAQ,EAAE,GAAG,CAAC,SAAS;gBACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAC;YAEF,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH;;;OAGG;IACH,SAAS,CAAC,CAAa;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,SAAS,CAAC,CAAa;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,SAAiB,EAAE,KAAiB,EAAE,WAAuB;QACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,YAAY,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC5C,CAAC;QAED,4CAA4C;QAC5C,IAAI,YAAY,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,iBAAiB;YACjB,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG;qBACL,OAAO,CAAC,+DAA+D,CAAC;qBACxE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBACjD,SAAS;oBACT,KAAK,EAAE,MAAM,CAAC,QAAQ;oBACtB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;YACD,+CAA+C;YAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACzC,SAAS;gBACT,KAAK,EAAE,MAAM,CAAC,QAAQ;gBACtB,UAAU,EAAE,eAAe;aAC5B,CAAC,CAAC;YACH,wBAAwB;YACxB,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAED,wBAAwB;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAoB;YAC7B,SAAS;YACT,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,YAAY;SACvB,CAAC;QAEF,uBAAuB;QACvB,IAAI,CAAC;YACH,IAAI,CAAC,GAAG;iBACL,OAAO,CACN;qCAC2B,CAC5B;iBACA,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS;gBACT,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,qEAAqE;QACvE,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACxC,SAAS;YACT,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,YAAY,CAAC,MAAM;SAChC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,MAAgB;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,sEAAsE;QACtE,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE/C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,uEAAuE;gBACvE,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,IAAI,CAAC,GAAG;yBACL,OAAO,CAAC,4EAA4E,CAAC;yBACrF,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;wBACjD,SAAS;wBACT,KAAK,EAAE,KAAK,CAAC,QAAQ;wBACrB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC;gBACD,+DAA+D;gBAC/D,MAAM;YACR,CAAC;YAED,0BAA0B;YAC1B,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG;qBACL,OAAO,CAAC,gEAAgE,CAAC;qBACzE,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBACjD,SAAS;oBACT,KAAK,EAAE,KAAK,CAAC,QAAQ;oBACrB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;YAED,qBAAqB;YACrB,YAAY,CAAC,KAAK,EAAE,CAAC;YAErB,iCAAiC;YACjC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YAEzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC3C,SAAS;gBACT,KAAK,EAAE,KAAK,CAAC,QAAQ;gBACrB,aAAa;aACd,CAAC,CAAC;YAEH,SAAS,EAAE,CAAC;QACd,CAAC;QAED,6BAA6B;QAC7B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,SAAiB,EAAE,cAAsC;QAC3E,gGAAgG;QAChG,4FAA4F;QAC5F,6FAA6F;QAC7F,8FAA8F;QAC9F,+FAA+F;QAC/F,OAAO;QACP,IAAI,MAAoC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,GAAG;iBACd,OAAO,CAAC,6EAA6E,CAAC;iBACtF,GAAG,CAAC,SAAS,CAA4C,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS;gBACT,SAAS,EAAE,sBAAsB;gBACjC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,MAAM,EAAE,uFAAuF;aAChG,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,6FAA6F;YAC7F,4FAA4F;YAC5F,0EAA0E;YAC1E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG;iBACpB,OAAO,CAAC,mEAAmE,CAAC;iBAC5E,GAAG,CAAC,SAAS,CAA6C,CAAC;YAC9D,4FAA4F;YAC5F,6FAA6F;YAC7F,kEAAkE;YAClE,IAAI,MAAM,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBACjD,SAAS;oBACT,SAAS,EAAE,sBAAsB;oBACjC,KAAK,EAAE,0CAA0C;oBACjD,MAAM,EAAE,6EAA6E;iBACtF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,yFAAyF;YACzF,0EAA0E;YAC1E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS;gBACT,SAAS,EAAE,sBAAsB;gBACjC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,MAAM,EAAE,6EAA6E;aACtF,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAED,+FAA+F;QAC/F,oDAAoD;QACpD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE;gBACtD,SAAS;gBACT,KAAK,EAAE,GAAG,CAAC,SAAS;gBACpB,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,2FAA2F;aACpG,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC7C,SAAS;YACT,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE,cAAc;SACvB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,2BAA2B;QACzB,IAAI,IAAmD,CAAC;QACxD,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,GAAG;iBACZ,OAAO,CACN;;;;sDAI4C,CAC7C;iBACA,GAAG,EAA8D,CAAC;QACvE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS,EAAE,4BAA4B;gBACvC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,MAAM,EAAE,gFAAgF;aACzF,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAC/B,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CACjD,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE;gBACzD,YAAY,EAAE,IAAI,CAAC,MAAM;gBACzB,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mDAAmD;IACnD,aAAa;QACX,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gDAAgD;IAChD,eAAe,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,+FAA+F;IAC/F,iBAAiB,CAAC,SAAiB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjC,CAAC;IAED,4CAA4C;IAE5C;;;;OAIG;IACH;;;;;;OAMG;IACH;;;;;;;;;OASG;IACH,sBAAsB,CAAC,OAAe,EAAE,SAAiB,EAAE,WAAuB,EAAE,WAAuB,EAAE,cAAsC,EAAE,cAAsC,EAAE,cAAkC;QAC7N,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,CAAC,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC;QAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,EAAE,CAAC;YACvD,8FAA8F;YAC9F,6FAA6F;YAC7F,6FAA6F;YAC7F,yFAAyF;YACzF,mFAAmF;YACnF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE;gBACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc;gBAC/C,MAAM,EAAE,wFAAwF;aACjG,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE5B,iGAAiG;QACjG,kGAAkG;QAClG,gGAAgG;QAChG,+FAA+F;QAC/F,gGAAgG;QAChG,IAAI,CAAC;YACH,IAAI,CAAC,GAAG;iBACL,OAAO,CACN;uDAC6C,CAC9C;iBACA,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EACnH,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EACnD,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EACnD,cAAc,IAAI,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,OAAO;gBACP,SAAS;gBACT,KAAK,EAAE,cAAc;gBACrB,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,2EAA2E;aACpF,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChI,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,gBAAgB,CAAC,OAAe,EAAE,SAAiB,EAAE,WAAuB;QAC1E,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC;YACpE,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,GAAG;iBACL,OAAO,CAAC,6GAA6G,CAAC;iBACtH,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACjD,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,gBAAgB,CAAC,OAAe,EAAE,SAAiB;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,mGAAmG;IACnG,mBAAmB;QACjB,MAAM,GAAG,GAAkD,EAAE,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CACvB,OAAe,EACf,SAAiB,EACjB,MAAc;IACd;;;;;;;;OAQG;IACH,YAA6C;QAE7C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACnC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3B,IAAI,MAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACtF,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;oBACjE,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBACnE,CAAC;gBACD,yEAAyE;gBACzE,yEAAyE;gBACzE,4FAA4F;gBAC5F,4FAA4F;gBAC5F,cAAc;gBACd,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9C,yFAAyF;oBACzF,yFAAyF;oBACzF,sEAAsE;oBACtE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE;wBAC3C,OAAO;wBACP,SAAS;wBACT,WAAW,EAAE,KAAK,CAAC,cAAc;wBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,MAAM,EAAE,wIAAwI;qBACjJ,CAAC,CAAC;oBACH,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC9B,IAAI,IAAI,KAAK,CAAC,CAAC;wBAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACnC,IAAI,CAAC;wBACH,IAAI,CAAC,GAAG;6BACL,OAAO,CAAC,6GAA6G,CAAC;6BACtH,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;oBACnD,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;4BACjD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,EAAE,qBAAqB;4BACjF,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;4BACvD,MAAM,EAAE,2EAA2E;yBACpF,CAAC,CAAC;oBACL,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE;oBACvC,OAAO;oBACP,SAAS;oBACT,WAAW,EAAE,KAAK,CAAC,cAAc;oBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;gBACH,SAAS,CAAC,0CAA0C;YACtD,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG;qBACL,OAAO,CAAC,6GAA6G,CAAC;qBACtH,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBACjD,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBAChG,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,wEAAwE;QACxE,IAAI,eAAe,GAAG,CAAC;YAAE,YAAY,EAAE,CAAC,eAAe,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -18,11 +18,36 @@ import type { Logger } from "./types.js";
|
|
|
18
18
|
export type SealCompletion = {
|
|
19
19
|
rootHex: string;
|
|
20
20
|
legibility?: unknown;
|
|
21
|
-
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* `guidance` — `DOD-M15-SEALPARTIES-1`. A refusal used to have exactly one producer (this
|
|
24
|
+
* daemon's own root check), so the close handler could hardcode the remedy. There are now two,
|
|
25
|
+
* and the DIRECTORY's refusals have causes this side cannot infer — a counterparty who approved
|
|
26
|
+
* nothing, two participants who approved different transcripts. The party that knows the cause
|
|
27
|
+
* writes the remedy; a close handler guessing it would print the wrong next step confidently.
|
|
28
|
+
*/
|
|
29
|
+
| {
|
|
22
30
|
refused: true;
|
|
23
31
|
reason: string;
|
|
24
32
|
detail: string;
|
|
25
33
|
ownRootHex: string | null;
|
|
34
|
+
guidance?: string;
|
|
35
|
+
/**
|
|
36
|
+
* WHO refused, and it decides whether the close is over — `DOD-M15-SEALPARTIES-1`, review F1.
|
|
37
|
+
*
|
|
38
|
+
* `"local"` — THIS daemon refused a certificate whose root does not describe its conversation.
|
|
39
|
+
* Terminal: there is nothing further to ask for, and the operator is told so.
|
|
40
|
+
*
|
|
41
|
+
* `"directory"` — the DIRECTORY refused to certify. The seal did not happen, and that is not
|
|
42
|
+
* the same as "no receipt is obtainable": the honest party's own carried chain can still be
|
|
43
|
+
* notarized the solo way. Before this field existed both landed on the same terminal branch,
|
|
44
|
+
* which took a receipt away from a party who used to get one after the eleven-minute wait —
|
|
45
|
+
* the exact trap the order names, arriving through the refusal listener rather than through
|
|
46
|
+
* the approval requirement.
|
|
47
|
+
*
|
|
48
|
+
* Optional so the pre-existing local producer keeps its shape; absent reads as `"local"`.
|
|
49
|
+
*/
|
|
50
|
+
source?: "local" | "directory";
|
|
26
51
|
};
|
|
27
52
|
/**
|
|
28
53
|
* SESSION-002 / M8B FINDING-3: a unilateral seal carries the legibility certificate so the close
|
|
@@ -31,6 +56,15 @@ export type SealCompletion = {
|
|
|
31
56
|
* seal_unilateral_too_early countdown, so the close can tell the operator WHEN a unilateral seal
|
|
32
57
|
* becomes available.
|
|
33
58
|
*/
|
|
59
|
+
/**
|
|
60
|
+
* WHICH "not now" the directory meant — `DOD-M15-UNILATERAL-1`, review F1.
|
|
61
|
+
*
|
|
62
|
+
* The three refusals share one frame because the client's behaviour is the same for all of them
|
|
63
|
+
* (the session is intact, retry, never force-abandon). They do NOT share guidance: whether waiting
|
|
64
|
+
* will ever help is different in each, and telling someone to wait out a grace window that expired
|
|
65
|
+
* two hours ago is worse than saying nothing.
|
|
66
|
+
*/
|
|
67
|
+
export type UnilateralRefusalCause = "too_early" | "counterparty_present" | "high_stakes_evidence_required";
|
|
34
68
|
export type UnilateralResult = {
|
|
35
69
|
ok: true;
|
|
36
70
|
sealedRootHex: string;
|
|
@@ -39,6 +73,7 @@ export type UnilateralResult = {
|
|
|
39
73
|
ok: false;
|
|
40
74
|
reason: string;
|
|
41
75
|
remainingSeconds?: number;
|
|
76
|
+
cause?: UnilateralRefusalCause;
|
|
42
77
|
};
|
|
43
78
|
export interface SealCoordinatorDeps {
|
|
44
79
|
logger: Logger;
|
|
@@ -52,7 +87,22 @@ export interface SealCoordinatorDeps {
|
|
|
52
87
|
* sealed root. It never co-signs content it could not verify.
|
|
53
88
|
*/
|
|
54
89
|
recoverContent: (agentName: string) => Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* DOD-M15-SEALPARTIES-1: record a seal that ended without a receipt, so the answer survives the
|
|
92
|
+
* close call that is waiting on it. Clause 6 asks for the refusal on TWO surfaces — the response
|
|
93
|
+
* and the session record — and the response is gone the moment the caller reads it.
|
|
94
|
+
*/
|
|
95
|
+
recordSealFailure: (agentName: string, sessionId: string, reason: string) => void;
|
|
55
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* What an operator should DO about a seal the DIRECTORY refused.
|
|
99
|
+
*
|
|
100
|
+
* Exported so the wording is testable on its own and so there is one place to keep it true. Each
|
|
101
|
+
* branch names a different next step, because each reason accuses a different party: a counterparty
|
|
102
|
+
* whose agent sent no approval, a counterparty whose record disagrees, or a relay that altered the
|
|
103
|
+
* leaf set. Telling all three to "compare transcripts" would send two of them somewhere useless.
|
|
104
|
+
*/
|
|
105
|
+
export declare function sealRejectionGuidance(reason: string, detail: string): string;
|
|
56
106
|
export declare function createSealCoordinator(deps: SealCoordinatorDeps): {
|
|
57
107
|
sealKey: (agentName: string, sessionId: string) => string;
|
|
58
108
|
sealInterruptedInProgress: Set<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal-coordinator.d.ts","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE
|
|
1
|
+
{"version":3,"file":"seal-coordinator.d.ts","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE;AAC3C;;;;;;GAMG;GACD;IACE,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CAChC,CAAC;AA+FN;;;;;;GAMG;AACH;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,sBAAsB,GAAG,+BAA+B,CAAC;AAwC5G,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAE7F,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,uEAAuE;IACvE,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,yBAAyB,CAAC;IACjE,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAC/D;;;;OAIG;IACH,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACnF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAsC5E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB;yBAOjC,MAAM,aAAa,MAAM,KAAG,MAAM;;iDAYN,cAAc,KAAK,IAAI;8CAsR1B,gBAAgB,KAAK,IAAI;uCAwdpC,gBAAgB,aAAa,MAAM,kBAAkB,MAAM,KAAG,MAAM,IAAI;EAoBnH"}
|