seroval 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/development/index.cjs +147 -112
- package/dist/cjs/development/index.cjs.map +2 -2
- package/dist/cjs/production/index.cjs +3 -3
- package/dist/esm/development/index.mjs +147 -112
- package/dist/esm/development/index.mjs.map +2 -2
- package/dist/esm/production/index.mjs +3 -3
- package/dist/types/core/base-primitives.d.ts +3 -3
- package/dist/types/core/base-primitives.d.ts.map +1 -1
- package/dist/types/core/constants.d.ts +2 -3
- package/dist/types/core/constants.d.ts.map +1 -1
- package/dist/types/core/context/deserializer.d.ts.map +1 -1
- package/dist/types/core/context/parser/stream.d.ts.map +1 -1
- package/dist/types/core/context/parser.d.ts +3 -3
- package/dist/types/core/context/parser.d.ts.map +1 -1
- package/dist/types/core/context/serializer.d.ts +11 -10
- package/dist/types/core/context/serializer.d.ts.map +1 -1
- package/dist/types/core/cross/serializer.d.ts +1 -8
- package/dist/types/core/cross/serializer.d.ts.map +1 -1
- package/dist/types/core/keys.d.ts +0 -12
- package/dist/types/core/keys.d.ts.map +1 -1
- package/dist/types/core/special-reference.d.ts +13 -3
- package/dist/types/core/special-reference.d.ts.map +1 -1
- package/dist/types/core/types.d.ts +33 -20
- package/dist/types/core/types.d.ts.map +1 -1
- package/dist/types/core/web-api.d.ts +2 -2
- package/dist/types/core/web-api.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/core/base-primitives.ts +3 -2
- package/src/core/constants.ts +1 -2
- package/src/core/context/deserializer.ts +6 -7
- package/src/core/context/parser/async.ts +2 -2
- package/src/core/context/parser/stream.ts +29 -13
- package/src/core/context/parser.ts +12 -36
- package/src/core/context/serializer.ts +105 -44
- package/src/core/cross/serializer.ts +0 -57
- package/src/core/keys.ts +0 -36
- package/src/core/special-reference.ts +23 -3
- package/src/core/types.ts +33 -24
- package/src/core/web-api.ts +2 -1
- package/src/index.ts +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SerovalNodeType, SerovalObjectFlags, SerovalConstant, Symbols, ErrorConstructorTag } from './constants';
|
|
2
|
+
import type { SpecialReference } from './special-reference';
|
|
2
3
|
export interface SerovalBaseNode {
|
|
3
4
|
t: SerovalNodeType;
|
|
4
5
|
i: number | undefined;
|
|
@@ -93,7 +94,7 @@ export interface SerovalMapNode extends SerovalBaseNode {
|
|
|
93
94
|
t: SerovalNodeType.Map;
|
|
94
95
|
i: number;
|
|
95
96
|
e: SerovalMapRecordNode;
|
|
96
|
-
f:
|
|
97
|
+
f: SerovalNodeWithID;
|
|
97
98
|
}
|
|
98
99
|
export interface SerovalArrayNode extends SerovalBaseNode {
|
|
99
100
|
t: SerovalNodeType.Array;
|
|
@@ -192,34 +193,49 @@ export interface SerovalBoxedNode extends SerovalBaseNode {
|
|
|
192
193
|
export interface SerovalPromiseConstructorNode extends SerovalBaseNode {
|
|
193
194
|
t: SerovalNodeType.PromiseConstructor;
|
|
194
195
|
i: number;
|
|
196
|
+
f: SerovalNodeWithID;
|
|
195
197
|
}
|
|
196
198
|
export interface SerovalPromiseResolveNode extends SerovalBaseNode {
|
|
197
199
|
t: SerovalNodeType.PromiseResolve;
|
|
198
200
|
i: number;
|
|
199
|
-
|
|
201
|
+
a: [
|
|
202
|
+
resolver: SerovalNodeWithID,
|
|
203
|
+
resolved: SerovalNode
|
|
204
|
+
];
|
|
200
205
|
}
|
|
201
206
|
export interface SerovalPromiseRejectNode extends SerovalBaseNode {
|
|
202
207
|
t: SerovalNodeType.PromiseReject;
|
|
203
208
|
i: number;
|
|
204
|
-
|
|
209
|
+
a: [
|
|
210
|
+
resolver: SerovalNodeWithID,
|
|
211
|
+
resolved: SerovalNode
|
|
212
|
+
];
|
|
205
213
|
}
|
|
206
214
|
export interface SerovalReadableStreamConstructorNode extends SerovalBaseNode {
|
|
207
215
|
t: SerovalNodeType.ReadableStreamConstructor;
|
|
208
216
|
i: number;
|
|
217
|
+
f: SerovalNodeWithID;
|
|
209
218
|
}
|
|
210
219
|
export interface SerovalReadableStreamEnqueueNode extends SerovalBaseNode {
|
|
211
220
|
t: SerovalNodeType.ReadableStreamEnqueue;
|
|
212
221
|
i: number;
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
i: number;
|
|
222
|
+
a: [
|
|
223
|
+
resolver: SerovalNodeWithID,
|
|
224
|
+
resolved: SerovalNode
|
|
225
|
+
];
|
|
218
226
|
}
|
|
219
227
|
export interface SerovalReadableStreamErrorNode extends SerovalBaseNode {
|
|
220
228
|
t: SerovalNodeType.ReadableStreamError;
|
|
221
229
|
i: number;
|
|
222
|
-
|
|
230
|
+
a: [
|
|
231
|
+
resolver: SerovalNodeWithID,
|
|
232
|
+
resolved: SerovalNode
|
|
233
|
+
];
|
|
234
|
+
}
|
|
235
|
+
export interface SerovalReadableStreamCloseNode extends SerovalBaseNode {
|
|
236
|
+
t: SerovalNodeType.ReadableStreamClose;
|
|
237
|
+
i: number;
|
|
238
|
+
f: SerovalNodeWithID;
|
|
223
239
|
}
|
|
224
240
|
export interface SerovalRequestNode extends SerovalBaseNode {
|
|
225
241
|
t: SerovalNodeType.Request;
|
|
@@ -256,9 +272,10 @@ export interface SerovalPluginNode extends SerovalBaseNode {
|
|
|
256
272
|
s: unknown;
|
|
257
273
|
c: string;
|
|
258
274
|
}
|
|
259
|
-
export interface
|
|
260
|
-
t: SerovalNodeType.
|
|
275
|
+
export interface SerovalSpecialReferenceNode extends SerovalBaseNode {
|
|
276
|
+
t: SerovalNodeType.SpecialReference;
|
|
261
277
|
i: number;
|
|
278
|
+
s: SpecialReference;
|
|
262
279
|
}
|
|
263
280
|
export interface SerovalIteratorFactoryNode extends SerovalBaseNode {
|
|
264
281
|
t: SerovalNodeType.IteratorFactory;
|
|
@@ -268,7 +285,7 @@ export interface SerovalIteratorFactoryNode extends SerovalBaseNode {
|
|
|
268
285
|
export interface SerovalIteratorFactoryInstanceNode extends SerovalBaseNode {
|
|
269
286
|
t: SerovalNodeType.IteratorFactoryInstance;
|
|
270
287
|
a: [
|
|
271
|
-
instance:
|
|
288
|
+
instance: SerovalNodeWithID,
|
|
272
289
|
sequence: SerovalNode
|
|
273
290
|
];
|
|
274
291
|
}
|
|
@@ -281,7 +298,7 @@ export interface SerovalAsyncIteratorFactoryNode extends SerovalBaseNode {
|
|
|
281
298
|
export interface SerovalAsyncIteratorFactoryInstanceNode extends SerovalBaseNode {
|
|
282
299
|
t: SerovalNodeType.AsyncIteratorFactoryInstance;
|
|
283
300
|
a: [
|
|
284
|
-
instance:
|
|
301
|
+
instance: SerovalNodeWithID,
|
|
285
302
|
sequence: SerovalNode
|
|
286
303
|
];
|
|
287
304
|
}
|
|
@@ -289,16 +306,12 @@ export interface SerovalReadableStreamNode extends SerovalBaseNode {
|
|
|
289
306
|
t: SerovalNodeType.ReadableStream;
|
|
290
307
|
i: number;
|
|
291
308
|
a: [
|
|
292
|
-
instance:
|
|
309
|
+
instance: SerovalNodeWithID,
|
|
293
310
|
sequence: SerovalNode
|
|
294
311
|
];
|
|
295
312
|
}
|
|
296
|
-
export
|
|
297
|
-
|
|
298
|
-
i: number;
|
|
299
|
-
}
|
|
300
|
-
export type SerovalSyncNode = SerovalPrimitiveNode | SerovalIndexedValueNode | SerovalSemiPrimitiveNode | SerovalSetNode | SerovalMapNode | SerovalArrayNode | SerovalObjectNode | SerovalNullConstructorNode | SerovalPromiseNode | SerovalErrorNode | SerovalAggregateErrorNode | SerovalWKSymbolNode | SerovalURLNode | SerovalURLSearchParamsNode | SerovalReferenceNode | SerovalArrayBufferNode | SerovalDataViewNode | SerovalBlobNode | SerovalFileNode | SerovalHeadersNode | SerovalFormDataNode | SerovalBoxedNode | SerovalEventNode | SerovalCustomEventNode | SerovalDOMExceptionNode | SerovalPluginNode | SerovalMapSentinelNode | SerovalIteratorFactoryNode | SerovalIteratorFactoryInstanceNode | SerovalAsyncIteratorFactoryNode | SerovalAsyncIteratorFactoryInstanceNode;
|
|
301
|
-
export type SerovalAsyncNode = SerovalPromiseNode | SerovalBlobNode | SerovalFileNode | SerovalPromiseConstructorNode | SerovalPromiseResolveNode | SerovalPromiseRejectNode | SerovalReadableStreamConstructorNode | SerovalReadableStreamEnqueueNode | SerovalReadableStreamCloseNode | SerovalReadableStreamErrorNode | SerovalRequestNode | SerovalResponseNode | SerovalReadableStreamNode | SerovalReadableStreamFactoryNode;
|
|
313
|
+
export type SerovalSyncNode = SerovalPrimitiveNode | SerovalIndexedValueNode | SerovalSemiPrimitiveNode | SerovalSetNode | SerovalMapNode | SerovalArrayNode | SerovalObjectNode | SerovalNullConstructorNode | SerovalPromiseNode | SerovalErrorNode | SerovalAggregateErrorNode | SerovalWKSymbolNode | SerovalURLNode | SerovalURLSearchParamsNode | SerovalReferenceNode | SerovalArrayBufferNode | SerovalDataViewNode | SerovalBlobNode | SerovalFileNode | SerovalHeadersNode | SerovalFormDataNode | SerovalBoxedNode | SerovalEventNode | SerovalCustomEventNode | SerovalDOMExceptionNode | SerovalPluginNode | SerovalSpecialReferenceNode | SerovalIteratorFactoryNode | SerovalIteratorFactoryInstanceNode | SerovalAsyncIteratorFactoryNode | SerovalAsyncIteratorFactoryInstanceNode;
|
|
314
|
+
export type SerovalAsyncNode = SerovalPromiseNode | SerovalBlobNode | SerovalFileNode | SerovalPromiseConstructorNode | SerovalPromiseResolveNode | SerovalPromiseRejectNode | SerovalReadableStreamConstructorNode | SerovalReadableStreamEnqueueNode | SerovalReadableStreamCloseNode | SerovalReadableStreamErrorNode | SerovalRequestNode | SerovalResponseNode | SerovalReadableStreamNode;
|
|
302
315
|
export type SerovalNode = SerovalSyncNode | SerovalAsyncNode;
|
|
303
316
|
export type SerovalNodeWithID = Extract<SerovalNode, {
|
|
304
317
|
i: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,mBAAmB,EACpB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { SerovalCustomEventNode, SerovalDOMExceptionNode, SerovalEventNode, SerovalNode, SerovalReadableStreamNode, SerovalURLNode, SerovalURLSearchParamsNode } from './types';
|
|
1
|
+
import type { SerovalCustomEventNode, SerovalDOMExceptionNode, SerovalEventNode, SerovalNode, SerovalNodeWithID, SerovalReadableStreamNode, SerovalURLNode, SerovalURLSearchParamsNode } from './types';
|
|
2
2
|
export declare function createURLNode(id: number, current: URL): SerovalURLNode;
|
|
3
3
|
export declare function createURLSearchParamsNode(id: number, current: URLSearchParams): SerovalURLSearchParamsNode;
|
|
4
4
|
export declare function createDOMExceptionNode(id: number, current: DOMException): SerovalDOMExceptionNode;
|
|
5
5
|
export declare function createEventNode(id: number, type: string, options: SerovalNode): SerovalEventNode;
|
|
6
6
|
export declare function createCustomEventNode(id: number, type: string, options: SerovalNode): SerovalCustomEventNode;
|
|
7
|
-
export declare function createReadableStreamNode(id: number, factory:
|
|
7
|
+
export declare function createReadableStreamNode(id: number, factory: SerovalNodeWithID, items: SerovalNode): SerovalReadableStreamNode;
|
|
8
8
|
//# sourceMappingURL=web-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-api.d.ts","sourceRoot":"","sources":["../../../src/core/web-api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,yBAAyB,EACzB,cAAc,EACd,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,GAAG,GACX,cAAc,CAehB;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,eAAe,GACvB,0BAA0B,CAe5B;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,YAAY,GACpB,uBAAuB,CAezB;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,gBAAgB,CAelB;AAED,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,sBAAsB,CAexB;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"web-api.d.ts","sourceRoot":"","sources":["../../../src/core/web-api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,GAAG,GACX,cAAc,CAehB;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,eAAe,GACvB,0BAA0B,CAe5B;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,YAAY,GACpB,uBAAuB,CAezB;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,gBAAgB,CAelB;AAED,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,sBAAsB,CAexB;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,WAAW,GACjB,yBAAyB,CAkB3B"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { Feature } from './core/compat';
|
|
|
4
4
|
export { createReference } from './core/reference';
|
|
5
5
|
export * from './core/tree';
|
|
6
6
|
export * from './core/cross';
|
|
7
|
-
export {
|
|
7
|
+
export { getCrossReferenceHeader } from './core/keys';
|
|
8
8
|
export { default as Serializer } from './core/Serializer';
|
|
9
9
|
export * from './core/plugin';
|
|
10
10
|
export type { SerovalNode } from './core/types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,cAAc,eAAe,CAAC;AAE9B,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAe,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "seroval",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.14.
|
|
4
|
+
"version": "0.14.1",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
7
7
|
"src"
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"typesVersions": {
|
|
67
67
|
"*": {}
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "6c22472b58ec0dc367bf91bde033da0e9d8706fa"
|
|
70
70
|
}
|
|
@@ -26,6 +26,7 @@ import type {
|
|
|
26
26
|
SerovalIndexedValueNode,
|
|
27
27
|
SerovalIteratorFactoryInstanceNode,
|
|
28
28
|
SerovalNode,
|
|
29
|
+
SerovalNodeWithID,
|
|
29
30
|
SerovalNumberNode,
|
|
30
31
|
SerovalObjectRecordNode,
|
|
31
32
|
SerovalPluginNode,
|
|
@@ -412,7 +413,7 @@ export function createSetNode(
|
|
|
412
413
|
}
|
|
413
414
|
|
|
414
415
|
export function createIteratorFactoryInstanceNode(
|
|
415
|
-
factory:
|
|
416
|
+
factory: SerovalNodeWithID,
|
|
416
417
|
items: SerovalNode,
|
|
417
418
|
): SerovalIteratorFactoryInstanceNode {
|
|
418
419
|
return {
|
|
@@ -435,7 +436,7 @@ export function createIteratorFactoryInstanceNode(
|
|
|
435
436
|
}
|
|
436
437
|
|
|
437
438
|
export function createAsyncIteratorFactoryInstanceNode(
|
|
438
|
-
factory:
|
|
439
|
+
factory: SerovalNodeWithID,
|
|
439
440
|
items: SerovalNode,
|
|
440
441
|
): SerovalAsyncIteratorFactoryInstanceNode {
|
|
441
442
|
return {
|
package/src/core/constants.ts
CHANGED
|
@@ -51,13 +51,12 @@ export const enum SerovalNodeType {
|
|
|
51
51
|
CustomEvent = 38,
|
|
52
52
|
DOMException = 39,
|
|
53
53
|
Plugin = 40,
|
|
54
|
-
|
|
54
|
+
SpecialReference = 41,
|
|
55
55
|
IteratorFactory = 42,
|
|
56
56
|
IteratorFactoryInstance = 43,
|
|
57
57
|
AsyncIteratorFactory = 44,
|
|
58
58
|
AsyncIteratorFactoryInstance = 45,
|
|
59
59
|
ReadableStream = 46,
|
|
60
|
-
ReadableStreamFactory = 47,
|
|
61
60
|
}
|
|
62
61
|
|
|
63
62
|
export const enum SerovalObjectFlags {
|
|
@@ -449,7 +449,7 @@ export default abstract class BaseDeserializerContext implements PluginAccessOpt
|
|
|
449
449
|
const deferred = this.refs.get(node.i) as Deferred | undefined;
|
|
450
450
|
assert(deferred, new Error('Missing Promise instance.'));
|
|
451
451
|
deferred.resolve(
|
|
452
|
-
this.deserialize(node.
|
|
452
|
+
this.deserialize(node.a[1]),
|
|
453
453
|
);
|
|
454
454
|
return undefined;
|
|
455
455
|
}
|
|
@@ -458,7 +458,7 @@ export default abstract class BaseDeserializerContext implements PluginAccessOpt
|
|
|
458
458
|
const deferred = this.refs.get(node.i) as Deferred | undefined;
|
|
459
459
|
assert(deferred, new Error('Missing Promise instance.'));
|
|
460
460
|
deferred.reject(
|
|
461
|
-
this.deserialize(node.
|
|
461
|
+
this.deserialize(node.a[1]),
|
|
462
462
|
);
|
|
463
463
|
return undefined;
|
|
464
464
|
}
|
|
@@ -476,7 +476,7 @@ export default abstract class BaseDeserializerContext implements PluginAccessOpt
|
|
|
476
476
|
const deferred = this.refs.get(node.i) as DeferredStream | undefined;
|
|
477
477
|
assert(deferred, new Error('Missing ReadableStream instance.'));
|
|
478
478
|
deferred.enqueue(
|
|
479
|
-
this.deserialize(node.
|
|
479
|
+
this.deserialize(node.a[1]),
|
|
480
480
|
);
|
|
481
481
|
return undefined;
|
|
482
482
|
}
|
|
@@ -485,7 +485,7 @@ export default abstract class BaseDeserializerContext implements PluginAccessOpt
|
|
|
485
485
|
const deferred = this.refs.get(node.i) as DeferredStream | undefined;
|
|
486
486
|
assert(deferred, new Error('Missing Promise instance.'));
|
|
487
487
|
deferred.error(
|
|
488
|
-
this.deserialize(node.
|
|
488
|
+
this.deserialize(node.a[1]),
|
|
489
489
|
);
|
|
490
490
|
return undefined;
|
|
491
491
|
}
|
|
@@ -508,7 +508,7 @@ export default abstract class BaseDeserializerContext implements PluginAccessOpt
|
|
|
508
508
|
node: SerovalAsyncIteratorFactoryInstanceNode,
|
|
509
509
|
): unknown {
|
|
510
510
|
const source = this.deserialize(node.a[1]);
|
|
511
|
-
if (
|
|
511
|
+
if (node.s) {
|
|
512
512
|
return readableStreamToAsyncIterator(
|
|
513
513
|
source as ReadableStream<SerializedAsyncIteratorResult<unknown>>,
|
|
514
514
|
);
|
|
@@ -615,10 +615,9 @@ export default abstract class BaseDeserializerContext implements PluginAccessOpt
|
|
|
615
615
|
return this.deserializeAsyncIteratorFactoryInstance(node);
|
|
616
616
|
case SerovalNodeType.ReadableStream:
|
|
617
617
|
return this.deserializeReadableStream(node);
|
|
618
|
-
case SerovalNodeType.
|
|
618
|
+
case SerovalNodeType.SpecialReference:
|
|
619
619
|
case SerovalNodeType.IteratorFactory:
|
|
620
620
|
case SerovalNodeType.AsyncIteratorFactory:
|
|
621
|
-
case SerovalNodeType.ReadableStreamFactory:
|
|
622
621
|
default:
|
|
623
622
|
throw new Error('invariant');
|
|
624
623
|
}
|
|
@@ -79,7 +79,7 @@ import {
|
|
|
79
79
|
createCustomEventNode,
|
|
80
80
|
createReadableStreamNode,
|
|
81
81
|
} from '../../web-api';
|
|
82
|
-
import { UNIVERSAL_SENTINEL } from '../../special-reference';
|
|
82
|
+
import { SpecialReference, UNIVERSAL_SENTINEL } from '../../special-reference';
|
|
83
83
|
|
|
84
84
|
type ObjectLikeNode =
|
|
85
85
|
| SerovalObjectNode
|
|
@@ -489,7 +489,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
489
489
|
): Promise<SerovalReadableStreamNode> {
|
|
490
490
|
return createReadableStreamNode(
|
|
491
491
|
id,
|
|
492
|
-
this.
|
|
492
|
+
this.parseSpecialReference(SpecialReference.ReadableStream),
|
|
493
493
|
await this.parse(
|
|
494
494
|
await readableStreamToSequence(current),
|
|
495
495
|
),
|
|
@@ -28,7 +28,7 @@ import type {
|
|
|
28
28
|
} from '../../types';
|
|
29
29
|
import { createDOMExceptionNode, createURLNode, createURLSearchParamsNode } from '../../web-api';
|
|
30
30
|
import { asyncIteratorToReadableStream, iteratorToSequence } from '../../utils/iterator-to-sequence';
|
|
31
|
-
import { UNIVERSAL_SENTINEL } from '../../special-reference';
|
|
31
|
+
import { SpecialReference, UNIVERSAL_SENTINEL } from '../../special-reference';
|
|
32
32
|
|
|
33
33
|
export interface BaseStreamParserContextOptions extends BaseSyncParserContextOptions {
|
|
34
34
|
onParse: (node: SerovalNode, initial: boolean) => void;
|
|
@@ -57,7 +57,11 @@ export default abstract class BaseStreamParserContext extends BaseSyncParserCont
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
private onParse(node: SerovalNode, initial: boolean): void {
|
|
60
|
-
|
|
60
|
+
try {
|
|
61
|
+
this.onParseCallback(node, initial);
|
|
62
|
+
} catch (error) {
|
|
63
|
+
this.onError(error);
|
|
64
|
+
}
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
private onError(error: unknown): void {
|
|
@@ -174,7 +178,7 @@ export default abstract class BaseStreamParserContext extends BaseSyncParserCont
|
|
|
174
178
|
p: undefined,
|
|
175
179
|
e: undefined,
|
|
176
180
|
a: undefined,
|
|
177
|
-
f:
|
|
181
|
+
f: this.parseSpecialReference(SpecialReference.ReadableStreamClose),
|
|
178
182
|
b: undefined,
|
|
179
183
|
o: undefined,
|
|
180
184
|
}, false);
|
|
@@ -191,8 +195,11 @@ export default abstract class BaseStreamParserContext extends BaseSyncParserCont
|
|
|
191
195
|
m: undefined,
|
|
192
196
|
p: undefined,
|
|
193
197
|
e: undefined,
|
|
194
|
-
a:
|
|
195
|
-
|
|
198
|
+
a: [
|
|
199
|
+
this.parseSpecialReference(SpecialReference.ReadableStreamEnqueue),
|
|
200
|
+
parsed,
|
|
201
|
+
],
|
|
202
|
+
f: undefined,
|
|
196
203
|
b: undefined,
|
|
197
204
|
o: undefined,
|
|
198
205
|
}, false);
|
|
@@ -214,8 +221,11 @@ export default abstract class BaseStreamParserContext extends BaseSyncParserCont
|
|
|
214
221
|
m: undefined,
|
|
215
222
|
p: undefined,
|
|
216
223
|
e: undefined,
|
|
217
|
-
a:
|
|
218
|
-
|
|
224
|
+
a: [
|
|
225
|
+
this.parseSpecialReference(SpecialReference.ReadableStreamError),
|
|
226
|
+
parsed,
|
|
227
|
+
],
|
|
228
|
+
f: undefined,
|
|
219
229
|
b: undefined,
|
|
220
230
|
o: undefined,
|
|
221
231
|
}, false);
|
|
@@ -244,7 +254,7 @@ export default abstract class BaseStreamParserContext extends BaseSyncParserCont
|
|
|
244
254
|
p: undefined,
|
|
245
255
|
e: undefined,
|
|
246
256
|
a: undefined,
|
|
247
|
-
f:
|
|
257
|
+
f: this.parseSpecialReference(SpecialReference.ReadableStreamConstructor),
|
|
248
258
|
b: undefined,
|
|
249
259
|
o: undefined,
|
|
250
260
|
};
|
|
@@ -314,8 +324,11 @@ export default abstract class BaseStreamParserContext extends BaseSyncParserCont
|
|
|
314
324
|
m: undefined,
|
|
315
325
|
p: undefined,
|
|
316
326
|
e: undefined,
|
|
317
|
-
a:
|
|
318
|
-
|
|
327
|
+
a: [
|
|
328
|
+
this.parseSpecialReference(SpecialReference.PromiseResolve),
|
|
329
|
+
parsed,
|
|
330
|
+
],
|
|
331
|
+
f: undefined,
|
|
319
332
|
b: undefined,
|
|
320
333
|
o: undefined,
|
|
321
334
|
}, false);
|
|
@@ -335,8 +348,11 @@ export default abstract class BaseStreamParserContext extends BaseSyncParserCont
|
|
|
335
348
|
m: undefined,
|
|
336
349
|
p: undefined,
|
|
337
350
|
e: undefined,
|
|
338
|
-
a:
|
|
339
|
-
|
|
351
|
+
a: [
|
|
352
|
+
this.parseSpecialReference(SpecialReference.PromiseReject),
|
|
353
|
+
parsed,
|
|
354
|
+
],
|
|
355
|
+
f: undefined,
|
|
340
356
|
b: undefined,
|
|
341
357
|
o: undefined,
|
|
342
358
|
}, false);
|
|
@@ -356,7 +372,7 @@ export default abstract class BaseStreamParserContext extends BaseSyncParserCont
|
|
|
356
372
|
p: undefined,
|
|
357
373
|
e: undefined,
|
|
358
374
|
a: undefined,
|
|
359
|
-
f:
|
|
375
|
+
f: this.parseSpecialReference(SpecialReference.PromiseConstructor),
|
|
360
376
|
b: undefined,
|
|
361
377
|
o: undefined,
|
|
362
378
|
};
|
|
@@ -14,23 +14,22 @@ import {
|
|
|
14
14
|
import type { Plugin, PluginAccessOptions, SerovalMode } from '../plugin';
|
|
15
15
|
import { hasReferenceID } from '../reference';
|
|
16
16
|
import {
|
|
17
|
+
SpecialReference,
|
|
17
18
|
ASYNC_ITERATOR,
|
|
18
19
|
ITERATOR,
|
|
19
|
-
|
|
20
|
-
READABLE_STREAM,
|
|
20
|
+
SPECIAL_REFS,
|
|
21
21
|
} from '../special-reference';
|
|
22
22
|
import type {
|
|
23
23
|
SerovalAsyncIteratorFactoryNode,
|
|
24
24
|
SerovalIndexedValueNode,
|
|
25
25
|
SerovalIteratorFactoryNode,
|
|
26
26
|
SerovalMapNode,
|
|
27
|
-
SerovalMapSentinelNode,
|
|
28
27
|
SerovalNode,
|
|
29
28
|
SerovalNullConstructorNode,
|
|
30
29
|
SerovalObjectNode,
|
|
31
30
|
SerovalObjectRecordNode,
|
|
32
|
-
SerovalReadableStreamFactoryNode,
|
|
33
31
|
SerovalReferenceNode,
|
|
32
|
+
SerovalSpecialReferenceNode,
|
|
34
33
|
SerovalWKSymbolNode,
|
|
35
34
|
} from '../types';
|
|
36
35
|
import { getObjectFlag } from '../utils/get-object-flag';
|
|
@@ -115,18 +114,21 @@ export abstract class BaseParserContext implements PluginAccessOptions {
|
|
|
115
114
|
return createReferenceNode(id, current);
|
|
116
115
|
}
|
|
117
116
|
|
|
118
|
-
protected
|
|
119
|
-
|
|
117
|
+
protected parseSpecialReference(
|
|
118
|
+
ref: SpecialReference,
|
|
119
|
+
): SerovalIndexedValueNode | SerovalSpecialReferenceNode {
|
|
120
|
+
const specialRef = SPECIAL_REFS[ref];
|
|
121
|
+
const registeredID = this.refs.get(specialRef);
|
|
120
122
|
if (registeredID != null) {
|
|
121
123
|
this.markRef(registeredID);
|
|
122
124
|
return createIndexedValueNode(registeredID);
|
|
123
125
|
}
|
|
124
126
|
const id = this.refs.size;
|
|
125
|
-
this.refs.set(
|
|
127
|
+
this.refs.set(specialRef, id);
|
|
126
128
|
return {
|
|
127
|
-
t: SerovalNodeType.
|
|
129
|
+
t: SerovalNodeType.SpecialReference,
|
|
128
130
|
i: id,
|
|
129
|
-
s:
|
|
131
|
+
s: ref,
|
|
130
132
|
l: undefined,
|
|
131
133
|
c: undefined,
|
|
132
134
|
m: undefined,
|
|
@@ -227,33 +229,7 @@ export abstract class BaseParserContext implements PluginAccessOptions {
|
|
|
227
229
|
p: undefined,
|
|
228
230
|
e: { k, v, s },
|
|
229
231
|
a: undefined,
|
|
230
|
-
f: this.
|
|
231
|
-
b: undefined,
|
|
232
|
-
o: undefined,
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
protected parseReadableStreamFactory(): (
|
|
237
|
-
SerovalIndexedValueNode | SerovalReadableStreamFactoryNode
|
|
238
|
-
) {
|
|
239
|
-
const registeredID = this.refs.get(READABLE_STREAM);
|
|
240
|
-
if (registeredID != null) {
|
|
241
|
-
this.markRef(registeredID);
|
|
242
|
-
return createIndexedValueNode(registeredID);
|
|
243
|
-
}
|
|
244
|
-
const id = this.refs.size;
|
|
245
|
-
this.refs.set(READABLE_STREAM, id);
|
|
246
|
-
return {
|
|
247
|
-
t: SerovalNodeType.ReadableStreamFactory,
|
|
248
|
-
i: id,
|
|
249
|
-
s: undefined,
|
|
250
|
-
l: undefined,
|
|
251
|
-
c: undefined,
|
|
252
|
-
m: undefined,
|
|
253
|
-
p: undefined,
|
|
254
|
-
e: undefined,
|
|
255
|
-
a: undefined,
|
|
256
|
-
f: undefined,
|
|
232
|
+
f: this.parseSpecialReference(SpecialReference.MapSentinel),
|
|
257
233
|
b: undefined,
|
|
258
234
|
o: undefined,
|
|
259
235
|
};
|