@gadgetinc/substrate 0.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/dist/assets/kernel.wasm +0 -0
  2. package/dist/assets/manifest.json +32 -0
  3. package/dist/assets/network-driver.js +2 -0
  4. package/dist/assets/network-driver.js.map +1 -0
  5. package/dist/assets/runtime.js +264 -0
  6. package/dist/assets/runtime.js.map +1 -0
  7. package/dist/binaries.d.ts +58 -0
  8. package/dist/binaries.d.ts.map +1 -0
  9. package/dist/boot/index.d.ts +318 -0
  10. package/dist/boot/index.d.ts.map +1 -0
  11. package/dist/index.d.ts +8 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +4589 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/kernel/bridge.d.ts +64 -0
  16. package/dist/kernel/bridge.d.ts.map +1 -0
  17. package/dist/kernel/types.d.ts +518 -0
  18. package/dist/kernel/types.d.ts.map +1 -0
  19. package/dist/kernel/wasm.d.ts +20 -0
  20. package/dist/kernel/wasm.d.ts.map +1 -0
  21. package/dist/node/assert.d.ts +99 -0
  22. package/dist/node/assert.d.ts.map +1 -0
  23. package/dist/node/async_hooks.d.ts +88 -0
  24. package/dist/node/async_hooks.d.ts.map +1 -0
  25. package/dist/node/buffer.d.ts +62 -0
  26. package/dist/node/buffer.d.ts.map +1 -0
  27. package/dist/node/child_process.d.ts +300 -0
  28. package/dist/node/child_process.d.ts.map +1 -0
  29. package/dist/node/cluster.d.ts +37 -0
  30. package/dist/node/cluster.d.ts.map +1 -0
  31. package/dist/node/constants.d.ts +306 -0
  32. package/dist/node/constants.d.ts.map +1 -0
  33. package/dist/node/crypto.d.ts +176 -0
  34. package/dist/node/crypto.d.ts.map +1 -0
  35. package/dist/node/dgram.d.ts +44 -0
  36. package/dist/node/dgram.d.ts.map +1 -0
  37. package/dist/node/diagnostics_channel.d.ts +57 -0
  38. package/dist/node/diagnostics_channel.d.ts.map +1 -0
  39. package/dist/node/dns.d.ts +278 -0
  40. package/dist/node/dns.d.ts.map +1 -0
  41. package/dist/node/domain.d.ts +21 -0
  42. package/dist/node/domain.d.ts.map +1 -0
  43. package/dist/node/events.d.ts +54 -0
  44. package/dist/node/events.d.ts.map +1 -0
  45. package/dist/node/fs/promises.d.ts +116 -0
  46. package/dist/node/fs/promises.d.ts.map +1 -0
  47. package/dist/node/fs.d.ts +536 -0
  48. package/dist/node/fs.d.ts.map +1 -0
  49. package/dist/node/http.d.ts +471 -0
  50. package/dist/node/http.d.ts.map +1 -0
  51. package/dist/node/http2.d.ts +508 -0
  52. package/dist/node/http2.d.ts.map +1 -0
  53. package/dist/node/https.d.ts +42 -0
  54. package/dist/node/https.d.ts.map +1 -0
  55. package/dist/node/inspector.d.ts +25 -0
  56. package/dist/node/inspector.d.ts.map +1 -0
  57. package/dist/node/net.d.ts +231 -0
  58. package/dist/node/net.d.ts.map +1 -0
  59. package/dist/node/os.d.ts +318 -0
  60. package/dist/node/os.d.ts.map +1 -0
  61. package/dist/node/path.d.ts +144 -0
  62. package/dist/node/path.d.ts.map +1 -0
  63. package/dist/node/process.d.ts +105 -0
  64. package/dist/node/process.d.ts.map +1 -0
  65. package/dist/node/punycode.d.ts +34 -0
  66. package/dist/node/punycode.d.ts.map +1 -0
  67. package/dist/node/querystring.d.ts +49 -0
  68. package/dist/node/querystring.d.ts.map +1 -0
  69. package/dist/node/readline.d.ts +99 -0
  70. package/dist/node/readline.d.ts.map +1 -0
  71. package/dist/node/stream.d.ts +409 -0
  72. package/dist/node/stream.d.ts.map +1 -0
  73. package/dist/node/string_decoder.d.ts +46 -0
  74. package/dist/node/string_decoder.d.ts.map +1 -0
  75. package/dist/node/timers.d.ts +79 -0
  76. package/dist/node/timers.d.ts.map +1 -0
  77. package/dist/node/tls.d.ts +159 -0
  78. package/dist/node/tls.d.ts.map +1 -0
  79. package/dist/node/trace_events.d.ts +18 -0
  80. package/dist/node/trace_events.d.ts.map +1 -0
  81. package/dist/node/tty.d.ts +67 -0
  82. package/dist/node/tty.d.ts.map +1 -0
  83. package/dist/node/url.d.ts +85 -0
  84. package/dist/node/url.d.ts.map +1 -0
  85. package/dist/node/util.d.ts +252 -0
  86. package/dist/node/util.d.ts.map +1 -0
  87. package/dist/node/v8.d.ts +134 -0
  88. package/dist/node/v8.d.ts.map +1 -0
  89. package/dist/node/vm.d.ts +89 -0
  90. package/dist/node/vm.d.ts.map +1 -0
  91. package/dist/node/wasi.d.ts +25 -0
  92. package/dist/node/wasi.d.ts.map +1 -0
  93. package/dist/node/worker_threads.d.ts +206 -0
  94. package/dist/node/worker_threads.d.ts.map +1 -0
  95. package/dist/node/ws.d.ts +110 -0
  96. package/dist/node/ws.d.ts.map +1 -0
  97. package/dist/node/zlib.d.ts +328 -0
  98. package/dist/node/zlib.d.ts.map +1 -0
  99. package/dist/persistence/opfs-store.d.ts +93 -0
  100. package/dist/persistence/opfs-store.d.ts.map +1 -0
  101. package/dist/runtime/async-function-shim.d.ts +27 -0
  102. package/dist/runtime/async-function-shim.d.ts.map +1 -0
  103. package/dist/runtime/fs-interface.d.ts +60 -0
  104. package/dist/runtime/fs-interface.d.ts.map +1 -0
  105. package/dist/runtime/index.d.ts +113 -0
  106. package/dist/runtime/index.d.ts.map +1 -0
  107. package/dist/runtime/loader.d.ts +50 -0
  108. package/dist/runtime/loader.d.ts.map +1 -0
  109. package/dist/runtime/loaders/async-transform.d.ts +40 -0
  110. package/dist/runtime/loaders/async-transform.d.ts.map +1 -0
  111. package/dist/runtime/loaders/cjs.d.ts +37 -0
  112. package/dist/runtime/loaders/cjs.d.ts.map +1 -0
  113. package/dist/runtime/loaders/detect-module-type.d.ts +21 -0
  114. package/dist/runtime/loaders/detect-module-type.d.ts.map +1 -0
  115. package/dist/runtime/loaders/esm.d.ts +140 -0
  116. package/dist/runtime/loaders/esm.d.ts.map +1 -0
  117. package/dist/runtime/loaders/source-map-registry.d.ts +43 -0
  118. package/dist/runtime/loaders/source-map-registry.d.ts.map +1 -0
  119. package/dist/runtime/loaders/source-map.d.ts +50 -0
  120. package/dist/runtime/loaders/source-map.d.ts.map +1 -0
  121. package/dist/runtime/loaders/utils.d.ts +6 -0
  122. package/dist/runtime/loaders/utils.d.ts.map +1 -0
  123. package/dist/runtime/native-globals.d.ts +24 -0
  124. package/dist/runtime/native-globals.d.ts.map +1 -0
  125. package/dist/runtime/network-driver.d.ts +78 -0
  126. package/dist/runtime/network-driver.d.ts.map +1 -0
  127. package/dist/runtime/process-context.d.ts +96 -0
  128. package/dist/runtime/process-context.d.ts.map +1 -0
  129. package/dist/runtime/process-event-loop.d.ts +356 -0
  130. package/dist/runtime/process-event-loop.d.ts.map +1 -0
  131. package/dist/runtime/process-handler.d.ts +71 -0
  132. package/dist/runtime/process-handler.d.ts.map +1 -0
  133. package/dist/runtime/process-handlers/node.d.ts +22 -0
  134. package/dist/runtime/process-handlers/node.d.ts.map +1 -0
  135. package/dist/runtime/process-handlers/npm.d.ts +20 -0
  136. package/dist/runtime/process-handlers/npm.d.ts.map +1 -0
  137. package/dist/runtime/process-handlers/npx.d.ts +11 -0
  138. package/dist/runtime/process-handlers/npx.d.ts.map +1 -0
  139. package/dist/runtime/process-handlers/pnpm.d.ts +12 -0
  140. package/dist/runtime/process-handlers/pnpm.d.ts.map +1 -0
  141. package/dist/runtime/process-handlers/shell.d.ts +24 -0
  142. package/dist/runtime/process-handlers/shell.d.ts.map +1 -0
  143. package/dist/runtime/process-handlers/yarn.d.ts +12 -0
  144. package/dist/runtime/process-handlers/yarn.d.ts.map +1 -0
  145. package/dist/runtime/process-helpers.d.ts +17 -0
  146. package/dist/runtime/process-helpers.d.ts.map +1 -0
  147. package/dist/runtime/process-manager.d.ts +87 -0
  148. package/dist/runtime/process-manager.d.ts.map +1 -0
  149. package/dist/runtime/process-scheduler.d.ts +123 -0
  150. package/dist/runtime/process-scheduler.d.ts.map +1 -0
  151. package/dist/runtime/process-waker.d.ts +24 -0
  152. package/dist/runtime/process-waker.d.ts.map +1 -0
  153. package/dist/runtime/promise.d.ts +44 -0
  154. package/dist/runtime/promise.d.ts.map +1 -0
  155. package/dist/runtime/stack-trace.d.ts +52 -0
  156. package/dist/runtime/stack-trace.d.ts.map +1 -0
  157. package/dist/runtime/wasm-package-interceptor.d.ts +141 -0
  158. package/dist/runtime/wasm-package-interceptor.d.ts.map +1 -0
  159. package/dist/runtime/web-streams.d.ts +57 -0
  160. package/dist/runtime/web-streams.d.ts.map +1 -0
  161. package/dist/runtime/websocket.d.ts +102 -0
  162. package/dist/runtime/websocket.d.ts.map +1 -0
  163. package/dist/shim/websocket-shim-inline.d.ts +9 -0
  164. package/dist/shim/websocket-shim-inline.d.ts.map +1 -0
  165. package/dist/shim/websocket-shim.d.ts +15 -0
  166. package/dist/shim/websocket-shim.d.ts.map +1 -0
  167. package/dist/sw/index.d.ts +53 -0
  168. package/dist/sw/index.d.ts.map +1 -0
  169. package/dist/utils/debug.d.ts +75 -0
  170. package/dist/utils/debug.d.ts.map +1 -0
  171. package/dist/utils/path.d.ts +20 -0
  172. package/dist/utils/path.d.ts.map +1 -0
  173. package/dist/utils/tarball.d.ts +37 -0
  174. package/dist/utils/tarball.d.ts.map +1 -0
  175. package/dist/utils/websocket-protocol.d.ts +102 -0
  176. package/dist/utils/websocket-protocol.d.ts.map +1 -0
  177. package/dist/worker/host.d.ts +14 -0
  178. package/dist/worker/host.d.ts.map +1 -0
  179. package/dist/worker/types.d.ts +209 -0
  180. package/dist/worker/types.d.ts.map +1 -0
  181. package/package.json +53 -0
