@modularizer/plat 0.8.0 → 0.10.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/README.md +75 -0
- package/dist/client-entry.d.ts +1 -0
- package/dist/client-entry.d.ts.map +1 -1
- package/dist/client-entry.js +1 -0
- package/dist/client-entry.js.map +1 -1
- package/dist/client-server-entry.d.ts +5 -0
- package/dist/client-server-entry.d.ts.map +1 -1
- package/dist/client-server-entry.js +5 -0
- package/dist/client-server-entry.js.map +1 -1
- package/dist/client-side-python/runtime.d.ts +1 -0
- package/dist/client-side-python/runtime.d.ts.map +1 -1
- package/dist/client-side-python/runtime.js +18 -1
- package/dist/client-side-python/runtime.js.map +1 -1
- package/dist/client-side-server/channel.d.ts +1 -1
- package/dist/client-side-server/channel.d.ts.map +1 -1
- package/dist/client-side-server/channel.js +113 -4
- package/dist/client-side-server/channel.js.map +1 -1
- package/dist/client-side-server/identity.d.ts +80 -17
- package/dist/client-side-server/identity.d.ts.map +1 -1
- package/dist/client-side-server/identity.js +212 -31
- package/dist/client-side-server/identity.js.map +1 -1
- package/dist/client-side-server/mqtt-webrtc.d.ts +38 -6
- package/dist/client-side-server/mqtt-webrtc.d.ts.map +1 -1
- package/dist/client-side-server/mqtt-webrtc.js +843 -68
- package/dist/client-side-server/mqtt-webrtc.js.map +1 -1
- package/dist/client-side-server/plat-bridge.d.ts +40 -0
- package/dist/client-side-server/plat-bridge.d.ts.map +1 -0
- package/dist/client-side-server/plat-bridge.js +876 -0
- package/dist/client-side-server/plat-bridge.js.map +1 -0
- package/dist/client-side-server/plat-fetch.d.ts +33 -0
- package/dist/client-side-server/plat-fetch.d.ts.map +1 -0
- package/dist/client-side-server/plat-fetch.js +199 -0
- package/dist/client-side-server/plat-fetch.js.map +1 -0
- package/dist/client-side-server/plat-service-worker-client.d.ts +30 -0
- package/dist/client-side-server/plat-service-worker-client.d.ts.map +1 -0
- package/dist/client-side-server/plat-service-worker-client.js +141 -0
- package/dist/client-side-server/plat-service-worker-client.js.map +1 -0
- package/dist/client-side-server/plat-service-worker.d.ts +35 -0
- package/dist/client-side-server/plat-service-worker.d.ts.map +1 -0
- package/dist/client-side-server/plat-service-worker.js +292 -0
- package/dist/client-side-server/plat-service-worker.js.map +1 -0
- package/dist/client-side-server/protocol.d.ts +90 -3
- package/dist/client-side-server/protocol.d.ts.map +1 -1
- package/dist/client-side-server/protocol.js +110 -0
- package/dist/client-side-server/protocol.js.map +1 -1
- package/dist/client-side-server/runtime.d.ts +9 -0
- package/dist/client-side-server/runtime.d.ts.map +1 -1
- package/dist/client-side-server/runtime.js +44 -13
- package/dist/client-side-server/runtime.js.map +1 -1
- package/dist/client-side-server/secure-crypto.d.ts +35 -0
- package/dist/client-side-server/secure-crypto.d.ts.map +1 -0
- package/dist/client-side-server/secure-crypto.js +171 -0
- package/dist/client-side-server/secure-crypto.js.map +1 -0
- package/dist/client-side-server/server.d.ts +17 -0
- package/dist/client-side-server/server.d.ts.map +1 -1
- package/dist/client-side-server/server.js +111 -7
- package/dist/client-side-server/server.js.map +1 -1
- package/dist/client-side-server/signaling.d.ts +1 -0
- package/dist/client-side-server/signaling.d.ts.map +1 -1
- package/dist/client-side-server/signaling.js.map +1 -1
- package/dist/generated/python-browser-sources.js +4 -4
- package/dist/generated/python-browser-sources.js.map +1 -1
- package/dist/server/authority-server.d.ts +4 -4
- package/dist/server/authority-server.d.ts.map +1 -1
- package/dist/server/authority-server.js +23 -21
- package/dist/server/authority-server.js.map +1 -1
- package/dist/server/core.d.ts +8 -0
- package/dist/server/core.d.ts.map +1 -1
- package/dist/server/core.js +21 -0
- package/dist/server/core.js.map +1 -1
- package/dist/server/server.d.ts +4 -0
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +81 -2
- package/dist/server/server.js.map +1 -1
- package/dist/static/file-response.d.ts +42 -0
- package/dist/static/file-response.d.ts.map +1 -0
- package/dist/static/file-response.js +57 -0
- package/dist/static/file-response.js.map +1 -0
- package/dist/static/glob-match.d.ts +16 -0
- package/dist/static/glob-match.d.ts.map +1 -0
- package/dist/static/glob-match.js +48 -0
- package/dist/static/glob-match.js.map +1 -0
- package/dist/static/index.d.ts +9 -0
- package/dist/static/index.d.ts.map +1 -0
- package/dist/static/index.js +6 -0
- package/dist/static/index.js.map +1 -0
- package/dist/static/mime-types.d.ts +6 -0
- package/dist/static/mime-types.d.ts.map +1 -0
- package/dist/static/mime-types.js +74 -0
- package/dist/static/mime-types.js.map +1 -0
- package/dist/static/static-folder.d.ts +69 -0
- package/dist/static/static-folder.d.ts.map +1 -0
- package/dist/static/static-folder.js +206 -0
- package/dist/static/static-folder.js.map +1 -0
- package/dist/static/virtual-file-system.d.ts +45 -0
- package/dist/static/virtual-file-system.d.ts.map +1 -0
- package/dist/static/virtual-file-system.js +100 -0
- package/dist/static/virtual-file-system.js.map +1 -0
- package/package.json +5 -1
|
@@ -9,9 +9,11 @@ export async function runClientSideServer(source, options = {}) {
|
|
|
9
9
|
const { transpile: customTranspile, analyzeSource: customAnalyze, ...rest } = options;
|
|
10
10
|
const undecoratedMode = rest.undecoratedMode ?? 'POST';
|
|
11
11
|
const entryPoint = options.sourceEntryPoint;
|
|
12
|
+
const normalizedSource = normalizeClientSideSourceImports(source);
|
|
12
13
|
const defaultTranspile = (src, ep) => {
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
const normalized = normalizeClientSideSourceImports(src);
|
|
15
|
+
if (typeof normalized === 'string') {
|
|
16
|
+
return ts.transpileModule(normalized, {
|
|
15
17
|
compilerOptions: {
|
|
16
18
|
module: ts.ModuleKind.ESNext,
|
|
17
19
|
target: ts.ScriptTarget.ES2022,
|
|
@@ -19,17 +21,18 @@ export async function runClientSideServer(source, options = {}) {
|
|
|
19
21
|
},
|
|
20
22
|
}).outputText;
|
|
21
23
|
}
|
|
22
|
-
return transpileMultipleFiles(
|
|
24
|
+
return transpileMultipleFiles(normalized, ts, ep);
|
|
23
25
|
};
|
|
24
26
|
const defaultAnalyze = (src, ep) => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
const normalized = normalizeClientSideSourceImports(src);
|
|
28
|
+
if (typeof normalized === 'string') {
|
|
29
|
+
return analyzeClientSideServerSource(ts, normalized, { undecoratedMode });
|
|
27
30
|
}
|
|
28
|
-
return analyzeClientSideServerMultipleFiles(ts,
|
|
31
|
+
return analyzeClientSideServerMultipleFiles(ts, normalized, { undecoratedMode, entryPoint: ep });
|
|
29
32
|
};
|
|
30
33
|
return startClientSideServerFromSource({
|
|
31
34
|
...rest,
|
|
32
|
-
source,
|
|
35
|
+
source: normalizedSource,
|
|
33
36
|
sourceEntryPoint: entryPoint,
|
|
34
37
|
transpile: customTranspile ?? defaultTranspile,
|
|
35
38
|
analyzeSource: customAnalyze ?? defaultAnalyze,
|
|
@@ -52,16 +55,17 @@ function transpileSource(source, entryPoint) {
|
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
export async function startClientSideServerFromSource(options) {
|
|
58
|
+
const normalizedSource = normalizeClientSideSourceImports(options.source);
|
|
55
59
|
const compiled = await (options.transpile
|
|
56
|
-
? options.transpile(
|
|
57
|
-
: Promise.resolve(transpileSource(
|
|
60
|
+
? options.transpile(normalizedSource, options.sourceEntryPoint)
|
|
61
|
+
: Promise.resolve(transpileSource(normalizedSource, options.sourceEntryPoint)));
|
|
58
62
|
const analysis = await (options.analyzeSource
|
|
59
|
-
? options.analyzeSource(
|
|
60
|
-
: Promise.resolve(typeof
|
|
61
|
-
? analyzeClientSideServerSource(ts,
|
|
63
|
+
? options.analyzeSource(normalizedSource, options.sourceEntryPoint)
|
|
64
|
+
: Promise.resolve(typeof normalizedSource === 'string'
|
|
65
|
+
? analyzeClientSideServerSource(ts, normalizedSource, {
|
|
62
66
|
undecoratedMode: options.undecoratedMode ?? 'POST',
|
|
63
67
|
})
|
|
64
|
-
: analyzeClientSideServerMultipleFiles(ts,
|
|
68
|
+
: analyzeClientSideServerMultipleFiles(ts, normalizedSource, {
|
|
65
69
|
undecoratedMode: options.undecoratedMode ?? 'POST',
|
|
66
70
|
entryPoint: options.sourceEntryPoint,
|
|
67
71
|
})));
|
|
@@ -105,6 +109,13 @@ export async function startClientSideServerFromSource(options) {
|
|
|
105
109
|
announceIntervalMs: options.announceIntervalMs,
|
|
106
110
|
clientIdPrefix: options.clientIdPrefix,
|
|
107
111
|
identity: options.identity,
|
|
112
|
+
secureSignaling: options.secureSignaling,
|
|
113
|
+
anonymousRouting: options.anonymousRouting,
|
|
114
|
+
sealedTopic: options.sealedTopic,
|
|
115
|
+
maxSealedMessageBytes: options.maxSealedMessageBytes,
|
|
116
|
+
replayWindowMs: options.replayWindowMs,
|
|
117
|
+
clockSkewToleranceMs: options.clockSkewToleranceMs,
|
|
118
|
+
serverEncryptionKeyPair: options.serverEncryptionKeyPair,
|
|
108
119
|
workerInfo: options.workerInfo,
|
|
109
120
|
instanceInfo: options.instanceInfo,
|
|
110
121
|
});
|
|
@@ -119,9 +130,22 @@ export async function startClientSideServerFromSource(options) {
|
|
|
119
130
|
},
|
|
120
131
|
};
|
|
121
132
|
}
|
|
133
|
+
function normalizeClientSideSourceImports(source) {
|
|
134
|
+
const rewrite = (value) => value
|
|
135
|
+
// Browser runtime expects plat-client package specifiers for blob-module execution.
|
|
136
|
+
.replaceAll('@modularizer/plat/', '@modularizer/plat-client/')
|
|
137
|
+
// Legacy short static alias often pasted from old docs/snippets.
|
|
138
|
+
.replaceAll('"plat/static"', '"@modularizer/plat-client/static"')
|
|
139
|
+
.replaceAll("'plat/static'", "'@modularizer/plat-client/static'");
|
|
140
|
+
if (typeof source === 'string')
|
|
141
|
+
return rewrite(source);
|
|
142
|
+
return Object.fromEntries(Object.entries(source).map(([k, v]) => [k, rewrite(v)]));
|
|
143
|
+
}
|
|
122
144
|
export function serveClientSideServer(serverName, controllers) {
|
|
123
145
|
return { serverName, controllers };
|
|
124
146
|
}
|
|
147
|
+
/** Server-style alias for defining a client-side server module. */
|
|
148
|
+
export const serveServer = serveClientSideServer;
|
|
125
149
|
export async function connectClientSideServer(options) {
|
|
126
150
|
const transportPlugin = createClientSideServerMQTTWebRTCTransportPlugin(options);
|
|
127
151
|
const openapi = await fetchClientSideServerOpenAPI(options.baseUrl, transportPlugin);
|
|
@@ -131,6 +155,13 @@ export async function connectClientSideServer(options) {
|
|
|
131
155
|
});
|
|
132
156
|
return { client, openapi };
|
|
133
157
|
}
|
|
158
|
+
/** Server-style alias for connecting to a server endpoint (css:// or http(s)://). */
|
|
159
|
+
export const connectServer = connectClientSideServer;
|
|
160
|
+
/**
|
|
161
|
+
* Server-style alias for starting a client-side server from source.
|
|
162
|
+
* Mirrors the common `startServer(...)` naming across runtimes.
|
|
163
|
+
*/
|
|
164
|
+
export const startServer = runClientSideServer;
|
|
134
165
|
export function startRetryLoop(task, options = {}) {
|
|
135
166
|
const initialDelayMs = options.initialDelayMs ?? 2_000;
|
|
136
167
|
const maxDelayMs = options.maxDelayMs ?? 30_000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/client-side-server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EACL,sCAAsC,EACtC,+CAA+C,GAIhD,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,sBAAsB,EAA6B,MAAM,UAAU,CAAA;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EACL,6BAA6B,GAG9B,MAAM,mBAAmB,CAAA;AA6E1B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAuC,EACvC,UAAsC,EAAE;IAExC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;IACrF,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,MAAM,CAAA;IACtD,MAAM,UAAU,GAAI,OAAe,CAAC,gBAAgB,CAAA;IAEpD,MAAM,gBAAgB,GAAG,CAAC,GAAoC,EAAE,EAAW,EAAU,EAAE;QACrF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE;gBAC7B,eAAe,EAAE;oBACf,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;oBAC5B,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;oBAC9B,sBAAsB,EAAE,IAAI;iBAC7B;aACF,CAAC,CAAC,UAAU,CAAA;QACf,CAAC;QACD,OAAO,sBAAsB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,GAAoC,EAAE,EAAW,EAAkC,EAAE;QAC3G,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,6BAA6B,CAAC,EAA+B,EAAE,GAAG,EAAE,EAAE,eAAe,EAAE,CAAC,CAAA;QACjG,CAAC;QACD,OAAO,oCAAoC,CAAC,EAA+B,EAAE,GAAG,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;IACxH,CAAC,CAAA;IAED,OAAO,+BAA+B,CAAC;QACrC,GAAG,IAAI;QACP,MAAM;QACN,gBAAgB,EAAE,UAAU;QAC5B,SAAS,EAAE,eAAe,IAAI,gBAAgB;QAC9C,aAAa,EAAE,aAAa,IAAI,cAAc;KAC/C,CAAC,CAAA;AACJ,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG,mBAAmB,CAAA;AAEhE,SAAS,eAAe,CAAC,MAAuC,EAAE,UAAmB;IACnF,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE;YAChC,eAAe,EAAE;gBACf,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;gBAC5B,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;gBAC9B,sBAAsB,EAAE,IAAI;aAC7B;SACF,CAAC,CAAC,UAAU,CAAA;IACf,CAAC;SAAM,CAAC;QACN,OAAO,sBAAsB,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;IACvD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,OAA+C;IAE/C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS;QACvC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC;QAC7D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAE/E,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa;QAC3C,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC;QACjE,CAAC,CAAC,OAAO,CAAC,OAAO,CACb,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;YAChC,CAAC,CAAC,6BAA6B,CAAC,EAA+B,EAAE,OAAO,CAAC,MAAM,EAAE;gBAC7E,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,MAAM;aACnD,CAAC;YACJ,CAAC,CAAC,oCAAoC,CAAC,EAA+B,EAAE,OAAO,CAAC,MAAM,EAAE;gBACpF,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,MAAM;gBAClD,UAAU,EAAE,OAAO,CAAC,gBAAgB;aACrC,CAAC,CACP,CAAC,CAAA;IAEN,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;IACxF,IAAI,MAAoC,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAiC,CAAA;IACrF,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,UAAU,GAAG,iCAAiC,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAChF,IAAI,QAAQ,EAAE,CAAC;QACb,gCAAgC,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACpE,CAAC;IACD,MAAM,MAAM,GAAG,sBAAsB,CAAC;QACpC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,YAAY,EAAG,OAAe,CAAC,YAAY;KAC5C,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IAE7B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACxD,MAAM,CAAC,aAAa,GAAG,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;YAChD,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACvC,MAAM,cAAc,CAAC,OAAO,EAAE;gBAC5B,GAAG,OAAO;gBACV,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBACtB,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;oBACxC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC7B,CAAC;aACF,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,sCAAsC,CAAC;QACtD,MAAM;QACN,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAG,OAAe,CAAC,UAAU;QACvC,YAAY,EAAG,OAAe,CAAC,YAAY;KAC5C,CAAC,CAAA;IAEF,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;IAEtB,OAAO;QACL,MAAM;QACN,QAAQ;QACR,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,WAA8B;IAE9B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAA;AACpC,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAuC;IAKvC,MAAM,eAAe,GAAG,+CAA+C,CAAC,OAAO,CAAC,CAAA;IAChF,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAgB,CAAA;IACnG,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE;QACxC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,gBAAgB,EAAE,CAAC,eAAe,CAAC;KACpC,CAAC,CAAA;IACF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC;AAiBD,MAAM,UAAU,cAAc,CAC5B,IAAgC,EAChC,UAA4B,EAAE;IAE9B,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAA;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAA;IAC/C,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,GAAG,CAAA;IAC1D,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAA;IAC/D,IAAI,WAAW,GAAG,cAAc,CAAA;IAChC,IAAI,KAAK,GAAyC,IAAI,CAAA;IACtD,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,OAAO,GAAG,KAAK,CAAA;IAEnB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,KAAK,GAAG,IAAI,CAAA;QACd,CAAC;IACH,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;QACnC,IAAI,OAAO;YAAE,OAAM;QACnB,KAAK,EAAE,CAAA;QACP,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,KAAK,GAAG,EAAE,CAAA;QACZ,CAAC,EAAE,OAAO,CAAC,CAAA;IACb,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;QACrB,IAAI,OAAO,IAAI,OAAO;YAAE,OAAM;QAC9B,OAAO,GAAG,IAAI,CAAA;QACd,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAA;YACZ,OAAO,CAAC,SAAS,EAAE,EAAE,CAAA;YACrB,IAAI,mBAAmB,EAAE,CAAC;gBACxB,WAAW,GAAG,cAAc,CAAA;YAC9B,CAAC;YACD,QAAQ,CAAC,cAAc,CAAC,CAAA;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YACrC,QAAQ,CAAC,WAAW,CAAC,CAAA;YACrB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAA;QAChF,CAAC;gBAAS,CAAC;YACT,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC;IACH,CAAC,CAAA;IAED,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;QACnC,KAAK,GAAG,EAAE,CAAA;IACZ,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,cAAc,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO;QACL,IAAI;YACF,OAAO,GAAG,IAAI,CAAA;YACd,KAAK,EAAE,CAAA;QACT,CAAC;QACD,UAAU;YACR,IAAI,OAAO;gBAAE,OAAM;YACnB,KAAK,EAAE,CAAA;YACP,KAAK,GAAG,EAAE,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,iCAAiC,CACxC,MAAoC,EACpC,kBAA2B;IAE3B,IAAI,MAAM,CAAC,gBAAgB;QAAE,OAAO,MAAM,CAAC,gBAAgB,CAAA;IAE3D,IAAI,MAAM,CAAC,OAAO,IAAI,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC9C,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA;IACxD,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kGAAkG,CAAC,CAAA;AACrH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoC;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC,WAAW,CAAA;IAChE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,OAAO,CAAA;IACxD,IAAI,MAAM,CAAC,OAAO,IAAI,aAAa,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACnG,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAA;IACnC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAA;AAChH,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAc;IAClD,OAAO,OAAO,CACZ,KAAK;WACA,OAAO,KAAK,KAAK,QAAQ;WACzB,OAAQ,KAAoC,CAAC,UAAU,KAAK,QAAQ;WACpE,KAAK,CAAC,OAAO,CAAE,KAAoC,CAAC,WAAW,CAAC,CACtE,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAC9C,WAA8B,EAC9B,QAAwC;IAExC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAU,CAAC,CACjF,CAAA;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACpE,IAAI,CAAC,kBAAkB;YAAE,SAAQ;QAEjC,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAU,CAAC,CAC3E,CAAA;QAED,KAAK,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,eAAe,CAAC,UAAsB,EAAE,UAAU,CAAC,CAAA;YACrE,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,SAAS,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAA;YAC5C,CAAC;YACD,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;gBAC/B,SAAS,CAAC,WAAW,GAAG,cAAc,CAAC,WAAW,CAAA;YACpD,CAAC;YACD,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;gBAC/B,SAAS,CAAC,WAAW,GAAG,cAAc,CAAC,WAAkB,CAAA;YAC3D,CAAC;YACD,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;gBAChC,SAAS,CAAC,YAAY,GAAG,cAAc,CAAC,YAAmB,CAAA;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2CAA2C,CACzD,EAAkB,EAClB,MAAuC,EACvC,WAA8B,EAC9B,UAAiF,EAAE;IAEnF,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ;QACzC,CAAC,CAAC,6BAA6B,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC;QACpD,CAAC,CAAC,oCAAoC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACpG,gCAAgC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACvD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,sBAAsB,CAC7B,SAAiC,EACjC,EAAO,EACP,UAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,KAAK,GAAG,UAAU,CAAA;IACtB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,iDAAiD;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;QAC7D,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAA;IACjD,CAAC;IACD,MAAM,UAAU,GAA2B,EAAE,CAAA;IAE7C,oCAAoC;IACpC,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE;YACzC,eAAe,EAAE;gBACf,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;gBAC5B,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;gBAC9B,sBAAsB,EAAE,IAAI;aAC7B;SACF,CAAC,CAAC,UAAU,CAAA;QACb,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;IAC/B,CAAC;IAED,0DAA0D;IAC1D,MAAM,WAAW,GAAG,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC5D,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,oCAAoC,CAC3C,EAAkB,EAClB,SAAiC,EACjC,UAGI,EAAE;IAEN,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IAC5B,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAA;IACzD,MAAM,WAAW,GAAkD,EAAE,CAAA;IAErE,6CAA6C;IAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAe,CAAA;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAe,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAA;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAA,CAAC,yBAAyB;IAE1E,0DAA0D;IAC1D,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAEzG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACnC,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,sBAAsB,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;gBAChE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACtC,CAAC;YACD,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,sBAAsB,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;gBAChE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5C,CAAC;YACD,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;gBAC3D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACjC,CAAC;YACD,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC;gBAC1C,oDAAoD;gBACpD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;gBAC5D,uEAAuE;gBACvE,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAClC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,kDAAkD;IAClD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAEzG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACnC,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;gBAC5D,MAAM,kBAAkB,GAAG,4BAA4B,CACrD,EAAE,EACF,IAAI,EACJ,UAAU,EACV,WAAW,EACX,KAAK,EACL,eAAe,EACf,QAAQ,CACT,CAAA;gBACD,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YACtC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,CAAA;AACxB,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAC5B,UAAkC,EAClC,UAAkB;IAElB,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,iDAAiD;IACjD,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACrC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEhB,wDAAwD;IACxD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,UAAU,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,gBAAgB,QAAQ,OAAO,CAAC,CAAA;QAC7C,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClB,CAAC;IAED,wDAAwD;IACxD,OAAO,CAAC,IAAI,CAAC,kCAAkC,UAAU,KAAK,CAAC,CAAA;IAC/D,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC5D,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IAChD,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;IAC/E,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IACvD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACjC,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAA;IAClE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAChC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IAE1C,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CACnC,EAAkB,EAClB,SAAc,EACd,UAA4B,EAC5B,WAA6B,EAC7B,KAAuB,EACvB,eAA2C,EAC3C,QAAgB;IAEhB,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;SACtC,MAAM,CAAC,CAAC,MAAW,EAAE,EAAE;QACtB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,CAAC;YAAE,OAAO,KAAK,CAAA;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAA;QAC1D,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QACjF,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;QACnB,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACzC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;YACpE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;SACxB,CAAA;IACH,CAAC,CAAC,CAAA;IAEJ,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI;QACzB,OAAO;KACR,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,MAAM,CAAC,EAAkB,EAAE,IAAS,EAAE,QAAgB;IAC7D,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACpC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,GAAmB,EACnB,IAAS;IAET,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAElC,MAAM,GAAG,GAAG,MAAM;SACf,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE;QAClB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,OAAO,CAAA;QAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpE,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAA;IAET,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IAEnB,MAAM,UAAU,GAAG,GAAG;SACnB,KAAK,CAAC,SAAS,CAAC;SAChB,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAA;IAElB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QACtB,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;KACrC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/client-side-server/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface PlatSecureSessionKeys {
|
|
2
|
+
aeadKey: CryptoKey;
|
|
3
|
+
sessionId: string;
|
|
4
|
+
}
|
|
5
|
+
export interface PlatEphemeralKeyPair {
|
|
6
|
+
publicKeyJwk: JsonWebKey;
|
|
7
|
+
privateKey: CryptoKey;
|
|
8
|
+
}
|
|
9
|
+
export declare function generateEphemeralX25519KeyPair(): Promise<PlatEphemeralKeyPair>;
|
|
10
|
+
export declare function importX25519PublicKeyJwk(publicKeyJwk: JsonWebKey): Promise<CryptoKey>;
|
|
11
|
+
export declare function importX25519PrivateKeyJwk(privateKeyJwk: JsonWebKey): Promise<CryptoKey>;
|
|
12
|
+
export declare function deriveAeadKeyFromX25519(privateKey: CryptoKey, publicKey: CryptoKey, info: Uint8Array): Promise<CryptoKey>;
|
|
13
|
+
export declare function encryptJsonAead(key: CryptoKey, plaintext: unknown, aad: Uint8Array, nonce: Uint8Array): Promise<Uint8Array>;
|
|
14
|
+
export declare function decryptJsonAead<T>(key: CryptoKey, ciphertext: Uint8Array, aad: Uint8Array, nonce: Uint8Array): Promise<T>;
|
|
15
|
+
export declare function randomNonce12(): Uint8Array;
|
|
16
|
+
export declare function encodeBase64Url(data: Uint8Array): string;
|
|
17
|
+
export declare function decodeBase64Url(value: string): Uint8Array;
|
|
18
|
+
export declare function utf8(data: string): Uint8Array;
|
|
19
|
+
export declare function stableJson(value: unknown): string;
|
|
20
|
+
export declare function choosePaddingBucket(length: number): number;
|
|
21
|
+
export declare function padCiphertext(ciphertext: Uint8Array, bucketSize: number): Uint8Array;
|
|
22
|
+
export declare function unpadCiphertext(padded: Uint8Array): Uint8Array;
|
|
23
|
+
export declare function computeSessionId(fields: {
|
|
24
|
+
clientEphemeralPublicKeyJwk: JsonWebKey;
|
|
25
|
+
serverEncryptionPublicKeyJwk: JsonWebKey;
|
|
26
|
+
nonceB64u: string;
|
|
27
|
+
}): Promise<string>;
|
|
28
|
+
export declare function createPlatSecureSessionKeys(fields: {
|
|
29
|
+
privateKey: CryptoKey;
|
|
30
|
+
peerPublicKey: CryptoKey;
|
|
31
|
+
clientEphemeralPublicKeyJwk: JsonWebKey;
|
|
32
|
+
serverEncryptionPublicKeyJwk: JsonWebKey;
|
|
33
|
+
nonceB64u: string;
|
|
34
|
+
}): Promise<PlatSecureSessionKeys>;
|
|
35
|
+
//# sourceMappingURL=secure-crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secure-crypto.d.ts","sourceRoot":"","sources":["../../src/client-side-server/secure-crypto.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,SAAS,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,UAAU,CAAA;IACxB,UAAU,EAAE,SAAS,CAAA;CACtB;AAKD,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAOpF;AAED,wBAAsB,wBAAwB,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAG3F;AAED,wBAAsB,yBAAyB,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAG7F;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,SAAS,CAAC,CA0BpB;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,OAAO,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,UAAU,CAAC,CAarB;AAED,wBAAsB,eAAe,CAAC,CAAC,EACrC,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wBAAgB,aAAa,IAAI,UAAU,CAI1C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAKxD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAMzD;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAE7C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CASpF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAU9D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,2BAA2B,EAAE,UAAU,CAAA;IACvC,4BAA4B,EAAE,UAAU,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAIlB;AAED,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,UAAU,EAAE,SAAS,CAAA;IACrB,aAAa,EAAE,SAAS,CAAA;IACxB,2BAA2B,EAAE,UAAU,CAAA;IACvC,4BAA4B,EAAE,UAAU,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CASjC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
const HKDF_INFO = utf8('plat-css-sealed-signaling-v1');
|
|
2
|
+
const PADDING_BUCKETS = [1024, 4096, 16384, 65536];
|
|
3
|
+
export async function generateEphemeralX25519KeyPair() {
|
|
4
|
+
const subtle = await resolveSubtle();
|
|
5
|
+
const keyPair = await subtle.generateKey({ name: 'X25519' }, true, ['deriveKey', 'deriveBits']);
|
|
6
|
+
return {
|
|
7
|
+
publicKeyJwk: await subtle.exportKey('jwk', keyPair.publicKey),
|
|
8
|
+
privateKey: keyPair.privateKey,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export async function importX25519PublicKeyJwk(publicKeyJwk) {
|
|
12
|
+
const subtle = await resolveSubtle();
|
|
13
|
+
return subtle.importKey('jwk', publicKeyJwk, { name: 'X25519' }, false, []);
|
|
14
|
+
}
|
|
15
|
+
export async function importX25519PrivateKeyJwk(privateKeyJwk) {
|
|
16
|
+
const subtle = await resolveSubtle();
|
|
17
|
+
return subtle.importKey('jwk', privateKeyJwk, { name: 'X25519' }, false, ['deriveKey', 'deriveBits']);
|
|
18
|
+
}
|
|
19
|
+
export async function deriveAeadKeyFromX25519(privateKey, publicKey, info) {
|
|
20
|
+
const subtle = await resolveSubtle();
|
|
21
|
+
const sharedSecret = await subtle.deriveBits({
|
|
22
|
+
name: 'X25519',
|
|
23
|
+
public: publicKey,
|
|
24
|
+
}, privateKey, 256);
|
|
25
|
+
const hkdfKey = await subtle.importKey('raw', sharedSecret, 'HKDF', false, ['deriveKey']);
|
|
26
|
+
return subtle.deriveKey({
|
|
27
|
+
name: 'HKDF',
|
|
28
|
+
hash: 'SHA-256',
|
|
29
|
+
salt: new Uint8Array(),
|
|
30
|
+
info: toArrayBuffer(info),
|
|
31
|
+
}, hkdfKey, {
|
|
32
|
+
name: 'AES-GCM',
|
|
33
|
+
length: 256,
|
|
34
|
+
}, false, ['encrypt', 'decrypt']);
|
|
35
|
+
}
|
|
36
|
+
export async function encryptJsonAead(key, plaintext, aad, nonce) {
|
|
37
|
+
const subtle = await resolveSubtle();
|
|
38
|
+
const encoded = utf8(stableJson(plaintext));
|
|
39
|
+
const ciphertext = await subtle.encrypt({
|
|
40
|
+
name: 'AES-GCM',
|
|
41
|
+
iv: toArrayBuffer(nonce),
|
|
42
|
+
additionalData: toArrayBuffer(aad),
|
|
43
|
+
}, key, toArrayBuffer(encoded));
|
|
44
|
+
return new Uint8Array(ciphertext);
|
|
45
|
+
}
|
|
46
|
+
export async function decryptJsonAead(key, ciphertext, aad, nonce) {
|
|
47
|
+
const subtle = await resolveSubtle();
|
|
48
|
+
const plaintext = await subtle.decrypt({
|
|
49
|
+
name: 'AES-GCM',
|
|
50
|
+
iv: toArrayBuffer(nonce),
|
|
51
|
+
additionalData: toArrayBuffer(aad),
|
|
52
|
+
}, key, toArrayBuffer(ciphertext));
|
|
53
|
+
return JSON.parse(new TextDecoder().decode(plaintext));
|
|
54
|
+
}
|
|
55
|
+
export function randomNonce12() {
|
|
56
|
+
const nonce = new Uint8Array(12);
|
|
57
|
+
resolveCrypto().getRandomValues(nonce);
|
|
58
|
+
return nonce;
|
|
59
|
+
}
|
|
60
|
+
export function encodeBase64Url(data) {
|
|
61
|
+
const base64 = typeof Buffer !== 'undefined'
|
|
62
|
+
? Buffer.from(data).toString('base64')
|
|
63
|
+
: bytesToBase64(data);
|
|
64
|
+
return base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
|
|
65
|
+
}
|
|
66
|
+
export function decodeBase64Url(value) {
|
|
67
|
+
const padded = value.replace(/-/g, '+').replace(/_/g, '/').padEnd(Math.ceil(value.length / 4) * 4, '=');
|
|
68
|
+
if (typeof Buffer !== 'undefined') {
|
|
69
|
+
return new Uint8Array(Buffer.from(padded, 'base64'));
|
|
70
|
+
}
|
|
71
|
+
return base64ToBytes(padded);
|
|
72
|
+
}
|
|
73
|
+
export function utf8(data) {
|
|
74
|
+
return new TextEncoder().encode(data);
|
|
75
|
+
}
|
|
76
|
+
export function stableJson(value) {
|
|
77
|
+
return JSON.stringify(sortValue(value));
|
|
78
|
+
}
|
|
79
|
+
export function choosePaddingBucket(length) {
|
|
80
|
+
const paddedLength = length + 4;
|
|
81
|
+
for (const bucket of PADDING_BUCKETS) {
|
|
82
|
+
if (paddedLength <= bucket)
|
|
83
|
+
return bucket;
|
|
84
|
+
}
|
|
85
|
+
throw new Error(`Ciphertext length ${length} exceeds the maximum sealed signaling size`);
|
|
86
|
+
}
|
|
87
|
+
export function padCiphertext(ciphertext, bucketSize) {
|
|
88
|
+
if (bucketSize < 4 || bucketSize < ciphertext.byteLength + 4) {
|
|
89
|
+
throw new Error(`Padding bucket ${bucketSize} is too small for ciphertext length ${ciphertext.byteLength}`);
|
|
90
|
+
}
|
|
91
|
+
const padded = new Uint8Array(bucketSize);
|
|
92
|
+
const view = new DataView(padded.buffer);
|
|
93
|
+
view.setUint32(0, ciphertext.byteLength, false);
|
|
94
|
+
padded.set(ciphertext, 4);
|
|
95
|
+
return padded;
|
|
96
|
+
}
|
|
97
|
+
export function unpadCiphertext(padded) {
|
|
98
|
+
if (padded.byteLength < 4) {
|
|
99
|
+
throw new Error('Padded ciphertext is too short');
|
|
100
|
+
}
|
|
101
|
+
const view = new DataView(padded.buffer, padded.byteOffset, padded.byteLength);
|
|
102
|
+
const ciphertextLength = view.getUint32(0, false);
|
|
103
|
+
if (ciphertextLength > padded.byteLength - 4) {
|
|
104
|
+
throw new Error('Padded ciphertext contains an invalid embedded length');
|
|
105
|
+
}
|
|
106
|
+
return padded.slice(4, 4 + ciphertextLength);
|
|
107
|
+
}
|
|
108
|
+
export async function computeSessionId(fields) {
|
|
109
|
+
const subtle = await resolveSubtle();
|
|
110
|
+
const digest = await subtle.digest('SHA-256', toArrayBuffer(utf8(stableJson(fields))));
|
|
111
|
+
return encodeBase64Url(new Uint8Array(digest));
|
|
112
|
+
}
|
|
113
|
+
export async function createPlatSecureSessionKeys(fields) {
|
|
114
|
+
return {
|
|
115
|
+
aeadKey: await deriveAeadKeyFromX25519(fields.privateKey, fields.peerPublicKey, HKDF_INFO),
|
|
116
|
+
sessionId: await computeSessionId({
|
|
117
|
+
clientEphemeralPublicKeyJwk: fields.clientEphemeralPublicKeyJwk,
|
|
118
|
+
serverEncryptionPublicKeyJwk: fields.serverEncryptionPublicKeyJwk,
|
|
119
|
+
nonceB64u: fields.nonceB64u,
|
|
120
|
+
}),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function sortValue(value) {
|
|
124
|
+
if (Array.isArray(value))
|
|
125
|
+
return value.map(sortValue);
|
|
126
|
+
if (value && typeof value === 'object') {
|
|
127
|
+
return Object.fromEntries(Object.entries(value)
|
|
128
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
129
|
+
.map(([key, child]) => [key, sortValue(child)]));
|
|
130
|
+
}
|
|
131
|
+
return value;
|
|
132
|
+
}
|
|
133
|
+
function toArrayBuffer(value) {
|
|
134
|
+
if (value instanceof ArrayBuffer)
|
|
135
|
+
return value;
|
|
136
|
+
return value.buffer.slice(value.byteOffset, value.byteOffset + value.byteLength);
|
|
137
|
+
}
|
|
138
|
+
function resolveCrypto() {
|
|
139
|
+
if (globalThis.crypto)
|
|
140
|
+
return globalThis.crypto;
|
|
141
|
+
throw new Error('Web Crypto API is not available in this environment');
|
|
142
|
+
}
|
|
143
|
+
async function resolveSubtle() {
|
|
144
|
+
if (globalThis.crypto?.subtle)
|
|
145
|
+
return globalThis.crypto.subtle;
|
|
146
|
+
const dynamicImport = new Function('m', 'return import(m)');
|
|
147
|
+
const cryptoModule = await dynamicImport('node:crypto');
|
|
148
|
+
if (cryptoModule.webcrypto) {
|
|
149
|
+
if (!globalThis.crypto) {
|
|
150
|
+
;
|
|
151
|
+
globalThis.crypto = cryptoModule.webcrypto;
|
|
152
|
+
}
|
|
153
|
+
return cryptoModule.webcrypto.subtle;
|
|
154
|
+
}
|
|
155
|
+
throw new Error('Web Crypto subtle API is not available in this environment');
|
|
156
|
+
}
|
|
157
|
+
function bytesToBase64(bytes) {
|
|
158
|
+
let binary = '';
|
|
159
|
+
for (const byte of bytes)
|
|
160
|
+
binary += String.fromCharCode(byte);
|
|
161
|
+
return btoa(binary);
|
|
162
|
+
}
|
|
163
|
+
function base64ToBytes(base64) {
|
|
164
|
+
const binary = atob(base64);
|
|
165
|
+
const bytes = new Uint8Array(binary.length);
|
|
166
|
+
for (let index = 0; index < binary.length; index += 1) {
|
|
167
|
+
bytes[index] = binary.charCodeAt(index);
|
|
168
|
+
}
|
|
169
|
+
return bytes;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=secure-crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secure-crypto.js","sourceRoot":"","sources":["../../src/client-side-server/secure-crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,7 @@ export declare class PLATClientSideServer {
|
|
|
58
58
|
private operationRegistry;
|
|
59
59
|
private registeredMethodNames;
|
|
60
60
|
private registeredControllerNames;
|
|
61
|
+
private staticFolders;
|
|
61
62
|
private core;
|
|
62
63
|
private openapiCache?;
|
|
63
64
|
private logger;
|
|
@@ -85,7 +86,23 @@ export declare class PLATClientSideServer {
|
|
|
85
86
|
private buildErrorPayload;
|
|
86
87
|
private runMiddlewareChain;
|
|
87
88
|
private serializeValue;
|
|
89
|
+
/**
|
|
90
|
+
* Build a manifest of all file paths available from registered static folders.
|
|
91
|
+
* Returns paths prefixed with their folder mount point (e.g. /assets/logo.png, /index.html).
|
|
92
|
+
*/
|
|
93
|
+
private buildStaticManifest;
|
|
94
|
+
/**
|
|
95
|
+
* Try to resolve a request path against registered static folders.
|
|
96
|
+
* Returns FileResponse if matched, null if matched but file not found, undefined if no folder matched.
|
|
97
|
+
*/
|
|
98
|
+
private resolveStaticFolder;
|
|
99
|
+
private serializeFileResponse;
|
|
88
100
|
private generateOpenAPISpec;
|
|
89
101
|
}
|
|
90
102
|
export declare function createClientSideServer(options?: ClientSideServerOptions, ...ControllerClasses: (new () => any)[]): PLATClientSideServer;
|
|
103
|
+
/**
|
|
104
|
+
* Server-style alias for client-side server creation.
|
|
105
|
+
* Mirrors `createServer(...)` naming from the Node server API.
|
|
106
|
+
*/
|
|
107
|
+
export declare const createServer: typeof createClientSideServer;
|
|
91
108
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/client-side-server/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/client-side-server/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { normalizeParameters } from '../server/param-aliases.js';
|
|
2
2
|
import { PLATServerCore } from '../server/core.js';
|
|
3
3
|
import { PLATOperationRegistry } from '../server/operation-registry.js';
|
|
4
|
+
import { isFileResponse } from '../static/file-response.js';
|
|
4
5
|
import { HttpError, } from '../types/index.js';
|
|
5
6
|
import { defaultLogger } from '../logging.js';
|
|
6
7
|
import { applyCacheCheck, applyCacheStore, createInMemoryCache, } from '../server/cache/index.js';
|
|
@@ -14,6 +15,7 @@ export class PLATClientSideServer {
|
|
|
14
15
|
operationRegistry = new PLATOperationRegistry();
|
|
15
16
|
registeredMethodNames = new Set();
|
|
16
17
|
registeredControllerNames = new Set();
|
|
18
|
+
staticFolders = [];
|
|
17
19
|
core;
|
|
18
20
|
openapiCache;
|
|
19
21
|
logger;
|
|
@@ -44,6 +46,7 @@ export class PLATClientSideServer {
|
|
|
44
46
|
operationRegistry: this.operationRegistry,
|
|
45
47
|
registeredMethodNames: this.registeredMethodNames,
|
|
46
48
|
registeredControllerNames: this.registeredControllerNames,
|
|
49
|
+
staticFolders: this.staticFolders,
|
|
47
50
|
});
|
|
48
51
|
if (ControllerClasses.length > 0) {
|
|
49
52
|
this.register(...ControllerClasses);
|
|
@@ -135,6 +138,28 @@ export class PLATClientSideServer {
|
|
|
135
138
|
});
|
|
136
139
|
return;
|
|
137
140
|
}
|
|
141
|
+
if (message.method.toUpperCase() === 'GET' && message.path === '/__plat/static-manifest') {
|
|
142
|
+
await channel.send({
|
|
143
|
+
jsonrpc: '2.0',
|
|
144
|
+
id: message.id,
|
|
145
|
+
ok: true,
|
|
146
|
+
result: await this.buildStaticManifest(),
|
|
147
|
+
});
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// Try static folder resolution before operation lookup
|
|
151
|
+
if (message.method.toUpperCase() === 'GET') {
|
|
152
|
+
const staticResult = await this.resolveStaticFolder(message.path);
|
|
153
|
+
if (staticResult !== undefined) {
|
|
154
|
+
if (staticResult === null) {
|
|
155
|
+
await channel.send({ jsonrpc: '2.0', id: message.id, ok: false, error: { status: 404, message: 'Not found' } });
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
await channel.send({ jsonrpc: '2.0', id: message.id, ok: true, result: await this.serializeFileResponse(staticResult) });
|
|
159
|
+
}
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
138
163
|
const operation = this.operationRegistry.resolve({
|
|
139
164
|
operationId: message.operationId,
|
|
140
165
|
method: message.method,
|
|
@@ -154,12 +179,22 @@ export class PLATClientSideServer {
|
|
|
154
179
|
}
|
|
155
180
|
try {
|
|
156
181
|
const result = await this.executeOperation(operation, message, channel);
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
182
|
+
if (isFileResponse(result)) {
|
|
183
|
+
await channel.send({
|
|
184
|
+
jsonrpc: '2.0',
|
|
185
|
+
id: message.id,
|
|
186
|
+
ok: true,
|
|
187
|
+
result: await this.serializeFileResponse(result),
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
await channel.send({
|
|
192
|
+
jsonrpc: '2.0',
|
|
193
|
+
id: message.id,
|
|
194
|
+
ok: true,
|
|
195
|
+
result: this.serializeValue(result),
|
|
196
|
+
});
|
|
197
|
+
}
|
|
163
198
|
}
|
|
164
199
|
catch (error) {
|
|
165
200
|
this.logger.error(`[ClientSideServer Error] ${error?.message ?? 'Internal client-side server error'}`, error);
|
|
@@ -368,9 +403,73 @@ export class PLATClientSideServer {
|
|
|
368
403
|
}
|
|
369
404
|
return value;
|
|
370
405
|
}
|
|
406
|
+
/**
|
|
407
|
+
* Build a manifest of all file paths available from registered static folders.
|
|
408
|
+
* Returns paths prefixed with their folder mount point (e.g. /assets/logo.png, /index.html).
|
|
409
|
+
*/
|
|
410
|
+
async buildStaticManifest() {
|
|
411
|
+
const folders = [];
|
|
412
|
+
const allPaths = [];
|
|
413
|
+
for (const sf of this.staticFolders) {
|
|
414
|
+
let filePaths;
|
|
415
|
+
try {
|
|
416
|
+
filePaths = await sf.folder.listAllFiles();
|
|
417
|
+
}
|
|
418
|
+
catch {
|
|
419
|
+
filePaths = [];
|
|
420
|
+
}
|
|
421
|
+
const prefixed = sf.name === 'root'
|
|
422
|
+
? filePaths.map(p => '/' + p)
|
|
423
|
+
: filePaths.map(p => '/' + sf.name + '/' + p);
|
|
424
|
+
folders.push({ name: sf.name, paths: prefixed });
|
|
425
|
+
allPaths.push(...prefixed);
|
|
426
|
+
}
|
|
427
|
+
return { folders, allPaths };
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Try to resolve a request path against registered static folders.
|
|
431
|
+
* Returns FileResponse if matched, null if matched but file not found, undefined if no folder matched.
|
|
432
|
+
*/
|
|
433
|
+
async resolveStaticFolder(path) {
|
|
434
|
+
const normalized = path.replace(/^\//, '');
|
|
435
|
+
// Check named folders first (e.g. /assets/...)
|
|
436
|
+
for (const sf of this.staticFolders) {
|
|
437
|
+
if (sf.name === 'root')
|
|
438
|
+
continue;
|
|
439
|
+
const prefix = sf.name + '/';
|
|
440
|
+
if (normalized === sf.name || normalized.startsWith(prefix)) {
|
|
441
|
+
const subPath = normalized === sf.name ? '' : normalized.slice(prefix.length);
|
|
442
|
+
const result = await sf.folder.resolve(subPath);
|
|
443
|
+
return result; // FileResponse or null
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
// Check root folder last (lowest priority)
|
|
447
|
+
for (const sf of this.staticFolders) {
|
|
448
|
+
if (sf.name !== 'root')
|
|
449
|
+
continue;
|
|
450
|
+
const result = await sf.folder.resolve(normalized);
|
|
451
|
+
if (result)
|
|
452
|
+
return result;
|
|
453
|
+
}
|
|
454
|
+
return undefined; // No static folder matched this path
|
|
455
|
+
}
|
|
456
|
+
async serializeFileResponse(fileResponse) {
|
|
457
|
+
const content = await fileResponse.getContent();
|
|
458
|
+
const bytes = typeof content === 'string' ? new TextEncoder().encode(content) : content;
|
|
459
|
+
return {
|
|
460
|
+
_type: 'file',
|
|
461
|
+
filename: fileResponse.filename,
|
|
462
|
+
contentType: fileResponse.contentType,
|
|
463
|
+
content: bytes,
|
|
464
|
+
contentEncoding: 'binary',
|
|
465
|
+
headers: fileResponse.headers,
|
|
466
|
+
};
|
|
467
|
+
}
|
|
371
468
|
generateOpenAPISpec() {
|
|
372
469
|
const paths = {};
|
|
373
470
|
for (const tool of this.toolsStore.values()) {
|
|
471
|
+
if (tool.hidden)
|
|
472
|
+
continue;
|
|
374
473
|
const method = tool.method.toLowerCase();
|
|
375
474
|
const path = tool.path;
|
|
376
475
|
const operation = {
|
|
@@ -411,7 +510,7 @@ export class PLATClientSideServer {
|
|
|
411
510
|
openapi: '3.1.0',
|
|
412
511
|
info: this.options.openapiInfo ?? {
|
|
413
512
|
title: 'plat client-side server',
|
|
414
|
-
version: '0.
|
|
513
|
+
version: '0.10.0',
|
|
415
514
|
},
|
|
416
515
|
paths,
|
|
417
516
|
};
|
|
@@ -423,6 +522,11 @@ function isRequestMessage(message) {
|
|
|
423
522
|
export function createClientSideServer(options, ...ControllerClasses) {
|
|
424
523
|
return new PLATClientSideServer(options, ...ControllerClasses);
|
|
425
524
|
}
|
|
525
|
+
/**
|
|
526
|
+
* Server-style alias for client-side server creation.
|
|
527
|
+
* Mirrors `createServer(...)` naming from the Node server API.
|
|
528
|
+
*/
|
|
529
|
+
export const createServer = createClientSideServer;
|
|
426
530
|
/** Stable JSON stringify with sorted keys — ensures same spec always produces same hash. */
|
|
427
531
|
function cssStableStringify(value) {
|
|
428
532
|
return JSON.stringify(cssSortValue(value));
|