seroval 0.14.0 → 0.15.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/dist/cjs/development/index.cjs +157 -117
- package/dist/cjs/development/index.cjs.map +2 -2
- package/dist/cjs/production/index.cjs +3 -3
- package/dist/esm/development/index.mjs +157 -117
- 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/index.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/plugin.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 +0 -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/index.ts +11 -2
- package/src/core/cross/serializer.ts +0 -57
- package/src/core/keys.ts +2 -38
- package/src/core/plugin.ts +0 -2
- 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 +0 -2
- package/src/core/is-serializable.new.ts +0 -208
|
@@ -21,7 +21,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var src_exports = {};
|
|
22
22
|
__export(src_exports, {
|
|
23
23
|
Feature: () => Feature,
|
|
24
|
-
GLOBAL_CONTEXT_API_SCRIPT: () => GLOBAL_CONTEXT_API_SCRIPT,
|
|
25
24
|
Serializer: () => Serializer,
|
|
26
25
|
compileJSON: () => compileJSON,
|
|
27
26
|
createPlugin: () => createPlugin,
|
|
@@ -33,7 +32,6 @@ __export(src_exports, {
|
|
|
33
32
|
deserialize: () => deserialize,
|
|
34
33
|
fromCrossJSON: () => fromCrossJSON,
|
|
35
34
|
fromJSON: () => fromJSON,
|
|
36
|
-
getCrossReferenceHeader: () => getCrossReferenceHeader,
|
|
37
35
|
serialize: () => serialize,
|
|
38
36
|
serializeAsync: () => serializeAsync,
|
|
39
37
|
toCrossJSON: () => toCrossJSON,
|
|
@@ -222,26 +220,13 @@ function deserializeString(str) {
|
|
|
222
220
|
|
|
223
221
|
// src/core/keys.ts
|
|
224
222
|
var REFERENCES_KEY = "__SEROVAL_REFS__";
|
|
225
|
-
var GLOBAL_CONTEXT_API = "_$";
|
|
226
223
|
var GLOBAL_CONTEXT_REFERENCES = "$R";
|
|
227
|
-
var LOCAL_CONTEXT_PROMISE_RESOLVE = "s";
|
|
228
|
-
var LOCAL_CONTEXT_PROMISE_REJECT = "f";
|
|
229
|
-
var GLOBAL_CONTEXT_PROMISE_CONSTRUCTOR = "P";
|
|
230
|
-
var GLOBAL_CONTEXT_PROMISE_RESOLVE = "Ps";
|
|
231
|
-
var GLOBAL_CONTEXT_PROMISE_REJECT = "Pf";
|
|
232
|
-
var LOCAL_CONTEXT_STREAM_CONTROLLER = "c";
|
|
233
|
-
var GLOBAL_CONTEXT_STREAM_CONSTRUCTOR = "S";
|
|
234
|
-
var GLOBAL_CONTEXT_STREAM_ENQUEUE = "Se";
|
|
235
|
-
var GLOBAL_CONTEXT_STREAM_ERROR = "St";
|
|
236
|
-
var GLOBAL_CONTEXT_STREAM_CLOSE = "Sc";
|
|
237
|
-
var GLOBAL_CONTEXT_API_REF = `self.${GLOBAL_CONTEXT_API}`;
|
|
238
|
-
var GLOBAL_CONTEXT_API_SCRIPT = `${GLOBAL_CONTEXT_API_REF}=${GLOBAL_CONTEXT_API_REF}||{${GLOBAL_CONTEXT_PROMISE_CONSTRUCTOR}:function(s,f,p){return(p=new Promise(function(a,b){s=a,f=b})).${LOCAL_CONTEXT_PROMISE_RESOLVE}=s,p.${LOCAL_CONTEXT_PROMISE_REJECT}=f,p},uP:function(p){delete p.${LOCAL_CONTEXT_PROMISE_RESOLVE};delete p.${LOCAL_CONTEXT_PROMISE_REJECT}},${GLOBAL_CONTEXT_PROMISE_RESOLVE}:function(p,d){p.${LOCAL_CONTEXT_PROMISE_RESOLVE}(d),p.status="success",p.value=d,this.uP(p)},${GLOBAL_CONTEXT_PROMISE_REJECT}:function(p,d){p.${LOCAL_CONTEXT_PROMISE_REJECT}(d),p.status="failure",p.value=d,this.uP(p)},uS:function(s){delete s.${LOCAL_CONTEXT_STREAM_CONTROLLER}},${GLOBAL_CONTEXT_STREAM_CLOSE}:function(s){s.${LOCAL_CONTEXT_STREAM_CONTROLLER}.close(),this.uS(s)},${GLOBAL_CONTEXT_STREAM_ERROR}:function(s,e){s.${LOCAL_CONTEXT_STREAM_CONTROLLER}.error(e),this.uS(s)},${GLOBAL_CONTEXT_STREAM_ENQUEUE}:function(s,d){s.${LOCAL_CONTEXT_STREAM_CONTROLLER}.enqueue(d)},${GLOBAL_CONTEXT_STREAM_CONSTRUCTOR}:function(s,c){return(s=new ReadableStream({start:function(x){c=x}})).${LOCAL_CONTEXT_STREAM_CONTROLLER}=c,s}}`;
|
|
239
224
|
var GLOBAL_CONTEXT_R = `self.${GLOBAL_CONTEXT_REFERENCES}`;
|
|
240
225
|
function getCrossReferenceHeader(id) {
|
|
241
226
|
if (id == null) {
|
|
242
|
-
return `${GLOBAL_CONTEXT_R}=${GLOBAL_CONTEXT_R}||[]
|
|
227
|
+
return `${GLOBAL_CONTEXT_R}=${GLOBAL_CONTEXT_R}||[]`;
|
|
243
228
|
}
|
|
244
|
-
return `(${GLOBAL_CONTEXT_R}=${GLOBAL_CONTEXT_R}||{})["${serializeString(id)}"]=[]
|
|
229
|
+
return `(${GLOBAL_CONTEXT_R}=${GLOBAL_CONTEXT_R}||{})["${serializeString(id)}"]=[]`;
|
|
245
230
|
}
|
|
246
231
|
|
|
247
232
|
// src/core/reference.ts
|
|
@@ -960,11 +945,20 @@ function sequenceToReadableStream(sequence) {
|
|
|
960
945
|
}
|
|
961
946
|
|
|
962
947
|
// src/core/special-reference.ts
|
|
963
|
-
var
|
|
948
|
+
var UNIVERSAL_SENTINEL = {};
|
|
964
949
|
var ITERATOR = {};
|
|
965
950
|
var ASYNC_ITERATOR = {};
|
|
966
|
-
var
|
|
967
|
-
|
|
951
|
+
var SPECIAL_REFS = {
|
|
952
|
+
[0 /* MapSentinel */]: {},
|
|
953
|
+
[1 /* ReadableStream */]: {},
|
|
954
|
+
[2 /* PromiseConstructor */]: {},
|
|
955
|
+
[3 /* PromiseResolve */]: {},
|
|
956
|
+
[4 /* PromiseReject */]: {},
|
|
957
|
+
[5 /* ReadableStreamConstructor */]: {},
|
|
958
|
+
[6 /* ReadableStreamEnqueue */]: {},
|
|
959
|
+
[7 /* ReadableStreamError */]: {},
|
|
960
|
+
[8 /* ReadableStreamClose */]: {}
|
|
961
|
+
};
|
|
968
962
|
|
|
969
963
|
// src/core/context/parser.ts
|
|
970
964
|
var BaseParserContext = class {
|
|
@@ -1024,18 +1018,19 @@ var BaseParserContext = class {
|
|
|
1024
1018
|
}
|
|
1025
1019
|
return createReferenceNode(id, current);
|
|
1026
1020
|
}
|
|
1027
|
-
|
|
1028
|
-
const
|
|
1021
|
+
parseSpecialReference(ref) {
|
|
1022
|
+
const specialRef = SPECIAL_REFS[ref];
|
|
1023
|
+
const registeredID = this.refs.get(specialRef);
|
|
1029
1024
|
if (registeredID != null) {
|
|
1030
1025
|
this.markRef(registeredID);
|
|
1031
1026
|
return createIndexedValueNode(registeredID);
|
|
1032
1027
|
}
|
|
1033
1028
|
const id = this.refs.size;
|
|
1034
|
-
this.refs.set(
|
|
1029
|
+
this.refs.set(specialRef, id);
|
|
1035
1030
|
return {
|
|
1036
|
-
t: 41 /*
|
|
1031
|
+
t: 41 /* SpecialReference */,
|
|
1037
1032
|
i: id,
|
|
1038
|
-
s:
|
|
1033
|
+
s: ref,
|
|
1039
1034
|
l: void 0,
|
|
1040
1035
|
c: void 0,
|
|
1041
1036
|
m: void 0,
|
|
@@ -1120,30 +1115,7 @@ var BaseParserContext = class {
|
|
|
1120
1115
|
p: void 0,
|
|
1121
1116
|
e: { k, v, s },
|
|
1122
1117
|
a: void 0,
|
|
1123
|
-
f: this.
|
|
1124
|
-
b: void 0,
|
|
1125
|
-
o: void 0
|
|
1126
|
-
};
|
|
1127
|
-
}
|
|
1128
|
-
parseReadableStreamFactory() {
|
|
1129
|
-
const registeredID = this.refs.get(READABLE_STREAM);
|
|
1130
|
-
if (registeredID != null) {
|
|
1131
|
-
this.markRef(registeredID);
|
|
1132
|
-
return createIndexedValueNode(registeredID);
|
|
1133
|
-
}
|
|
1134
|
-
const id = this.refs.size;
|
|
1135
|
-
this.refs.set(READABLE_STREAM, id);
|
|
1136
|
-
return {
|
|
1137
|
-
t: 47 /* ReadableStreamFactory */,
|
|
1138
|
-
i: id,
|
|
1139
|
-
s: void 0,
|
|
1140
|
-
l: void 0,
|
|
1141
|
-
c: void 0,
|
|
1142
|
-
m: void 0,
|
|
1143
|
-
p: void 0,
|
|
1144
|
-
e: void 0,
|
|
1145
|
-
a: void 0,
|
|
1146
|
-
f: void 0,
|
|
1118
|
+
f: this.parseSpecialReference(0 /* MapSentinel */),
|
|
1147
1119
|
b: void 0,
|
|
1148
1120
|
o: void 0
|
|
1149
1121
|
};
|
|
@@ -1560,7 +1532,7 @@ var BaseAsyncParserContext = class extends BaseParserContext {
|
|
|
1560
1532
|
async parseReadableStream(id, current) {
|
|
1561
1533
|
return createReadableStreamNode(
|
|
1562
1534
|
id,
|
|
1563
|
-
this.
|
|
1535
|
+
this.parseSpecialReference(1 /* ReadableStream */),
|
|
1564
1536
|
await this.parse(
|
|
1565
1537
|
await readableStreamToSequence(current)
|
|
1566
1538
|
)
|
|
@@ -2074,7 +2046,7 @@ var BaseDeserializerContext = class {
|
|
|
2074
2046
|
const deferred = this.refs.get(node.i);
|
|
2075
2047
|
assert(deferred, new Error("Missing Promise instance."));
|
|
2076
2048
|
deferred.resolve(
|
|
2077
|
-
this.deserialize(node.
|
|
2049
|
+
this.deserialize(node.a[1])
|
|
2078
2050
|
);
|
|
2079
2051
|
return void 0;
|
|
2080
2052
|
}
|
|
@@ -2082,7 +2054,7 @@ var BaseDeserializerContext = class {
|
|
|
2082
2054
|
const deferred = this.refs.get(node.i);
|
|
2083
2055
|
assert(deferred, new Error("Missing Promise instance."));
|
|
2084
2056
|
deferred.reject(
|
|
2085
|
-
this.deserialize(node.
|
|
2057
|
+
this.deserialize(node.a[1])
|
|
2086
2058
|
);
|
|
2087
2059
|
return void 0;
|
|
2088
2060
|
}
|
|
@@ -2096,7 +2068,7 @@ var BaseDeserializerContext = class {
|
|
|
2096
2068
|
const deferred = this.refs.get(node.i);
|
|
2097
2069
|
assert(deferred, new Error("Missing ReadableStream instance."));
|
|
2098
2070
|
deferred.enqueue(
|
|
2099
|
-
this.deserialize(node.
|
|
2071
|
+
this.deserialize(node.a[1])
|
|
2100
2072
|
);
|
|
2101
2073
|
return void 0;
|
|
2102
2074
|
}
|
|
@@ -2104,7 +2076,7 @@ var BaseDeserializerContext = class {
|
|
|
2104
2076
|
const deferred = this.refs.get(node.i);
|
|
2105
2077
|
assert(deferred, new Error("Missing Promise instance."));
|
|
2106
2078
|
deferred.error(
|
|
2107
|
-
this.deserialize(node.
|
|
2079
|
+
this.deserialize(node.a[1])
|
|
2108
2080
|
);
|
|
2109
2081
|
return void 0;
|
|
2110
2082
|
}
|
|
@@ -2120,7 +2092,7 @@ var BaseDeserializerContext = class {
|
|
|
2120
2092
|
}
|
|
2121
2093
|
deserializeAsyncIteratorFactoryInstance(node) {
|
|
2122
2094
|
const source = this.deserialize(node.a[1]);
|
|
2123
|
-
if (
|
|
2095
|
+
if (node.s) {
|
|
2124
2096
|
return readableStreamToAsyncIterator(
|
|
2125
2097
|
source
|
|
2126
2098
|
);
|
|
@@ -2223,10 +2195,9 @@ var BaseDeserializerContext = class {
|
|
|
2223
2195
|
return this.deserializeAsyncIteratorFactoryInstance(node);
|
|
2224
2196
|
case 46 /* ReadableStream */:
|
|
2225
2197
|
return this.deserializeReadableStream(node);
|
|
2226
|
-
case 41 /*
|
|
2198
|
+
case 41 /* SpecialReference */:
|
|
2227
2199
|
case 42 /* IteratorFactory */:
|
|
2228
2200
|
case 44 /* AsyncIteratorFactory */:
|
|
2229
|
-
case 47 /* ReadableStreamFactory */:
|
|
2230
2201
|
default:
|
|
2231
2202
|
throw new Error("invariant");
|
|
2232
2203
|
}
|
|
@@ -2699,7 +2670,7 @@ var BaseSerializerContext = class {
|
|
|
2699
2670
|
serialized += "([" + result + "])";
|
|
2700
2671
|
}
|
|
2701
2672
|
}
|
|
2702
|
-
if (sentinel.t === 41 /*
|
|
2673
|
+
if (sentinel.t === 41 /* SpecialReference */) {
|
|
2703
2674
|
this.markRef(sentinel.i);
|
|
2704
2675
|
serialized = "(" + this.serialize(sentinel) + "," + serialized + ")";
|
|
2705
2676
|
}
|
|
@@ -2859,10 +2830,95 @@ var BaseSerializerContext = class {
|
|
|
2859
2830
|
}
|
|
2860
2831
|
throw new Error('Missing plugin for tag "' + node.c + '".');
|
|
2861
2832
|
}
|
|
2862
|
-
|
|
2833
|
+
getConstructor(node) {
|
|
2834
|
+
const constructor = this.serialize(node);
|
|
2835
|
+
return constructor === this.getRefParam(node.i) ? constructor : "(" + constructor + ")";
|
|
2836
|
+
}
|
|
2837
|
+
serializePromiseConstructor(node) {
|
|
2838
|
+
return this.assignIndexedValue(
|
|
2839
|
+
node.i,
|
|
2840
|
+
this.getConstructor(node.f) + "()"
|
|
2841
|
+
);
|
|
2842
|
+
}
|
|
2843
|
+
serializePromiseResolve(node) {
|
|
2844
|
+
return this.getConstructor(node.a[0]) + "(" + this.getRefParam(node.i) + "," + this.serialize(node.a[1]) + ")";
|
|
2845
|
+
}
|
|
2846
|
+
serializePromiseReject(node) {
|
|
2847
|
+
return this.getConstructor(node.a[0]) + "(" + this.getRefParam(node.i) + "," + this.serialize(node.a[1]) + ")";
|
|
2848
|
+
}
|
|
2849
|
+
serializeReadableStreamConstructor(node) {
|
|
2850
|
+
return this.assignIndexedValue(
|
|
2851
|
+
node.i,
|
|
2852
|
+
this.getConstructor(node.f) + "()"
|
|
2853
|
+
);
|
|
2854
|
+
}
|
|
2855
|
+
serializeReadableStreamEnqueue(node) {
|
|
2856
|
+
return this.getConstructor(node.a[0]) + "(" + this.getRefParam(node.i) + "," + this.serialize(node.a[1]) + ")";
|
|
2857
|
+
}
|
|
2858
|
+
serializeReadableStreamError(node) {
|
|
2859
|
+
return this.getConstructor(node.a[0]) + "(" + this.getRefParam(node.i) + "," + this.serialize(node.a[1]) + ")";
|
|
2860
|
+
}
|
|
2861
|
+
serializeReadableStreamClose(node) {
|
|
2862
|
+
return this.getConstructor(node.f) + "(" + this.getRefParam(node.i) + ")";
|
|
2863
|
+
}
|
|
2864
|
+
serializeSpecialReferenceValue(ref) {
|
|
2865
|
+
switch (ref) {
|
|
2866
|
+
case 0 /* MapSentinel */:
|
|
2867
|
+
return "[]";
|
|
2868
|
+
case 1 /* ReadableStream */:
|
|
2869
|
+
return this.createFunction(
|
|
2870
|
+
["s"],
|
|
2871
|
+
"new ReadableStream({start:" + this.createFunction(
|
|
2872
|
+
["c"],
|
|
2873
|
+
"Promise.resolve().then(" + this.createEffectfulFunction(
|
|
2874
|
+
["i", "v"],
|
|
2875
|
+
"for(i=0;i<s.d;i++)c.enqueue(s.v[i]);(s.t===-1)?c.close():c.error(s.v[i])"
|
|
2876
|
+
) + ")"
|
|
2877
|
+
) + "})"
|
|
2878
|
+
);
|
|
2879
|
+
case 2 /* PromiseConstructor */:
|
|
2880
|
+
return this.createFunction(
|
|
2881
|
+
["s", "f", "p"],
|
|
2882
|
+
"((p=new Promise(" + this.createEffectfulFunction(["a", "b"], "s=a,f=b") + ")).s=s,p.f=f,p)"
|
|
2883
|
+
);
|
|
2884
|
+
case 3 /* PromiseResolve */:
|
|
2885
|
+
return this.createEffectfulFunction(
|
|
2886
|
+
["p", "d"],
|
|
2887
|
+
'p.s(d),p.status="success",p.value=d;delete p.s;delete p.f'
|
|
2888
|
+
);
|
|
2889
|
+
case 4 /* PromiseReject */:
|
|
2890
|
+
return this.createEffectfulFunction(
|
|
2891
|
+
["p", "d"],
|
|
2892
|
+
'p.f(d),p.status="failure",p.value=d;delete p.s;delete p.f'
|
|
2893
|
+
);
|
|
2894
|
+
case 5 /* ReadableStreamConstructor */:
|
|
2895
|
+
return this.createFunction(
|
|
2896
|
+
["s", "c"],
|
|
2897
|
+
"((s=new ReadableStream({start:" + this.createEffectfulFunction(["x"], "c=x") + "})).c=c,s)"
|
|
2898
|
+
);
|
|
2899
|
+
case 6 /* ReadableStreamEnqueue */:
|
|
2900
|
+
return this.createEffectfulFunction(
|
|
2901
|
+
["s", "d"],
|
|
2902
|
+
"s.c.enqueue(d)"
|
|
2903
|
+
);
|
|
2904
|
+
case 7 /* ReadableStreamError */:
|
|
2905
|
+
return this.createEffectfulFunction(
|
|
2906
|
+
["s", "d"],
|
|
2907
|
+
"s.c.error(d);delete s.c"
|
|
2908
|
+
);
|
|
2909
|
+
case 8 /* ReadableStreamClose */:
|
|
2910
|
+
return this.createEffectfulFunction(
|
|
2911
|
+
["s"],
|
|
2912
|
+
"s.c.close();delete s.c"
|
|
2913
|
+
);
|
|
2914
|
+
default:
|
|
2915
|
+
return "";
|
|
2916
|
+
}
|
|
2917
|
+
}
|
|
2918
|
+
serializeSpecialReference(node) {
|
|
2863
2919
|
return this.assignIndexedValue(
|
|
2864
2920
|
node.i,
|
|
2865
|
-
|
|
2921
|
+
this.serializeSpecialReferenceValue(node.s)
|
|
2866
2922
|
);
|
|
2867
2923
|
}
|
|
2868
2924
|
serializeIteratorFactory(node) {
|
|
@@ -2878,7 +2934,7 @@ var BaseSerializerContext = class {
|
|
|
2878
2934
|
);
|
|
2879
2935
|
}
|
|
2880
2936
|
serializeIteratorFactoryInstance(node) {
|
|
2881
|
-
return
|
|
2937
|
+
return this.getConstructor(node.a[0]) + "(" + this.serialize(node.a[1]) + ")";
|
|
2882
2938
|
}
|
|
2883
2939
|
getStreamingAsyncIteratorFactory(node) {
|
|
2884
2940
|
return this.createFunction(
|
|
@@ -2917,32 +2973,17 @@ var BaseSerializerContext = class {
|
|
|
2917
2973
|
);
|
|
2918
2974
|
}
|
|
2919
2975
|
serializeAsyncIteratorFactoryInstance(node) {
|
|
2920
|
-
return
|
|
2976
|
+
return this.getConstructor(node.a[0]) + "(" + this.serialize(node.a[1]) + ")";
|
|
2921
2977
|
}
|
|
2922
2978
|
serializeReadableStream(node) {
|
|
2923
2979
|
this.stack.push(node.i);
|
|
2924
|
-
const result =
|
|
2980
|
+
const result = this.getConstructor(node.a[0]) + "(" + this.serialize(node.a[1]) + ")";
|
|
2925
2981
|
this.stack.pop();
|
|
2926
2982
|
return this.assignIndexedValue(
|
|
2927
2983
|
node.i,
|
|
2928
2984
|
result
|
|
2929
2985
|
);
|
|
2930
2986
|
}
|
|
2931
|
-
serializeReadableStreamFactory(node) {
|
|
2932
|
-
return this.assignIndexedValue(
|
|
2933
|
-
node.i,
|
|
2934
|
-
this.createFunction(
|
|
2935
|
-
["s"],
|
|
2936
|
-
"new ReadableStream({start:" + this.createFunction(
|
|
2937
|
-
["c"],
|
|
2938
|
-
"Promise.resolve().then(" + this.createEffectfulFunction(
|
|
2939
|
-
["i", "v"],
|
|
2940
|
-
"for(i=0;i<s.d;i++)c.enqueue(s.v[i]);(s.t===-1)?c.close():c.error(s.v[i])"
|
|
2941
|
-
) + ")"
|
|
2942
|
-
) + "})"
|
|
2943
|
-
)
|
|
2944
|
-
);
|
|
2945
|
-
}
|
|
2946
2987
|
serialize(node) {
|
|
2947
2988
|
switch (node.t) {
|
|
2948
2989
|
case 2 /* Constant */:
|
|
@@ -3026,8 +3067,8 @@ var BaseSerializerContext = class {
|
|
|
3026
3067
|
return this.serializeDOMException(node);
|
|
3027
3068
|
case 40 /* Plugin */:
|
|
3028
3069
|
return this.serializePlugin(node);
|
|
3029
|
-
case 41 /*
|
|
3030
|
-
return this.
|
|
3070
|
+
case 41 /* SpecialReference */:
|
|
3071
|
+
return this.serializeSpecialReference(node);
|
|
3031
3072
|
case 42 /* IteratorFactory */:
|
|
3032
3073
|
return this.serializeIteratorFactory(node);
|
|
3033
3074
|
case 43 /* IteratorFactoryInstance */:
|
|
@@ -3038,8 +3079,6 @@ var BaseSerializerContext = class {
|
|
|
3038
3079
|
return this.serializeAsyncIteratorFactoryInstance(node);
|
|
3039
3080
|
case 46 /* ReadableStream */:
|
|
3040
3081
|
return this.serializeReadableStream(node);
|
|
3041
|
-
case 47 /* ReadableStreamFactory */:
|
|
3042
|
-
return this.serializeReadableStreamFactory(node);
|
|
3043
3082
|
default:
|
|
3044
3083
|
throw new Error("invariant");
|
|
3045
3084
|
}
|
|
@@ -3611,27 +3650,6 @@ var CrossSerializerContext = class extends BaseSerializerContext {
|
|
|
3611
3650
|
assignIndexedValue(index, value) {
|
|
3612
3651
|
return this.getRefParam(index) + "=" + value;
|
|
3613
3652
|
}
|
|
3614
|
-
serializePromiseConstructor(node) {
|
|
3615
|
-
return this.assignIndexedValue(node.i, GLOBAL_CONTEXT_API + "." + GLOBAL_CONTEXT_PROMISE_CONSTRUCTOR + "()");
|
|
3616
|
-
}
|
|
3617
|
-
serializePromiseResolve(node) {
|
|
3618
|
-
return GLOBAL_CONTEXT_API + "." + GLOBAL_CONTEXT_PROMISE_RESOLVE + "(" + this.getRefParam(node.i) + "," + this.serialize(node.f) + ")";
|
|
3619
|
-
}
|
|
3620
|
-
serializePromiseReject(node) {
|
|
3621
|
-
return GLOBAL_CONTEXT_API + "." + GLOBAL_CONTEXT_PROMISE_REJECT + "(" + this.getRefParam(node.i) + "," + this.serialize(node.f) + ")";
|
|
3622
|
-
}
|
|
3623
|
-
serializeReadableStreamConstructor(node) {
|
|
3624
|
-
return this.assignIndexedValue(node.i, GLOBAL_CONTEXT_API + "." + GLOBAL_CONTEXT_STREAM_CONSTRUCTOR + "()");
|
|
3625
|
-
}
|
|
3626
|
-
serializeReadableStreamEnqueue(node) {
|
|
3627
|
-
return GLOBAL_CONTEXT_API + "." + GLOBAL_CONTEXT_STREAM_ENQUEUE + "(" + this.getRefParam(node.i) + "," + this.serialize(node.f) + ")";
|
|
3628
|
-
}
|
|
3629
|
-
serializeReadableStreamError(node) {
|
|
3630
|
-
return GLOBAL_CONTEXT_API + "." + GLOBAL_CONTEXT_STREAM_ERROR + "(" + this.getRefParam(node.i) + "," + this.serialize(node.f) + ")";
|
|
3631
|
-
}
|
|
3632
|
-
serializeReadableStreamClose(node) {
|
|
3633
|
-
return GLOBAL_CONTEXT_API + "." + GLOBAL_CONTEXT_STREAM_CLOSE + "(" + this.getRefParam(node.i) + ")";
|
|
3634
|
-
}
|
|
3635
3653
|
serializeTop(tree) {
|
|
3636
3654
|
const result = this.serialize(tree);
|
|
3637
3655
|
const id = tree.i;
|
|
@@ -3664,7 +3682,11 @@ var BaseStreamParserContext = class extends BaseSyncParserContext {
|
|
|
3664
3682
|
this.onDoneCallback = options.onDone;
|
|
3665
3683
|
}
|
|
3666
3684
|
onParse(node, initial) {
|
|
3667
|
-
|
|
3685
|
+
try {
|
|
3686
|
+
this.onParseCallback(node, initial);
|
|
3687
|
+
} catch (error) {
|
|
3688
|
+
this.onError(error);
|
|
3689
|
+
}
|
|
3668
3690
|
}
|
|
3669
3691
|
onError(error) {
|
|
3670
3692
|
if (this.onErrorCallback) {
|
|
@@ -3764,7 +3786,7 @@ var BaseStreamParserContext = class extends BaseSyncParserContext {
|
|
|
3764
3786
|
p: void 0,
|
|
3765
3787
|
e: void 0,
|
|
3766
3788
|
a: void 0,
|
|
3767
|
-
f:
|
|
3789
|
+
f: this.parseSpecialReference(8 /* ReadableStreamClose */),
|
|
3768
3790
|
b: void 0,
|
|
3769
3791
|
o: void 0
|
|
3770
3792
|
}, false);
|
|
@@ -3781,8 +3803,11 @@ var BaseStreamParserContext = class extends BaseSyncParserContext {
|
|
|
3781
3803
|
m: void 0,
|
|
3782
3804
|
p: void 0,
|
|
3783
3805
|
e: void 0,
|
|
3784
|
-
a:
|
|
3785
|
-
|
|
3806
|
+
a: [
|
|
3807
|
+
this.parseSpecialReference(6 /* ReadableStreamEnqueue */),
|
|
3808
|
+
parsed
|
|
3809
|
+
],
|
|
3810
|
+
f: void 0,
|
|
3786
3811
|
b: void 0,
|
|
3787
3812
|
o: void 0
|
|
3788
3813
|
}, false);
|
|
@@ -3804,8 +3829,11 @@ var BaseStreamParserContext = class extends BaseSyncParserContext {
|
|
|
3804
3829
|
m: void 0,
|
|
3805
3830
|
p: void 0,
|
|
3806
3831
|
e: void 0,
|
|
3807
|
-
a:
|
|
3808
|
-
|
|
3832
|
+
a: [
|
|
3833
|
+
this.parseSpecialReference(7 /* ReadableStreamError */),
|
|
3834
|
+
parsed
|
|
3835
|
+
],
|
|
3836
|
+
f: void 0,
|
|
3809
3837
|
b: void 0,
|
|
3810
3838
|
o: void 0
|
|
3811
3839
|
}, false);
|
|
@@ -3829,7 +3857,7 @@ var BaseStreamParserContext = class extends BaseSyncParserContext {
|
|
|
3829
3857
|
p: void 0,
|
|
3830
3858
|
e: void 0,
|
|
3831
3859
|
a: void 0,
|
|
3832
|
-
f:
|
|
3860
|
+
f: this.parseSpecialReference(5 /* ReadableStreamConstructor */),
|
|
3833
3861
|
b: void 0,
|
|
3834
3862
|
o: void 0
|
|
3835
3863
|
};
|
|
@@ -3885,8 +3913,11 @@ var BaseStreamParserContext = class extends BaseSyncParserContext {
|
|
|
3885
3913
|
m: void 0,
|
|
3886
3914
|
p: void 0,
|
|
3887
3915
|
e: void 0,
|
|
3888
|
-
a:
|
|
3889
|
-
|
|
3916
|
+
a: [
|
|
3917
|
+
this.parseSpecialReference(3 /* PromiseResolve */),
|
|
3918
|
+
parsed
|
|
3919
|
+
],
|
|
3920
|
+
f: void 0,
|
|
3890
3921
|
b: void 0,
|
|
3891
3922
|
o: void 0
|
|
3892
3923
|
}, false);
|
|
@@ -3906,8 +3937,11 @@ var BaseStreamParserContext = class extends BaseSyncParserContext {
|
|
|
3906
3937
|
m: void 0,
|
|
3907
3938
|
p: void 0,
|
|
3908
3939
|
e: void 0,
|
|
3909
|
-
a:
|
|
3910
|
-
|
|
3940
|
+
a: [
|
|
3941
|
+
this.parseSpecialReference(4 /* PromiseReject */),
|
|
3942
|
+
parsed
|
|
3943
|
+
],
|
|
3944
|
+
f: void 0,
|
|
3911
3945
|
b: void 0,
|
|
3912
3946
|
o: void 0
|
|
3913
3947
|
}, false);
|
|
@@ -3927,7 +3961,7 @@ var BaseStreamParserContext = class extends BaseSyncParserContext {
|
|
|
3927
3961
|
p: void 0,
|
|
3928
3962
|
e: void 0,
|
|
3929
3963
|
a: void 0,
|
|
3930
|
-
f:
|
|
3964
|
+
f: this.parseSpecialReference(2 /* PromiseConstructor */),
|
|
3931
3965
|
b: void 0,
|
|
3932
3966
|
o: void 0
|
|
3933
3967
|
};
|
|
@@ -4125,6 +4159,9 @@ var CrossSyncParserContext = class extends BaseSyncParserContext {
|
|
|
4125
4159
|
};
|
|
4126
4160
|
|
|
4127
4161
|
// src/core/cross/index.ts
|
|
4162
|
+
function insertCrossReferenceHeader(scopeId, value) {
|
|
4163
|
+
return "(" + getCrossReferenceHeader(scopeId) + "," + value + ")";
|
|
4164
|
+
}
|
|
4128
4165
|
function crossSerialize(source, options = {}) {
|
|
4129
4166
|
const ctx = new CrossSyncParserContext({
|
|
4130
4167
|
plugins: options.plugins,
|
|
@@ -4138,7 +4175,7 @@ function crossSerialize(source, options = {}) {
|
|
|
4138
4175
|
scopeId: options.scopeId,
|
|
4139
4176
|
markedRefs: ctx.marked
|
|
4140
4177
|
});
|
|
4141
|
-
return serial.serializeTop(tree);
|
|
4178
|
+
return insertCrossReferenceHeader(options.scopeId, serial.serializeTop(tree));
|
|
4142
4179
|
}
|
|
4143
4180
|
async function crossSerializeAsync(source, options = {}) {
|
|
4144
4181
|
const ctx = new CrossAsyncParserContext({
|
|
@@ -4153,7 +4190,7 @@ async function crossSerializeAsync(source, options = {}) {
|
|
|
4153
4190
|
scopeId: options.scopeId,
|
|
4154
4191
|
markedRefs: ctx.marked
|
|
4155
4192
|
});
|
|
4156
|
-
return serial.serializeTop(tree);
|
|
4193
|
+
return insertCrossReferenceHeader(options.scopeId, serial.serializeTop(tree));
|
|
4157
4194
|
}
|
|
4158
4195
|
function toCrossJSON(source, options = {}) {
|
|
4159
4196
|
const ctx = new CrossSyncParserContext({
|
|
@@ -4192,6 +4229,9 @@ function crossSerializeStream(source, options) {
|
|
|
4192
4229
|
}
|
|
4193
4230
|
return;
|
|
4194
4231
|
}
|
|
4232
|
+
if (initial) {
|
|
4233
|
+
serialized = insertCrossReferenceHeader(options.scopeId, serialized);
|
|
4234
|
+
}
|
|
4195
4235
|
options.onSerialize(
|
|
4196
4236
|
serialized,
|
|
4197
4237
|
initial
|