@@ -0,0 +1,471 @@
1
+ /**
2
+ * Node.js http module implementation
3
+ *
4
+ * Architecture:
5
+ * 1. JS calls kernel.net_listen(port) to create a virtual server
6
+ * 2. Service Worker intercepts HTTP requests to that port
7
+ * 3. Service Worker delivers NetAccept message to kernel with request data
8
+ * 4. Kernel emits NetAccept event → JS creates IncomingMessage + ServerResponse
9
+ * 5. User handles request, writes to ServerResponse
10
+ * 6. JS calls kernel.net_conn_write to send response
11
+ * 7. Service Worker reads outbound and responds to browser
12
+ */
13
+ import { Readable, Writable, type ReadableOptions, type WritableOptions } from "./stream.js";
14
+ import { Socket } from "./net.js";
15
+ import { Buffer } from "./buffer.js";
16
+ export interface IncomingHttpHeaders {
17
+ [header: string]: string | string[] | undefined;
18
+ }
19
+ export interface OutgoingHttpHeaders {
20
+ [header: string]: string | number | string[] | undefined;
21
+ }
22
+ export interface ServerOptions {
23
+ IncomingMessage?: typeof IncomingMessage;
24
+ ServerResponse?: typeof ServerResponse;
25
+ }
26
+ export type RequestListener = (req: IncomingMessage, res: ServerResponse) => void;
27
+ /**
28
+ * Represents an incoming HTTP request (server) or response (client).
29
+ *
30
+ * This is a pure push stream — body data is pushed externally by the
31
+ * HTTP server (which reads from the Socket) or by the HTTP client.
32
+ * This matches Node.js where the HTTP parser pushes data to IncomingMessage.
33
+ */
34
+ export declare class IncomingMessage extends Readable {
35
+ /** HTTP version */
36
+ httpVersion: string;
37
+ httpVersionMajor: number;
38
+ httpVersionMinor: number;
39
+ /** Request headers */
40
+ headers: IncomingHttpHeaders;
41
+ rawHeaders: string[];
42
+ /** HTTP trailers (headers after body) */
43
+ trailers: Record<string, string>;
44
+ rawTrailers: string[];
45
+ /** HTTP method (for requests) */
46
+ method?: string;
47
+ /** Request URL (for requests) */
48
+ url?: string;
49
+ /** Status code (for responses) */
50
+ statusCode?: number;
51
+ statusMessage?: string;
52
+ /** The socket/connection — the canonical handle to the kernel connection */
53
+ socket: Socket;
54
+ /** Whether the message has been fully received */
55
+ complete: boolean;
56
+ /** Whether the request was aborted */
57
+ aborted: boolean;
58
+ constructor(socket: Socket, options?: ReadableOptions);
59
+ /**
60
+ * Set headers from kernel NetMeta
61
+ */
62
+ _setHeaders(headers: Array<[string, string]>): void;
63
+ /**
64
+ * Push body data into this stream.
65
+ * Called by the HTTP server or client to deliver body chunks.
66
+ */
67
+ _pushFromKernel(data: Uint8Array | null): boolean;
68
+ /**
69
+ * No-op: IncomingMessage is a push stream.
70
+ * Body data is delivered externally via _pushFromKernel().
71
+ */
72
+ _read(_size: number): void;
73
+ }
74
+ /**
75
+ * Represents an HTTP response being sent back to the client
76
+ */
77
+ export declare class ServerResponse extends Writable {
78
+ /** Status code */
79
+ statusCode: number;
80
+ statusMessage: string;
81
+ /** Headers */
82
+ private _headers;
83
+ private _headersSent;
84
+ /** Connection ID from kernel */
85
+ private _connId;
86
+ /** Request that initiated this response */
87
+ req: IncomingMessage;
88
+ /** The socket/connection — same as req.socket (matches Node.js) */
89
+ socket: Socket;
90
+ constructor(connId: number, req: IncomingMessage, options?: WritableOptions);
91
+ /**
92
+ * Check if headers have been sent
93
+ */
94
+ get headersSent(): boolean;
95
+ /**
96
+ * Set a header
97
+ */
98
+ setHeader(name: string, value: string | number | string[]): this;
99
+ /**
100
+ * Get a header
101
+ */
102
+ getHeader(name: string): string | number | string[] | undefined;
103
+ /**
104
+ * Get all header names
105
+ */
106
+ getHeaderNames(): string[];
107
+ /**
108
+ * Get all headers
109
+ */
110
+ getHeaders(): OutgoingHttpHeaders;
111
+ /**
112
+ * Check if header exists
113
+ */
114
+ hasHeader(name: string): boolean;
115
+ /**
116
+ * Remove a header
117
+ */
118
+ removeHeader(name: string): void;
119
+ /**
120
+ * Write the status line and headers
121
+ */
122
+ writeHead(statusCode: number, statusMessage?: string | OutgoingHttpHeaders, headers?: OutgoingHttpHeaders): this;
123
+ /**
124
+ * Flush headers to the kernel
125
+ */
126
+ flushHeaders(): void;
127
+ /**
128
+ * Internal: send headers to kernel
129
+ */
130
+ private _sendHeaders;
131
+ /**
132
+ * Write implementation - sends data to kernel
133
+ */
134
+ _write(chunk: unknown, _encoding: string, callback: (error?: Error | null) => void): void;
135
+ /**
136
+ * Final implementation - close the connection
137
+ */
138
+ _final(callback: (error?: Error | null) => void): void;
139
+ }
140
+ type ServerEventListener = (...args: unknown[]) => void;
141
+ /**
142
+ * HTTP Server
143
+ */
144
+ export declare class Server {
145
+ private _serverId;
146
+ private _port;
147
+ private _listening;
148
+ private _events;
149
+ private _requestListener;
150
+ /** Custom IncomingMessage class */
151
+ IncomingMessage: typeof IncomingMessage;
152
+ /** Custom ServerResponse class */
153
+ ServerResponse: typeof ServerResponse;
154
+ constructor(options?: ServerOptions | RequestListener, requestListener?: RequestListener);
155
+ /**
156
+ * Add event listener
157
+ */
158
+ on(event: string, listener: ServerEventListener): this;
159
+ /**
160
+ * Add one-time event listener
161
+ */
162
+ once(event: string, listener: ServerEventListener): this;
163
+ /**
164
+ * Remove event listener
165
+ */
166
+ off(event: string, listener: ServerEventListener): this;
167
+ /**
168
+ * Alias for on()
169
+ */
170
+ addListener(event: string, listener: ServerEventListener): this;
171
+ /**
172
+ * Alias for off()
173
+ */
174
+ removeListener(event: string, listener: ServerEventListener): this;
175
+ /**
176
+ * Add event listener to the beginning of the listeners array
177
+ */
178
+ prependListener(event: string, listener: ServerEventListener): this;
179
+ /**
180
+ * Add one-time event listener to the beginning of the listeners array
181
+ */
182
+ prependOnceListener(event: string, listener: ServerEventListener): this;
183
+ /**
184
+ * Remove all listeners for an event (or all events if no event specified)
185
+ */
186
+ removeAllListeners(event?: string): this;
187
+ /**
188
+ * Get array of listeners for an event
189
+ */
190
+ listeners(event: string): ServerEventListener[];
191
+ /**
192
+ * Get count of listeners for an event
193
+ */
194
+ listenerCount(event: string): number;
195
+ /**
196
+ * Emit event
197
+ */
198
+ private emit;
199
+ /**
200
+ * Safely emit a 'request' event and handle errors by sending a 500 response.
201
+ * This ensures the response is always completed even if the handler throws.
202
+ *
203
+ * Note: We directly invoke listeners here rather than using emit() because
204
+ * we need to catch errors so we can send a 500 response.
205
+ */
206
+ private _safeEmitRequest;
207
+ /**
208
+ * Get listening status
209
+ */
210
+ get listening(): boolean;
211
+ /** Event loop this server is registered with */
212
+ private _eventLoop;
213
+ /** Timeout for idle connections (no-op in Substrate) */
214
+ keepAliveTimeout: number;
215
+ /** Timeout for receiving the complete HTTP headers (no-op in Substrate) */
216
+ headersTimeout: number;
217
+ /** Timeout for the overall request (no-op in Substrate) */
218
+ requestTimeout: number;
219
+ /** Max number of headers (no-op in Substrate) */
220
+ maxHeadersCount: number;
221
+ /** Max number of requests per socket (no-op in Substrate) */
222
+ maxRequestsPerSocket: number;
223
+ setTimeout(msecs?: number, callback?: () => void): this;
224
+ setMaxListeners(_n: number): this;
225
+ getMaxListeners(): number;
226
+ ref(): this;
227
+ unref(): this;
228
+ eventNames(): string[];
229
+ rawListeners(event: string): ServerEventListener[];
230
+ /**
231
+ * Start listening for connections
232
+ */
233
+ listen(options: {
234
+ port?: number;
235
+ host?: string;
236
+ backlog?: number;
237
+ signal?: unknown;
238
+ }, callback?: () => void): this;
239
+ listen(port: number, hostname?: string | (() => void), callback?: () => void): this;
240
+ listen(port: number, callback?: () => void): this;
241
+ /**
242
+ * Handle raw TCP connection (internal Substrate connections)
243
+ * Reads HTTP request from TCP stream and processes it
244
+ */
245
+ private _handleRawTcpConnection;
246
+ /**
247
+ * Handle NetAccept event from kernel
248
+ */
249
+ private _handleNetAccept;
250
+ /**
251
+ * Stop listening
252
+ */
253
+ close(callback?: (err?: Error) => void): this;
254
+ /**
255
+ * Get the address the server is listening on
256
+ */
257
+ address(): {
258
+ port: number;
259
+ family: string;
260
+ address: string;
261
+ } | null;
262
+ }
263
+ export interface RequestOptions {
264
+ protocol?: string;
265
+ host?: string;
266
+ hostname?: string;
267
+ port?: number | string;
268
+ path?: string;
269
+ method?: string;
270
+ headers?: OutgoingHttpHeaders;
271
+ timeout?: number;
272
+ agent?: unknown;
273
+ }
274
+ /**
275
+ * ClientRequest - represents an outgoing HTTP request
276
+ * Wraps browser fetch() API
277
+ */
278
+ export declare class ClientRequest extends Writable {
279
+ /** The request method */
280
+ method: string;
281
+ /** The request path */
282
+ path: string;
283
+ /** The request host */
284
+ host: string;
285
+ /** The request protocol */
286
+ protocol: string;
287
+ /** The request headers */
288
+ private _headers;
289
+ /** Chunks of body data */
290
+ private _bodyChunks;
291
+ /** Whether the request has been sent */
292
+ private _sent;
293
+ /** Whether the request has been aborted */
294
+ private _aborted;
295
+ /** Timeout ID */
296
+ private _timeoutId?;
297
+ /** Response callback */
298
+ private _responseCallback?;
299
+ /** Event loop for keeping the process alive during async fetch */
300
+ private _eventLoop;
301
+ constructor(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void);
302
+ /**
303
+ * Set a header
304
+ */
305
+ setHeader(name: string, value: string | number | string[]): this;
306
+ /**
307
+ * Get a header
308
+ */
309
+ getHeader(name: string): string | undefined;
310
+ /**
311
+ * Remove a header
312
+ */
313
+ removeHeader(name: string): void;
314
+ /**
315
+ * Get all headers
316
+ */
317
+ getHeaders(): Record<string, string>;
318
+ /**
319
+ * Set a timeout on the request
320
+ */
321
+ setTimeout(msecs: number, callback?: () => void): this;
322
+ /**
323
+ * Abort the request
324
+ */
325
+ abort(): void;
326
+ /**
327
+ * Write data to the request body
328
+ */
329
+ _write(chunk: Buffer | string, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
330
+ /**
331
+ * Finalize and send the request
332
+ */
333
+ _final(callback: (error?: Error | null) => void): void;
334
+ /**
335
+ * End the request (write optional data and send)
336
+ */
337
+ end(chunk?: unknown, encoding?: unknown, callback?: unknown): this;
338
+ private _sendRequest;
339
+ private _sendUpgradeRequest;
340
+ }
341
+ /**
342
+ * Make an HTTP request
343
+ */
344
+ export declare function request(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest;
345
+ export declare function request(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest;
346
+ /**
347
+ * Make an HTTP GET request (convenience method)
348
+ */
349
+ export declare function get(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest;
350
+ export declare function get(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest;
351
+ /**
352
+ * Create an HTTP server
353
+ */
354
+ export declare function createServer(options?: ServerOptions | RequestListener, requestListener?: RequestListener): Server;
355
+ export declare const METHODS: string[];
356
+ export declare const STATUS_CODES: {
357
+ [code: number]: string;
358
+ };
359
+ /** Listeners for port events */
360
+ export type PortEventListener = (event: "listen" | "close", port: number, hostname?: string) => void;
361
+ /**
362
+ * Register a listener for port events (listen/close)
363
+ * Returns an unsubscribe function
364
+ */
365
+ export declare function onPortEvent(listener: PortEventListener): () => void;
366
+ /**
367
+ * Register a server for request routing
368
+ * @internal
369
+ */
370
+ export declare function _registerServer(port: number, serverId: number, server: Server, pid: number): void;
371
+ /**
372
+ * Unregister a server
373
+ * @internal
374
+ */
375
+ export declare function _unregisterServer(port: number): void;
376
+ /**
377
+ * Clean up all servers owned by a process.
378
+ * Called when a process exits to ensure servers don't linger.
379
+ * @internal
380
+ */
381
+ export declare function _cleanupServersForPid(pid: number): void;
382
+ /**
383
+ * Get a registered server by port
384
+ * @internal
385
+ */
386
+ export declare function _getServer(port: number): {
387
+ serverId: number;
388
+ server: Server;
389
+ } | undefined;
390
+ /**
391
+ * Check if a port has a registered server
392
+ */
393
+ export declare function isListening(port: number): boolean;
394
+ /**
395
+ * Get all listening ports
396
+ */
397
+ export declare function getListeningPorts(): number[];
398
+ /**
399
+ * Make a fetch request to a Substrate virtual server.
400
+ *
401
+ * @internal This function is used internally by the worker host.
402
+ * External code should use `bootSubstrate()` from `@gadgetinc/substrate/boot`
403
+ * which provides transparent network interception via Service Workers.
404
+ *
405
+ * This function routes requests to virtual servers running in the kernel.
406
+ * It's called by the worker host when processing requests forwarded from
407
+ * the Service Worker.
408
+ *
409
+ * The request is delivered to the kernel with a driver event queue.
410
+ * The kernel emits NetOutboundWritable events when the server writes response
411
+ * data, and NetClosed when the connection is closed. This replaces the old
412
+ * blind 1ms polling approach with event-driven completion.
413
+ */
414
+ export declare function substrateFetch(input: string | URL | Request, init?: RequestInit): Promise<Response>;
415
+ export interface AgentOptions {
416
+ keepAlive?: boolean;
417
+ keepAliveMsecs?: number;
418
+ maxSockets?: number;
419
+ maxTotalSockets?: number;
420
+ maxFreeSockets?: number;
421
+ scheduling?: "fifo" | "lifo";
422
+ timeout?: number;
423
+ }
424
+ declare const Agent_base: any;
425
+ /**
426
+ * HTTP Agent - manages connection persistence and reuse
427
+ * In Substrate, we rely on browser's connection pooling via fetch()
428
+ */
429
+ export declare class Agent extends Agent_base {
430
+ maxSockets: number;
431
+ maxTotalSockets: number;
432
+ maxFreeSockets: number;
433
+ keepAliveMsecs: number;
434
+ keepAlive: boolean;
435
+ scheduling: "fifo" | "lifo";
436
+ options: AgentOptions;
437
+ requests: Record<string, unknown[]>;
438
+ sockets: Record<string, unknown[]>;
439
+ freeSockets: Record<string, unknown[]>;
440
+ constructor(options?: AgentOptions);
441
+ createConnection(_options: object, callback?: (err: Error | null, socket?: Socket) => void): Socket;
442
+ getName(options: {
443
+ host?: string;
444
+ port?: number;
445
+ localAddress?: string;
446
+ }): string;
447
+ addRequest(_req: ClientRequest, _options: object, _port?: number, _localAddress?: string): void;
448
+ destroy(): void;
449
+ }
450
+ /** Global default agent */
451
+ export declare const globalAgent: Agent;
452
+ declare const _default: {
453
+ createServer: typeof createServer;
454
+ Server: typeof Server;
455
+ IncomingMessage: typeof IncomingMessage;
456
+ ServerResponse: typeof ServerResponse;
457
+ ClientRequest: typeof ClientRequest;
458
+ request: typeof request;
459
+ get: typeof get;
460
+ METHODS: string[];
461
+ STATUS_CODES: {
462
+ [code: number]: string;
463
+ };
464
+ substrateFetch: typeof substrateFetch;
465
+ isListening: typeof isListening;
466
+ getListeningPorts: typeof getListeningPorts;
467
+ Agent: typeof Agent;
468
+ globalAgent: Agent;
469
+ };
470
+ export default _default;
471
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/node/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrC,MAAM,WAAW,mBAAmB;IAClC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;CAC1D;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;CACxC;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;AAMlF;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,mBAAmB;IACnB,WAAW,SAAS;IACpB,gBAAgB,SAAK;IACrB,gBAAgB,SAAK;IAErB,sBAAsB;IACtB,OAAO,EAAE,mBAAmB,CAAM;IAClC,UAAU,EAAE,MAAM,EAAE,CAAM;IAE1B,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IACtC,WAAW,EAAE,MAAM,EAAE,CAAM;IAE3B,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IAEf,kDAAkD;IAClD,QAAQ,UAAS;IAEjB,sCAAsC;IACtC,OAAO,UAAS;IAEhB,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,EASpD;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAelD;IAED;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAIhD;IAED;;;OAGG;IACM,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAElC;CACF;AAMD;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,kBAAkB;IAClB,UAAU,SAAO;IACjB,aAAa,SAAQ;IAErB,cAAc;IACd,OAAO,CAAC,QAAQ,CAAsD;IACtE,OAAO,CAAC,YAAY,CAAS;IAE7B,gCAAgC;IAChC,OAAO,CAAC,OAAO,CAAS;IAExB,2CAA2C;IAC3C,GAAG,EAAE,eAAe,CAAC;IAErB,qEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,eAAe,EAK1E;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAM/D;IAED;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAE9D;IAED;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE,CAEzB;IAED;;OAEG;IACH,UAAU,IAAI,mBAAmB,CAMhC;IAED;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/B;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAK/B;IAED;;OAEG;IACH,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GAAG,mBAAmB,EAC5C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,CA0BN;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,OAAO,CAAC,YAAY;IA0CpB;;OAEG;IACM,MAAM,CACb,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GACvC,IAAI,CA8BN;IAED;;OAEG;IACM,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAmB9D;CACF;AAMD,KAAK,mBAAmB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAExD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,gBAAgB,CAAgC;IAExD,mCAAmC;IACnC,eAAe,yBAAmB;IAElC,kCAAkC;IAClC,cAAc,wBAAkB;IAEhC,YAAY,OAAO,CAAC,EAAE,aAAa,GAAG,eAAe,EAAE,eAAe,CAAC,EAAE,eAAe,EAkBvF;IAED;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAQrD;IAED;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAMvD;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAMtD;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAE9D;IAED;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAEjE;IAED;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAWlE;IAED;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAMtE;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAOvC;IAED;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAG9C;IAED;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGnC;IAED;;OAEG;IACH,OAAO,CAAC,IAAI;IAWZ;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,gDAAgD;IAChD,OAAO,CAAC,UAAU,CAAuD;IAEzE,wDAAwD;IACxD,gBAAgB,SAAQ;IAExB,2EAA2E;IAC3E,cAAc,SAAS;IAEvB,2DAA2D;IAC3D,cAAc,SAAK;IAEnB,iDAAiD;IACjD,eAAe,SAAQ;IAEvB,6DAA6D;IAC7D,oBAAoB,SAAK;IAEzB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAKtD;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEhC;IAED,eAAe,IAAI,MAAM,CAExB;IAED,GAAG,IAAI,IAAI,CAEV;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,UAAU,IAAI,MAAM,EAAE,CAErB;IAED,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAEjD;IAED;;OAEG;IACH,MAAM,CACJ,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAC7E,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI,CAAC;IACR,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACpF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAsElD;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAyH/B;;OAEG;IACH,OAAO,CAAC,gBAAgB,CA0GtB;IAEF;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAwC5C;IAED;;OAEG;IACH,OAAO,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CASlE;CACF;AAMD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACzC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,OAAO,CAAC,QAAQ,CAAkC;IAElD,0BAA0B;IAC1B,OAAO,CAAC,WAAW,CAAoB;IAEvC,wCAAwC;IACxC,OAAO,CAAC,KAAK,CAAS;IAEtB,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAS;IAEzB,iBAAiB;IACjB,OAAO,CAAC,UAAU,CAAC,CAAgC;IAEnD,wBAAwB;IACxB,OAAO,CAAC,iBAAiB,CAAC,CAAiC;IAE3D,kEAAkE;IAClE,OAAO,CAAC,UAAU,CAAuD;IAEzE,YAAY,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,EAoE5F;IAED;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAO/D;IAED;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE/B;IAED;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMnC;IAED;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAkBrD;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAMZ;IAED;;OAEG;IACM,MAAM,CACb,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GACvC,IAAI,CAUN;IAED;;OAEG;IACM,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAU9D;IAED;;OAEG;IACM,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAwB1E;YAKa,YAAY;YA4JZ,mBAAmB;CAoIlC;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,GAAG,EACtC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GACxC,aAAa,CAAC;AACjB,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,EAAE,cAAc,EACvB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GACxC,aAAa,CAAC;AAqCjB;;GAEG;AACH,wBAAgB,GAAG,CACjB,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,GAAG,EACtC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GACxC,aAAa,CAAC;AACjB,wBAAgB,GAAG,CACjB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,EAAE,cAAc,EACvB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GACxC,aAAa,CAAC;AAgBjB;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,CAAC,EAAE,aAAa,GAAG,eAAe,EACzC,eAAe,CAAC,EAAE,eAAe,GAChC,MAAM,CAER;AAMD,eAAO,MAAM,OAAO,UAmCnB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAgElD,CAAC;AAYF,gCAAgC;AAChC,MAAM,MAAM,iBAAiB,GAAG,CAC9B,KAAK,EAAE,QAAQ,GAAG,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,KACd,IAAI,CAAC;AAGV;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAGnE;AAgBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAYjG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAcpD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBvD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEzF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAuOnB;AAMD,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;AAED;;;GAGG;AACH,qBAAa,KAAM,SAAQ,UAAqB;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAEvC,YAAY,OAAO,CAAC,EAAE,YAAY,EAYjC;IAED,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,GACtD,MAAM,CAOR;IAED,OAAO,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAKhF;IAED,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAE9F;IAED,OAAO,IAAI,IAAI,CAEd;CACF;AAED,2BAA2B;AAC3B,eAAO,MAAM,WAAW,OAAkC,CAAC;;;;;;;;;;;;;;;;;;;AAM3D,wBAeE"}