@powerhousedao/reactor-api 6.0.0-dev.161 → 6.0.0-dev.163
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/index.d.mts +1 -7
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +5 -9
- package/dist/index.mjs.map +1 -1
- package/dist/src/packages/https-hooks.d.mts +39 -0
- package/dist/src/packages/https-hooks.d.mts.map +1 -0
- package/dist/src/packages/https-hooks.mjs +79 -0
- package/dist/src/packages/https-hooks.mjs.map +1 -0
- package/dist/{vite-loader.d.mts → src/packages/vite-loader.d.mts} +1 -1
- package/dist/src/packages/vite-loader.d.mts.map +1 -0
- package/package.json +23 -12
- package/dist/vite-loader.d.mts.map +0 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//#region src/packages/https-hooks.d.mts
|
|
2
|
+
/**
|
|
3
|
+
* Node.js module loader hooks that enable importing from HTTP/HTTPS URLs.
|
|
4
|
+
* See: https://nodejs.org/docs/latest-v24.x/api/module.html#import-from-https
|
|
5
|
+
*/
|
|
6
|
+
type ResolveContext = {
|
|
7
|
+
parentURL?: string;
|
|
8
|
+
conditions?: string[];
|
|
9
|
+
};
|
|
10
|
+
type ResolveResult = {
|
|
11
|
+
url: string;
|
|
12
|
+
shortCircuit?: boolean;
|
|
13
|
+
format?: string;
|
|
14
|
+
};
|
|
15
|
+
type NextResolve = (specifier: string, context: ResolveContext) => Promise<ResolveResult>;
|
|
16
|
+
type LoadContext = {
|
|
17
|
+
format?: string;
|
|
18
|
+
};
|
|
19
|
+
type LoadResult = {
|
|
20
|
+
format: string;
|
|
21
|
+
shortCircuit?: boolean;
|
|
22
|
+
source: string;
|
|
23
|
+
};
|
|
24
|
+
type NextLoad = (url: string, context: LoadContext) => Promise<LoadResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve hook: resolves relative specifiers against HTTP/HTTPS parent URLs.
|
|
27
|
+
*/
|
|
28
|
+
declare function resolve(specifier: string, context: ResolveContext, nextResolve: NextResolve): Promise<ResolveResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Load hook: fetches module source from HTTP/HTTPS URLs.
|
|
31
|
+
*/
|
|
32
|
+
declare function load(url: string, context: LoadContext, nextLoad: NextLoad): Promise<LoadResult>;
|
|
33
|
+
/**
|
|
34
|
+
* Path to this hooks file for use with node:module register()
|
|
35
|
+
*/
|
|
36
|
+
declare const httpsHooksPath: string;
|
|
37
|
+
//#endregion
|
|
38
|
+
export { httpsHooksPath, load, resolve };
|
|
39
|
+
//# sourceMappingURL=https-hooks.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"https-hooks.d.mts","names":[],"sources":["../../../src/packages/https-hooks.mts"],"mappings":";;;;;KAQK,cAAA;EAAmB,SAAA;EAAoB,UAAA;AAAA;AAAA,KACvC,aAAA;EACH,GAAA;EACA,YAAA;EACA,MAAA;AAAA;AAAA,KAEG,WAAA,IACH,SAAA,UACA,OAAA,EAAS,cAAA,KACN,OAAA,CAAQ,aAAA;AAAA,KAER,WAAA;EAAgB,MAAA;AAAA;AAAA,KAChB,UAAA;EAAe,MAAA;EAAgB,YAAA;EAAwB,MAAA;AAAA;AAAA,KACvD,QAAA,IAAY,GAAA,UAAa,OAAA,EAAS,WAAA,KAAgB,OAAA,CAAQ,UAAA;;;;iBAKzC,OAAA,CACpB,SAAA,UACA,OAAA,EAAS,cAAA,EACT,WAAA,EAAa,WAAA,GACZ,OAAA,CAAQ,aAAA;;;;iBAsCW,IAAA,CACpB,GAAA,UACA,OAAA,EAAS,WAAA,EACT,QAAA,EAAU,QAAA,GACT,OAAA,CAAQ,UAAA;;;;cA0EE,cAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { get } from "node:http";
|
|
2
|
+
import { get as get$1 } from "node:https";
|
|
3
|
+
//#region src/packages/https-hooks.mts
|
|
4
|
+
/**
|
|
5
|
+
* Resolve hook: resolves relative specifiers against HTTP/HTTPS parent URLs.
|
|
6
|
+
*/
|
|
7
|
+
async function resolve(specifier, context, nextResolve) {
|
|
8
|
+
const { parentURL } = context;
|
|
9
|
+
if (specifier.startsWith("https://") || specifier.startsWith("http://")) return {
|
|
10
|
+
url: specifier,
|
|
11
|
+
shortCircuit: true,
|
|
12
|
+
format: "module"
|
|
13
|
+
};
|
|
14
|
+
if (parentURL && (parentURL.startsWith("https://") || parentURL.startsWith("http://")) && (specifier.startsWith("./") || specifier.startsWith("../"))) return {
|
|
15
|
+
url: new URL(specifier, parentURL).href,
|
|
16
|
+
shortCircuit: true,
|
|
17
|
+
format: "module"
|
|
18
|
+
};
|
|
19
|
+
if (parentURL && (parentURL.startsWith("https://") || parentURL.startsWith("http://"))) {
|
|
20
|
+
const { pathToFileURL } = await import("node:url");
|
|
21
|
+
const localParent = pathToFileURL(process.cwd() + "/").href;
|
|
22
|
+
return nextResolve(specifier, {
|
|
23
|
+
...context,
|
|
24
|
+
parentURL: localParent
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return nextResolve(specifier, context);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Load hook: fetches module source from HTTP/HTTPS URLs.
|
|
31
|
+
*/
|
|
32
|
+
async function load(url, context, nextLoad) {
|
|
33
|
+
if (url.startsWith("https://")) return {
|
|
34
|
+
format: "module",
|
|
35
|
+
shortCircuit: true,
|
|
36
|
+
source: patchCreateRequire(await fetchModule(url, get$1))
|
|
37
|
+
};
|
|
38
|
+
if (url.startsWith("http://")) return {
|
|
39
|
+
format: "module",
|
|
40
|
+
shortCircuit: true,
|
|
41
|
+
source: patchCreateRequire(await fetchModule(url, get))
|
|
42
|
+
};
|
|
43
|
+
return nextLoad(url, context);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Rewrite `createRequire(import.meta.url)` in HTTP-loaded modules so that
|
|
47
|
+
* `createRequire` receives a local file URL instead of an HTTP URL it cannot handle.
|
|
48
|
+
*/
|
|
49
|
+
function patchCreateRequire(source) {
|
|
50
|
+
return source.replace(/createRequire\(import\.meta\.url\)/g, `createRequire(new URL("file://" + process.cwd() + "/"))`);
|
|
51
|
+
}
|
|
52
|
+
function fetchModule(url, getter) {
|
|
53
|
+
return new Promise((resolve, reject) => {
|
|
54
|
+
getter(url, (res) => {
|
|
55
|
+
if (res.statusCode && res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
|
|
56
|
+
const redirectUrl = res.headers.location;
|
|
57
|
+
fetchModule(redirectUrl, redirectUrl.startsWith("https://") ? get$1 : get).then(resolve).catch(reject);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (res.statusCode && res.statusCode >= 400) {
|
|
61
|
+
reject(/* @__PURE__ */ new Error(`Failed to fetch ${url}: ${res.statusCode}`));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
let data = "";
|
|
65
|
+
res.setEncoding("utf8");
|
|
66
|
+
res.on("data", (chunk) => data += chunk);
|
|
67
|
+
res.on("end", () => resolve(data));
|
|
68
|
+
res.on("error", reject);
|
|
69
|
+
}).on("error", reject);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Path to this hooks file for use with node:module register()
|
|
74
|
+
*/
|
|
75
|
+
const httpsHooksPath = import.meta.url;
|
|
76
|
+
//#endregion
|
|
77
|
+
export { httpsHooksPath, load, resolve };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=https-hooks.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"https-hooks.mjs","names":["get","httpGet"],"sources":["../../../src/packages/https-hooks.mts"],"sourcesContent":["import { get as httpGet } from \"node:http\";\nimport { get } from \"node:https\";\n\n/**\n * Node.js module loader hooks that enable importing from HTTP/HTTPS URLs.\n * See: https://nodejs.org/docs/latest-v24.x/api/module.html#import-from-https\n */\n\ntype ResolveContext = { parentURL?: string; conditions?: string[] };\ntype ResolveResult = {\n url: string;\n shortCircuit?: boolean;\n format?: string;\n};\ntype NextResolve = (\n specifier: string,\n context: ResolveContext,\n) => Promise<ResolveResult>;\n\ntype LoadContext = { format?: string };\ntype LoadResult = { format: string; shortCircuit?: boolean; source: string };\ntype NextLoad = (url: string, context: LoadContext) => Promise<LoadResult>;\n\n/**\n * Resolve hook: resolves relative specifiers against HTTP/HTTPS parent URLs.\n */\nexport async function resolve(\n specifier: string,\n context: ResolveContext,\n nextResolve: NextResolve,\n): Promise<ResolveResult> {\n const { parentURL } = context;\n\n // If the specifier is already an HTTP(S) URL, resolve it directly\n if (specifier.startsWith(\"https://\") || specifier.startsWith(\"http://\")) {\n return { url: specifier, shortCircuit: true, format: \"module\" };\n }\n\n // If the parent is an HTTP(S) URL and specifier is relative, resolve against it.\n // Only handle relative specifiers (./ or ../), not bare package specifiers.\n if (\n parentURL &&\n (parentURL.startsWith(\"https://\") || parentURL.startsWith(\"http://\")) &&\n (specifier.startsWith(\"./\") || specifier.startsWith(\"../\"))\n ) {\n const resolved = new URL(specifier, parentURL).href;\n return { url: resolved, shortCircuit: true, format: \"module\" };\n }\n\n // For bare specifiers (e.g. \"document-model\") imported from HTTP modules,\n // Node's default resolver fails because it can't find node_modules from an HTTP parent.\n // Fall back to resolving from the process's working directory instead.\n if (\n parentURL &&\n (parentURL.startsWith(\"https://\") || parentURL.startsWith(\"http://\"))\n ) {\n const { pathToFileURL } = await import(\"node:url\");\n const localParent = pathToFileURL(process.cwd() + \"/\").href;\n return nextResolve(specifier, { ...context, parentURL: localParent });\n }\n\n // Let Node.js handle all other specifiers\n return nextResolve(specifier, context);\n}\n\n/**\n * Load hook: fetches module source from HTTP/HTTPS URLs.\n */\nexport async function load(\n url: string,\n context: LoadContext,\n nextLoad: NextLoad,\n): Promise<LoadResult> {\n // Handle HTTPS URLs\n if (url.startsWith(\"https://\")) {\n const source = await fetchModule(url, get);\n return {\n format: \"module\",\n shortCircuit: true,\n source: patchCreateRequire(source),\n };\n }\n\n // Handle HTTP URLs (for local development)\n if (url.startsWith(\"http://\")) {\n const source = await fetchModule(url, httpGet);\n return {\n format: \"module\",\n shortCircuit: true,\n source: patchCreateRequire(source),\n };\n }\n\n // Let Node.js handle all other URLs\n return nextLoad(url, context);\n}\n\n/**\n * Rewrite `createRequire(import.meta.url)` in HTTP-loaded modules so that\n * `createRequire` receives a local file URL instead of an HTTP URL it cannot handle.\n */\nfunction patchCreateRequire(source: string): string {\n return source.replace(\n /createRequire\\(import\\.meta\\.url\\)/g,\n `createRequire(new URL(\"file://\" + process.cwd() + \"/\"))`,\n );\n}\n\nfunction fetchModule(\n url: string,\n getter: typeof get | typeof httpGet,\n): Promise<string> {\n return new Promise((resolve, reject) => {\n getter(url, (res) => {\n // Handle redirects\n if (\n res.statusCode &&\n res.statusCode >= 300 &&\n res.statusCode < 400 &&\n res.headers.location\n ) {\n const redirectUrl = res.headers.location;\n const redirectGetter = redirectUrl.startsWith(\"https://\")\n ? get\n : httpGet;\n fetchModule(redirectUrl, redirectGetter).then(resolve).catch(reject);\n return;\n }\n\n if (res.statusCode && res.statusCode >= 400) {\n reject(new Error(`Failed to fetch ${url}: ${res.statusCode}`));\n return;\n }\n\n let data = \"\";\n res.setEncoding(\"utf8\");\n res.on(\"data\", (chunk) => (data += chunk));\n res.on(\"end\", () => resolve(data));\n res.on(\"error\", reject);\n }).on(\"error\", reject);\n });\n}\n\n/**\n * Path to this hooks file for use with node:module register()\n */\nexport const httpsHooksPath: string = import.meta.url;\n"],"mappings":";;;;;;AA0BA,eAAsB,QACpB,WACA,SACA,aACwB;CACxB,MAAM,EAAE,cAAc;AAGtB,KAAI,UAAU,WAAW,WAAW,IAAI,UAAU,WAAW,UAAU,CACrE,QAAO;EAAE,KAAK;EAAW,cAAc;EAAM,QAAQ;EAAU;AAKjE,KACE,cACC,UAAU,WAAW,WAAW,IAAI,UAAU,WAAW,UAAU,MACnE,UAAU,WAAW,KAAK,IAAI,UAAU,WAAW,MAAM,EAG1D,QAAO;EAAE,KADQ,IAAI,IAAI,WAAW,UAAU,CAAC;EACvB,cAAc;EAAM,QAAQ;EAAU;AAMhE,KACE,cACC,UAAU,WAAW,WAAW,IAAI,UAAU,WAAW,UAAU,GACpE;EACA,MAAM,EAAE,kBAAkB,MAAM,OAAO;EACvC,MAAM,cAAc,cAAc,QAAQ,KAAK,GAAG,IAAI,CAAC;AACvD,SAAO,YAAY,WAAW;GAAE,GAAG;GAAS,WAAW;GAAa,CAAC;;AAIvE,QAAO,YAAY,WAAW,QAAQ;;;;;AAMxC,eAAsB,KACpB,KACA,SACA,UACqB;AAErB,KAAI,IAAI,WAAW,WAAW,CAE5B,QAAO;EACL,QAAQ;EACR,cAAc;EACd,QAAQ,mBAJK,MAAM,YAAY,KAAKA,MAAI,CAIN;EACnC;AAIH,KAAI,IAAI,WAAW,UAAU,CAE3B,QAAO;EACL,QAAQ;EACR,cAAc;EACd,QAAQ,mBAJK,MAAM,YAAY,KAAKC,IAAQ,CAIV;EACnC;AAIH,QAAO,SAAS,KAAK,QAAQ;;;;;;AAO/B,SAAS,mBAAmB,QAAwB;AAClD,QAAO,OAAO,QACZ,uCACA,0DACD;;AAGH,SAAS,YACP,KACA,QACiB;AACjB,QAAO,IAAI,SAAS,SAAS,WAAW;AACtC,SAAO,MAAM,QAAQ;AAEnB,OACE,IAAI,cACJ,IAAI,cAAc,OAClB,IAAI,aAAa,OACjB,IAAI,QAAQ,UACZ;IACA,MAAM,cAAc,IAAI,QAAQ;AAIhC,gBAAY,aAHW,YAAY,WAAW,WAAW,GACrDD,QACAC,IACoC,CAAC,KAAK,QAAQ,CAAC,MAAM,OAAO;AACpE;;AAGF,OAAI,IAAI,cAAc,IAAI,cAAc,KAAK;AAC3C,2BAAO,IAAI,MAAM,mBAAmB,IAAI,IAAI,IAAI,aAAa,CAAC;AAC9D;;GAGF,IAAI,OAAO;AACX,OAAI,YAAY,OAAO;AACvB,OAAI,GAAG,SAAS,UAAW,QAAQ,MAAO;AAC1C,OAAI,GAAG,aAAa,QAAQ,KAAK,CAAC;AAClC,OAAI,GAAG,SAAS,OAAO;IACvB,CAAC,GAAG,SAAS,OAAO;GACtB;;;;;AAMJ,MAAa,iBAAyB,OAAO,KAAK"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ISubscribablePackageLoader, o as ISubscriptionOptions } from "
|
|
1
|
+
import { a as ISubscribablePackageLoader, o as ISubscriptionOptions } from "../../types-Do4QTfT3.mjs";
|
|
2
2
|
import { ILogger } from "document-model";
|
|
3
3
|
import { DocumentModelModule } from "@powerhousedao/shared/document-model";
|
|
4
4
|
import { Logger, ViteDevServer } from "vite";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-loader.d.mts","names":[],"sources":["../../../src/packages/vite-loader.mts"],"mappings":";;;;;;;iBAkBgB,gBAAA,CAAiB,MAAA,EAAQ,OAAA,EAAS,MAAA,YAAW,MAAA;AAAA,cAUhD,iBAAA,YAA6B,0BAAA;EAAA;mBACvB,MAAA;EAAA,iBAEA,IAAA;EAAA,SAER,IAAA;EAAA,OAEF,KAAA,CAAM,IAAA,EAAM,aAAA,GAAa,iBAAA;cAIpB,IAAA,EAAM,aAAA;EAAA,QAIV,qBAAA;EAAA,QAIA,gBAAA;EAAA,QAIA,iBAAA;EAID,kBAAA,CAAmB,UAAA,UAAoB,SAAA,aAAiB,OAAA,CAAA,mBAAA;EA2CzD,aAAA,CAAc,UAAA,WAAqB,OAAA,CAAQ,aAAA;EA4B3C,cAAA,CACJ,UAAA,WACC,OAAA,CAAQ,uBAAA;EA+BX,sBAAA,CACE,UAAA,UACA,OAAA,GAAU,cAAA,EAAgB,mBAAA,aAC1B,OAAA,GAAU,oBAAA;EAiBZ,iBAAA,CACE,UAAA,UACA,OAAA,GAAU,SAAA,EAAW,aAAA,aACrB,OAAA,GAAU,oBAAA;EAgBZ,kBAAA,CACE,UAAA,UACA,OAAA,GAAU,UAAA,EAAY,uBAAA,kBACtB,OAAA,GAAU,oBAAA;AAAA;AAAA,iBAiBQ,eAAA,CAAgB,IAAA,UAAc,MAAA,GAAS,MAAA,GAAM,OAAA,CAAA,aAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerhousedao/reactor-api",
|
|
3
|
-
"version": "6.0.0-dev.
|
|
3
|
+
"version": "6.0.0-dev.163",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
"types": "./dist/vite-loader.d.mts",
|
|
17
17
|
"import": "./dist/src/packages/vite-loader.mjs"
|
|
18
18
|
},
|
|
19
|
+
"./https-hooks": {
|
|
20
|
+
"types": "./dist/https-hooks.d.mts",
|
|
21
|
+
"import": "./dist/src/packages/https-hooks.mjs"
|
|
22
|
+
},
|
|
19
23
|
"./test": {
|
|
20
24
|
"import": "./test/index.ts"
|
|
21
25
|
}
|
|
@@ -74,15 +78,16 @@
|
|
|
74
78
|
"ws": "^8.18.3",
|
|
75
79
|
"zod": "4.3.6",
|
|
76
80
|
"@opentelemetry/exporter-prometheus": "^0.57.2",
|
|
77
|
-
"
|
|
78
|
-
"@powerhousedao/
|
|
79
|
-
"@powerhousedao/analytics-engine-graphql": "6.0.0-dev.
|
|
80
|
-
"@powerhousedao/
|
|
81
|
-
"@powerhousedao/
|
|
82
|
-
"@powerhousedao/reactor
|
|
83
|
-
"@powerhousedao/
|
|
84
|
-
"@
|
|
85
|
-
"
|
|
81
|
+
"graphql-tag": "2.12.6",
|
|
82
|
+
"@powerhousedao/analytics-engine-core": "6.0.0-dev.163",
|
|
83
|
+
"@powerhousedao/analytics-engine-graphql": "6.0.0-dev.163",
|
|
84
|
+
"@powerhousedao/analytics-engine-pg": "6.0.0-dev.163",
|
|
85
|
+
"@powerhousedao/config": "6.0.0-dev.163",
|
|
86
|
+
"@powerhousedao/reactor": "6.0.0-dev.163",
|
|
87
|
+
"@powerhousedao/reactor-mcp": "6.0.0-dev.163",
|
|
88
|
+
"@powerhousedao/shared": "6.0.0-dev.163",
|
|
89
|
+
"@renown/sdk": "6.0.0-dev.163",
|
|
90
|
+
"document-model": "6.0.0-dev.163"
|
|
86
91
|
},
|
|
87
92
|
"devDependencies": {
|
|
88
93
|
"@graphql-codegen/cli": "6.1.1",
|
|
@@ -97,12 +102,18 @@
|
|
|
97
102
|
"@types/pg": "8.16.0",
|
|
98
103
|
"@types/ws": "^8.18.1",
|
|
99
104
|
"tsdown": "0.21.0",
|
|
100
|
-
"graphql-tag": "2.12.6",
|
|
101
105
|
"msw": "^2.7.3",
|
|
102
|
-
"vite": "8.0.2",
|
|
103
106
|
"vite-tsconfig-paths": "6.1.1",
|
|
104
107
|
"vitest": "4.1.1"
|
|
105
108
|
},
|
|
109
|
+
"peerDependencies": {
|
|
110
|
+
"vite": "8.0.2"
|
|
111
|
+
},
|
|
112
|
+
"peerDependenciesMeta": {
|
|
113
|
+
"vite": {
|
|
114
|
+
"optional": true
|
|
115
|
+
}
|
|
116
|
+
},
|
|
106
117
|
"scripts": {
|
|
107
118
|
"tsc": "tsc",
|
|
108
119
|
"build": "tsdown",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite-loader.d.mts","names":[],"sources":["../src/packages/vite-loader.mts"],"mappings":";;;;;;;iBAkBgB,gBAAA,CAAiB,MAAA,EAAQ,OAAA,EAAS,MAAA,YAAW,MAAA;AAAA,cAUhD,iBAAA,YAA6B,0BAAA;EAAA;mBACvB,MAAA;EAAA,iBAEA,IAAA;EAAA,SAER,IAAA;EAAA,OAEF,KAAA,CAAM,IAAA,EAAM,aAAA,GAAa,iBAAA;cAIpB,IAAA,EAAM,aAAA;EAAA,QAIV,qBAAA;EAAA,QAIA,gBAAA;EAAA,QAIA,iBAAA;EAID,kBAAA,CAAmB,UAAA,UAAoB,SAAA,aAAiB,OAAA,CAAA,mBAAA;EA2CzD,aAAA,CAAc,UAAA,WAAqB,OAAA,CAAQ,aAAA;EA4B3C,cAAA,CACJ,UAAA,WACC,OAAA,CAAQ,uBAAA;EA+BX,sBAAA,CACE,UAAA,UACA,OAAA,GAAU,cAAA,EAAgB,mBAAA,aAC1B,OAAA,GAAU,oBAAA;EAiBZ,iBAAA,CACE,UAAA,UACA,OAAA,GAAU,SAAA,EAAW,aAAA,aACrB,OAAA,GAAU,oBAAA;EAgBZ,kBAAA,CACE,UAAA,UACA,OAAA,GAAU,UAAA,EAAY,uBAAA,kBACtB,OAAA,GAAU,oBAAA;AAAA;AAAA,iBAiBQ,eAAA,CAAgB,IAAA,UAAc,MAAA,GAAS,MAAA,GAAM,OAAA,CAAA,aAAA"}
|