sikiopipe 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +160 -0
- package/dist/channel/channel.d.ts +27 -0
- package/dist/channel/channel.d.ts.map +1 -0
- package/dist/channel/channel.js +63 -0
- package/dist/channel/channel.js.map +1 -0
- package/dist/endpoint/connection.d.ts +42 -0
- package/dist/endpoint/connection.d.ts.map +1 -0
- package/dist/endpoint/connection.js +408 -0
- package/dist/endpoint/connection.js.map +1 -0
- package/dist/endpoint/router.d.ts +52 -0
- package/dist/endpoint/router.d.ts.map +1 -0
- package/dist/endpoint/router.js +244 -0
- package/dist/endpoint/router.js.map +1 -0
- package/dist/index.browser.d.ts +3 -0
- package/dist/index.browser.d.ts.map +1 -0
- package/dist/index.browser.js +3 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.node.d.ts +3 -0
- package/dist/index.node.d.ts.map +1 -0
- package/dist/index.node.js +3 -0
- package/dist/index.node.js.map +1 -0
- package/dist/internal/abort.d.ts +4 -0
- package/dist/internal/abort.d.ts.map +1 -0
- package/dist/internal/abort.js +18 -0
- package/dist/internal/abort.js.map +1 -0
- package/dist/internal/asyncQueue.d.ts +16 -0
- package/dist/internal/asyncQueue.d.ts.map +1 -0
- package/dist/internal/asyncQueue.js +69 -0
- package/dist/internal/asyncQueue.js.map +1 -0
- package/dist/internal/messageChannel.d.ts +11 -0
- package/dist/internal/messageChannel.d.ts.map +1 -0
- package/dist/internal/messageChannel.js +8 -0
- package/dist/internal/messageChannel.js.map +1 -0
- package/dist/protocol/header.d.ts +29 -0
- package/dist/protocol/header.d.ts.map +1 -0
- package/dist/protocol/header.js +36 -0
- package/dist/protocol/header.js.map +1 -0
- package/dist/protocol/kinds.d.ts +17 -0
- package/dist/protocol/kinds.d.ts.map +1 -0
- package/dist/protocol/kinds.js +16 -0
- package/dist/protocol/kinds.js.map +1 -0
- package/dist/public/index.shared.d.ts +17 -0
- package/dist/public/index.shared.d.ts.map +1 -0
- package/dist/public/index.shared.js +9 -0
- package/dist/public/index.shared.js.map +1 -0
- package/dist/public/spawnWorker.browser.d.ts +7 -0
- package/dist/public/spawnWorker.browser.d.ts.map +1 -0
- package/dist/public/spawnWorker.browser.js +10 -0
- package/dist/public/spawnWorker.browser.js.map +1 -0
- package/dist/public/spawnWorker.node.d.ts +8 -0
- package/dist/public/spawnWorker.node.d.ts.map +1 -0
- package/dist/public/spawnWorker.node.js +11 -0
- package/dist/public/spawnWorker.node.js.map +1 -0
- package/dist/public/spawnWorker.shared.d.ts +9 -0
- package/dist/public/spawnWorker.shared.d.ts.map +1 -0
- package/dist/public/spawnWorker.shared.js +2 -0
- package/dist/public/spawnWorker.shared.js.map +1 -0
- package/dist/public/streams.d.ts +3 -0
- package/dist/public/streams.d.ts.map +1 -0
- package/dist/public/streams.js +54 -0
- package/dist/public/streams.js.map +1 -0
- package/dist/rpc/codec.d.ts +6 -0
- package/dist/rpc/codec.d.ts.map +1 -0
- package/dist/rpc/codec.js +12 -0
- package/dist/rpc/codec.js.map +1 -0
- package/dist/rpc/rpc.d.ts +27 -0
- package/dist/rpc/rpc.d.ts.map +1 -0
- package/dist/rpc/rpc.js +580 -0
- package/dist/rpc/rpc.js.map +1 -0
- package/dist/rpc/stream.d.ts +41 -0
- package/dist/rpc/stream.d.ts.map +1 -0
- package/dist/rpc/stream.js +233 -0
- package/dist/rpc/stream.js.map +1 -0
- package/dist/sab/blockPool.d.ts +14 -0
- package/dist/sab/blockPool.d.ts.map +1 -0
- package/dist/sab/blockPool.js +53 -0
- package/dist/sab/blockPool.js.map +1 -0
- package/dist/sab/spscRing.d.ts +16 -0
- package/dist/sab/spscRing.d.ts.map +1 -0
- package/dist/sab/spscRing.js +97 -0
- package/dist/sab/spscRing.js.map +1 -0
- package/dist/transport/createTransport.d.ts +43 -0
- package/dist/transport/createTransport.d.ts.map +1 -0
- package/dist/transport/createTransport.js +95 -0
- package/dist/transport/createTransport.js.map +1 -0
- package/dist/transport/postMessage.d.ts +51 -0
- package/dist/transport/postMessage.d.ts.map +1 -0
- package/dist/transport/postMessage.js +174 -0
- package/dist/transport/postMessage.js.map +1 -0
- package/dist/transport/sab.d.ts +54 -0
- package/dist/transport/sab.d.ts.map +1 -0
- package/dist/transport/sab.js +190 -0
- package/dist/transport/sab.js.map +1 -0
- package/dist/transport/sabEligibility.d.ts +11 -0
- package/dist/transport/sabEligibility.d.ts.map +1 -0
- package/dist/transport/sabEligibility.js +31 -0
- package/dist/transport/sabEligibility.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawnWorker.browser.d.ts","sourceRoot":"","sources":["../../src/public/spawnWorker.browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,wBAAsB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,kBAAuB;;;GAOxE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { connectToWorkerLike } from "../endpoint/connection.js";
|
|
2
|
+
export async function spawnWorker(url, opts = {}) {
|
|
3
|
+
const worker = new Worker(url, { type: "module" });
|
|
4
|
+
const conn = await connectToWorkerLike(worker, opts);
|
|
5
|
+
return Object.assign(conn, {
|
|
6
|
+
worker,
|
|
7
|
+
terminate: () => worker.terminate(),
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=spawnWorker.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawnWorker.browser.js","sourceRoot":"","sources":["../../src/public/spawnWorker.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAKhE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAQ,EAAE,OAA2B,EAAE;IACvE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,MAAM;QACN,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;KACpC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Worker } from "node:worker_threads";
|
|
2
|
+
import type { SpawnWorkerOptions } from "./spawnWorker.shared.js";
|
|
3
|
+
export type { SpawnWorkerOptions } from "./spawnWorker.shared.js";
|
|
4
|
+
export declare function spawnWorker(url: URL, opts?: SpawnWorkerOptions): Promise<import("./index.shared.js").Connection & {
|
|
5
|
+
worker: Worker;
|
|
6
|
+
terminate: () => Promise<number>;
|
|
7
|
+
}>;
|
|
8
|
+
//# sourceMappingURL=spawnWorker.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawnWorker.node.d.ts","sourceRoot":"","sources":["../../src/public/spawnWorker.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,wBAAsB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,kBAAuB;;;GAOxE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Worker } from "node:worker_threads";
|
|
2
|
+
import { connectToWorkerLike } from "../endpoint/connection.js";
|
|
3
|
+
export async function spawnWorker(url, opts = {}) {
|
|
4
|
+
const worker = new Worker(url);
|
|
5
|
+
const conn = await connectToWorkerLike(worker, opts);
|
|
6
|
+
return Object.assign(conn, {
|
|
7
|
+
worker,
|
|
8
|
+
terminate: () => worker.terminate(),
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=spawnWorker.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawnWorker.node.js","sourceRoot":"","sources":["../../src/public/spawnWorker.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAKhE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAQ,EAAE,OAA2B,EAAE;IACvE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,MAAM;QACN,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;KACpC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawnWorker.shared.d.ts","sourceRoot":"","sources":["../../src/public/spawnWorker.shared.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawnWorker.shared.js","sourceRoot":"","sources":["../../src/public/spawnWorker.shared.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/public/streams.ts"],"names":[],"mappings":"AAAA,wBAAgB,+BAA+B,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAwB9F;AAED,wBAAgB,+BAA+B,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAuBhG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export function asyncIterableFromReadableStream(stream) {
|
|
2
|
+
return {
|
|
3
|
+
async *[Symbol.asyncIterator]() {
|
|
4
|
+
const reader = stream.getReader();
|
|
5
|
+
let done = false;
|
|
6
|
+
try {
|
|
7
|
+
while (true) {
|
|
8
|
+
const result = await reader.read();
|
|
9
|
+
if (result.done) {
|
|
10
|
+
done = true;
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
yield result.value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
finally {
|
|
17
|
+
if (!done) {
|
|
18
|
+
try {
|
|
19
|
+
await reader.cancel();
|
|
20
|
+
}
|
|
21
|
+
catch { }
|
|
22
|
+
}
|
|
23
|
+
reader.releaseLock();
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function readableStreamFromAsyncIterable(iterable) {
|
|
29
|
+
const iterator = iterable[Symbol.asyncIterator]();
|
|
30
|
+
return new ReadableStream({
|
|
31
|
+
async pull(controller) {
|
|
32
|
+
try {
|
|
33
|
+
const result = await iterator.next();
|
|
34
|
+
if (result.done) {
|
|
35
|
+
controller.close();
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
controller.enqueue(result.value);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
controller.error(e);
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
async cancel() {
|
|
45
|
+
if (typeof iterator.return === "function") {
|
|
46
|
+
try {
|
|
47
|
+
await iterator.return();
|
|
48
|
+
}
|
|
49
|
+
catch { }
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=streams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/public/streams.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,+BAA+B,CAAI,MAAyB;IAC1E,OAAO;QACL,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,IAAI,CAAC;gBACH,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBACnC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChB,IAAI,GAAG,IAAI,CAAC;wBACZ,OAAO;oBACT,CAAC;oBACD,MAAM,MAAM,CAAC,KAAK,CAAC;gBACrB,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;oBACxB,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACZ,CAAC;gBACD,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAI,QAA0B;IAC3E,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAClD,OAAO,IAAI,cAAc,CAAI;QAC3B,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACrC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAChB,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBACD,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,MAAM;YACV,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/rpc/codec.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;CACpC,CAAC;AAKF,eAAO,MAAM,YAAY,EAAE,KAO1B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Decoder, Encoder } from "@msgpack/msgpack";
|
|
2
|
+
const encoder = new Encoder();
|
|
3
|
+
const decoder = new Decoder();
|
|
4
|
+
export const defaultCodec = {
|
|
5
|
+
encode(value) {
|
|
6
|
+
return encoder.encode(value);
|
|
7
|
+
},
|
|
8
|
+
decode(bytes) {
|
|
9
|
+
return decoder.decode(bytes);
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/rpc/codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAOpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,MAAM,CAAC,KAAK;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,CAAC,KAAK;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Connection } from "../endpoint/connection.js";
|
|
2
|
+
import { type Codec } from "./codec.js";
|
|
3
|
+
export type RpcOptions = {
|
|
4
|
+
codec?: Codec;
|
|
5
|
+
streamWindow?: number;
|
|
6
|
+
callTimeoutMs?: number;
|
|
7
|
+
};
|
|
8
|
+
type RemoteReturn<R> = R extends AsyncIterable<infer T> ? AsyncIterable<T> : Promise<Awaited<R>>;
|
|
9
|
+
export type Remote<T> = {
|
|
10
|
+
[K in keyof T]: T[K] extends (...args: infer A) => infer R ? (...args: A) => RemoteReturn<R> : never;
|
|
11
|
+
};
|
|
12
|
+
export type RpcClient = {
|
|
13
|
+
wrap<T>(): Remote<T>;
|
|
14
|
+
getStats(): RpcStats;
|
|
15
|
+
};
|
|
16
|
+
export type RpcServer = {
|
|
17
|
+
expose(impl: Record<string, unknown>): void;
|
|
18
|
+
};
|
|
19
|
+
export type RpcStats = {
|
|
20
|
+
pendingCalls: number;
|
|
21
|
+
activeCalls: number;
|
|
22
|
+
inboundStreams: number;
|
|
23
|
+
outboundStreams: number;
|
|
24
|
+
};
|
|
25
|
+
export declare function rpc(conn: Connection, opts?: RpcOptions): RpcClient & RpcServer;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/rpc/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAGtD,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAMF,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjG,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK;CACrG,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,QAAQ,IAAI,QAAQ,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAgB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,GAAE,UAAe,GAAG,SAAS,GAAG,SAAS,CAclF"}
|