osra 0.2.13 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +319 -304
- package/build/connections/bidirectional.d.ts +53 -0
- package/build/connections/index.d.ts +20 -0
- package/build/connections/utils.d.ts +31 -0
- package/build/index.d.ts +16 -630
- package/build/index.js +918 -634
- package/build/index.js.map +1 -1
- package/build/revivables/abort-signal.d.ts +20 -0
- package/build/revivables/array-buffer.d.ts +12 -0
- package/build/revivables/bigint.d.ts +14 -0
- package/build/revivables/date.d.ts +9 -0
- package/build/revivables/error.d.ts +10 -0
- package/build/revivables/event-target.d.ts +29 -0
- package/build/revivables/function.d.ts +29 -0
- package/build/revivables/headers.d.ts +9 -0
- package/build/revivables/identity.d.ts +39 -0
- package/build/revivables/index.d.ts +39 -0
- package/build/revivables/map.d.ts +11 -0
- package/build/revivables/message-port.d.ts +83 -0
- package/build/revivables/promise.d.ts +34 -0
- package/build/revivables/readable-stream.d.ts +18 -0
- package/build/revivables/request.d.ts +23 -0
- package/build/revivables/response.d.ts +18 -0
- package/build/revivables/set.d.ts +11 -0
- package/build/revivables/transfer.d.ts +37 -0
- package/build/revivables/typed-array.d.ts +15 -0
- package/build/revivables/utils.d.ts +59 -0
- package/build/types.d.ts +45 -0
- package/build/utils/capable-check.d.ts +44 -0
- package/build/utils/event-channel.d.ts +27 -0
- package/build/utils/index.d.ts +11 -0
- package/build/utils/replace.d.ts +25 -0
- package/build/utils/transferable.d.ts +20 -0
- package/build/utils/transport.d.ts +56 -0
- package/build/utils/type-guards.d.ts +58 -0
- package/build/utils/type.d.ts +2 -0
- package/build/utils/typed-event-target.d.ts +16 -0
- package/build/utils/typed-message-channel.d.ts +19 -0
- package/package.json +60 -67
package/build/index.d.ts
CHANGED
|
@@ -1,630 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
revive_2 as revive
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export declare type AsCapable<T> = DeepReplaceAsync<T, never, never>;
|
|
22
|
-
|
|
23
|
-
declare const BadValueType: unique symbol;
|
|
24
|
-
|
|
25
|
-
export declare type BidirectionalConnectionMessage = {
|
|
26
|
-
type: 'init';
|
|
27
|
-
remoteUuid: Uuid;
|
|
28
|
-
data: Capable;
|
|
29
|
-
}
|
|
30
|
-
/** message not needed if transferring MessagePort is supported */
|
|
31
|
-
| {
|
|
32
|
-
type: 'message';
|
|
33
|
-
remoteUuid: Uuid;
|
|
34
|
-
data: Capable;
|
|
35
|
-
/** uuid of the messagePort that the message was sent through */
|
|
36
|
-
portId: Uuid;
|
|
37
|
-
}
|
|
38
|
-
/** message not needed if transferring MessagePort is supported */
|
|
39
|
-
| {
|
|
40
|
-
type: 'message-port-close';
|
|
41
|
-
remoteUuid: Uuid;
|
|
42
|
-
/** uuid of the messagePort that closed */
|
|
43
|
-
portId: string;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export declare const box: <T extends Capable, T2 extends RevivableContext>(value: T, context: T2) => ReplaceWithBox<T, T2["revivableModules"][number]>;
|
|
47
|
-
|
|
48
|
-
declare const box_10: <T extends ReadableStream, T2 extends RevivableContext>(value: T, context: T2) => BoxedReadableStream<T>;
|
|
49
|
-
|
|
50
|
-
declare const box_2: <T extends ArrayBuffer, T2 extends RevivableContext>(value: T, _context: T2) => {
|
|
51
|
-
type: "arrayBuffer";
|
|
52
|
-
__OSRA_BOX__: "revivable";
|
|
53
|
-
} & (IsJsonOnlyTransport<T2["transport"]> extends true ? {
|
|
54
|
-
base64Buffer: string;
|
|
55
|
-
} : IsJsonOnlyTransport<T2["transport"]> extends false ? {
|
|
56
|
-
arrayBuffer: ArrayBuffer;
|
|
57
|
-
} : {
|
|
58
|
-
base64Buffer: string;
|
|
59
|
-
} | {
|
|
60
|
-
arrayBuffer: ArrayBuffer;
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
declare const box_3: <T extends Date, T2 extends RevivableContext>(value: T, _context: T2) => {
|
|
64
|
-
type: "date";
|
|
65
|
-
ISOString: string;
|
|
66
|
-
__OSRA_BOX__: "revivable";
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
declare const box_4: <T extends Headers, T2 extends RevivableContext>(value: T, _context: T2) => {
|
|
70
|
-
type: "headers";
|
|
71
|
-
entries: [string, string][];
|
|
72
|
-
__OSRA_BOX__: "revivable";
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
declare const box_5: <T extends Error, T2 extends RevivableContext>(value: T, _context: T2) => {
|
|
76
|
-
type: "error";
|
|
77
|
-
message: string;
|
|
78
|
-
stack: string;
|
|
79
|
-
__OSRA_BOX__: "revivable";
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
declare const box_6: <T extends TypedArray, T2 extends RevivableContext>(value: T, context: T2) => {
|
|
83
|
-
type: "typedArray";
|
|
84
|
-
typedArrayType: string;
|
|
85
|
-
__OSRA_BOX__: "revivable";
|
|
86
|
-
} & (IsJsonOnlyTransport<T2["transport"]> extends true ? {
|
|
87
|
-
base64Buffer: string;
|
|
88
|
-
} : IsJsonOnlyTransport<T2["transport"]> extends false ? {
|
|
89
|
-
arrayBuffer: ArrayBuffer;
|
|
90
|
-
} : {
|
|
91
|
-
base64Buffer: string;
|
|
92
|
-
} | {
|
|
93
|
-
arrayBuffer: ArrayBuffer;
|
|
94
|
-
}) & {
|
|
95
|
-
[UnderlyingType]: T;
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
declare const box_7: <T, T2 extends RevivableContext = RevivableContext>(value: StructurableTransferablePort<T>, context: T2) => ({
|
|
99
|
-
type: "messagePort";
|
|
100
|
-
portId: `${string}-${string}-${string}-${string}-${string}`;
|
|
101
|
-
__OSRA_BOX__: "revivable";
|
|
102
|
-
} & {
|
|
103
|
-
[UnderlyingType]: StrictMessagePort<ExtractStructurableTransferable<T>>;
|
|
104
|
-
}) | ({
|
|
105
|
-
type: "messagePort";
|
|
106
|
-
port: StructurableTransferablePort<T>;
|
|
107
|
-
__OSRA_BOX__: "revivable";
|
|
108
|
-
} & {
|
|
109
|
-
[UnderlyingType]: StrictMessagePort<ExtractStructurableTransferable<T>>;
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
declare const box_8: <T, T2 extends RevivableContext>(value: CapablePromise<T>, context: T2) => BoxedPromise<ExtractCapable<T>>;
|
|
113
|
-
|
|
114
|
-
declare const box_9: <T extends (...args: any[]) => any, T2 extends RevivableContext>(value: T & CapableFunction<T>, context: T2) => BoxedFunction<T>;
|
|
115
|
-
|
|
116
|
-
export declare const BoxBase: {
|
|
117
|
-
readonly __OSRA_BOX__: "revivable";
|
|
118
|
-
readonly type: string;
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
export declare type BoxBase<T extends string = string> = typeof BoxBase & {
|
|
122
|
-
type: T;
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
declare type BoxedFunction<T extends (...args: any[]) => any = (...args: any[]) => any> = BoxBase<typeof type_7> & {
|
|
126
|
-
port: BoxedMessagePort;
|
|
127
|
-
} & {
|
|
128
|
-
[UnderlyingType]: (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>>;
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
declare type BoxedMessagePort<T extends StructurableTransferable = StructurableTransferable> = BoxBase<typeof type_8> & ({
|
|
132
|
-
portId: string;
|
|
133
|
-
} | {
|
|
134
|
-
port: StrictMessagePort<T>;
|
|
135
|
-
}) & {
|
|
136
|
-
[UnderlyingType]: StrictMessagePort<T>;
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
declare type BoxedPromise<T extends Capable = Capable> = {
|
|
140
|
-
__OSRA_BOX__: 'revivable';
|
|
141
|
-
type: typeof type_6;
|
|
142
|
-
port: ReturnType<typeof box_7>;
|
|
143
|
-
[UnderlyingType]: T;
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
declare type BoxedReadableStream<T extends ReadableStream = ReadableStream> = {
|
|
147
|
-
__OSRA_BOX__: 'revivable';
|
|
148
|
-
type: typeof type_9;
|
|
149
|
-
port: BoxedMessagePort;
|
|
150
|
-
[UnderlyingType]: T;
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
declare type CallContext = [
|
|
154
|
-
/** MessagePort or portId that will be used to send the result of the function call */
|
|
155
|
-
MessagePort | string,
|
|
156
|
-
/** Arguments that will be passed to the function call */
|
|
157
|
-
Capable[]
|
|
158
|
-
];
|
|
159
|
-
|
|
160
|
-
export declare type Capable<TModules extends readonly RevivableModule[] = DefaultRevivableModules> = StructurableTransferable | InferRevivables<TModules> | {
|
|
161
|
-
[key: string]: Capable;
|
|
162
|
-
} | Array<Capable> | Map<Capable, Capable> | Set<Capable>;
|
|
163
|
-
|
|
164
|
-
declare type CapableFunction<T> = T extends (...args: infer P) => infer R ? P extends Capable[] ? R extends Capable ? T : never : never : never;
|
|
165
|
-
|
|
166
|
-
declare type CapablePromise<T> = T extends Promise<infer U> ? U extends Capable ? T : {
|
|
167
|
-
[ErrorMessage]: 'Value type must extend a Promise that resolves to a Capable';
|
|
168
|
-
[BadValueType]: U;
|
|
169
|
-
} : {
|
|
170
|
-
[ErrorMessage]: 'Value type must extend a Promise that resolves to a Capable';
|
|
171
|
-
[BadValueType]: T;
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
export declare type ConnectionMessage = BidirectionalConnectionMessage | UnidirectionalConnectionMessage;
|
|
175
|
-
|
|
176
|
-
declare type Context = {
|
|
177
|
-
type: 'resolve';
|
|
178
|
-
data: Capable;
|
|
179
|
-
} | {
|
|
180
|
-
type: 'reject';
|
|
181
|
-
error: string;
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
export declare type CustomEmitTransport = Extract<CustomTransport, {
|
|
185
|
-
emit: any;
|
|
186
|
-
}>;
|
|
187
|
-
|
|
188
|
-
export declare type CustomReceiveTransport = Extract<CustomTransport, {
|
|
189
|
-
receive: any;
|
|
190
|
-
}>;
|
|
191
|
-
|
|
192
|
-
export declare type CustomTransport = {
|
|
193
|
-
isJson?: boolean;
|
|
194
|
-
} & ({
|
|
195
|
-
receive: ReceivePlatformTransport | ((listener: (event: Message, messageContext: MessageContext) => void) => void);
|
|
196
|
-
emit: EmitPlatformTransport | ((message: Message, transferables?: Transferable[]) => void);
|
|
197
|
-
} | {
|
|
198
|
-
receive: ReceivePlatformTransport | ((listener: (event: Message, messageContext: MessageContext) => void) => void);
|
|
199
|
-
} | {
|
|
200
|
-
emit: EmitPlatformTransport | ((message: Message, transferables?: Transferable[]) => void);
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
declare namespace date {
|
|
204
|
-
export {
|
|
205
|
-
type_2 as type,
|
|
206
|
-
isType_2 as isType,
|
|
207
|
-
box_3 as box,
|
|
208
|
-
revive_3 as revive
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
export declare type DeepReplace<T, From, To> = T extends From ? DeepReplace<To, From, To> : T extends (...args: infer A) => infer R ? (...args: A) => DeepReplace<R, From, To> : T extends Array<infer U> ? Array<DeepReplace<U, From, To>> : T extends object ? {
|
|
213
|
-
[K in keyof T]: DeepReplace<T[K], From, To>;
|
|
214
|
-
} : T;
|
|
215
|
-
|
|
216
|
-
export declare type DeepReplaceAsync<T, From, To> = T extends From ? DeepReplaceAsync<To, From, To> : T extends (...args: infer A) => infer R ? (...args: A) => Promise<Awaited<DeepReplaceAsync<R, From, To>>> : T extends Array<infer U> ? Array<DeepReplaceAsync<U, From, To>> : T extends object ? {
|
|
217
|
-
[K in keyof T]: DeepReplaceAsync<T[K], From, To>;
|
|
218
|
-
} : T;
|
|
219
|
-
|
|
220
|
-
declare type DeepReplaceWithBox<T, M> = [
|
|
221
|
-
FindMatchingBox<T, M>
|
|
222
|
-
] extends [never] ? (T extends Array<infer U> ? Array<DeepReplaceWithBox<U, M>> : T extends object ? {
|
|
223
|
-
[K in keyof T]: DeepReplaceWithBox<T[K], M>;
|
|
224
|
-
} : T) : FindMatchingBox<T, M>;
|
|
225
|
-
|
|
226
|
-
declare type DeepReplaceWithRevive<T, M> = [
|
|
227
|
-
FindMatchingRevive<T, M>
|
|
228
|
-
] extends [never] ? (T extends Array<infer U> ? Array<DeepReplaceWithRevive<U, M>> : T extends object ? {
|
|
229
|
-
[K in keyof T]: DeepReplaceWithRevive<T[K], M>;
|
|
230
|
-
} : T) : FindMatchingRevive<T, M>;
|
|
231
|
-
|
|
232
|
-
export declare type DefaultRevivableModule = DefaultRevivableModules[number];
|
|
233
|
-
|
|
234
|
-
export declare type DefaultRevivableModules = typeof defaultRevivableModules;
|
|
235
|
-
|
|
236
|
-
export declare const defaultRevivableModules: readonly [typeof arrayBuffer, typeof date, typeof headers, typeof error, typeof typedArray, typeof promise, typeof func, typeof messagePort, typeof readableStream];
|
|
237
|
-
|
|
238
|
-
export declare type EmitJsonPlatformTransport = WebSocket | WebExtPort;
|
|
239
|
-
|
|
240
|
-
export declare type EmitPlatformTransport = EmitJsonPlatformTransport | Window | ServiceWorker | Worker | SharedWorker | MessagePort;
|
|
241
|
-
|
|
242
|
-
export declare type EmitTransport = EmitPlatformTransport & Extract<CustomTransport, {
|
|
243
|
-
emit: any;
|
|
244
|
-
}>;
|
|
245
|
-
|
|
246
|
-
declare namespace error {
|
|
247
|
-
export {
|
|
248
|
-
type_4 as type,
|
|
249
|
-
isType_4 as isType,
|
|
250
|
-
box_5 as box,
|
|
251
|
-
revive_5 as revive
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
declare const ErrorMessage: unique symbol;
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Protocol mode:
|
|
259
|
-
* - Bidirectional mode
|
|
260
|
-
* - Unidirectional mode
|
|
261
|
-
*
|
|
262
|
-
* Transport modes:
|
|
263
|
-
* - Capable mode
|
|
264
|
-
* - Jsonable mode
|
|
265
|
-
*/
|
|
266
|
-
export declare const expose: <T extends Capable>(value: Capable, { transport: _transport, name, remoteName, key, origin, unregisterSignal, platformCapabilities: _platformCapabilities, transferAll, logger }: {
|
|
267
|
-
transport: Transport;
|
|
268
|
-
name?: string;
|
|
269
|
-
remoteName?: string;
|
|
270
|
-
key?: string;
|
|
271
|
-
origin?: string;
|
|
272
|
-
unregisterSignal?: AbortSignal;
|
|
273
|
-
platformCapabilities?: PlatformCapabilities;
|
|
274
|
-
transferAll?: boolean;
|
|
275
|
-
logger?: {};
|
|
276
|
-
}) => Promise<T>;
|
|
277
|
-
|
|
278
|
-
declare type ExtractCapable<T> = T extends Promise<infer U> ? U extends Capable ? U : never : never;
|
|
279
|
-
|
|
280
|
-
declare type ExtractStructurableTransferable<T> = T extends StructurableTransferable ? T : never;
|
|
281
|
-
|
|
282
|
-
declare type ExtractType<T> = T extends {
|
|
283
|
-
isType: (value: unknown) => value is infer S;
|
|
284
|
-
} ? S : never;
|
|
285
|
-
|
|
286
|
-
declare type FindMatchingBox<T, M> = M extends {
|
|
287
|
-
isType: (value: unknown) => value is infer S;
|
|
288
|
-
box: (...args: any[]) => infer B;
|
|
289
|
-
} ? T extends S ? B : never : never;
|
|
290
|
-
|
|
291
|
-
declare type FindMatchingRevive<T, M> = M extends {
|
|
292
|
-
box: (...args: any[]) => infer S;
|
|
293
|
-
revive: (...args: any[]) => infer R;
|
|
294
|
-
} ? T extends S ? R : never : never;
|
|
295
|
-
|
|
296
|
-
export declare const findModuleForValue: <T extends Capable, T2 extends RevivableContext>(value: T, context: T2) => ReplaceWithBox<T, T2["revivableModules"][number]>;
|
|
297
|
-
|
|
298
|
-
declare namespace func {
|
|
299
|
-
export {
|
|
300
|
-
type_7 as type,
|
|
301
|
-
CallContext,
|
|
302
|
-
BoxedFunction,
|
|
303
|
-
isType_7 as isType,
|
|
304
|
-
box_9 as box,
|
|
305
|
-
revive_8 as revive
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
declare namespace headers {
|
|
310
|
-
export {
|
|
311
|
-
type_3 as type,
|
|
312
|
-
isType_3 as isType,
|
|
313
|
-
box_4 as box,
|
|
314
|
-
revive_4 as revive
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
declare type InferRevivables<TModules extends readonly unknown[]> = ExtractType<TModules[number]>;
|
|
319
|
-
|
|
320
|
-
declare type IsJsonOnlyTransport<T extends Transport> = T extends JsonPlatformTransport ? true : false;
|
|
321
|
-
|
|
322
|
-
declare const isType: (value: unknown) => value is ArrayBuffer;
|
|
323
|
-
|
|
324
|
-
declare const isType_2: (value: unknown) => value is Date;
|
|
325
|
-
|
|
326
|
-
declare const isType_3: (value: unknown) => value is Headers;
|
|
327
|
-
|
|
328
|
-
declare const isType_4: (value: unknown) => value is Error;
|
|
329
|
-
|
|
330
|
-
declare const isType_5: (value: unknown) => value is TypedArray;
|
|
331
|
-
|
|
332
|
-
declare const isType_6: (value: unknown) => value is Promise<any>;
|
|
333
|
-
|
|
334
|
-
declare const isType_7: (value: unknown) => value is (...args: any[]) => any;
|
|
335
|
-
|
|
336
|
-
declare const isType_8: (value: unknown) => value is MessagePort;
|
|
337
|
-
|
|
338
|
-
declare const isType_9: (value: unknown) => value is ReadableStream;
|
|
339
|
-
|
|
340
|
-
export declare type Jsonable = boolean | null | number | string | {
|
|
341
|
-
[key: string]: Jsonable;
|
|
342
|
-
} | Array<Jsonable>;
|
|
343
|
-
|
|
344
|
-
export declare type JsonPlatformTransport = {
|
|
345
|
-
isJson: true;
|
|
346
|
-
} | EmitJsonPlatformTransport | ReceiveJsonPlatformTransport;
|
|
347
|
-
|
|
348
|
-
declare const makeMessageChannelAllocator: () => {
|
|
349
|
-
getUniqueUuid: () => `${string}-${string}-${string}-${string}-${string}`;
|
|
350
|
-
set: (uuid: Uuid, messagePorts: {
|
|
351
|
-
port1: StrictMessagePort;
|
|
352
|
-
port2?: StrictMessagePort;
|
|
353
|
-
}) => void;
|
|
354
|
-
alloc: (uuid?: Uuid | undefined, messagePorts?: {
|
|
355
|
-
port1: StrictMessagePort;
|
|
356
|
-
port2?: StrictMessagePort;
|
|
357
|
-
}) => {
|
|
358
|
-
port1: StrictMessagePort;
|
|
359
|
-
port2?: StrictMessagePort;
|
|
360
|
-
uuid: `${string}-${string}-${string}-${string}-${string}`;
|
|
361
|
-
};
|
|
362
|
-
has: (uuid: string) => boolean;
|
|
363
|
-
get: (uuid: string) => AllocatedMessageChannel<StructurableTransferable, StructurableTransferable> | undefined;
|
|
364
|
-
free: (uuid: string) => boolean;
|
|
365
|
-
getOrAlloc: (uuid?: Uuid | undefined, messagePorts?: {
|
|
366
|
-
port1: StrictMessagePort;
|
|
367
|
-
port2?: StrictMessagePort;
|
|
368
|
-
}) => AllocatedMessageChannel<StructurableTransferable, StructurableTransferable>;
|
|
369
|
-
};
|
|
370
|
-
|
|
371
|
-
export declare type Message = MessageBase & MessageVariant;
|
|
372
|
-
|
|
373
|
-
export declare type MessageBase = {
|
|
374
|
-
[OSRA_KEY]: string;
|
|
375
|
-
/** UUID of the client that sent the message */
|
|
376
|
-
uuid: Uuid;
|
|
377
|
-
name?: string;
|
|
378
|
-
};
|
|
379
|
-
|
|
380
|
-
declare type MessageChannelAllocator = ReturnType<typeof makeMessageChannelAllocator>;
|
|
381
|
-
|
|
382
|
-
export declare type MessageContext = {
|
|
383
|
-
port?: MessagePort | WebExtPort;
|
|
384
|
-
sender?: WebExtSender;
|
|
385
|
-
receiveTransport?: ReceivePlatformTransport;
|
|
386
|
-
source?: MessageEventSource | null;
|
|
387
|
-
};
|
|
388
|
-
|
|
389
|
-
export declare type MessageEventMap = {
|
|
390
|
-
message: CustomEvent<Message>;
|
|
391
|
-
};
|
|
392
|
-
|
|
393
|
-
declare type MessageEventTarget_2 = TypedEventTarget<MessageEventMap>;
|
|
394
|
-
export { MessageEventTarget_2 as MessageEventTarget }
|
|
395
|
-
|
|
396
|
-
declare namespace messagePort {
|
|
397
|
-
export {
|
|
398
|
-
type_8 as type,
|
|
399
|
-
BoxedMessagePort,
|
|
400
|
-
isType_8 as isType,
|
|
401
|
-
box_7 as box,
|
|
402
|
-
revive_9 as revive
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
export declare type MessageVariant = ProtocolMessage | ConnectionMessage;
|
|
407
|
-
|
|
408
|
-
export declare const OSRA_BOX: "__OSRA_BOX__";
|
|
409
|
-
|
|
410
|
-
export declare const OSRA_DEFAULT_KEY: "__OSRA_DEFAULT_KEY__";
|
|
411
|
-
|
|
412
|
-
export declare const OSRA_KEY: "__OSRA_KEY__";
|
|
413
|
-
|
|
414
|
-
declare type PlatformCapabilities = {
|
|
415
|
-
jsonOnly: boolean;
|
|
416
|
-
messagePort: boolean;
|
|
417
|
-
arrayBuffer: boolean;
|
|
418
|
-
transferable: boolean;
|
|
419
|
-
transferableStream: boolean;
|
|
420
|
-
};
|
|
421
|
-
|
|
422
|
-
export declare type PlatformTransport = EmitPlatformTransport | ReceivePlatformTransport;
|
|
423
|
-
|
|
424
|
-
declare namespace promise {
|
|
425
|
-
export {
|
|
426
|
-
type_6 as type,
|
|
427
|
-
Context,
|
|
428
|
-
BoxedPromise,
|
|
429
|
-
isType_6 as isType,
|
|
430
|
-
box_8 as box,
|
|
431
|
-
revive_7 as revive
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
export declare type ProtocolMessage = {
|
|
436
|
-
type: 'announce';
|
|
437
|
-
/** Only set when acknowledging a remote announcement */
|
|
438
|
-
remoteUuid?: Uuid;
|
|
439
|
-
} | {
|
|
440
|
-
/** uuid already taken, try announcing with another one */
|
|
441
|
-
type: 'reject-uuid-taken';
|
|
442
|
-
remoteUuid: Uuid;
|
|
443
|
-
} | {
|
|
444
|
-
type: 'close';
|
|
445
|
-
remoteUuid: Uuid;
|
|
446
|
-
};
|
|
447
|
-
|
|
448
|
-
declare type PullContext = {
|
|
449
|
-
type: 'pull' | 'cancel';
|
|
450
|
-
};
|
|
451
|
-
|
|
452
|
-
declare namespace readableStream {
|
|
453
|
-
export {
|
|
454
|
-
type_9 as type,
|
|
455
|
-
PullContext,
|
|
456
|
-
BoxedReadableStream,
|
|
457
|
-
isType_9 as isType,
|
|
458
|
-
box_10 as box,
|
|
459
|
-
revive_10 as revive
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
export declare type ReceiveJsonPlatformTransport = WebSocket | WebExtPort | WebExtOnConnect | WebExtOnMessage;
|
|
464
|
-
|
|
465
|
-
export declare type ReceivePlatformTransport = ReceiveJsonPlatformTransport | Window | ServiceWorker | Worker | SharedWorker | MessagePort;
|
|
466
|
-
|
|
467
|
-
export declare type ReceiveTransport = ReceivePlatformTransport & Extract<CustomTransport, {
|
|
468
|
-
receive: any;
|
|
469
|
-
}>;
|
|
470
|
-
|
|
471
|
-
export declare const recursiveBox: <T extends Capable, T2 extends RevivableContext>(value: T, context: T2) => DeepReplaceWithBox<T, T2["revivableModules"][number]>;
|
|
472
|
-
|
|
473
|
-
export declare const recursiveRevive: <T extends Capable, T2 extends RevivableContext>(value: T, context: T2) => DeepReplaceWithRevive<T, T2["revivableModules"][number]>;
|
|
474
|
-
|
|
475
|
-
declare type ReplaceWithBox<T, M> = [
|
|
476
|
-
FindMatchingBox<T, M>
|
|
477
|
-
] extends [never] ? T : FindMatchingBox<T, M>;
|
|
478
|
-
|
|
479
|
-
declare type ReplaceWithRevive<T, M> = [
|
|
480
|
-
FindMatchingRevive<T, M>
|
|
481
|
-
] extends [never] ? T : FindMatchingRevive<T, M>;
|
|
482
|
-
|
|
483
|
-
declare type RevivableContext<TModules extends readonly RevivableModule[] = DefaultRevivableModules> = {
|
|
484
|
-
platformCapabilities: PlatformCapabilities;
|
|
485
|
-
transport: Transport;
|
|
486
|
-
remoteUuid: Uuid;
|
|
487
|
-
messagePorts: Set<MessagePort>;
|
|
488
|
-
messageChannels: MessageChannelAllocator;
|
|
489
|
-
sendMessage: (message: ConnectionMessage) => void;
|
|
490
|
-
revivableModules: TModules;
|
|
491
|
-
eventTarget: MessageEventTarget_2;
|
|
492
|
-
};
|
|
493
|
-
|
|
494
|
-
export declare type RevivableModule<T extends string = string, T2 = any, T3 extends BoxBase<T> = any> = {
|
|
495
|
-
readonly type: T;
|
|
496
|
-
readonly isType: (value: unknown) => value is T2;
|
|
497
|
-
readonly box: ((value: T2, context: RevivableContext) => T3) | ((...args: any[]) => any);
|
|
498
|
-
readonly revive: (value: T3, context: RevivableContext) => T2;
|
|
499
|
-
};
|
|
500
|
-
|
|
501
|
-
export declare const revive: <T extends ReturnType<typeof box>, T2 extends RevivableContext>(value: T, context: T2) => ReplaceWithRevive<T, T2["revivableModules"][number]>;
|
|
502
|
-
|
|
503
|
-
declare const revive_10: <T extends BoxedReadableStream, T2 extends RevivableContext>(value: T, context: T2) => T[UnderlyingType];
|
|
504
|
-
|
|
505
|
-
declare const revive_2: <T extends ReturnType<typeof box_2>, T2 extends RevivableContext>(value: T, _context: T2) => ArrayBuffer;
|
|
506
|
-
|
|
507
|
-
declare const revive_3: <T extends ReturnType<typeof box_3>, T2 extends RevivableContext>(value: T, _context: T2) => Date;
|
|
508
|
-
|
|
509
|
-
declare const revive_4: <T extends ReturnType<typeof box_4>, T2 extends RevivableContext>(value: T, _context: T2) => Headers;
|
|
510
|
-
|
|
511
|
-
declare const revive_5: <T extends ReturnType<typeof box_5>, T2 extends RevivableContext>(value: T, _context: T2) => Error;
|
|
512
|
-
|
|
513
|
-
declare const revive_6: <T extends ReturnType<typeof box_6>, T2 extends RevivableContext>(value: T, context: T2) => T[UnderlyingType];
|
|
514
|
-
|
|
515
|
-
declare const revive_7: <T extends BoxedPromise, T2 extends RevivableContext>(value: T, context: T2) => Promise<T[typeof UnderlyingType]>;
|
|
516
|
-
|
|
517
|
-
declare const revive_8: <T extends BoxedFunction, T2 extends RevivableContext>(value: T, context: T2) => T[UnderlyingType];
|
|
518
|
-
|
|
519
|
-
declare const revive_9: <T extends StructurableTransferable, T2 extends RevivableContext>(value: BoxedMessagePort<T>, context: T2) => StrictMessagePort<T>;
|
|
520
|
-
|
|
521
|
-
/**
|
|
522
|
-
* A type-safe MessagePort wrapper that provides generic typing for messages.
|
|
523
|
-
* This interface is structurally compatible with MessagePort while adding type safety.
|
|
524
|
-
*/
|
|
525
|
-
declare interface StrictMessagePort<T = StructurableTransferable> extends MessagePort {
|
|
526
|
-
[UnderlyingType]?: T;
|
|
527
|
-
onmessage: ((this: MessagePort, ev: MessageEvent<T>) => unknown) | null;
|
|
528
|
-
onmessageerror: ((this: MessagePort, ev: MessageEvent) => unknown) | null;
|
|
529
|
-
postMessage(message: T, transfer: Transferable[]): void;
|
|
530
|
-
postMessage(message: T, options?: StructuredSerializeOptions): void;
|
|
531
|
-
addEventListener<K extends keyof StrictMessagePortEventMap<T>>(type: K, listener: (this: MessagePort, ev: StrictMessagePortEventMap<T>[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
532
|
-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
533
|
-
removeEventListener<K extends keyof StrictMessagePortEventMap<T>>(type: K, listener: (this: MessagePort, ev: StrictMessagePortEventMap<T>[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
534
|
-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
declare type StrictMessagePortEventMap<T = unknown> = {
|
|
538
|
-
'message': MessageEvent<T>;
|
|
539
|
-
'messageerror': MessageEvent;
|
|
540
|
-
};
|
|
541
|
-
|
|
542
|
-
export declare type Structurable = Jsonable
|
|
543
|
-
/** not really structureable but here for convenience */
|
|
544
|
-
| void | undefined | BigInt | Date | RegExp | Blob | File | FileList | ArrayBuffer | ArrayBufferView | ImageBitmap | ImageData | {
|
|
545
|
-
[key: string]: Structurable;
|
|
546
|
-
} | Array<Structurable> | Map<Structurable, Structurable> | Set<Structurable>;
|
|
547
|
-
|
|
548
|
-
export declare type StructurableTransferable = Structurable | Transferable | {
|
|
549
|
-
[key: string]: StructurableTransferable;
|
|
550
|
-
} | Array<StructurableTransferable> | Map<StructurableTransferable, StructurableTransferable> | Set<StructurableTransferable>;
|
|
551
|
-
|
|
552
|
-
declare const StructurableTransferableError: unique symbol;
|
|
553
|
-
|
|
554
|
-
declare type StructurableTransferablePort<T> = T extends StructurableTransferable ? StrictMessagePort<T> : {
|
|
555
|
-
[StructurableTransferableError]: 'Message type must extend StructurableTransferable';
|
|
556
|
-
__badType__: T;
|
|
557
|
-
};
|
|
558
|
-
|
|
559
|
-
export declare type Transport = PlatformTransport | CustomTransport;
|
|
560
|
-
|
|
561
|
-
declare const type: "arrayBuffer";
|
|
562
|
-
|
|
563
|
-
declare const type_2: "date";
|
|
564
|
-
|
|
565
|
-
declare const type_3: "headers";
|
|
566
|
-
|
|
567
|
-
declare const type_4: "error";
|
|
568
|
-
|
|
569
|
-
declare const type_5: "typedArray";
|
|
570
|
-
|
|
571
|
-
declare const type_6: "promise";
|
|
572
|
-
|
|
573
|
-
declare const type_7: "function";
|
|
574
|
-
|
|
575
|
-
declare const type_8: "messagePort";
|
|
576
|
-
|
|
577
|
-
declare const type_9: "readableStream";
|
|
578
|
-
|
|
579
|
-
declare type TypedArray = typeof typedArrays[number];
|
|
580
|
-
|
|
581
|
-
declare namespace typedArray {
|
|
582
|
-
export {
|
|
583
|
-
type_5 as type,
|
|
584
|
-
TypedArrayConstructor,
|
|
585
|
-
TypedArray,
|
|
586
|
-
typedArrayToType,
|
|
587
|
-
TypedArrayType,
|
|
588
|
-
typedArrayTypeToTypedArrayConstructor,
|
|
589
|
-
isType_5 as isType,
|
|
590
|
-
box_6 as box,
|
|
591
|
-
revive_6 as revive
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
declare type TypedArrayConstructor = typeof typedArrayConstructors[number];
|
|
596
|
-
|
|
597
|
-
declare const typedArrayConstructors: (Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float16ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor)[];
|
|
598
|
-
|
|
599
|
-
declare const typedArrays: (BigInt64Array<ArrayBuffer> | BigUint64Array<ArrayBuffer> | Int8Array<ArrayBuffer> | Float64Array<ArrayBuffer> | Uint8ClampedArray<ArrayBuffer> | Int16Array<ArrayBuffer> | Uint16Array<ArrayBuffer> | Int32Array<ArrayBuffer> | Uint32Array<ArrayBuffer> | Float16Array<ArrayBuffer> | Float32Array<ArrayBuffer> | Uint8Array<ArrayBuffer>)[];
|
|
600
|
-
|
|
601
|
-
declare const typedArrayToType: <T extends TypedArray>(value: T) => "BigUint64Array" | "BigInt64Array" | "Float64Array" | "Int8Array" | "Uint8ClampedArray" | "Int16Array" | "Uint16Array" | "Int32Array" | "Uint32Array" | "Float16Array" | "Float32Array" | "Uint8Array";
|
|
602
|
-
|
|
603
|
-
declare type TypedArrayType = ReturnType<typeof typedArrayToType>;
|
|
604
|
-
|
|
605
|
-
declare const typedArrayTypeToTypedArrayConstructor: (value: TypedArrayType) => TypedArrayConstructor;
|
|
606
|
-
|
|
607
|
-
export declare const UnderlyingType: unique symbol;
|
|
608
|
-
|
|
609
|
-
export declare type UnderlyingType = typeof UnderlyingType;
|
|
610
|
-
|
|
611
|
-
export declare type UnidirectionalConnectionMessage = {
|
|
612
|
-
type: 'message';
|
|
613
|
-
remoteUuid: Uuid;
|
|
614
|
-
data: Capable;
|
|
615
|
-
portId: Uuid;
|
|
616
|
-
};
|
|
617
|
-
|
|
618
|
-
export declare type Uuid = `${string}-${string}-${string}-${string}-${string}`;
|
|
619
|
-
|
|
620
|
-
declare type WebExtOnConnect = WebExtRuntime['onConnect'];
|
|
621
|
-
|
|
622
|
-
declare type WebExtOnMessage = WebExtRuntime['onMessage'];
|
|
623
|
-
|
|
624
|
-
declare type WebExtPort = ReturnType<WebExtRuntime['connect']> | Runtime.Port;
|
|
625
|
-
|
|
626
|
-
declare type WebExtRuntime = typeof browser.runtime;
|
|
627
|
-
|
|
628
|
-
declare type WebExtSender = NonNullable<WebExtPort['sender']>;
|
|
629
|
-
|
|
630
|
-
export { }
|
|
1
|
+
import type { Capable } from './types';
|
|
2
|
+
import type { DefaultRevivableModules } from './revivables';
|
|
3
|
+
import type { RevivableModule } from './revivables';
|
|
4
|
+
import type { StartConnectionsOptions } from './connections/utils';
|
|
5
|
+
import type { BadFieldValue, BadFieldPath, BadFieldParent, ErrorMessage, BadValue, Path, ParentObject } from './utils/capable-check';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export * from './revivables';
|
|
8
|
+
export * from './connections';
|
|
9
|
+
export * from './utils';
|
|
10
|
+
type CapableCheck<T, TModules extends readonly RevivableModule[] = DefaultRevivableModules> = T extends Capable<TModules> ? T : T & {
|
|
11
|
+
[ErrorMessage]: 'Value type must resolve to a Capable';
|
|
12
|
+
[BadValue]: BadFieldValue<T, Capable<TModules>>;
|
|
13
|
+
[Path]: BadFieldPath<T, Capable<TModules>>;
|
|
14
|
+
[ParentObject]: BadFieldParent<T, Capable<TModules>>;
|
|
15
|
+
};
|
|
16
|
+
export declare const expose: <T = unknown, const TUserModules extends readonly RevivableModule[] = readonly [], const TValue = Capable<[...DefaultRevivableModules, ...TUserModules]>>(value: CapableCheck<TValue, [...DefaultRevivableModules, ...TUserModules]>, options: StartConnectionsOptions<TUserModules>) => Promise<T>;
|