@freqhole/reliquary 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/dist/automerge/acl-filtering.d.ts +87 -0
  2. package/dist/automerge/acl-filtering.d.ts.map +1 -0
  3. package/dist/automerge/acl-filtering.js +138 -0
  4. package/dist/automerge/acl-filtering.test.d.ts +2 -0
  5. package/dist/automerge/acl-filtering.test.d.ts.map +1 -0
  6. package/dist/automerge/acl-filtering.test.js +302 -0
  7. package/dist/automerge/index.d.ts +5 -0
  8. package/dist/automerge/index.d.ts.map +1 -0
  9. package/dist/automerge/index.js +7 -0
  10. package/dist/automerge/iroh-network-adapter.d.ts +178 -0
  11. package/dist/automerge/iroh-network-adapter.d.ts.map +1 -0
  12. package/dist/automerge/iroh-network-adapter.js +691 -0
  13. package/dist/automerge/iroh-network-adapter.test.d.ts +2 -0
  14. package/dist/automerge/iroh-network-adapter.test.d.ts.map +1 -0
  15. package/dist/automerge/iroh-network-adapter.test.js +818 -0
  16. package/dist/automerge/types.d.ts +66 -0
  17. package/dist/automerge/types.d.ts.map +1 -0
  18. package/dist/automerge/types.js +10 -0
  19. package/dist/blobs/bytes-backend.d.ts +41 -0
  20. package/dist/blobs/bytes-backend.d.ts.map +1 -0
  21. package/dist/blobs/bytes-backend.js +252 -0
  22. package/dist/blobs/bytes-backend.test.d.ts +2 -0
  23. package/dist/blobs/bytes-backend.test.d.ts.map +1 -0
  24. package/dist/blobs/bytes-backend.test.js +241 -0
  25. package/dist/blobs/db.d.ts +8 -0
  26. package/dist/blobs/db.d.ts.map +1 -0
  27. package/dist/blobs/db.js +141 -0
  28. package/dist/blobs/db.test.d.ts +2 -0
  29. package/dist/blobs/db.test.d.ts.map +1 -0
  30. package/dist/blobs/db.test.js +120 -0
  31. package/dist/blobs/index.d.ts +5 -0
  32. package/dist/blobs/index.d.ts.map +1 -0
  33. package/dist/blobs/index.js +2 -0
  34. package/dist/blobs/store.d.ts +47 -0
  35. package/dist/blobs/store.d.ts.map +1 -0
  36. package/dist/blobs/store.js +263 -0
  37. package/dist/blobs/store.test.d.ts +2 -0
  38. package/dist/blobs/store.test.d.ts.map +1 -0
  39. package/dist/blobs/store.test.js +377 -0
  40. package/dist/blobs/types.d.ts +55 -0
  41. package/dist/blobs/types.d.ts.map +1 -0
  42. package/dist/blobs/types.js +8 -0
  43. package/dist/ensure/client.d.ts +19 -0
  44. package/dist/ensure/client.d.ts.map +1 -0
  45. package/dist/ensure/client.js +74 -0
  46. package/dist/ensure/client.test.d.ts +2 -0
  47. package/dist/ensure/client.test.d.ts.map +1 -0
  48. package/dist/ensure/client.test.js +133 -0
  49. package/dist/ensure/index.d.ts +4 -0
  50. package/dist/ensure/index.d.ts.map +1 -0
  51. package/dist/ensure/index.js +4 -0
  52. package/dist/ensure/responder.d.ts +20 -0
  53. package/dist/ensure/responder.d.ts.map +1 -0
  54. package/dist/ensure/responder.js +100 -0
  55. package/dist/ensure/responder.test.d.ts +2 -0
  56. package/dist/ensure/responder.test.d.ts.map +1 -0
  57. package/dist/ensure/responder.test.js +191 -0
  58. package/dist/ensure/types.d.ts +19 -0
  59. package/dist/ensure/types.d.ts.map +1 -0
  60. package/dist/ensure/types.js +4 -0
  61. package/dist/ensure/types.test.d.ts +2 -0
  62. package/dist/ensure/types.test.d.ts.map +1 -0
  63. package/dist/ensure/types.test.js +81 -0
  64. package/dist/index.d.ts +2 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +3 -0
  67. package/dist/index.test.d.ts +2 -0
  68. package/dist/index.test.d.ts.map +1 -0
  69. package/dist/index.test.js +7 -0
  70. package/dist/solid/blob-url.d.ts +10 -0
  71. package/dist/solid/blob-url.d.ts.map +1 -0
  72. package/dist/solid/blob-url.js +34 -0
  73. package/dist/solid/blob-url.test.d.ts +2 -0
  74. package/dist/solid/blob-url.test.d.ts.map +1 -0
  75. package/dist/solid/blob-url.test.js +62 -0
  76. package/dist/solid/connection-summary.d.ts +25 -0
  77. package/dist/solid/connection-summary.d.ts.map +1 -0
  78. package/dist/solid/connection-summary.js +29 -0
  79. package/dist/solid/connection-summary.test.d.ts +2 -0
  80. package/dist/solid/connection-summary.test.d.ts.map +1 -0
  81. package/dist/solid/connection-summary.test.js +57 -0
  82. package/dist/solid/doc-store.d.ts +29 -0
  83. package/dist/solid/doc-store.d.ts.map +1 -0
  84. package/dist/solid/doc-store.js +79 -0
  85. package/dist/solid/doc-store.test.d.ts +2 -0
  86. package/dist/solid/doc-store.test.d.ts.map +1 -0
  87. package/dist/solid/doc-store.test.js +234 -0
  88. package/dist/solid/index.d.ts +4 -0
  89. package/dist/solid/index.d.ts.map +1 -0
  90. package/dist/solid/index.js +9 -0
  91. package/dist/solid/transfer-progress.d.ts +21 -0
  92. package/dist/solid/transfer-progress.d.ts.map +1 -0
  93. package/dist/solid/transfer-progress.js +32 -0
  94. package/dist/solid/transfer-progress.test.d.ts +2 -0
  95. package/dist/solid/transfer-progress.test.d.ts.map +1 -0
  96. package/dist/solid/transfer-progress.test.js +76 -0
  97. package/dist/testing/blob-fixtures.d.ts +19 -0
  98. package/dist/testing/blob-fixtures.d.ts.map +1 -0
  99. package/dist/testing/blob-fixtures.js +46 -0
  100. package/dist/testing/blob-fixtures.test.d.ts +2 -0
  101. package/dist/testing/blob-fixtures.test.d.ts.map +1 -0
  102. package/dist/testing/blob-fixtures.test.js +46 -0
  103. package/dist/testing/idb-harness.d.ts +10 -0
  104. package/dist/testing/idb-harness.d.ts.map +1 -0
  105. package/dist/testing/idb-harness.js +17 -0
  106. package/dist/testing/idb-harness.test.d.ts +2 -0
  107. package/dist/testing/idb-harness.test.d.ts.map +1 -0
  108. package/dist/testing/idb-harness.test.js +48 -0
  109. package/dist/testing/index.d.ts +7 -0
  110. package/dist/testing/index.d.ts.map +1 -0
  111. package/dist/testing/index.js +11 -0
  112. package/dist/testing/media.d.ts +15 -0
  113. package/dist/testing/media.d.ts.map +1 -0
  114. package/dist/testing/media.js +37 -0
  115. package/dist/testing/media.test.d.ts +2 -0
  116. package/dist/testing/media.test.d.ts.map +1 -0
  117. package/dist/testing/media.test.js +47 -0
  118. package/dist/testing/mock-blob-fetch.d.ts +33 -0
  119. package/dist/testing/mock-blob-fetch.d.ts.map +1 -0
  120. package/dist/testing/mock-blob-fetch.js +39 -0
  121. package/dist/testing/mock-blob-fetch.test.d.ts +2 -0
  122. package/dist/testing/mock-blob-fetch.test.d.ts.map +1 -0
  123. package/dist/testing/mock-blob-fetch.test.js +65 -0
  124. package/dist/testing/mock-node.d.ts +36 -0
  125. package/dist/testing/mock-node.d.ts.map +1 -0
  126. package/dist/testing/mock-node.js +97 -0
  127. package/dist/testing/mock-node.test.d.ts +2 -0
  128. package/dist/testing/mock-node.test.d.ts.map +1 -0
  129. package/dist/testing/mock-node.test.js +66 -0
  130. package/dist/testing/streams.d.ts +68 -0
  131. package/dist/testing/streams.d.ts.map +1 -0
  132. package/dist/testing/streams.js +99 -0
  133. package/dist/testing/streams.test.d.ts +2 -0
  134. package/dist/testing/streams.test.d.ts.map +1 -0
  135. package/dist/testing/streams.test.js +82 -0
  136. package/dist/transfer/cancellation.d.ts +8 -0
  137. package/dist/transfer/cancellation.d.ts.map +1 -0
  138. package/dist/transfer/cancellation.js +19 -0
  139. package/dist/transfer/index.d.ts +8 -0
  140. package/dist/transfer/index.d.ts.map +1 -0
  141. package/dist/transfer/index.js +4 -0
  142. package/dist/transfer/prefetch.d.ts +38 -0
  143. package/dist/transfer/prefetch.d.ts.map +1 -0
  144. package/dist/transfer/prefetch.js +61 -0
  145. package/dist/transfer/prefetch.test.d.ts +2 -0
  146. package/dist/transfer/prefetch.test.d.ts.map +1 -0
  147. package/dist/transfer/prefetch.test.js +136 -0
  148. package/dist/transfer/serve.d.ts +66 -0
  149. package/dist/transfer/serve.d.ts.map +1 -0
  150. package/dist/transfer/serve.js +126 -0
  151. package/dist/transfer/serve.test.d.ts +2 -0
  152. package/dist/transfer/serve.test.d.ts.map +1 -0
  153. package/dist/transfer/serve.test.js +101 -0
  154. package/dist/transfer/snatch.d.ts +39 -0
  155. package/dist/transfer/snatch.d.ts.map +1 -0
  156. package/dist/transfer/snatch.js +289 -0
  157. package/dist/transfer/snatch.test.d.ts +2 -0
  158. package/dist/transfer/snatch.test.d.ts.map +1 -0
  159. package/dist/transfer/snatch.test.js +337 -0
  160. package/dist/transfer/types.d.ts +85 -0
  161. package/dist/transfer/types.d.ts.map +1 -0
  162. package/dist/transfer/types.js +15 -0
  163. package/dist/utils/hash.d.ts +13 -0
  164. package/dist/utils/hash.d.ts.map +1 -0
  165. package/dist/utils/hash.js +31 -0
  166. package/dist/utils/hash.test.d.ts +2 -0
  167. package/dist/utils/hash.test.d.ts.map +1 -0
  168. package/dist/utils/hash.test.js +56 -0
  169. package/dist/utils/image-utils.d.ts +28 -0
  170. package/dist/utils/image-utils.d.ts.map +1 -0
  171. package/dist/utils/image-utils.js +113 -0
  172. package/dist/utils/image-utils.test.d.ts +2 -0
  173. package/dist/utils/image-utils.test.d.ts.map +1 -0
  174. package/dist/utils/image-utils.test.js +181 -0
  175. package/dist/utils/index.d.ts +4 -0
  176. package/dist/utils/index.d.ts.map +1 -0
  177. package/dist/utils/index.js +3 -0
  178. package/dist/utils/log.d.ts +22 -0
  179. package/dist/utils/log.d.ts.map +1 -0
  180. package/dist/utils/log.js +100 -0
  181. package/dist/utils/log.test.d.ts +2 -0
  182. package/dist/utils/log.test.d.ts.map +1 -0
  183. package/dist/utils/log.test.js +113 -0
  184. package/dist/worker/blob-worker-client.d.ts +118 -0
  185. package/dist/worker/blob-worker-client.d.ts.map +1 -0
  186. package/dist/worker/blob-worker-client.js +361 -0
  187. package/dist/worker/blob-worker-client.test.d.ts +2 -0
  188. package/dist/worker/blob-worker-client.test.d.ts.map +1 -0
  189. package/dist/worker/blob-worker-client.test.js +137 -0
  190. package/dist/worker/blob-worker-logic.d.ts +120 -0
  191. package/dist/worker/blob-worker-logic.d.ts.map +1 -0
  192. package/dist/worker/blob-worker-logic.js +368 -0
  193. package/dist/worker/blob-worker-logic.test.d.ts +2 -0
  194. package/dist/worker/blob-worker-logic.test.d.ts.map +1 -0
  195. package/dist/worker/blob-worker-logic.test.js +191 -0
  196. package/dist/worker/blob-worker.d.ts +21 -0
  197. package/dist/worker/blob-worker.d.ts.map +1 -0
  198. package/dist/worker/blob-worker.js +44 -0
  199. package/dist/worker/index.d.ts +12 -0
  200. package/dist/worker/index.d.ts.map +1 -0
  201. package/dist/worker/index.js +6 -0
  202. package/dist/worker/midden-blake3.d.ts +23 -0
  203. package/dist/worker/midden-blake3.d.ts.map +1 -0
  204. package/dist/worker/midden-blake3.js +47 -0
  205. package/dist/worker/midden-blake3.test.d.ts +2 -0
  206. package/dist/worker/midden-blake3.test.d.ts.map +1 -0
  207. package/dist/worker/midden-blake3.test.js +25 -0
  208. package/dist/worker/midden-not-bundled.stub.d.ts +1 -0
  209. package/dist/worker/midden-not-bundled.stub.d.ts.map +1 -0
  210. package/dist/worker/midden-not-bundled.stub.js +10 -0
  211. package/dist/worker/midden-stub.d.ts +10 -0
  212. package/dist/worker/midden-stub.d.ts.map +1 -0
  213. package/dist/worker/midden-stub.js +31 -0
  214. package/dist/worker/midden-stub.test.d.ts +2 -0
  215. package/dist/worker/midden-stub.test.d.ts.map +1 -0
  216. package/dist/worker/midden-stub.test.js +25 -0
  217. package/dist/worker/midden-worker-client.d.ts +103 -0
  218. package/dist/worker/midden-worker-client.d.ts.map +1 -0
  219. package/dist/worker/midden-worker-client.js +246 -0
  220. package/dist/worker/midden-worker-client.test.d.ts +2 -0
  221. package/dist/worker/midden-worker-client.test.d.ts.map +1 -0
  222. package/dist/worker/midden-worker-client.test.js +151 -0
  223. package/dist/worker/midden-worker-contract.d.ts +87 -0
  224. package/dist/worker/midden-worker-contract.d.ts.map +1 -0
  225. package/dist/worker/midden-worker-contract.js +30 -0
  226. package/package.json +90 -0
