@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
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* plat-service-worker: Universal HTTP interception via Service Worker
|
|
3
|
+
*
|
|
4
|
+
* Registers a Service Worker that intercepts ALL fetch events (fetch, XHR,
|
|
5
|
+
* resource elements, forms, everything) and routes them through the plat channel.
|
|
6
|
+
*
|
|
7
|
+
* This is the lowest-level interception point in the browser and eliminates the
|
|
8
|
+
* need for monkey-patching fetch, XHR, EventSource, Worker, forms, etc.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Install the plat bridge via Service Worker.
|
|
12
|
+
* This is the recommended approach—it intercepts all HTTP requests at the
|
|
13
|
+
* browser's network layer.
|
|
14
|
+
*
|
|
15
|
+
* Requires the Service Worker to be available as a static file or via a server endpoint.
|
|
16
|
+
* Returns a handle to unregister the Service Worker.
|
|
17
|
+
* Throws if Service Workers are not supported or registration fails.
|
|
18
|
+
*/
|
|
19
|
+
export async function installServiceWorkerBridge(_channel, options) {
|
|
20
|
+
if (!navigator.serviceWorker) {
|
|
21
|
+
throw new Error('Service Workers not supported in this browser. ' +
|
|
22
|
+
'Ensure HTTPS or localhost is enabled.');
|
|
23
|
+
}
|
|
24
|
+
const scope = options?.scope ?? '/';
|
|
25
|
+
const workerUrl = options?.workerUrl ?? '/plat-service-worker.js';
|
|
26
|
+
try {
|
|
27
|
+
const registration = await navigator.serviceWorker.register(workerUrl, { scope });
|
|
28
|
+
if (registration.waiting) {
|
|
29
|
+
registration.waiting.postMessage({ type: 'PLAT_SKIP_WAITING' });
|
|
30
|
+
}
|
|
31
|
+
await navigator.serviceWorker.ready;
|
|
32
|
+
if (!navigator.serviceWorker.controller) {
|
|
33
|
+
await waitForController(1200);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
async unregister() {
|
|
37
|
+
await registration.unregister();
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
throw new Error(`Failed to register Service Worker at ${workerUrl}: ` +
|
|
43
|
+
(err instanceof Error ? err.message : String(err)));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Generate the complete Service Worker code as a string.
|
|
48
|
+
* This is what you'd serve as /plat-service-worker.js or similar.
|
|
49
|
+
*
|
|
50
|
+
* The worker communicates with the main thread via postMessage to fetch requests.
|
|
51
|
+
*/
|
|
52
|
+
export function generateServiceWorkerCode() {
|
|
53
|
+
return `(${serviceWorkerRuntime.toString()})()`;
|
|
54
|
+
}
|
|
55
|
+
function waitForController(timeoutMs) {
|
|
56
|
+
if (navigator.serviceWorker.controller)
|
|
57
|
+
return Promise.resolve();
|
|
58
|
+
return new Promise((resolve) => {
|
|
59
|
+
let done = false;
|
|
60
|
+
const complete = () => {
|
|
61
|
+
if (done)
|
|
62
|
+
return;
|
|
63
|
+
done = true;
|
|
64
|
+
navigator.serviceWorker.removeEventListener('controllerchange', onChange);
|
|
65
|
+
clearTimeout(timer);
|
|
66
|
+
resolve();
|
|
67
|
+
};
|
|
68
|
+
const onChange = () => complete();
|
|
69
|
+
const timer = setTimeout(() => complete(), timeoutMs);
|
|
70
|
+
navigator.serviceWorker.addEventListener('controllerchange', onChange);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The Service Worker runtime—runs in the worker context.
|
|
75
|
+
* Must be self-contained (no external dependencies).
|
|
76
|
+
* Communicates with main thread via postMessage to route requests through platFetch.
|
|
77
|
+
*/
|
|
78
|
+
function serviceWorkerRuntime() {
|
|
79
|
+
// Interception logic (matches main thread)
|
|
80
|
+
function shouldIntercept(url) {
|
|
81
|
+
if (url.startsWith('data:') || url.startsWith('blob:') || url.startsWith('javascript:'))
|
|
82
|
+
return false;
|
|
83
|
+
if (url.startsWith('css://'))
|
|
84
|
+
return true;
|
|
85
|
+
try {
|
|
86
|
+
const parsed = new URL(url, self.location.href);
|
|
87
|
+
return parsed.origin === self.location.origin;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function normalizePath(url) {
|
|
94
|
+
if (url.startsWith('css://')) {
|
|
95
|
+
try {
|
|
96
|
+
const parsed = new URL(url.replace('css://', 'http://'));
|
|
97
|
+
return `${parsed.pathname}${parsed.search}`;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return url;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (url.startsWith('/'))
|
|
104
|
+
return url;
|
|
105
|
+
try {
|
|
106
|
+
const parsed = new URL(url, self.location.href);
|
|
107
|
+
return `${parsed.pathname}${parsed.search}`;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return '/' + url;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Map request IDs to pending responses
|
|
114
|
+
const pending = new Map();
|
|
115
|
+
function randomId() {
|
|
116
|
+
return `sw-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
117
|
+
}
|
|
118
|
+
function bytesToBase64(bytes) {
|
|
119
|
+
const chunk = 0x8000;
|
|
120
|
+
let binary = '';
|
|
121
|
+
for (let i = 0; i < bytes.length; i += chunk) {
|
|
122
|
+
binary += String.fromCharCode(...bytes.subarray(i, i + chunk));
|
|
123
|
+
}
|
|
124
|
+
return btoa(binary);
|
|
125
|
+
}
|
|
126
|
+
async function readRequestBodyAsBase64(req) {
|
|
127
|
+
if (req.method === 'GET' || req.method === 'HEAD')
|
|
128
|
+
return undefined;
|
|
129
|
+
const buf = await req.arrayBuffer();
|
|
130
|
+
if (buf.byteLength === 0)
|
|
131
|
+
return undefined;
|
|
132
|
+
return bytesToBase64(new Uint8Array(buf));
|
|
133
|
+
}
|
|
134
|
+
function fromBridgeBody(msg) {
|
|
135
|
+
if (msg.bodyEncoding === 'none')
|
|
136
|
+
return msg.body ?? null;
|
|
137
|
+
if (!msg.body)
|
|
138
|
+
return null;
|
|
139
|
+
const binaryStr = atob(msg.body);
|
|
140
|
+
const bytes = new Uint8Array(binaryStr.length);
|
|
141
|
+
for (let i = 0; i < binaryStr.length; i++)
|
|
142
|
+
bytes[i] = binaryStr.charCodeAt(i);
|
|
143
|
+
return bytes;
|
|
144
|
+
}
|
|
145
|
+
async function resolveClientForRequest(clientId) {
|
|
146
|
+
// @ts-ignore - Service Worker clients API
|
|
147
|
+
if (clientId) {
|
|
148
|
+
// @ts-ignore - Service Worker clients API
|
|
149
|
+
const target = await self.clients.get(clientId);
|
|
150
|
+
if (target)
|
|
151
|
+
return target;
|
|
152
|
+
}
|
|
153
|
+
// @ts-ignore - Service Worker clients API
|
|
154
|
+
const all = await self.clients.matchAll({ type: 'window', includeUncontrolled: true });
|
|
155
|
+
return all[0];
|
|
156
|
+
}
|
|
157
|
+
// Listen for responses from main thread
|
|
158
|
+
// @ts-ignore - Service Worker event
|
|
159
|
+
self.addEventListener('message', (event) => {
|
|
160
|
+
if (event.data?.type === 'PLAT_SKIP_WAITING') {
|
|
161
|
+
// @ts-ignore - Service Worker global API
|
|
162
|
+
self.skipWaiting();
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const msg = event.data;
|
|
166
|
+
if (msg.type === 'PLAT_RESPONSE') {
|
|
167
|
+
const p = pending.get(msg.id);
|
|
168
|
+
if (p) {
|
|
169
|
+
pending.delete(msg.id);
|
|
170
|
+
if (msg.error) {
|
|
171
|
+
p.reject(new Error(msg.error));
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
p.resolve(msg);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
// Intercept all fetch events
|
|
180
|
+
// @ts-ignore - Service Worker event
|
|
181
|
+
self.addEventListener('fetch', (event) => {
|
|
182
|
+
const url = event.request.url;
|
|
183
|
+
if (!shouldIntercept(url))
|
|
184
|
+
return;
|
|
185
|
+
const path = normalizePath(url);
|
|
186
|
+
const method = event.request.method;
|
|
187
|
+
const headers = {};
|
|
188
|
+
event.request.headers.forEach((value, key) => {
|
|
189
|
+
headers[key.toLowerCase()] = value;
|
|
190
|
+
});
|
|
191
|
+
event.respondWith((async () => {
|
|
192
|
+
try {
|
|
193
|
+
const body = await readRequestBodyAsBase64(event.request.clone());
|
|
194
|
+
// Send request to main thread and wait for response
|
|
195
|
+
const id = randomId();
|
|
196
|
+
const target = await resolveClientForRequest(event.clientId);
|
|
197
|
+
if (!target) {
|
|
198
|
+
throw new Error('No client available to handle request');
|
|
199
|
+
}
|
|
200
|
+
const responsePromise = new Promise((resolve, reject) => {
|
|
201
|
+
pending.set(id, { resolve, reject });
|
|
202
|
+
});
|
|
203
|
+
const msg = {
|
|
204
|
+
type: 'PLAT_REQUEST',
|
|
205
|
+
id,
|
|
206
|
+
clientId: event.clientId,
|
|
207
|
+
method,
|
|
208
|
+
path,
|
|
209
|
+
headers,
|
|
210
|
+
bodyEncoding: body ? 'base64' : 'none',
|
|
211
|
+
body,
|
|
212
|
+
};
|
|
213
|
+
target.postMessage(msg);
|
|
214
|
+
// Wait for response with timeout
|
|
215
|
+
const responseData = (await Promise.race([
|
|
216
|
+
responsePromise,
|
|
217
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('Service Worker request timeout')), 30000)),
|
|
218
|
+
]).finally(() => {
|
|
219
|
+
pending.delete(id);
|
|
220
|
+
}));
|
|
221
|
+
if (responseData.error) {
|
|
222
|
+
throw new Error(responseData.error);
|
|
223
|
+
}
|
|
224
|
+
const responseBody = fromBridgeBody(responseData);
|
|
225
|
+
return new Response(responseBody, {
|
|
226
|
+
status: responseData.status,
|
|
227
|
+
statusText: responseData.statusText,
|
|
228
|
+
headers: new Headers(responseData.headers),
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
// Clear any orphaned pending entries if this request failed before response.
|
|
233
|
+
// No-op if already removed.
|
|
234
|
+
// (request ids are unique per request)
|
|
235
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
236
|
+
return new Response(`[Service Worker] ${message}`, {
|
|
237
|
+
status: 500,
|
|
238
|
+
statusText: 'Internal Server Error',
|
|
239
|
+
headers: { 'content-type': 'text/plain' },
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
})());
|
|
243
|
+
});
|
|
244
|
+
// Claim all clients
|
|
245
|
+
// @ts-ignore - Service Worker event
|
|
246
|
+
self.addEventListener('activate', (event) => {
|
|
247
|
+
// @ts-ignore - Service Worker clients API
|
|
248
|
+
event.waitUntil(self.clients.claim());
|
|
249
|
+
});
|
|
250
|
+
// @ts-ignore - Service Worker event
|
|
251
|
+
self.addEventListener('install', () => {
|
|
252
|
+
// @ts-ignore - Service Worker global API
|
|
253
|
+
self.skipWaiting();
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
// ── Shared helpers ───────────────────────────────────────────────────────────
|
|
257
|
+
function shouldIntercept(url) {
|
|
258
|
+
if (url.startsWith('data:') || url.startsWith('blob:') || url.startsWith('javascript:'))
|
|
259
|
+
return false;
|
|
260
|
+
if (url.startsWith('/') || !url.includes('://'))
|
|
261
|
+
return true;
|
|
262
|
+
if (url.startsWith('css://'))
|
|
263
|
+
return true;
|
|
264
|
+
try {
|
|
265
|
+
const parsed = new URL(url, window.location.href);
|
|
266
|
+
return parsed.origin === window.location.origin;
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
function normalizePath(url) {
|
|
273
|
+
if (url.startsWith('css://')) {
|
|
274
|
+
try {
|
|
275
|
+
const parsed = new URL(url.replace('css://', 'http://'));
|
|
276
|
+
return `${parsed.pathname}${parsed.search}`;
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
return url;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
if (url.startsWith('/'))
|
|
283
|
+
return url;
|
|
284
|
+
try {
|
|
285
|
+
const parsed = new URL(url, typeof window !== 'undefined' ? window.location.href : 'http://localhost/');
|
|
286
|
+
return `${parsed.pathname}${parsed.search}`;
|
|
287
|
+
}
|
|
288
|
+
catch {
|
|
289
|
+
return '/' + url;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=plat-service-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plat-service-worker.js","sourceRoot":"","sources":["../../src/client-side-server/plat-service-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PLATRPCEventKind } from '../rpc';
|
|
2
|
+
import type { ClientSideServerPublicIdentity, ClientSideServerSignedAuthorityRecord, ClientSideServerSignedAuthorityRecordV2 } from './identity';
|
|
2
3
|
/**
|
|
3
4
|
* Version and identity metadata that a server publishes about itself.
|
|
4
5
|
* All fields are optional — servers populate what they know.
|
|
@@ -19,6 +20,90 @@ export interface ClientSideServerInstanceInfo {
|
|
|
19
20
|
/** Unix timestamp (ms) when this server instance started (auto-set on start). */
|
|
20
21
|
serverStartedAt?: number;
|
|
21
22
|
}
|
|
23
|
+
export interface ClientSideServerSealedEnvelope {
|
|
24
|
+
platcss: 'sealed';
|
|
25
|
+
version: 1;
|
|
26
|
+
senderId: string;
|
|
27
|
+
at: number;
|
|
28
|
+
nonce: string;
|
|
29
|
+
clientEphemeralPublicKeyJwk: JsonWebKey;
|
|
30
|
+
ciphertext: string;
|
|
31
|
+
}
|
|
32
|
+
export interface ClientSideServerSealedDiscoverPayload {
|
|
33
|
+
type: 'discover';
|
|
34
|
+
connectionId: string;
|
|
35
|
+
serverName: string;
|
|
36
|
+
challengeNonce?: string;
|
|
37
|
+
requirePrivateChallenge?: boolean;
|
|
38
|
+
clientIdentity?: ClientSideServerPublicIdentity;
|
|
39
|
+
auth?: {
|
|
40
|
+
username: string;
|
|
41
|
+
password: string;
|
|
42
|
+
};
|
|
43
|
+
at: number;
|
|
44
|
+
}
|
|
45
|
+
export interface ClientSideServerSealedOfferPayload {
|
|
46
|
+
type: 'offer';
|
|
47
|
+
connectionId: string;
|
|
48
|
+
serverName: string;
|
|
49
|
+
description: RTCSessionDescriptionInit;
|
|
50
|
+
challengeNonce?: string;
|
|
51
|
+
requirePrivateChallenge?: boolean;
|
|
52
|
+
clientIdentity?: ClientSideServerPublicIdentity;
|
|
53
|
+
auth?: {
|
|
54
|
+
username: string;
|
|
55
|
+
password: string;
|
|
56
|
+
};
|
|
57
|
+
at: number;
|
|
58
|
+
}
|
|
59
|
+
export interface ClientSideServerSealedAnswerPayload {
|
|
60
|
+
type: 'answer';
|
|
61
|
+
connectionId: string;
|
|
62
|
+
serverName: string;
|
|
63
|
+
description: RTCSessionDescriptionInit;
|
|
64
|
+
identity?: ClientSideServerPublicIdentity;
|
|
65
|
+
authorityRecord?: ClientSideServerSignedAuthorityRecord | ClientSideServerSignedAuthorityRecordV2;
|
|
66
|
+
challengeNonce?: string;
|
|
67
|
+
challengeSignature?: string;
|
|
68
|
+
at: number;
|
|
69
|
+
}
|
|
70
|
+
export interface ClientSideServerSealedIcePayload {
|
|
71
|
+
type: 'ice';
|
|
72
|
+
connectionId: string;
|
|
73
|
+
serverName: string;
|
|
74
|
+
candidate: RTCIceCandidateInit;
|
|
75
|
+
at: number;
|
|
76
|
+
}
|
|
77
|
+
export interface ClientSideServerSealedRejectPayload {
|
|
78
|
+
type: 'reject';
|
|
79
|
+
connectionId: string;
|
|
80
|
+
serverName: string;
|
|
81
|
+
reason: 'auth-required' | 'auth-failed' | 'server-not-accepting' | 'bad-message' | 'timeout';
|
|
82
|
+
at: number;
|
|
83
|
+
}
|
|
84
|
+
export type ClientSideServerSealedPayload = ClientSideServerSealedDiscoverPayload | ClientSideServerSealedOfferPayload | ClientSideServerSealedAnswerPayload | ClientSideServerSealedIcePayload | ClientSideServerSealedRejectPayload;
|
|
85
|
+
export type ServiceWorkerBridgeBodyEncoding = 'none' | 'base64';
|
|
86
|
+
export interface ServiceWorkerBridgeRequestMessage {
|
|
87
|
+
type: 'PLAT_REQUEST';
|
|
88
|
+
id: string;
|
|
89
|
+
clientId?: string;
|
|
90
|
+
method: string;
|
|
91
|
+
path: string;
|
|
92
|
+
headers: Record<string, string>;
|
|
93
|
+
bodyEncoding: ServiceWorkerBridgeBodyEncoding;
|
|
94
|
+
body?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface ServiceWorkerBridgeResponseMessage {
|
|
97
|
+
type: 'PLAT_RESPONSE';
|
|
98
|
+
id: string;
|
|
99
|
+
status: number;
|
|
100
|
+
statusText: string;
|
|
101
|
+
headers: Record<string, string>;
|
|
102
|
+
bodyEncoding: ServiceWorkerBridgeBodyEncoding;
|
|
103
|
+
body?: string;
|
|
104
|
+
error?: string;
|
|
105
|
+
errorCode?: 'timeout' | 'no-client' | 'upstream-failed' | 'bad-response';
|
|
106
|
+
}
|
|
22
107
|
export interface ClientSideServerRequest {
|
|
23
108
|
jsonrpc: '2.0';
|
|
24
109
|
id: string;
|
|
@@ -73,14 +158,14 @@ export interface ClientSideServerDrainMessage {
|
|
|
73
158
|
export interface ClientSideServerPrivateChallengeRequest {
|
|
74
159
|
platcss: 'private-challenge';
|
|
75
160
|
challengeNonce: string;
|
|
76
|
-
clientIdentity?:
|
|
161
|
+
clientIdentity?: ClientSideServerPublicIdentity;
|
|
77
162
|
}
|
|
78
163
|
export interface ClientSideServerPrivateChallengeResponse {
|
|
79
164
|
platcss: 'private-challenge-response';
|
|
80
165
|
challengeNonce: string;
|
|
81
166
|
challengeSignature: string;
|
|
82
|
-
identity:
|
|
83
|
-
authorityRecord?:
|
|
167
|
+
identity: ClientSideServerPublicIdentity;
|
|
168
|
+
authorityRecord?: ClientSideServerSignedAuthorityRecord | ClientSideServerSignedAuthorityRecordV2;
|
|
84
169
|
}
|
|
85
170
|
export type ClientSideServerControlMessage = ClientSideServerPingMessage | ClientSideServerPongMessage | ClientSideServerDrainMessage | ClientSideServerPrivateChallengeRequest | ClientSideServerPrivateChallengeResponse;
|
|
86
171
|
export type ClientSideServerResponse = ClientSideServerSuccessResponse | ClientSideServerErrorResponse;
|
|
@@ -91,4 +176,6 @@ export declare function isClientSideServerControlMessage(message: ClientSideServ
|
|
|
91
176
|
export declare function isClientSideServerRequestMessage(message: ClientSideServerMessage): message is ClientSideServerRequest;
|
|
92
177
|
export declare function isClientSideServerEventMessage(message: ClientSideServerMessage): message is ClientSideServerEventMessage;
|
|
93
178
|
export declare function isClientSideServerResponseMessage(message: ClientSideServerMessage): message is ClientSideServerResponse;
|
|
179
|
+
export declare function isClientSideServerSealedEnvelope(value: unknown): value is ClientSideServerSealedEnvelope;
|
|
180
|
+
export declare function isClientSideServerSealedPayload(value: unknown): value is ClientSideServerSealedPayload;
|
|
94
181
|
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/client-side-server/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/client-side-server/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,4 +17,114 @@ export function isClientSideServerEventMessage(message) {
|
|
|
17
17
|
export function isClientSideServerResponseMessage(message) {
|
|
18
18
|
return 'jsonrpc' in message && 'ok' in message && !('event' in message) && !('method' in message);
|
|
19
19
|
}
|
|
20
|
+
export function isClientSideServerSealedEnvelope(value) {
|
|
21
|
+
if (!isObject(value))
|
|
22
|
+
return false;
|
|
23
|
+
return value.platcss === 'sealed'
|
|
24
|
+
&& value.version === 1
|
|
25
|
+
&& typeof value.senderId === 'string'
|
|
26
|
+
&& typeof value.at === 'number'
|
|
27
|
+
&& Number.isFinite(value.at)
|
|
28
|
+
&& typeof value.nonce === 'string'
|
|
29
|
+
&& isPlainJsonWebKey(value.clientEphemeralPublicKeyJwk)
|
|
30
|
+
&& typeof value.ciphertext === 'string';
|
|
31
|
+
}
|
|
32
|
+
export function isClientSideServerSealedPayload(value) {
|
|
33
|
+
if (!isObject(value))
|
|
34
|
+
return false;
|
|
35
|
+
if (typeof value.connectionId !== 'string' || typeof value.serverName !== 'string')
|
|
36
|
+
return false;
|
|
37
|
+
if (typeof value.at !== 'number' || !Number.isFinite(value.at))
|
|
38
|
+
return false;
|
|
39
|
+
if (!isOptionalString(value.challengeNonce))
|
|
40
|
+
return false;
|
|
41
|
+
if (!isOptionalBoolean(value.requirePrivateChallenge))
|
|
42
|
+
return false;
|
|
43
|
+
if (!isOptionalClientSideServerPublicIdentity(value.clientIdentity))
|
|
44
|
+
return false;
|
|
45
|
+
if (!isOptionalAuthObject(value.auth))
|
|
46
|
+
return false;
|
|
47
|
+
switch (value.type) {
|
|
48
|
+
case 'discover':
|
|
49
|
+
return true;
|
|
50
|
+
case 'offer':
|
|
51
|
+
return isRtcSessionDescriptionInit(value.description);
|
|
52
|
+
case 'answer':
|
|
53
|
+
return isRtcSessionDescriptionInit(value.description)
|
|
54
|
+
&& isOptionalClientSideServerPublicIdentity(value.identity)
|
|
55
|
+
&& isOptionalAuthorityRecord(value.authorityRecord)
|
|
56
|
+
&& isOptionalString(value.challengeSignature);
|
|
57
|
+
case 'ice':
|
|
58
|
+
return isRtcIceCandidateInit(value.candidate);
|
|
59
|
+
case 'reject':
|
|
60
|
+
return value.reason === 'auth-required'
|
|
61
|
+
|| value.reason === 'auth-failed'
|
|
62
|
+
|| value.reason === 'server-not-accepting'
|
|
63
|
+
|| value.reason === 'bad-message'
|
|
64
|
+
|| value.reason === 'timeout';
|
|
65
|
+
default:
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function isObject(value) {
|
|
70
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
71
|
+
}
|
|
72
|
+
function isPlainJsonWebKey(value) {
|
|
73
|
+
return isObject(value);
|
|
74
|
+
}
|
|
75
|
+
function isOptionalString(value) {
|
|
76
|
+
return value === undefined || typeof value === 'string';
|
|
77
|
+
}
|
|
78
|
+
function isOptionalBoolean(value) {
|
|
79
|
+
return value === undefined || typeof value === 'boolean';
|
|
80
|
+
}
|
|
81
|
+
function isRtcSessionDescriptionInit(value) {
|
|
82
|
+
return isObject(value)
|
|
83
|
+
&& (value.type === 'offer' || value.type === 'pranswer' || value.type === 'answer' || value.type === 'rollback')
|
|
84
|
+
&& isOptionalString(value.sdp);
|
|
85
|
+
}
|
|
86
|
+
function isRtcIceCandidateInit(value) {
|
|
87
|
+
return isObject(value)
|
|
88
|
+
&& isOptionalString(value.candidate)
|
|
89
|
+
&& (value.sdpMid === undefined || value.sdpMid === null || typeof value.sdpMid === 'string')
|
|
90
|
+
&& (value.sdpMLineIndex === undefined || value.sdpMLineIndex === null || typeof value.sdpMLineIndex === 'number')
|
|
91
|
+
&& (value.usernameFragment === undefined || value.usernameFragment === null || typeof value.usernameFragment === 'string');
|
|
92
|
+
}
|
|
93
|
+
function isClientSideServerPublicIdentityLike(value) {
|
|
94
|
+
return isObject(value)
|
|
95
|
+
&& value.algorithm === 'ECDSA-P256'
|
|
96
|
+
&& isPlainJsonWebKey(value.publicKeyJwk)
|
|
97
|
+
&& typeof value.keyId === 'string'
|
|
98
|
+
&& typeof value.fingerprint === 'string'
|
|
99
|
+
&& (value.createdAt === undefined || typeof value.createdAt === 'number');
|
|
100
|
+
}
|
|
101
|
+
function isOptionalClientSideServerPublicIdentity(value) {
|
|
102
|
+
return value === undefined || isClientSideServerPublicIdentityLike(value);
|
|
103
|
+
}
|
|
104
|
+
function isAuthorityRecord(value) {
|
|
105
|
+
if (!isObject(value) || typeof value.serverName !== 'string' || typeof value.issuedAt !== 'number' || typeof value.signature !== 'string') {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
if (value.protocol === 'plat-css-authority-v1') {
|
|
109
|
+
return isPlainJsonWebKey(value.publicKeyJwk)
|
|
110
|
+
&& (value.keyId === undefined || typeof value.keyId === 'string')
|
|
111
|
+
&& (value.authorityName === undefined || typeof value.authorityName === 'string');
|
|
112
|
+
}
|
|
113
|
+
if (value.protocol === 'plat-css-authority-v2') {
|
|
114
|
+
return isPlainJsonWebKey(value.signingPublicKeyJwk)
|
|
115
|
+
&& isPlainJsonWebKey(value.encryptionPublicKeyJwk)
|
|
116
|
+
&& (value.signingKeyId === undefined || typeof value.signingKeyId === 'string')
|
|
117
|
+
&& (value.encryptionKeyId === undefined || typeof value.encryptionKeyId === 'string')
|
|
118
|
+
&& (value.authorityName === undefined || typeof value.authorityName === 'string');
|
|
119
|
+
}
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
function isOptionalAuthorityRecord(value) {
|
|
123
|
+
return value === undefined || isAuthorityRecord(value);
|
|
124
|
+
}
|
|
125
|
+
function isOptionalAuthObject(value) {
|
|
126
|
+
return value === undefined || (isObject(value)
|
|
127
|
+
&& typeof value.username === 'string'
|
|
128
|
+
&& typeof value.password === 'string');
|
|
129
|
+
}
|
|
20
130
|
//# sourceMappingURL=protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/client-side-server/protocol.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/client-side-server/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,8 @@ export declare function runClientSideServer(source: Record<string, string>, opti
|
|
|
70
70
|
export declare const runClientSideServerFromSource: typeof runClientSideServer;
|
|
71
71
|
export declare function startClientSideServerFromSource(options: StartClientSideServerFromSourceOptions): Promise<StartedClientSideServer>;
|
|
72
72
|
export declare function serveClientSideServer(serverName: string, controllers: ControllerClass[]): ClientSideServerDefinition;
|
|
73
|
+
/** Server-style alias for defining a client-side server module. */
|
|
74
|
+
export declare const serveServer: typeof serveClientSideServer;
|
|
73
75
|
export interface ConnectClientSideServerOptions extends ClientSideServerMQTTWebRTCOptions {
|
|
74
76
|
baseUrl: string;
|
|
75
77
|
}
|
|
@@ -77,6 +79,13 @@ export declare function connectClientSideServer(options: ConnectClientSideServer
|
|
|
77
79
|
client: OpenAPIClient;
|
|
78
80
|
openapi: OpenAPISpec;
|
|
79
81
|
}>;
|
|
82
|
+
/** Server-style alias for connecting to a server endpoint (css:// or http(s)://). */
|
|
83
|
+
export declare const connectServer: typeof connectClientSideServer;
|
|
84
|
+
/**
|
|
85
|
+
* Server-style alias for starting a client-side server from source.
|
|
86
|
+
* Mirrors the common `startServer(...)` naming across runtimes.
|
|
87
|
+
*/
|
|
88
|
+
export declare const startServer: typeof runClientSideServer;
|
|
80
89
|
export interface RetryLoopOptions {
|
|
81
90
|
initialDelayMs?: number;
|
|
82
91
|
maxDelayMs?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/client-side-server/runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/client-side-server/runtime.ts"],"names":[],"mappings":"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"}
|