seroval 1.3.2 → 1.4.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 +2817 -2700
- package/dist/cjs/development/index.cjs.map +4 -4
- package/dist/cjs/production/index.cjs +3 -17
- package/dist/esm/development/index.mjs +2817 -2700
- package/dist/esm/development/index.mjs.map +4 -4
- package/dist/esm/production/index.mjs +3 -17
- package/dist/types/core/base-primitives.d.ts +3 -4
- package/dist/types/core/base-primitives.d.ts.map +1 -1
- package/dist/types/core/compat.d.ts +3 -2
- package/dist/types/core/compat.d.ts.map +1 -1
- package/dist/types/core/constants.d.ts +2 -1
- package/dist/types/core/constants.d.ts.map +1 -1
- package/dist/types/core/constructors.d.ts +54 -0
- package/dist/types/core/constructors.d.ts.map +1 -0
- package/dist/types/core/context/async-parser.d.ts +20 -0
- package/dist/types/core/context/async-parser.d.ts.map +1 -0
- package/dist/types/core/context/deserializer.d.ts +40 -38
- package/dist/types/core/context/deserializer.d.ts.map +1 -1
- package/dist/types/core/context/parser.d.ts +34 -19
- package/dist/types/core/context/parser.d.ts.map +1 -1
- package/dist/types/core/context/serializer.d.ts +38 -99
- package/dist/types/core/context/serializer.d.ts.map +1 -1
- package/dist/types/core/context/sync-parser.d.ts +59 -0
- package/dist/types/core/context/sync-parser.d.ts.map +1 -0
- package/dist/types/core/cross/index.d.ts +12 -13
- package/dist/types/core/cross/index.d.ts.map +1 -1
- package/dist/types/core/errors.d.ts +9 -0
- package/dist/types/core/errors.d.ts.map +1 -1
- package/dist/types/core/function-string.d.ts +2 -2
- package/dist/types/core/function-string.d.ts.map +1 -1
- package/dist/types/core/literals.d.ts.map +1 -1
- package/dist/types/core/node.d.ts +1 -1
- package/dist/types/core/node.d.ts.map +1 -1
- package/dist/types/core/plugin.d.ts +13 -11
- package/dist/types/core/plugin.d.ts.map +1 -1
- package/dist/types/core/reference.d.ts.map +1 -1
- package/dist/types/core/special-reference.d.ts +3 -2
- package/dist/types/core/special-reference.d.ts.map +1 -1
- package/dist/types/core/stream.d.ts +1 -2
- package/dist/types/core/stream.d.ts.map +1 -1
- package/dist/types/core/string.d.ts.map +1 -1
- package/dist/types/core/symbols.d.ts +14 -0
- package/dist/types/core/symbols.d.ts.map +1 -0
- package/dist/types/core/tree/index.d.ts +7 -3
- package/dist/types/core/tree/index.d.ts.map +1 -1
- package/dist/types/core/types.d.ts +4 -11
- package/dist/types/core/types.d.ts.map +1 -1
- package/dist/types/core/utils/iterator-to-sequence.d.ts.map +1 -1
- package/dist/types/index.d.ts +10 -5
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +18 -21
- package/dist/types/core/context/parser/async.d.ts +0 -24
- package/dist/types/core/context/parser/async.d.ts.map +0 -1
- package/dist/types/core/context/parser/stream.d.ts +0 -43
- package/dist/types/core/context/parser/stream.d.ts.map +0 -1
- package/dist/types/core/context/parser/sync.d.ts +0 -30
- package/dist/types/core/context/parser/sync.d.ts.map +0 -1
- package/dist/types/core/cross/async.d.ts +0 -8
- package/dist/types/core/cross/async.d.ts.map +0 -1
- package/dist/types/core/cross/deserializer.d.ts +0 -9
- package/dist/types/core/cross/deserializer.d.ts.map +0 -1
- package/dist/types/core/cross/parser.d.ts +0 -6
- package/dist/types/core/cross/parser.d.ts.map +0 -1
- package/dist/types/core/cross/serializer.d.ts +0 -16
- package/dist/types/core/cross/serializer.d.ts.map +0 -1
- package/dist/types/core/cross/stream.d.ts +0 -8
- package/dist/types/core/cross/stream.d.ts.map +0 -1
- package/dist/types/core/cross/sync.d.ts +0 -8
- package/dist/types/core/cross/sync.d.ts.map +0 -1
- package/dist/types/core/tree/async.d.ts +0 -8
- package/dist/types/core/tree/async.d.ts.map +0 -1
- package/dist/types/core/tree/deserializer.d.ts +0 -13
- package/dist/types/core/tree/deserializer.d.ts.map +0 -1
- package/dist/types/core/tree/serializer.d.ts +0 -29
- package/dist/types/core/tree/serializer.d.ts.map +0 -1
- package/dist/types/core/tree/sync.d.ts +0 -8
- package/dist/types/core/tree/sync.d.ts.map +0 -1
- package/dist/types/core/utils/assert.d.ts +0 -2
- package/dist/types/core/utils/assert.d.ts.map +0 -1
- package/dist/types/core/utils/deferred.d.ts +0 -7
- package/dist/types/core/utils/deferred.d.ts.map +0 -1
- package/src/core/Serializer.ts +0 -119
- package/src/core/base-primitives.ts +0 -542
- package/src/core/compat.ts +0 -20
- package/src/core/constants.ts +0 -185
- package/src/core/context/deserializer.ts +0 -456
- package/src/core/context/parser/async.ts +0 -495
- package/src/core/context/parser/stream.ts +0 -323
- package/src/core/context/parser/sync.ts +0 -404
- package/src/core/context/parser.ts +0 -270
- package/src/core/context/serializer.ts +0 -1180
- package/src/core/cross/async.ts +0 -9
- package/src/core/cross/deserializer.ts +0 -16
- package/src/core/cross/index.ts +0 -170
- package/src/core/cross/parser.ts +0 -7
- package/src/core/cross/serializer.ts +0 -72
- package/src/core/cross/stream.ts +0 -9
- package/src/core/cross/sync.ts +0 -9
- package/src/core/errors.ts +0 -102
- package/src/core/function-string.ts +0 -31
- package/src/core/keys.ts +0 -17
- package/src/core/literals.ts +0 -43
- package/src/core/node.ts +0 -40
- package/src/core/opaque-reference.ts +0 -9
- package/src/core/plugin.ts +0 -91
- package/src/core/reference.ts +0 -63
- package/src/core/special-reference.ts +0 -114
- package/src/core/stream.ts +0 -205
- package/src/core/string.ts +0 -84
- package/src/core/tree/async.ts +0 -9
- package/src/core/tree/deserializer.ts +0 -26
- package/src/core/tree/index.ts +0 -111
- package/src/core/tree/serializer.ts +0 -98
- package/src/core/tree/sync.ts +0 -9
- package/src/core/types.ts +0 -370
- package/src/core/utils/assert.ts +0 -5
- package/src/core/utils/deferred.ts +0 -22
- package/src/core/utils/error.ts +0 -73
- package/src/core/utils/get-identifier.ts +0 -18
- package/src/core/utils/get-object-flag.ts +0 -14
- package/src/core/utils/is-valid-identifier.ts +0 -12
- package/src/core/utils/iterator-to-sequence.ts +0 -66
- package/src/core/utils/promise-to-result.ts +0 -9
- package/src/core/utils/typed-array.ts +0 -56
- package/src/index.ts +0 -18
package/src/core/tree/sync.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import BaseSyncParserContext from '../context/parser/sync';
|
|
2
|
-
import type { BaseParserContextOptions } from '../context/parser';
|
|
3
|
-
import type { SerovalMode } from '../plugin';
|
|
4
|
-
|
|
5
|
-
export type SyncParserContextOptions = Omit<BaseParserContextOptions, 'refs'>;
|
|
6
|
-
|
|
7
|
-
export default class SyncParserContext extends BaseSyncParserContext {
|
|
8
|
-
readonly mode: SerovalMode = 'vanilla';
|
|
9
|
-
}
|
package/src/core/types.ts
DELETED
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
ErrorConstructorTag,
|
|
3
|
-
SerovalConstant,
|
|
4
|
-
SerovalNodeType,
|
|
5
|
-
SerovalObjectFlags,
|
|
6
|
-
Symbols,
|
|
7
|
-
} from './constants';
|
|
8
|
-
import type { SpecialReference } from './special-reference';
|
|
9
|
-
|
|
10
|
-
export interface SerovalBaseNode {
|
|
11
|
-
// Type of the node
|
|
12
|
-
t: SerovalNodeType;
|
|
13
|
-
// Reference ID
|
|
14
|
-
i: number | undefined;
|
|
15
|
-
// Serialized value
|
|
16
|
-
s: unknown;
|
|
17
|
-
// size/length
|
|
18
|
-
l: number | undefined;
|
|
19
|
-
// Constructor name / RegExp source
|
|
20
|
-
c: string | undefined;
|
|
21
|
-
// message/flags
|
|
22
|
-
m: string | undefined;
|
|
23
|
-
// properties (objects)
|
|
24
|
-
p: SerovalObjectRecordNode | undefined;
|
|
25
|
-
// entries (for Map, etc.)
|
|
26
|
-
e: SerovalMapRecordNode | undefined;
|
|
27
|
-
// array of nodes
|
|
28
|
-
a: (SerovalNode | undefined)[] | undefined;
|
|
29
|
-
// fulfilled node
|
|
30
|
-
f: SerovalNode | undefined;
|
|
31
|
-
// byte offset/object flags
|
|
32
|
-
b: number | undefined;
|
|
33
|
-
// object flag
|
|
34
|
-
o: SerovalObjectFlags | undefined;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export type SerovalObjectRecordKey = string | SerovalNode;
|
|
38
|
-
|
|
39
|
-
export interface SerovalObjectRecordNode {
|
|
40
|
-
k: SerovalObjectRecordKey[];
|
|
41
|
-
v: SerovalNode[];
|
|
42
|
-
s: number;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export interface SerovalMapRecordNode {
|
|
46
|
-
k: SerovalNode[];
|
|
47
|
-
v: SerovalNode[];
|
|
48
|
-
s: number;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export interface SerovalNumberNode extends SerovalBaseNode {
|
|
52
|
-
t: SerovalNodeType.Number;
|
|
53
|
-
s: number;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export interface SerovalStringNode extends SerovalBaseNode {
|
|
57
|
-
t: SerovalNodeType.String;
|
|
58
|
-
s: string;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export interface SerovalConstantNode extends SerovalBaseNode {
|
|
62
|
-
t: SerovalNodeType.Constant;
|
|
63
|
-
s: SerovalConstant;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export type SerovalPrimitiveNode =
|
|
67
|
-
| SerovalNumberNode
|
|
68
|
-
| SerovalStringNode
|
|
69
|
-
| SerovalConstantNode;
|
|
70
|
-
|
|
71
|
-
export interface SerovalIndexedValueNode extends SerovalBaseNode {
|
|
72
|
-
t: SerovalNodeType.IndexedValue;
|
|
73
|
-
// id
|
|
74
|
-
i: number;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export interface SerovalBigIntNode extends SerovalBaseNode {
|
|
78
|
-
t: SerovalNodeType.BigInt;
|
|
79
|
-
// value in string
|
|
80
|
-
s: string;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export interface SerovalDateNode extends SerovalBaseNode {
|
|
84
|
-
t: SerovalNodeType.Date;
|
|
85
|
-
// id (Dates are stateful)
|
|
86
|
-
i: number;
|
|
87
|
-
// value in ISO string
|
|
88
|
-
s: string;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export interface SerovalRegExpNode extends SerovalBaseNode {
|
|
92
|
-
t: SerovalNodeType.RegExp;
|
|
93
|
-
// id (RegExp are stateful)
|
|
94
|
-
i: number;
|
|
95
|
-
// source
|
|
96
|
-
c: string;
|
|
97
|
-
// flags
|
|
98
|
-
m: string;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export interface SerovalArrayBufferNode extends SerovalBaseNode {
|
|
102
|
-
t: SerovalNodeType.ArrayBuffer;
|
|
103
|
-
// id
|
|
104
|
-
i: number;
|
|
105
|
-
// sequence in bytes
|
|
106
|
-
s: number[];
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export interface SerovalTypedArrayNode extends SerovalBaseNode {
|
|
110
|
-
t: SerovalNodeType.TypedArray;
|
|
111
|
-
// id
|
|
112
|
-
i: number;
|
|
113
|
-
// length
|
|
114
|
-
l: number;
|
|
115
|
-
// TypedArray Constructor
|
|
116
|
-
c: string;
|
|
117
|
-
// ArrayBuffer reference
|
|
118
|
-
f: SerovalNode;
|
|
119
|
-
// Byte Offset
|
|
120
|
-
b: number;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export interface SerovalBigIntTypedArrayNode extends SerovalBaseNode {
|
|
124
|
-
t: SerovalNodeType.BigIntTypedArray;
|
|
125
|
-
i: number;
|
|
126
|
-
// length
|
|
127
|
-
l: number;
|
|
128
|
-
// TypedArray Constructor
|
|
129
|
-
c: string;
|
|
130
|
-
// ArrayBuffer reference
|
|
131
|
-
f: SerovalNode;
|
|
132
|
-
// Byte Offset
|
|
133
|
-
b: number;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
export type SerovalSemiPrimitiveNode =
|
|
137
|
-
| SerovalBigIntNode
|
|
138
|
-
| SerovalDateNode
|
|
139
|
-
| SerovalRegExpNode
|
|
140
|
-
| SerovalTypedArrayNode
|
|
141
|
-
| SerovalBigIntTypedArrayNode;
|
|
142
|
-
|
|
143
|
-
export interface SerovalSetNode extends SerovalBaseNode {
|
|
144
|
-
t: SerovalNodeType.Set;
|
|
145
|
-
// id
|
|
146
|
-
i: number;
|
|
147
|
-
// Size of Set
|
|
148
|
-
l: number;
|
|
149
|
-
// Items in Set (as array)
|
|
150
|
-
a: SerovalNode[];
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
export interface SerovalMapNode extends SerovalBaseNode {
|
|
154
|
-
t: SerovalNodeType.Map;
|
|
155
|
-
i: number;
|
|
156
|
-
// key/value pairs
|
|
157
|
-
e: SerovalMapRecordNode;
|
|
158
|
-
f: SerovalNodeWithID;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
export interface SerovalArrayNode extends SerovalBaseNode {
|
|
162
|
-
t: SerovalNodeType.Array;
|
|
163
|
-
// size of array
|
|
164
|
-
l: number;
|
|
165
|
-
// items
|
|
166
|
-
a: (SerovalNode | undefined)[];
|
|
167
|
-
i: number;
|
|
168
|
-
o: SerovalObjectFlags;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
export interface SerovalObjectNode extends SerovalBaseNode {
|
|
172
|
-
t: SerovalNodeType.Object;
|
|
173
|
-
// key/value pairs
|
|
174
|
-
p: SerovalObjectRecordNode;
|
|
175
|
-
i: number;
|
|
176
|
-
o: SerovalObjectFlags;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
export interface SerovalNullConstructorNode extends SerovalBaseNode {
|
|
180
|
-
t: SerovalNodeType.NullConstructor;
|
|
181
|
-
// key/value pairs
|
|
182
|
-
p: SerovalObjectRecordNode;
|
|
183
|
-
i: number;
|
|
184
|
-
o: SerovalObjectFlags;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
export interface SerovalPromiseNode extends SerovalBaseNode {
|
|
188
|
-
t: SerovalNodeType.Promise;
|
|
189
|
-
s: 0 | 1;
|
|
190
|
-
// resolved value
|
|
191
|
-
f: SerovalNode;
|
|
192
|
-
i: number;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
export interface SerovalErrorNode extends SerovalBaseNode {
|
|
196
|
-
t: SerovalNodeType.Error;
|
|
197
|
-
// constructor name
|
|
198
|
-
s: ErrorConstructorTag;
|
|
199
|
-
// message
|
|
200
|
-
m: string;
|
|
201
|
-
// other properties
|
|
202
|
-
p: SerovalObjectRecordNode | undefined;
|
|
203
|
-
i: number;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
export interface SerovalAggregateErrorNode extends SerovalBaseNode {
|
|
207
|
-
t: SerovalNodeType.AggregateError;
|
|
208
|
-
i: number;
|
|
209
|
-
// message
|
|
210
|
-
m: string;
|
|
211
|
-
// other properties
|
|
212
|
-
p: SerovalObjectRecordNode | undefined;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
export interface SerovalWKSymbolNode extends SerovalBaseNode {
|
|
216
|
-
t: SerovalNodeType.WKSymbol;
|
|
217
|
-
i: number;
|
|
218
|
-
s: Symbols;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
export interface SerovalReferenceNode extends SerovalBaseNode {
|
|
222
|
-
t: SerovalNodeType.Reference;
|
|
223
|
-
i: number;
|
|
224
|
-
// id of the reference in the map
|
|
225
|
-
s: string;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
export interface SerovalDataViewNode extends SerovalBaseNode {
|
|
229
|
-
t: SerovalNodeType.DataView;
|
|
230
|
-
i: number;
|
|
231
|
-
// byte length
|
|
232
|
-
l: number;
|
|
233
|
-
// reference to array buffer
|
|
234
|
-
f: SerovalNode;
|
|
235
|
-
// byte offset
|
|
236
|
-
b: number;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
export interface SerovalBoxedNode extends SerovalBaseNode {
|
|
240
|
-
t: SerovalNodeType.Boxed;
|
|
241
|
-
i: number;
|
|
242
|
-
f: SerovalNode;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
export interface SerovalPromiseConstructorNode extends SerovalBaseNode {
|
|
246
|
-
t: SerovalNodeType.PromiseConstructor;
|
|
247
|
-
i: number;
|
|
248
|
-
s: number;
|
|
249
|
-
f: SerovalNodeWithID;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
export interface SerovalPromiseResolveNode extends SerovalBaseNode {
|
|
253
|
-
t: SerovalNodeType.PromiseSuccess;
|
|
254
|
-
i: number;
|
|
255
|
-
a: [resolver: SerovalNodeWithID, resolved: SerovalNode];
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
export interface SerovalPromiseRejectNode extends SerovalBaseNode {
|
|
259
|
-
t: SerovalNodeType.PromiseFailure;
|
|
260
|
-
i: number;
|
|
261
|
-
a: [resolver: SerovalNodeWithID, resolved: SerovalNode];
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
export interface SerovalPluginNode extends SerovalBaseNode {
|
|
265
|
-
t: SerovalNodeType.Plugin;
|
|
266
|
-
i: number;
|
|
267
|
-
// value
|
|
268
|
-
s: unknown;
|
|
269
|
-
// tag name
|
|
270
|
-
c: string;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Represents special values as placeholders
|
|
275
|
-
*/
|
|
276
|
-
export interface SerovalSpecialReferenceNode extends SerovalBaseNode {
|
|
277
|
-
t: SerovalNodeType.SpecialReference;
|
|
278
|
-
i: number;
|
|
279
|
-
s: SpecialReference;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
export interface SerovalIteratorFactoryNode extends SerovalBaseNode {
|
|
283
|
-
t: SerovalNodeType.IteratorFactory;
|
|
284
|
-
i: number;
|
|
285
|
-
f: SerovalNodeWithID;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
export interface SerovalIteratorFactoryInstanceNode extends SerovalBaseNode {
|
|
289
|
-
t: SerovalNodeType.IteratorFactoryInstance;
|
|
290
|
-
a: [instance: SerovalNodeWithID, sequence: SerovalNode];
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
export interface SerovalAsyncIteratorFactoryNode extends SerovalBaseNode {
|
|
294
|
-
t: SerovalNodeType.AsyncIteratorFactory;
|
|
295
|
-
i: number;
|
|
296
|
-
a: [promise: SerovalNodeWithID, symbol: SerovalNodeWithID];
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
export interface SerovalAsyncIteratorFactoryInstanceNode
|
|
300
|
-
extends SerovalBaseNode {
|
|
301
|
-
t: SerovalNodeType.AsyncIteratorFactoryInstance;
|
|
302
|
-
a: [instance: SerovalNodeWithID, sequence: SerovalNode];
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
export interface SerovalStreamConstructorNode extends SerovalBaseNode {
|
|
306
|
-
t: SerovalNodeType.StreamConstructor;
|
|
307
|
-
i: number;
|
|
308
|
-
a: SerovalNode[];
|
|
309
|
-
// special reference to the constructor
|
|
310
|
-
f: SerovalNodeWithID;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
export interface SerovalStreamNextNode extends SerovalBaseNode {
|
|
314
|
-
t: SerovalNodeType.StreamNext;
|
|
315
|
-
i: number;
|
|
316
|
-
// Next value
|
|
317
|
-
f: SerovalNode;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
export interface SerovalStreamThrowNode extends SerovalBaseNode {
|
|
321
|
-
t: SerovalNodeType.StreamThrow;
|
|
322
|
-
i: number;
|
|
323
|
-
// Throw value
|
|
324
|
-
f: SerovalNode;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
export interface SerovalStreamReturnNode extends SerovalBaseNode {
|
|
328
|
-
t: SerovalNodeType.StreamReturn;
|
|
329
|
-
i: number;
|
|
330
|
-
// Return value
|
|
331
|
-
f: SerovalNode;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
export type SerovalSyncNode =
|
|
335
|
-
| SerovalPrimitiveNode
|
|
336
|
-
| SerovalIndexedValueNode
|
|
337
|
-
| SerovalSemiPrimitiveNode
|
|
338
|
-
| SerovalSetNode
|
|
339
|
-
| SerovalMapNode
|
|
340
|
-
| SerovalArrayNode
|
|
341
|
-
| SerovalObjectNode
|
|
342
|
-
| SerovalNullConstructorNode
|
|
343
|
-
| SerovalPromiseNode
|
|
344
|
-
| SerovalErrorNode
|
|
345
|
-
| SerovalAggregateErrorNode
|
|
346
|
-
| SerovalWKSymbolNode
|
|
347
|
-
| SerovalReferenceNode
|
|
348
|
-
| SerovalArrayBufferNode
|
|
349
|
-
| SerovalDataViewNode
|
|
350
|
-
| SerovalBoxedNode
|
|
351
|
-
| SerovalPluginNode
|
|
352
|
-
| SerovalSpecialReferenceNode
|
|
353
|
-
| SerovalIteratorFactoryNode
|
|
354
|
-
| SerovalIteratorFactoryInstanceNode
|
|
355
|
-
| SerovalAsyncIteratorFactoryNode
|
|
356
|
-
| SerovalAsyncIteratorFactoryInstanceNode;
|
|
357
|
-
|
|
358
|
-
export type SerovalAsyncNode =
|
|
359
|
-
| SerovalPromiseNode
|
|
360
|
-
| SerovalPromiseConstructorNode
|
|
361
|
-
| SerovalPromiseResolveNode
|
|
362
|
-
| SerovalPromiseRejectNode
|
|
363
|
-
| SerovalStreamConstructorNode
|
|
364
|
-
| SerovalStreamNextNode
|
|
365
|
-
| SerovalStreamThrowNode
|
|
366
|
-
| SerovalStreamReturnNode;
|
|
367
|
-
|
|
368
|
-
export type SerovalNode = SerovalSyncNode | SerovalAsyncNode;
|
|
369
|
-
|
|
370
|
-
export type SerovalNodeWithID = Extract<SerovalNode, { i: number }>;
|
package/src/core/utils/assert.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface Deferred {
|
|
2
|
-
promise: Promise<unknown>;
|
|
3
|
-
resolve(value: unknown): void;
|
|
4
|
-
reject(value: unknown): void;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function createDeferred(): Deferred {
|
|
8
|
-
let resolve: Deferred['resolve'];
|
|
9
|
-
let reject: Deferred['reject'];
|
|
10
|
-
return {
|
|
11
|
-
promise: new Promise<unknown>((res, rej) => {
|
|
12
|
-
resolve = res;
|
|
13
|
-
reject = rej;
|
|
14
|
-
}),
|
|
15
|
-
resolve(value): void {
|
|
16
|
-
resolve(value);
|
|
17
|
-
},
|
|
18
|
-
reject(value): void {
|
|
19
|
-
reject(value);
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
}
|
package/src/core/utils/error.ts
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Feature } from '../compat';
|
|
2
|
-
import { ERROR_CONSTRUCTOR_STRING, ErrorConstructorTag } from '../constants';
|
|
3
|
-
|
|
4
|
-
type ErrorValue =
|
|
5
|
-
| Error
|
|
6
|
-
| AggregateError
|
|
7
|
-
| EvalError
|
|
8
|
-
| RangeError
|
|
9
|
-
| ReferenceError
|
|
10
|
-
| TypeError
|
|
11
|
-
| SyntaxError
|
|
12
|
-
| URIError;
|
|
13
|
-
|
|
14
|
-
export function getErrorConstructor(error: ErrorValue): ErrorConstructorTag {
|
|
15
|
-
if (error instanceof EvalError) {
|
|
16
|
-
return ErrorConstructorTag.EvalError;
|
|
17
|
-
}
|
|
18
|
-
if (error instanceof RangeError) {
|
|
19
|
-
return ErrorConstructorTag.RangeError;
|
|
20
|
-
}
|
|
21
|
-
if (error instanceof ReferenceError) {
|
|
22
|
-
return ErrorConstructorTag.ReferenceError;
|
|
23
|
-
}
|
|
24
|
-
if (error instanceof SyntaxError) {
|
|
25
|
-
return ErrorConstructorTag.SyntaxError;
|
|
26
|
-
}
|
|
27
|
-
if (error instanceof TypeError) {
|
|
28
|
-
return ErrorConstructorTag.TypeError;
|
|
29
|
-
}
|
|
30
|
-
if (error instanceof URIError) {
|
|
31
|
-
return ErrorConstructorTag.URIError;
|
|
32
|
-
}
|
|
33
|
-
return ErrorConstructorTag.Error;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function getInitialErrorOptions(
|
|
37
|
-
error: Error,
|
|
38
|
-
): Record<string, unknown> | undefined {
|
|
39
|
-
const construct = ERROR_CONSTRUCTOR_STRING[getErrorConstructor(error)];
|
|
40
|
-
// Name has been modified
|
|
41
|
-
if (error.name !== construct) {
|
|
42
|
-
return { name: error.name };
|
|
43
|
-
}
|
|
44
|
-
if (error.constructor.name !== construct) {
|
|
45
|
-
// Otherwise, name is overriden because
|
|
46
|
-
// the Error class is extended
|
|
47
|
-
return { name: error.constructor.name };
|
|
48
|
-
}
|
|
49
|
-
return {};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function getErrorOptions(
|
|
53
|
-
error: Error,
|
|
54
|
-
features: number,
|
|
55
|
-
): Record<string, unknown> | undefined {
|
|
56
|
-
let options = getInitialErrorOptions(error);
|
|
57
|
-
const names = Object.getOwnPropertyNames(error);
|
|
58
|
-
for (let i = 0, len = names.length, name: string; i < len; i++) {
|
|
59
|
-
name = names[i];
|
|
60
|
-
if (name !== 'name' && name !== 'message') {
|
|
61
|
-
if (name === 'stack') {
|
|
62
|
-
if (features & Feature.ErrorPrototypeStack) {
|
|
63
|
-
options = options || {};
|
|
64
|
-
options[name] = error[name as keyof Error];
|
|
65
|
-
}
|
|
66
|
-
} else {
|
|
67
|
-
options = options || {};
|
|
68
|
-
options[name] = error[name as keyof Error];
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return options;
|
|
73
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// Written by https://github.com/DylanPiercey and is distributed under the MIT license.
|
|
2
|
-
const REF_START_CHARS = /* @__PURE__ */ 'hjkmoquxzABCDEFGHIJKLNPQRTUVWXYZ$_'; // Avoids chars that could evaluate to a reserved word.
|
|
3
|
-
const REF_START_CHARS_LEN = /* @__PURE__ */ REF_START_CHARS.length;
|
|
4
|
-
const REF_CHARS =
|
|
5
|
-
/* @__PURE__ */ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_';
|
|
6
|
-
const REF_CHARS_LEN = /* @__PURE__ */ REF_CHARS.length;
|
|
7
|
-
|
|
8
|
-
export default function getIdentifier(index: number): string {
|
|
9
|
-
let mod = index % REF_START_CHARS_LEN;
|
|
10
|
-
let ref = REF_START_CHARS[mod];
|
|
11
|
-
index = (index - mod) / REF_START_CHARS_LEN;
|
|
12
|
-
while (index > 0) {
|
|
13
|
-
mod = index % REF_CHARS_LEN;
|
|
14
|
-
ref += REF_CHARS[mod];
|
|
15
|
-
index = (index - mod) / REF_CHARS_LEN;
|
|
16
|
-
}
|
|
17
|
-
return ref;
|
|
18
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { SerovalObjectFlags } from '../constants';
|
|
2
|
-
|
|
3
|
-
export function getObjectFlag(obj: unknown): SerovalObjectFlags {
|
|
4
|
-
if (Object.isFrozen(obj)) {
|
|
5
|
-
return SerovalObjectFlags.Frozen;
|
|
6
|
-
}
|
|
7
|
-
if (Object.isSealed(obj)) {
|
|
8
|
-
return SerovalObjectFlags.Sealed;
|
|
9
|
-
}
|
|
10
|
-
if (Object.isExtensible(obj)) {
|
|
11
|
-
return SerovalObjectFlags.None;
|
|
12
|
-
}
|
|
13
|
-
return SerovalObjectFlags.NonExtensible;
|
|
14
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const IDENTIFIER_CHECK = /^[$A-Z_][0-9A-Z_$]*$/i;
|
|
2
|
-
|
|
3
|
-
export function isValidIdentifier(name: string): boolean {
|
|
4
|
-
const char = name[0];
|
|
5
|
-
return (
|
|
6
|
-
(char === '$' ||
|
|
7
|
-
char === '_' ||
|
|
8
|
-
(char >= 'A' && char <= 'Z') ||
|
|
9
|
-
(char >= 'a' && char <= 'z')) &&
|
|
10
|
-
IDENTIFIER_CHECK.test(name)
|
|
11
|
-
);
|
|
12
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { NIL } from "../constants";
|
|
2
|
-
|
|
3
|
-
export interface Sequence {
|
|
4
|
-
v: unknown[];
|
|
5
|
-
t: number;
|
|
6
|
-
d: number;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function iteratorToSequence<T>(source: Iterable<T>): Sequence {
|
|
10
|
-
const values: unknown[] = [];
|
|
11
|
-
let throwsAt = -1;
|
|
12
|
-
let doneAt = -1;
|
|
13
|
-
|
|
14
|
-
const iterator = source[Symbol.iterator]();
|
|
15
|
-
|
|
16
|
-
while (true) {
|
|
17
|
-
try {
|
|
18
|
-
const value = iterator.next();
|
|
19
|
-
values.push(value.value);
|
|
20
|
-
if (value.done) {
|
|
21
|
-
doneAt = values.length - 1;
|
|
22
|
-
break;
|
|
23
|
-
}
|
|
24
|
-
} catch (error) {
|
|
25
|
-
throwsAt = values.length;
|
|
26
|
-
values.push(error);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return {
|
|
31
|
-
v: values,
|
|
32
|
-
t: throwsAt,
|
|
33
|
-
d: doneAt,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function sequenceToIterator<T>(
|
|
38
|
-
sequence: Sequence,
|
|
39
|
-
): () => IterableIterator<T> {
|
|
40
|
-
return (): IterableIterator<T> => {
|
|
41
|
-
let index = 0;
|
|
42
|
-
|
|
43
|
-
return {
|
|
44
|
-
[Symbol.iterator](): IterableIterator<T> {
|
|
45
|
-
return this;
|
|
46
|
-
},
|
|
47
|
-
next(): IteratorResult<T> {
|
|
48
|
-
if (index > sequence.d) {
|
|
49
|
-
return {
|
|
50
|
-
done: true,
|
|
51
|
-
value: NIL,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
const currentIndex = index++;
|
|
55
|
-
const currentItem = sequence.v[currentIndex];
|
|
56
|
-
if (currentIndex === sequence.t) {
|
|
57
|
-
throw currentItem;
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
done: currentIndex === sequence.d,
|
|
61
|
-
value: currentItem as T,
|
|
62
|
-
};
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { SerovalUnknownTypedArrayError } from '../errors';
|
|
2
|
-
|
|
3
|
-
type TypedArrayConstructor =
|
|
4
|
-
| Int8ArrayConstructor
|
|
5
|
-
| Int16ArrayConstructor
|
|
6
|
-
| Int32ArrayConstructor
|
|
7
|
-
| Uint8ArrayConstructor
|
|
8
|
-
| Uint16ArrayConstructor
|
|
9
|
-
| Uint32ArrayConstructor
|
|
10
|
-
| Uint8ClampedArrayConstructor
|
|
11
|
-
| Float32ArrayConstructor
|
|
12
|
-
| Float64ArrayConstructor
|
|
13
|
-
| BigInt64ArrayConstructor
|
|
14
|
-
| BigUint64ArrayConstructor;
|
|
15
|
-
|
|
16
|
-
export type TypedArrayValue =
|
|
17
|
-
| Int8Array
|
|
18
|
-
| Int16Array
|
|
19
|
-
| Int32Array
|
|
20
|
-
| Uint8Array
|
|
21
|
-
| Uint16Array
|
|
22
|
-
| Uint32Array
|
|
23
|
-
| Uint8ClampedArray
|
|
24
|
-
| Float32Array
|
|
25
|
-
| Float64Array;
|
|
26
|
-
|
|
27
|
-
export type BigIntTypedArrayValue = BigInt64Array | BigUint64Array;
|
|
28
|
-
|
|
29
|
-
export function getTypedArrayConstructor(name: string): TypedArrayConstructor {
|
|
30
|
-
switch (name) {
|
|
31
|
-
case 'Int8Array':
|
|
32
|
-
return Int8Array;
|
|
33
|
-
case 'Int16Array':
|
|
34
|
-
return Int16Array;
|
|
35
|
-
case 'Int32Array':
|
|
36
|
-
return Int32Array;
|
|
37
|
-
case 'Uint8Array':
|
|
38
|
-
return Uint8Array;
|
|
39
|
-
case 'Uint16Array':
|
|
40
|
-
return Uint16Array;
|
|
41
|
-
case 'Uint32Array':
|
|
42
|
-
return Uint32Array;
|
|
43
|
-
case 'Uint8ClampedArray':
|
|
44
|
-
return Uint8ClampedArray;
|
|
45
|
-
case 'Float32Array':
|
|
46
|
-
return Float32Array;
|
|
47
|
-
case 'Float64Array':
|
|
48
|
-
return Float64Array;
|
|
49
|
-
case 'BigInt64Array':
|
|
50
|
-
return BigInt64Array;
|
|
51
|
-
case 'BigUint64Array':
|
|
52
|
-
return BigUint64Array;
|
|
53
|
-
default:
|
|
54
|
-
throw new SerovalUnknownTypedArrayError(name);
|
|
55
|
-
}
|
|
56
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export { Feature } from './core/compat';
|
|
2
|
-
export { createReference } from './core/reference';
|
|
3
|
-
|
|
4
|
-
export * from './core/cross';
|
|
5
|
-
export * from './core/tree';
|
|
6
|
-
|
|
7
|
-
export { getCrossReferenceHeader } from './core/keys';
|
|
8
|
-
|
|
9
|
-
export * from './core/plugin';
|
|
10
|
-
export { default as Serializer } from './core/Serializer';
|
|
11
|
-
|
|
12
|
-
export { createStream } from './core/stream';
|
|
13
|
-
export type { Stream } from './core/stream';
|
|
14
|
-
|
|
15
|
-
export * from './core/errors';
|
|
16
|
-
export type { SerovalNode } from './core/types';
|
|
17
|
-
|
|
18
|
-
export { OpaqueReference } from './core/opaque-reference';
|