@@ -0,0 +1,178 @@
1
+ import { NetworkAdapter, type Message, type PeerId, type PeerMetadata } from "@automerge/automerge-repo";
2
+ import type { BiStreamLike, ConnectionSummary, EndpointState, IrohNetworkAdapterOptions, MiddenStreamNode } from "./types.js";
3
+ export type { BiStreamLike, ConnectionSummary, EndpointState, IrohNetworkAdapterOptions, MiddenStreamNode };
4
+ /** ALPN protocol identifier for automerge-repo sync over iroh. */
5
+ export declare const SYNC_ALPN = "iroh/automerge-repo/1";
6
+ /**
7
+ * automerge-repo NetworkAdapter that uses iroh QUIC streams for transport.
8
+ *
9
+ * usage:
10
+ * const adapter = new IrohNetworkAdapter({
11
+ * getNode: () => getMiddenNode(),
12
+ * getIdentity: () => getStoredIdentity(),
13
+ * onIdentityChange: (cb) => subscribeToIdentityChanges(cb),
14
+ * });
15
+ * const repo = new Repo({ network: [broadcastAdapter, adapter] });
16
+ * // later, to connect to a peer:
17
+ * await adapter.addPeer("abc123...def");
18
+ */
19
+ export declare class IrohNetworkAdapter extends NetworkAdapter {
20
+ private readonly opts;
21
+ private readonly syncAlpn;
22
+ private midden;
23
+ private streams;
24
+ private readLoops;
25
+ private _ready;
26
+ private _readyPromise;
27
+ private _resolveReady;
28
+ private _disconnected;
29
+ private _acceptLoopRunning;
30
+ private identityUnsub;
31
+ /** peers explicitly added via addPeer() that we should stay connected to. */
32
+ private intendedPeers;
33
+ /** per-peer reconnection state tracking attempt count and pending timer. */
34
+ private reconnectState;
35
+ /** listeners for connection state changes. */
36
+ private connectionStateListeners;
37
+ /** peers that exceeded max reconnection attempts. */
38
+ private failedPeers;
39
+ /** external handlers registered for non-sync ALPNs via registerAlpnHandler(). */
40
+ private alpnHandlers;
41
+ /** listeners notified when a peer stream is established. */
42
+ private peerConnectListeners;
43
+ /** listeners notified when a peer stream is removed. */
44
+ private peerDisconnectListeners;
45
+ private _stopped;
46
+ private _endpointState;
47
+ private endpointStateListeners;
48
+ constructor(opts: IrohNetworkAdapterOptions);
49
+ isReady(): boolean;
50
+ whenReady(): Promise<void>;
51
+ /**
52
+ * called by the Repo to start the adapter.
53
+ *
54
+ * marks the adapter ready (so automerge-repo can use it immediately)
55
+ * and begins transport setup if an identity already exists.
56
+ */
57
+ connect(peerId: PeerId, peerMetadata?: PeerMetadata): void;
58
+ /**
59
+ * send a message to a peer.
60
+ *
61
+ * CBOR-encodes the message and writes it as a length-delimited frame
62
+ * to the peer's QUIC stream.
63
+ */
64
+ send(message: Message): void;
65
+ /**
66
+ * disconnect from all peers and stop accepting connections.
67
+ */
68
+ disconnect(): void;
69
+ /**
70
+ * connect to a peer by node ID.
71
+ *
72
+ * opens a bidirectional QUIC stream to the peer on the automerge sync
73
+ * ALPN, starts a read loop, and emits a peer-candidate event so
74
+ * automerge-repo begins syncing with this peer.
75
+ */
76
+ addPeer(nodeId: string): Promise<void>;
77
+ /**
78
+ * dial a peer with a short retry loop for the initial connection attempt.
79
+ *
80
+ * discovery (relay-assisted address exchange) can lag a peer's node-id
81
+ * registration by a second or so right after both endpoints come
82
+ * online - dialing during that window fails with "no addressing
83
+ * information available" even though the peer is reachable moments
84
+ * later. retry a handful of times with a short fixed delay before
85
+ * giving up; this is a much tighter loop than the general reconnect
86
+ * backoff below, which is for peers that were connected and then
87
+ * dropped.
88
+ */
89
+ private openBiWithRetry;
90
+ /**
91
+ * stop maintaining a connection to a peer.
92
+ *
93
+ * removes the peer from intendedPeers, cancels any pending reconnection,
94
+ * and closes any existing stream. use this when you intentionally want
95
+ * to stop connecting to a peer (as opposed to a transient failure).
96
+ */
97
+ forgetPeer(nodeId: string): void;
98
+ /** check whether we have an active stream to a peer (transport-level connectivity check). */
99
+ isConnected(nodeId: string): boolean;
100
+ /**
101
+ * get a summary of the current connection state.
102
+ * used by the UI to show stoplight-style indicators.
103
+ */
104
+ getConnectionSummary(): ConnectionSummary;
105
+ /**
106
+ * subscribe to connection state changes.
107
+ * fires whenever a peer connects, disconnects, starts reconnecting,
108
+ * or gives up. returns an unsubscribe function.
109
+ */
110
+ onConnectionStateChange(handler: () => void): () => void;
111
+ /**
112
+ * subscribe to peer connect events. fires when a stream is
113
+ * successfully established with a peer. returns an unsubscribe function.
114
+ */
115
+ onPeerConnect(handler: (peerId: string) => void): () => void;
116
+ /**
117
+ * subscribe to peer disconnect events. fires when a peer's stream
118
+ * is removed (closed or errored). returns an unsubscribe function.
119
+ */
120
+ onPeerDisconnect(handler: (peerId: string) => void): () => void;
121
+ /**
122
+ * retry connection to all failed peers.
123
+ * re-adds them to intendedPeers and starts fresh reconnection attempts.
124
+ */
125
+ retryFailedPeers(): void;
126
+ /** get the current iroh endpoint state for UI display. */
127
+ getEndpointState(): EndpointState;
128
+ /** subscribe to endpoint state changes; returns an unsubscribe function. */
129
+ onEndpointStateChange(handler: (state: EndpointState) => void): () => void;
130
+ /**
131
+ * stop all P2P transport gracefully.
132
+ * closes all peer streams and cancels reconnections, but preserves
133
+ * intendedPeers so restart() can reconnect them. the node reference is
134
+ * dropped so restart() creates a fresh one via getNode().
135
+ */
136
+ stop(): void;
137
+ /**
138
+ * restart the P2P transport after stop().
139
+ * re-initializes the node and reconnects all remembered peers.
140
+ */
141
+ restart(): Promise<void>;
142
+ /**
143
+ * register a handler for incoming streams with a specific ALPN.
144
+ * the accept loop will dispatch matching streams to this handler
145
+ * instead of closing them. used to support additional protocols
146
+ * alongside automerge sync without forking this adapter.
147
+ */
148
+ registerAlpnHandler(alpn: string, handler: (stream: BiStreamLike) => void): void;
149
+ /**
150
+ * get the midden stream node, initializing it lazily if needed.
151
+ * exposed for use by protocol handlers that need to open outbound
152
+ * streams on a different ALPN.
153
+ */
154
+ getNode(): Promise<MiddenStreamNode>;
155
+ private checkIdentityAndStart;
156
+ private initialize;
157
+ private ensureMidden;
158
+ private startAcceptLoop;
159
+ private registerStream;
160
+ private startReadLoop;
161
+ private removePeer;
162
+ /**
163
+ * schedule a reconnection attempt for a peer using exponential backoff
164
+ * with random jitter.
165
+ */
166
+ private scheduleReconnect;
167
+ /**
168
+ * attempt to reconnect to a peer. called by the scheduled timer from
169
+ * scheduleReconnect(). on failure, schedules the next attempt.
170
+ */
171
+ private attemptReconnect;
172
+ /** notify all connection state listeners. */
173
+ private emitConnectionStateChange;
174
+ private setEndpointState;
175
+ /** cancel and remove any pending reconnect timer for a peer. */
176
+ private clearReconnectState;
177
+ }
178
+ //# sourceMappingURL=iroh-network-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iroh-network-adapter.d.ts","sourceRoot":"","sources":["../../src/automerge/iroh-network-adapter.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,cAAc,EACd,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,CAAC;AAkB5G,kEAAkE;AAClE,eAAO,MAAM,SAAS,0BAA0B,CAAC;AASjD;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,aAAa,CAA6B;IAElD,6EAA6E;IAC7E,OAAO,CAAC,aAAa,CAAqB;IAE1C,4EAA4E;IAC5E,OAAO,CAAC,cAAc,CAGlB;IAEJ,8CAA8C;IAC9C,OAAO,CAAC,wBAAwB,CAAyB;IAEzD,qDAAqD;IACrD,OAAO,CAAC,WAAW,CAAqB;IAExC,iFAAiF;IACjF,OAAO,CAAC,YAAY,CAAqD;IAEzE,4DAA4D;IAC5D,OAAO,CAAC,oBAAoB,CAAuC;IAEnE,wDAAwD;IACxD,OAAO,CAAC,uBAAuB,CAAuC;IAEtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,sBAAsB,CAA6C;gBAE/D,IAAI,EAAE,yBAAyB;IAW3C,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;IAe1D;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAkB5B;;OAEG;IACH,UAAU,IAAI,IAAI;IAoClB;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B5C;;;;;;;;;;;OAWG;YACW,eAAe;IA0B7B;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUhC,6FAA6F;IAC7F,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC;;;OAGG;IACH,oBAAoB,IAAI,iBAAiB;IAezC;;;;OAIG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAQxD;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAQ5D;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAQ/D;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAWxB,0DAA0D;IAC1D,gBAAgB,IAAI,aAAa;IAIjC,4EAA4E;IAC5E,qBAAqB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAQ1E;;;;;OAKG;IACH,IAAI,IAAI,IAAI;IAuBZ;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAa9B;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAIhF;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAM5B,qBAAqB;YA0BrB,UAAU;YAaV,YAAY;IAM1B,OAAO,CAAC,eAAe;IA0DvB,OAAO,CAAC,cAAc;IAqEtB,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,UAAU;IAyBlB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAsDzB;;;OAGG;YACW,gBAAgB;IA8B9B,6CAA6C;IAC7C,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,gBAAgB;IAMxB,gEAAgE;IAChE,OAAO,CAAC,mBAAmB;CAS5B"}