seroval 1.0.3 → 1.0.5
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 +556 -451
- package/dist/cjs/development/index.cjs.map +3 -3
- package/dist/cjs/production/index.cjs +17 -3
- package/dist/esm/development/index.mjs +556 -451
- package/dist/esm/development/index.mjs.map +3 -3
- package/dist/esm/production/index.mjs +17 -3
- package/dist/types/core/Serializer.d.ts.map +1 -1
- package/dist/types/core/base-primitives.d.ts.map +1 -1
- package/dist/types/core/constants.d.ts +4 -4
- package/dist/types/core/constants.d.ts.map +1 -1
- package/dist/types/core/context/deserializer.d.ts +1 -1
- package/dist/types/core/context/deserializer.d.ts.map +1 -1
- package/dist/types/core/context/parser/async.d.ts +1 -1
- package/dist/types/core/context/parser/async.d.ts.map +1 -1
- package/dist/types/core/context/parser/stream.d.ts +2 -2
- package/dist/types/core/context/parser/stream.d.ts.map +1 -1
- package/dist/types/core/context/parser/sync.d.ts +3 -3
- package/dist/types/core/context/parser/sync.d.ts.map +1 -1
- package/dist/types/core/context/parser.d.ts.map +1 -1
- package/dist/types/core/context/serializer.d.ts +1 -1
- package/dist/types/core/context/serializer.d.ts.map +1 -1
- package/dist/types/core/cross/async.d.ts +1 -1
- package/dist/types/core/cross/async.d.ts.map +1 -1
- package/dist/types/core/cross/deserializer.d.ts +1 -1
- package/dist/types/core/cross/deserializer.d.ts.map +1 -1
- package/dist/types/core/cross/serializer.d.ts +1 -1
- package/dist/types/core/cross/serializer.d.ts.map +1 -1
- package/dist/types/core/errors.d.ts +38 -0
- package/dist/types/core/errors.d.ts.map +1 -0
- package/dist/types/core/plugin.d.ts +1 -1
- package/dist/types/core/plugin.d.ts.map +1 -1
- package/dist/types/core/reference.d.ts.map +1 -1
- package/dist/types/core/tree/async.d.ts +1 -1
- package/dist/types/core/tree/async.d.ts.map +1 -1
- package/dist/types/core/tree/deserializer.d.ts +1 -1
- package/dist/types/core/tree/deserializer.d.ts.map +1 -1
- package/dist/types/core/tree/index.d.ts.map +1 -1
- package/dist/types/core/tree/serializer.d.ts +1 -1
- package/dist/types/core/tree/serializer.d.ts.map +1 -1
- package/dist/types/core/types.d.ts +1 -1
- package/dist/types/core/types.d.ts.map +1 -1
- package/dist/types/core/utils/typed-array.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +4 -5
- package/src/core/Serializer.ts +5 -5
- package/src/core/base-primitives.ts +4 -9
- package/src/core/constants.ts +12 -12
- package/src/core/context/deserializer.ts +100 -90
- package/src/core/context/parser/async.ts +56 -52
- package/src/core/context/parser/stream.ts +5 -5
- package/src/core/context/parser/sync.ts +45 -41
- package/src/core/context/parser.ts +5 -12
- package/src/core/context/serializer.ts +127 -118
- package/src/core/cross/async.ts +1 -1
- package/src/core/cross/deserializer.ts +1 -1
- package/src/core/cross/serializer.ts +2 -2
- package/src/core/errors.ts +102 -0
- package/src/core/literals.ts +4 -4
- package/src/core/plugin.ts +1 -1
- package/src/core/reference.ts +7 -3
- package/src/core/tree/async.ts +1 -1
- package/src/core/tree/deserializer.ts +1 -1
- package/src/core/tree/index.ts +8 -2
- package/src/core/tree/serializer.ts +8 -7
- package/src/core/types.ts +2 -2
- package/src/core/utils/typed-array.ts +3 -1
- package/src/index.ts +1 -0
- package/dist/types/core/UnsupportedTypeError.d.ts +0 -5
- package/dist/types/core/UnsupportedTypeError.d.ts.map +0 -1
- package/src/core/UnsupportedTypeError.ts +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/async.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,sBAAsB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;AAE/E,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,sBAAsB;IACpE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAa;CACxC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import BaseDeserializerContext from '../context/deserializer';
|
|
2
1
|
import type { BaseDeserializerOptions } from '../context/deserializer';
|
|
2
|
+
import BaseDeserializerContext from '../context/deserializer';
|
|
3
3
|
import type { SerovalMode } from '../plugin';
|
|
4
4
|
export interface VanillaDeserializerContextOptions extends Omit<BaseDeserializerOptions, 'refs'> {
|
|
5
5
|
markedRefs: number[] | Set<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,uBAAuB,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,iCACf,SAAQ,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC;IAC7C,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,uBAAuB;IAC7E,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAa;IAEvC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAER,OAAO,EAAE,iCAAiC;IAKtD,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;CAMlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAIzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAGvD,wBAAgB,SAAS,CAAC,CAAC,EACzB,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAaR;AAED,wBAAsB,cAAc,CAAC,CAAC,EACpC,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAEhD;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,WAAW,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED,wBAAgB,MAAM,CAAC,CAAC,EACtB,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,wBAA6B,GACrC,WAAW,CAWb;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED,wBAAgB,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAIzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAGvD,wBAAgB,SAAS,CAAC,CAAC,EACzB,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAaR;AAED,wBAAsB,cAAc,CAAC,CAAC,EACpC,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAEhD;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,WAAW,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED,wBAAgB,MAAM,CAAC,CAAC,EACtB,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,wBAA6B,GACrC,WAAW,CAWb;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,mBAAwB,GAChC,MAAM,CAQR;AAED,wBAAgB,QAAQ,CAAC,CAAC,EACxB,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,mBAAwB,GAChC,CAAC,CAOH"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { SerovalNode, SerovalPromiseConstructorNode, SerovalPromiseRejectNode, SerovalPromiseResolveNode } from '../types';
|
|
2
1
|
import type { BaseSerializerContextOptions } from '../context/serializer';
|
|
3
2
|
import BaseSerializerContext from '../context/serializer';
|
|
4
3
|
import type { SerovalMode } from '../plugin';
|
|
4
|
+
import type { SerovalNode, SerovalPromiseConstructorNode, SerovalPromiseRejectNode, SerovalPromiseResolveNode } from '../types';
|
|
5
5
|
export type VanillaSerializerContextOptions = BaseSerializerContextOptions;
|
|
6
6
|
export default class VanillaSerializerContext extends BaseSerializerContext {
|
|
7
7
|
readonly mode: SerovalMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/serializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/serializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,qBAAqB,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EACV,WAAW,EACX,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,+BAA+B,GAAG,4BAA4B,CAAC;AAE3E,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,qBAAqB;IACzE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAa;IAEvC;;;OAGG;IACH,KAAK,sBAA6B;IAElC;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,CAAM;IAEpB;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlE,SAAS,CAAC,2BAA2B,CACnC,IAAI,EAAE,6BAA6B,GAClC,MAAM;IAIT,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,yBAAyB,GAAG,MAAM;IAI1E,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM;IAIxE,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;CAqBxC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ErrorConstructorTag, SerovalConstant, SerovalNodeType, SerovalObjectFlags, Symbols } from './constants';
|
|
2
2
|
import type { SpecialReference } from './special-reference';
|
|
3
3
|
export interface SerovalBaseNode {
|
|
4
4
|
t: SerovalNodeType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,OAAO,EACR,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAE9B,CAAC,EAAE,eAAe,CAAC;IAEnB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtB,CAAC,EAAE,OAAO,CAAC;IAEX,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtB,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAEvC,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAEpC,CAAC,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC;IAE3C,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE3B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,uBAAuB;IACtC,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC5B,CAAC,EAAE,WAAW,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,WAAW,EAAE,CAAC;IACjB,CAAC,EAAE,WAAW,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAC1B,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAC1B,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IAC5B,CAAC,EAAE,eAAe,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC;IAEhC,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAE1B,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;IAExB,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAE1B,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC;IAE/B,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC;IAE9B,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,WAAW,CAAC;IAEf,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC;IACpC,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,WAAW,CAAC;IAEf,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,wBAAwB,GAChC,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,qBAAqB,GACrB,2BAA2B,CAAC;AAEhC,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC;IAEvB,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,WAAW,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC;IACvB,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,oBAAoB,CAAC;IACxB,CAAC,EAAE,iBAAiB,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC;IAEzB,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,kBAAkB,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAE1B,CAAC,EAAE,uBAAuB,CAAC;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,kBAAkB,CAAC;CACvB;AAED,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC;IAEnC,CAAC,EAAE,uBAAuB,CAAC;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,kBAAkB,CAAC;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC;IAC3B,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAET,CAAC,EAAE,WAAW,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC;IAEzB,CAAC,EAAE,mBAAmB,CAAC;IAEvB,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACvC,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC;IAClC,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,OAAO,CAAC;CACZ;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC;IAC7B,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IAC5B,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,WAAW,CAAC;IAEf,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,WAAW,CAAC;CAChB;AAED,MAAM,WAAW,6BAA8B,SAAQ,eAAe;IACpE,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC;IACtC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,iBAAiB,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAC1B,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,OAAO,CAAC;IAEX,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,gBAAgB,CAAC;CACrB;AAED,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC;IACnC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,iBAAiB,CAAC;CACtB;AAED,MAAM,WAAW,kCAAmC,SAAQ,eAAe;IACzE,CAAC,EAAE,eAAe,CAAC,uBAAuB,CAAC;IAC3C,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,+BAAgC,SAAQ,eAAe;IACtE,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,uCACf,SAAQ,eAAe;IACvB,CAAC,EAAE,eAAe,CAAC,4BAA4B,CAAC;IAChD,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,4BAA6B,SAAQ,eAAe;IACnE,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,WAAW,EAAE,CAAC;IACjB,CAAC,EAAE,iBAAiB,CAAC;CACtB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,WAAW,CAAC;CAChB;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,WAAW,CAAC;CAChB;AAED,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC;IAChC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,WAAW,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GACvB,oBAAoB,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,0BAA0B,GAC1B,kBAAkB,GAClB,gBAAgB,GAChB,yBAAyB,GACzB,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,GACtB,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,GACjB,2BAA2B,GAC3B,0BAA0B,GAC1B,kCAAkC,GAClC,+BAA+B,GAC/B,uCAAuC,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,6BAA6B,GAC7B,yBAAyB,GACzB,wBAAwB,GACxB,4BAA4B,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,uBAAuB,CAAC;AAE5B,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-array.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/typed-array.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typed-array.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/typed-array.ts"],"names":[],"mappings":"AAEA,KAAK,qBAAqB,GACtB,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,sBAAsB,GACtB,4BAA4B,GAC5B,uBAAuB,GACvB,uBAAuB,GACvB,wBAAwB,GACxB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,cAAc,CAAC;AAEnE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CA2B5E"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,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,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,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,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,cAAc,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "seroval",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.5",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
7
7
|
"src"
|
|
@@ -16,17 +16,16 @@
|
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@types/node": "^20.8.3",
|
|
18
18
|
"@vitest/ui": "^1.0.1",
|
|
19
|
-
"pridepack": "2.
|
|
19
|
+
"pridepack": "2.6.0",
|
|
20
20
|
"ts-prune": "^0.10.3",
|
|
21
21
|
"tslib": "^2.6.2",
|
|
22
|
-
"typescript": "^5.
|
|
22
|
+
"typescript": "^5.4.2",
|
|
23
23
|
"vitest": "^1.0.1"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"prepublishOnly": "pridepack clean && pridepack build",
|
|
27
27
|
"build": "pridepack build",
|
|
28
28
|
"type-check": "pridepack check",
|
|
29
|
-
"lint": "pridepack lint",
|
|
30
29
|
"clean": "pridepack clean",
|
|
31
30
|
"watch": "pridepack watch",
|
|
32
31
|
"start": "pridepack start",
|
|
@@ -66,5 +65,5 @@
|
|
|
66
65
|
"typesVersions": {
|
|
67
66
|
"*": {}
|
|
68
67
|
},
|
|
69
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "63003d77889b06b73bab0365d296bcdd029219fb"
|
|
70
69
|
}
|
package/src/core/Serializer.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { crossSerializeStream } from './cross';
|
|
1
2
|
import {
|
|
2
3
|
resolvePlugins,
|
|
3
4
|
type Plugin,
|
|
4
5
|
type PluginAccessOptions,
|
|
5
6
|
} from './plugin';
|
|
6
|
-
import { crossSerializeStream } from './cross';
|
|
7
7
|
import { serializeString } from './string';
|
|
8
8
|
|
|
9
9
|
export interface SerializerOptions extends PluginAccessOptions {
|
|
@@ -52,10 +52,10 @@ export default class Serializer {
|
|
|
52
52
|
this.options.onData(
|
|
53
53
|
initial
|
|
54
54
|
? this.options.globalIdentifier +
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
'["' +
|
|
56
|
+
serializeString(key) +
|
|
57
|
+
'"]=' +
|
|
58
|
+
data
|
|
59
59
|
: data,
|
|
60
60
|
);
|
|
61
61
|
}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import assert from './utils/assert';
|
|
2
1
|
import type { WellKnownSymbols } from './constants';
|
|
3
2
|
import { INV_SYMBOL_REF, SerovalNodeType } from './constants';
|
|
4
3
|
import {
|
|
5
4
|
INFINITY_NODE,
|
|
6
|
-
NEG_INFINITY_NODE,
|
|
7
5
|
NAN_NODE,
|
|
6
|
+
NEG_INFINITY_NODE,
|
|
8
7
|
NEG_ZERO_NODE,
|
|
9
8
|
} from './literals';
|
|
10
9
|
import { getReferenceID } from './reference';
|
|
11
|
-
import { getErrorConstructor } from './utils/error';
|
|
12
10
|
import { serializeString } from './string';
|
|
13
11
|
import type {
|
|
14
12
|
SerovalAggregateErrorNode,
|
|
@@ -40,6 +38,7 @@ import type {
|
|
|
40
38
|
SerovalTypedArrayNode,
|
|
41
39
|
SerovalWKSymbolNode,
|
|
42
40
|
} from './types';
|
|
41
|
+
import { getErrorConstructor } from './utils/error';
|
|
43
42
|
import { getObjectFlag } from './utils/get-object-flag';
|
|
44
43
|
import type {
|
|
45
44
|
BigIntTypedArrayValue,
|
|
@@ -50,9 +49,9 @@ export function createNumberNode(
|
|
|
50
49
|
value: number,
|
|
51
50
|
): SerovalConstantNode | SerovalNumberNode {
|
|
52
51
|
switch (value) {
|
|
53
|
-
case
|
|
52
|
+
case Number.POSITIVE_INFINITY:
|
|
54
53
|
return INFINITY_NODE;
|
|
55
|
-
case
|
|
54
|
+
case Number.NEGATIVE_INFINITY:
|
|
56
55
|
return NEG_INFINITY_NODE;
|
|
57
56
|
}
|
|
58
57
|
if (value !== value) {
|
|
@@ -195,10 +194,6 @@ export function createWKSymbolNode(
|
|
|
195
194
|
id: number,
|
|
196
195
|
current: WellKnownSymbols,
|
|
197
196
|
): SerovalWKSymbolNode {
|
|
198
|
-
assert(
|
|
199
|
-
current in INV_SYMBOL_REF,
|
|
200
|
-
new Error('Only well-known symbols are supported.'),
|
|
201
|
-
);
|
|
202
197
|
return {
|
|
203
198
|
t: SerovalNodeType.WKSymbol,
|
|
204
199
|
i: id,
|
package/src/core/constants.ts
CHANGED
|
@@ -3,10 +3,10 @@ export const enum SerovalConstant {
|
|
|
3
3
|
Undefined = 1,
|
|
4
4
|
True = 2,
|
|
5
5
|
False = 3,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
NegZero = 4,
|
|
7
|
+
Inf = 5,
|
|
8
|
+
NegInf = 6,
|
|
9
|
+
Nan = 7,
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export const enum SerovalNodeType {
|
|
@@ -125,10 +125,10 @@ export const CONSTANT_STRING: Record<SerovalConstant, string> = {
|
|
|
125
125
|
[SerovalConstant.False]: '!1',
|
|
126
126
|
[SerovalConstant.Undefined]: 'void 0',
|
|
127
127
|
[SerovalConstant.Null]: 'null',
|
|
128
|
-
[SerovalConstant.
|
|
129
|
-
[SerovalConstant.
|
|
130
|
-
[SerovalConstant.
|
|
131
|
-
[SerovalConstant.
|
|
128
|
+
[SerovalConstant.NegZero]: '-0',
|
|
129
|
+
[SerovalConstant.Inf]: '1/0',
|
|
130
|
+
[SerovalConstant.NegInf]: '-1/0',
|
|
131
|
+
[SerovalConstant.Nan]: '0/0',
|
|
132
132
|
};
|
|
133
133
|
|
|
134
134
|
export const CONSTANT_VAL: Record<SerovalConstant, unknown> = {
|
|
@@ -136,10 +136,10 @@ export const CONSTANT_VAL: Record<SerovalConstant, unknown> = {
|
|
|
136
136
|
[SerovalConstant.False]: false,
|
|
137
137
|
[SerovalConstant.Undefined]: undefined,
|
|
138
138
|
[SerovalConstant.Null]: null,
|
|
139
|
-
[SerovalConstant.
|
|
140
|
-
[SerovalConstant.
|
|
141
|
-
[SerovalConstant.
|
|
142
|
-
[SerovalConstant.
|
|
139
|
+
[SerovalConstant.NegZero]: -0,
|
|
140
|
+
[SerovalConstant.Inf]: Number.POSITIVE_INFINITY,
|
|
141
|
+
[SerovalConstant.NegInf]: Number.NEGATIVE_INFINITY,
|
|
142
|
+
[SerovalConstant.Nan]: Number.NaN,
|
|
143
143
|
};
|
|
144
144
|
|
|
145
145
|
export const enum ErrorConstructorTag {
|
|
@@ -1,5 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
CONSTANT_VAL,
|
|
3
|
+
ERROR_CONSTRUCTOR,
|
|
4
|
+
SYMBOL_REF,
|
|
5
|
+
SerovalNodeType,
|
|
6
|
+
SerovalObjectFlags,
|
|
7
|
+
} from '../constants';
|
|
8
|
+
import {
|
|
9
|
+
SerovalDeserializationError,
|
|
10
|
+
SerovalMissingInstanceError,
|
|
11
|
+
SerovalMissingPluginError,
|
|
12
|
+
SerovalUnsupportedNodeError,
|
|
13
|
+
} from '../errors';
|
|
14
|
+
import type { Plugin, PluginAccessOptions, SerovalMode } from '../plugin';
|
|
2
15
|
import { getReference } from '../reference';
|
|
16
|
+
import type { Stream } from '../stream';
|
|
17
|
+
import { createStream, streamToAsyncIterable } from '../stream';
|
|
18
|
+
import { deserializeString } from '../string';
|
|
3
19
|
import type {
|
|
4
20
|
SerovalAggregateErrorNode,
|
|
5
21
|
SerovalArrayBufferNode,
|
|
@@ -33,14 +49,9 @@ import type {
|
|
|
33
49
|
SerovalStreamThrowNode,
|
|
34
50
|
SerovalTypedArrayNode,
|
|
35
51
|
} from '../types';
|
|
36
|
-
import
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
SYMBOL_REF,
|
|
40
|
-
SerovalNodeType,
|
|
41
|
-
SerovalObjectFlags,
|
|
42
|
-
} from '../constants';
|
|
43
|
-
import type { Plugin, PluginAccessOptions, SerovalMode } from '../plugin';
|
|
52
|
+
import assert from '../utils/assert';
|
|
53
|
+
import type { Deferred } from '../utils/deferred';
|
|
54
|
+
import { createDeferred } from '../utils/deferred';
|
|
44
55
|
import type { Sequence } from '../utils/iterator-to-sequence';
|
|
45
56
|
import { sequenceToIterator } from '../utils/iterator-to-sequence';
|
|
46
57
|
import type {
|
|
@@ -48,11 +59,6 @@ import type {
|
|
|
48
59
|
TypedArrayValue,
|
|
49
60
|
} from '../utils/typed-array';
|
|
50
61
|
import { getTypedArrayConstructor } from '../utils/typed-array';
|
|
51
|
-
import type { Deferred } from '../utils/deferred';
|
|
52
|
-
import { createDeferred } from '../utils/deferred';
|
|
53
|
-
import assert from '../utils/assert';
|
|
54
|
-
import type { Stream } from '../stream';
|
|
55
|
-
import { createStream, streamToAsyncIterable } from '../stream';
|
|
56
62
|
|
|
57
63
|
function applyObjectFlag(obj: unknown, flag: SerovalObjectFlags): unknown {
|
|
58
64
|
switch (flag) {
|
|
@@ -276,7 +282,7 @@ export default abstract class BaseDeserializerContext
|
|
|
276
282
|
}
|
|
277
283
|
}
|
|
278
284
|
}
|
|
279
|
-
throw new
|
|
285
|
+
throw new SerovalMissingPluginError(node.c);
|
|
280
286
|
}
|
|
281
287
|
|
|
282
288
|
private deserializePromiseConstructor(
|
|
@@ -287,14 +293,14 @@ export default abstract class BaseDeserializerContext
|
|
|
287
293
|
|
|
288
294
|
private deserializePromiseResolve(node: SerovalPromiseResolveNode): unknown {
|
|
289
295
|
const deferred = this.refs.get(node.i) as Deferred | undefined;
|
|
290
|
-
assert(deferred, new
|
|
296
|
+
assert(deferred, new SerovalMissingInstanceError('Promise'));
|
|
291
297
|
deferred.resolve(this.deserialize(node.a[1]));
|
|
292
298
|
return undefined;
|
|
293
299
|
}
|
|
294
300
|
|
|
295
301
|
private deserializePromiseReject(node: SerovalPromiseRejectNode): unknown {
|
|
296
302
|
const deferred = this.refs.get(node.i) as Deferred | undefined;
|
|
297
|
-
assert(deferred, new
|
|
303
|
+
assert(deferred, new SerovalMissingInstanceError('Promise'));
|
|
298
304
|
deferred.reject(this.deserialize(node.a[1]));
|
|
299
305
|
return undefined;
|
|
300
306
|
}
|
|
@@ -330,21 +336,21 @@ export default abstract class BaseDeserializerContext
|
|
|
330
336
|
|
|
331
337
|
private deserializeStreamNext(node: SerovalStreamNextNode): unknown {
|
|
332
338
|
const deferred = this.refs.get(node.i) as Stream<unknown> | undefined;
|
|
333
|
-
assert(deferred, new
|
|
339
|
+
assert(deferred, new SerovalMissingInstanceError('Stream'));
|
|
334
340
|
deferred.next(this.deserialize(node.f));
|
|
335
341
|
return undefined;
|
|
336
342
|
}
|
|
337
343
|
|
|
338
344
|
private deserializeStreamThrow(node: SerovalStreamThrowNode): unknown {
|
|
339
345
|
const deferred = this.refs.get(node.i) as Stream<unknown> | undefined;
|
|
340
|
-
assert(deferred, new
|
|
346
|
+
assert(deferred, new SerovalMissingInstanceError('Stream'));
|
|
341
347
|
deferred.throw(this.deserialize(node.f));
|
|
342
348
|
return undefined;
|
|
343
349
|
}
|
|
344
350
|
|
|
345
351
|
private deserializeStreamReturn(node: SerovalStreamReturnNode): unknown {
|
|
346
352
|
const deferred = this.refs.get(node.i) as Stream<unknown> | undefined;
|
|
347
|
-
assert(deferred, new
|
|
353
|
+
assert(deferred, new SerovalMissingInstanceError('Stream'));
|
|
348
354
|
deferred.return(this.deserialize(node.f));
|
|
349
355
|
return undefined;
|
|
350
356
|
}
|
|
@@ -364,76 +370,80 @@ export default abstract class BaseDeserializerContext
|
|
|
364
370
|
}
|
|
365
371
|
|
|
366
372
|
deserialize(node: SerovalNode): unknown {
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
373
|
+
try {
|
|
374
|
+
switch (node.t) {
|
|
375
|
+
case SerovalNodeType.Constant:
|
|
376
|
+
return CONSTANT_VAL[node.s];
|
|
377
|
+
case SerovalNodeType.Number:
|
|
378
|
+
return node.s;
|
|
379
|
+
case SerovalNodeType.String:
|
|
380
|
+
return deserializeString(node.s);
|
|
381
|
+
case SerovalNodeType.BigInt:
|
|
382
|
+
return BigInt(node.s);
|
|
383
|
+
case SerovalNodeType.IndexedValue:
|
|
384
|
+
return this.refs.get(node.i);
|
|
385
|
+
case SerovalNodeType.Reference:
|
|
386
|
+
return this.deserializeReference(node);
|
|
387
|
+
case SerovalNodeType.Array:
|
|
388
|
+
return this.deserializeArray(node);
|
|
389
|
+
case SerovalNodeType.Object:
|
|
390
|
+
case SerovalNodeType.NullConstructor:
|
|
391
|
+
return this.deserializeObject(node);
|
|
392
|
+
case SerovalNodeType.Date:
|
|
393
|
+
return this.deserializeDate(node);
|
|
394
|
+
case SerovalNodeType.RegExp:
|
|
395
|
+
return this.deserializeRegExp(node);
|
|
396
|
+
case SerovalNodeType.Set:
|
|
397
|
+
return this.deserializeSet(node);
|
|
398
|
+
case SerovalNodeType.Map:
|
|
399
|
+
return this.deserializeMap(node);
|
|
400
|
+
case SerovalNodeType.ArrayBuffer:
|
|
401
|
+
return this.deserializeArrayBuffer(node);
|
|
402
|
+
case SerovalNodeType.BigIntTypedArray:
|
|
403
|
+
case SerovalNodeType.TypedArray:
|
|
404
|
+
return this.deserializeTypedArray(node);
|
|
405
|
+
case SerovalNodeType.DataView:
|
|
406
|
+
return this.deserializeDataView(node);
|
|
407
|
+
case SerovalNodeType.AggregateError:
|
|
408
|
+
return this.deserializeAggregateError(node);
|
|
409
|
+
case SerovalNodeType.Error:
|
|
410
|
+
return this.deserializeError(node);
|
|
411
|
+
case SerovalNodeType.Promise:
|
|
412
|
+
return this.deserializePromise(node);
|
|
413
|
+
case SerovalNodeType.WKSymbol:
|
|
414
|
+
return SYMBOL_REF[node.s];
|
|
415
|
+
case SerovalNodeType.Boxed:
|
|
416
|
+
return this.deserializeBoxed(node);
|
|
417
|
+
case SerovalNodeType.Plugin:
|
|
418
|
+
return this.deserializePlugin(node);
|
|
419
|
+
case SerovalNodeType.PromiseConstructor:
|
|
420
|
+
return this.deserializePromiseConstructor(node);
|
|
421
|
+
case SerovalNodeType.PromiseResolve:
|
|
422
|
+
return this.deserializePromiseResolve(node);
|
|
423
|
+
case SerovalNodeType.PromiseReject:
|
|
424
|
+
return this.deserializePromiseReject(node);
|
|
425
|
+
case SerovalNodeType.IteratorFactoryInstance:
|
|
426
|
+
return this.deserializeIteratorFactoryInstance(node);
|
|
427
|
+
case SerovalNodeType.AsyncIteratorFactoryInstance:
|
|
428
|
+
return this.deserializeAsyncIteratorFactoryInstance(node);
|
|
429
|
+
case SerovalNodeType.StreamConstructor:
|
|
430
|
+
return this.deserializeStreamConstructor(node);
|
|
431
|
+
case SerovalNodeType.StreamNext:
|
|
432
|
+
return this.deserializeStreamNext(node);
|
|
433
|
+
case SerovalNodeType.StreamThrow:
|
|
434
|
+
return this.deserializeStreamThrow(node);
|
|
435
|
+
case SerovalNodeType.StreamReturn:
|
|
436
|
+
return this.deserializeStreamReturn(node);
|
|
437
|
+
case SerovalNodeType.IteratorFactory:
|
|
438
|
+
return this.deserializeIteratorFactory(node);
|
|
439
|
+
case SerovalNodeType.AsyncIteratorFactory:
|
|
440
|
+
return this.deserializeAsyncIteratorFactory(node);
|
|
441
|
+
// case SerovalNodeType.SpecialReference:
|
|
442
|
+
default:
|
|
443
|
+
throw new SerovalUnsupportedNodeError(node);
|
|
444
|
+
}
|
|
445
|
+
} catch (error) {
|
|
446
|
+
throw new SerovalDeserializationError(error);
|
|
437
447
|
}
|
|
438
448
|
}
|
|
439
449
|
}
|