seroval 0.11.6 → 0.12.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.
Files changed (122) hide show
  1. package/README.md +29 -16
  2. package/dist/cjs/development/index.cjs +3072 -4875
  3. package/dist/cjs/development/index.cjs.map +4 -4
  4. package/dist/cjs/production/index.cjs +3 -3
  5. package/dist/esm/development/index.mjs +3069 -4874
  6. package/dist/esm/development/index.mjs.map +4 -4
  7. package/dist/esm/production/index.mjs +3 -3
  8. package/dist/types/core/Serializer.d.ts +2 -0
  9. package/dist/types/core/Serializer.d.ts.map +1 -0
  10. package/dist/types/core/UnsupportedTypeError.d.ts +1 -0
  11. package/dist/types/core/UnsupportedTypeError.d.ts.map +1 -0
  12. package/dist/types/core/assert.d.ts +1 -0
  13. package/dist/types/core/assert.d.ts.map +1 -0
  14. package/dist/types/core/base/async.d.ts +30 -0
  15. package/dist/types/core/base/async.d.ts.map +1 -0
  16. package/dist/types/core/base/stream.d.ts +40 -0
  17. package/dist/types/core/base/stream.d.ts.map +1 -0
  18. package/dist/types/core/base/sync.d.ts +32 -0
  19. package/dist/types/core/base/sync.d.ts.map +1 -0
  20. package/dist/types/core/base-primitives.d.ts +3 -1
  21. package/dist/types/core/base-primitives.d.ts.map +1 -0
  22. package/dist/types/core/compat.d.ts +1 -0
  23. package/dist/types/core/compat.d.ts.map +1 -0
  24. package/dist/types/core/constants.d.ts +19 -4
  25. package/dist/types/core/constants.d.ts.map +1 -0
  26. package/dist/types/core/constructors.d.ts +1 -0
  27. package/dist/types/core/constructors.d.ts.map +1 -0
  28. package/dist/types/core/cross/async.d.ts +8 -3
  29. package/dist/types/core/cross/async.d.ts.map +1 -0
  30. package/dist/types/core/cross/cross-parser.d.ts +8 -0
  31. package/dist/types/core/cross/cross-parser.d.ts.map +1 -0
  32. package/dist/types/core/cross/index.d.ts +12 -5
  33. package/dist/types/core/cross/index.d.ts.map +1 -0
  34. package/dist/types/core/cross/serialize.d.ts +23 -5
  35. package/dist/types/core/cross/serialize.d.ts.map +1 -0
  36. package/dist/types/core/cross/stream.d.ts +8 -3
  37. package/dist/types/core/cross/stream.d.ts.map +1 -0
  38. package/dist/types/core/cross/sync.d.ts +8 -3
  39. package/dist/types/core/cross/sync.d.ts.map +1 -0
  40. package/dist/types/core/get-identifier.d.ts +1 -0
  41. package/dist/types/core/get-identifier.d.ts.map +1 -0
  42. package/dist/types/core/keys.d.ts +1 -0
  43. package/dist/types/core/keys.d.ts.map +1 -0
  44. package/dist/types/core/literals.d.ts +1 -0
  45. package/dist/types/core/literals.d.ts.map +1 -0
  46. package/dist/types/core/parser-context.d.ts +23 -0
  47. package/dist/types/core/parser-context.d.ts.map +1 -0
  48. package/dist/types/core/plugin.d.ts +26 -0
  49. package/dist/types/core/plugin.d.ts.map +1 -0
  50. package/dist/types/core/promise-to-result.d.ts +1 -0
  51. package/dist/types/core/promise-to-result.d.ts.map +1 -0
  52. package/dist/types/core/reference.d.ts +1 -0
  53. package/dist/types/core/reference.d.ts.map +1 -0
  54. package/dist/types/core/serializer-context.old.d.ts +165 -0
  55. package/dist/types/core/serializer-context.old.d.ts.map +1 -0
  56. package/dist/types/core/shared.d.ts +4 -7
  57. package/dist/types/core/shared.d.ts.map +1 -0
  58. package/dist/types/core/string.d.ts +1 -0
  59. package/dist/types/core/string.d.ts.map +1 -0
  60. package/dist/types/core/tree/async.d.ts +8 -3
  61. package/dist/types/core/tree/async.d.ts.map +1 -0
  62. package/dist/types/core/tree/deserialize.d.ts +49 -2
  63. package/dist/types/core/tree/deserialize.d.ts.map +1 -0
  64. package/dist/types/core/tree/index.d.ts +10 -7
  65. package/dist/types/core/tree/index.d.ts.map +1 -0
  66. package/dist/types/core/tree/serialize.d.ts +37 -4
  67. package/dist/types/core/tree/serialize.d.ts.map +1 -0
  68. package/dist/types/core/tree/sync.d.ts +8 -3
  69. package/dist/types/core/tree/sync.d.ts.map +1 -0
  70. package/dist/types/core/types.d.ts +10 -3
  71. package/dist/types/core/types.d.ts.map +1 -0
  72. package/dist/types/core/web-api.d.ts +1 -0
  73. package/dist/types/core/web-api.d.ts.map +1 -0
  74. package/dist/types/index.d.ts +3 -0
  75. package/dist/types/index.d.ts.map +1 -0
  76. package/dist/types/types.d.ts +1 -0
  77. package/dist/types/types.d.ts.map +1 -0
  78. package/package.json +2 -2
  79. package/src/core/Serializer.ts +2 -0
  80. package/src/core/base/async.ts +804 -0
  81. package/src/core/base/stream.ts +496 -0
  82. package/src/core/base/sync.ts +675 -0
  83. package/src/core/base-primitives.ts +22 -0
  84. package/src/core/constants.ts +61 -45
  85. package/src/core/cross/async.ts +6 -751
  86. package/src/core/cross/cross-parser.ts +9 -0
  87. package/src/core/cross/index.ts +62 -84
  88. package/src/core/cross/serialize.ts +71 -862
  89. package/src/core/cross/stream.ts +6 -873
  90. package/src/core/cross/sync.ts +6 -624
  91. package/src/core/is-serializable.new.ts +208 -0
  92. package/src/core/keys.ts +1 -1
  93. package/src/core/parser-context.ts +131 -0
  94. package/src/core/plugin.ts +55 -0
  95. package/src/core/serializer-context.new.ts +1168 -0
  96. package/src/core/serializer-context.old.ts +1126 -0
  97. package/src/core/shared.ts +46 -123
  98. package/src/core/tree/async.ts +6 -750
  99. package/src/core/tree/deserialize.ts +423 -420
  100. package/src/core/tree/index.ts +49 -91
  101. package/src/core/tree/parser.ts +45 -0
  102. package/src/core/tree/serialize.ts +122 -828
  103. package/src/core/tree/sync.ts +6 -624
  104. package/src/core/types.ts +13 -2
  105. package/src/example.ts +28 -0
  106. package/src/index.ts +3 -0
  107. package/dist/types/core/assignments.d.ts +0 -33
  108. package/dist/types/core/context.d.ts +0 -9
  109. package/dist/types/core/cross/context.d.ts +0 -37
  110. package/dist/types/core/cross/primitives.d.ts +0 -9
  111. package/dist/types/core/cross/web-api.d.ts +0 -4
  112. package/dist/types/core/tree/context.d.ts +0 -44
  113. package/dist/types/core/tree/primitives.d.ts +0 -9
  114. package/dist/types/core/tree/web-api.d.ts +0 -4
  115. package/src/core/assignments.ts +0 -159
  116. package/src/core/context.ts +0 -15
  117. package/src/core/cross/context.ts +0 -102
  118. package/src/core/cross/primitives.ts +0 -128
  119. package/src/core/cross/web-api.ts +0 -50
  120. package/src/core/tree/context.ts +0 -125
  121. package/src/core/tree/primitives.ts +0 -123
  122. package/src/core/tree/web-api.ts +0 -50
@@ -1,5 +1,23 @@
1
- import type { CrossSerializerContext } from './context';
2
- import type { SerovalNode } from '../types';
3
- export declare function getRefExpr(id: number): string;
4
- export declare function resolvePatches(ctx: CrossSerializerContext): string | undefined;
5
- export default function crossSerializeTree(ctx: CrossSerializerContext, node: SerovalNode): string;
1
+ import type { SerovalPromiseConstructorNode, SerovalPromiseResolveNode, SerovalPromiseRejectNode, SerovalReadableStreamCloseNode, SerovalReadableStreamEnqueueNode, SerovalReadableStreamErrorNode, SerovalReadableStreamConstructorNode, SerovalNode } from '../types';
2
+ import type { BaseSerializerContextOptions } from '../serializer-context.old';
3
+ import BaseSerializerContext from '../serializer-context.old';
4
+ import type { SerovalMode } from '../plugin';
5
+ import type { CrossContextOptions } from './cross-parser';
6
+ export interface CrossSerializerContextOptions extends BaseSerializerContextOptions, CrossContextOptions {
7
+ }
8
+ export default class CrossSerializerContext extends BaseSerializerContext {
9
+ readonly mode: SerovalMode;
10
+ scopeId?: string;
11
+ constructor(options: CrossSerializerContextOptions);
12
+ getRefParam(id: number | string): string;
13
+ protected assignIndexedValue(index: number, value: string): string;
14
+ protected serializePromiseConstructor(node: SerovalPromiseConstructorNode): string;
15
+ protected serializePromiseResolve(node: SerovalPromiseResolveNode): string;
16
+ protected serializePromiseReject(node: SerovalPromiseRejectNode): string;
17
+ protected serializeReadableStreamConstructor(node: SerovalReadableStreamConstructorNode): string;
18
+ protected serializeReadableStreamEnqueue(node: SerovalReadableStreamEnqueueNode): string;
19
+ protected serializeReadableStreamError(node: SerovalReadableStreamErrorNode): string;
20
+ protected serializeReadableStreamClose(node: SerovalReadableStreamCloseNode): string;
21
+ serializeTop(tree: SerovalNode): string;
22
+ }
23
+ //# sourceMappingURL=serialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../../src/core/cross/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,8BAA8B,EAC9B,gCAAgC,EAChC,8BAA8B,EAC9B,oCAAoC,EACpC,WAAW,EACZ,MAAM,UAAU,CAAC;AAUlB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,qBAAqB,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,6BACf,SAAQ,4BAA4B,EAAE,mBAAmB;CAC1D;AAED,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,qBAAqB;IACvE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAW;IAErC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEL,OAAO,EAAE,6BAA6B;IAKlD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAOxC,SAAS,CAAC,kBAAkB,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM;IAIT,SAAS,CAAC,2BAA2B,CACnC,IAAI,EAAE,6BAA6B,GAClC,MAAM;IAIT,SAAS,CAAC,uBAAuB,CAC/B,IAAI,EAAE,yBAAyB,GAC9B,MAAM;IAIT,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,wBAAwB,GAC7B,MAAM;IAIT,SAAS,CAAC,kCAAkC,CAC1C,IAAI,EAAE,oCAAoC,GACzC,MAAM;IAIT,SAAS,CAAC,8BAA8B,CACtC,IAAI,EAAE,gCAAgC,GACrC,MAAM;IAIT,SAAS,CAAC,4BAA4B,CACpC,IAAI,EAAE,8BAA8B,GACnC,MAAM;IAIT,SAAS,CAAC,4BAA4B,CACpC,IAAI,EAAE,8BAA8B,GACnC,MAAM;IAIT,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;CAoBxC"}
@@ -1,3 +1,8 @@
1
- import type { StreamingCrossParserContext } from './context';
2
- import type { SerovalNode } from '../types';
3
- export default function crossParseStream<T>(ctx: StreamingCrossParserContext, current: T): SerovalNode;
1
+ import type { BaseStreamParserContextOptions } from '../base/stream';
2
+ import BaseStreamParserContext from '../base/stream';
3
+ import type { SerovalMode } from '../plugin';
4
+ export type CrossStreamParserContextOptions = BaseStreamParserContextOptions;
5
+ export default class CrossStreamParserContext extends BaseStreamParserContext {
6
+ readonly mode: SerovalMode;
7
+ }
8
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/core/cross/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,uBAAuB,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,+BAA+B,GAAG,8BAA8B,CAAA;AAE5E,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,uBAAuB;IAC3E,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAW;CACtC"}
@@ -1,3 +1,8 @@
1
- import { type CrossParserContext } from './context';
2
- import type { SerovalSyncNode } from '../types';
3
- export default function crossParseSync<T>(ctx: CrossParserContext, current: T): SerovalSyncNode;
1
+ import BaseSyncParserContext from '../base/sync';
2
+ import type { SerovalMode } from '../plugin';
3
+ import type { CrossParserContextOptions } from './cross-parser';
4
+ export type CrossSyncParserContextOptions = CrossParserContextOptions;
5
+ export default class CrossSyncParserContext extends BaseSyncParserContext {
6
+ readonly mode: SerovalMode;
7
+ }
8
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/core/cross/sync.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,MAAM,6BAA6B,GAAG,yBAAyB,CAAA;AAErE,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,qBAAqB;IACvE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAW;CACtC"}
@@ -1 +1,2 @@
1
1
  export default function getIdentifier(index: number): string;
2
+ //# sourceMappingURL=get-identifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-identifier.d.ts","sourceRoot":"","sources":["../../../src/core/get-identifier.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAU3D"}
@@ -11,3 +11,4 @@ export declare const GLOBAL_CONTEXT_STREAM_CONSTRUCTOR = "S";
11
11
  export declare const GLOBAL_CONTEXT_STREAM_EMIT = "Se";
12
12
  export declare const GLOBAL_CONTEXT_API_SCRIPT: string;
13
13
  export declare function getCrossReferenceHeader(id?: string): string;
14
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/core/keys.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,qBAAqB,CAAC;AAEjD,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,eAAO,MAAM,kCAAkC,MAAM,CAAC;AAEtD,eAAO,MAAM,8BAA8B,OAAO,CAAC;AAEnD,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,yBAAyB,QAQ/B,CAAC;AAER,wBAAgB,uBAAuB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3D"}
@@ -7,3 +7,4 @@ export declare const NEG_ZERO_NODE: SerovalConstantNode;
7
7
  export declare const INFINITY_NODE: SerovalConstantNode;
8
8
  export declare const NEG_INFINITY_NODE: SerovalConstantNode;
9
9
  export declare const NAN_NODE: SerovalConstantNode;
10
+ //# sourceMappingURL=literals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literals.d.ts","sourceRoot":"","sources":["../../../src/core/literals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAmBnD,eAAO,MAAM,SAAS,qBAA2C,CAAC;AAClE,eAAO,MAAM,UAAU,qBAA4C,CAAC;AACpE,eAAO,MAAM,cAAc,qBAAgD,CAAC;AAC5E,eAAO,MAAM,SAAS,qBAA2C,CAAC;AAClE,eAAO,MAAM,aAAa,qBAAmD,CAAC;AAC9E,eAAO,MAAM,aAAa,qBAA+C,CAAC;AAC1E,eAAO,MAAM,iBAAiB,qBAAuD,CAAC;AACtF,eAAO,MAAM,QAAQ,qBAA0C,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Plugin, PluginAccessOptions, SerovalMode } from './plugin';
2
+ import type { SerovalIndexedValueNode, SerovalReferenceNode } from './types';
3
+ export interface BaseParserContextOptions extends PluginAccessOptions {
4
+ disabledFeatures?: number;
5
+ refs?: Map<unknown, number>;
6
+ }
7
+ export declare abstract class BaseParserContext implements PluginAccessOptions {
8
+ abstract readonly mode: SerovalMode;
9
+ features: number;
10
+ marked: Set<number>;
11
+ refs: Map<unknown, number>;
12
+ plugins?: Plugin<any, any>[] | undefined;
13
+ constructor(options: BaseParserContextOptions);
14
+ protected markRef(id: number): void;
15
+ protected isMarked(id: number): boolean;
16
+ protected getReference<T>(current: T): number | SerovalIndexedValueNode | SerovalReferenceNode;
17
+ protected getStrictReference<T>(current: T): SerovalIndexedValueNode | SerovalReferenceNode;
18
+ /**
19
+ * @private
20
+ */
21
+ protected isIterable(value: unknown): value is Iterable<unknown>;
22
+ }
23
+ //# sourceMappingURL=parser-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-context.d.ts","sourceRoot":"","sources":["../../../src/core/parser-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE7E,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,8BAAsB,iBAAkB,YAAW,mBAAmB;IACpE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAEpC,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,cAAqB;IAE3B,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE3B,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;gBAE7B,OAAO,EAAE,wBAAwB;IAM7C,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAInC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIvC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,GAAG,uBAAuB,GAAG,oBAAoB;IAc9F,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,uBAAuB,GAAG,oBAAoB;IAW3F;;OAEG;IACH,SAAS,CAAC,UAAU,CAClB,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC;CAgE9B"}
@@ -0,0 +1,26 @@
1
+ import type BaseAsyncParserContext from './base/async';
2
+ import type BaseStreamParserContext from './base/stream';
3
+ import type BaseSyncParserContext from './base/sync';
4
+ import type BaseSerializerContext from './serializer-context.old';
5
+ import type VanillaDeserializerContext from './tree/deserialize';
6
+ export type SerovalMode = 'vanilla' | 'cross';
7
+ export interface PluginData {
8
+ id: number;
9
+ }
10
+ export interface Plugin<Value, Node> {
11
+ tag: string;
12
+ test(value: unknown): boolean;
13
+ parse: {
14
+ sync?: (value: Value, ctx: BaseSyncParserContext, data: PluginData) => Node;
15
+ async?: (value: Value, ctx: BaseAsyncParserContext, data: PluginData) => Promise<Node>;
16
+ stream?: (value: Value, ctx: BaseStreamParserContext, data: PluginData) => Node;
17
+ };
18
+ serialize(node: Node, ctx: BaseSerializerContext, data: PluginData): string;
19
+ deserialize(node: Node, ctx: VanillaDeserializerContext, data: PluginData): Value;
20
+ isIterable?: (value: Value) => boolean;
21
+ }
22
+ export declare function createPlugin<Value, Node>(plugin: Plugin<Value, Node>): Plugin<Value, Node>;
23
+ export interface PluginAccessOptions {
24
+ plugins?: Plugin<any, any>[];
25
+ }
26
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/core/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,sBAAsB,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,uBAAuB,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,qBAAqB,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,0BAA0B,MAAM,oBAAoB,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,MAAM,CAAC,KAAK,EAAE,IAAI;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,CACL,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,qBAAqB,EAC1B,IAAI,EAAE,UAAU,KACb,IAAI,CAAC;QACV,KAAK,CAAC,EAAE,CACN,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,UAAU,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,CAAC,EAAE,CACP,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,UAAU,KACb,IAAI,CAAC;KACX,CAAC;IACF,SAAS,CACP,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,qBAAqB,EAC1B,IAAI,EAAE,UAAU,GACf,MAAM,CAAC;IACV,WAAW,CACT,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,0BAA0B,EAC/B,IAAI,EAAE,UAAU,GACf,KAAK,CAAC;IACT,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CAExC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,EACtC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAC1B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAErB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CAC9B"}
@@ -1 +1,2 @@
1
1
  export default function promiseToResult(current: Promise<unknown>): Promise<[0 | 1, unknown]>;
2
+ //# sourceMappingURL=promise-to-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-to-result.d.ts","sourceRoot":"","sources":["../../../src/core/promise-to-result.ts"],"names":[],"mappings":"AAAA,wBAA8B,eAAe,CAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAM3B"}
@@ -3,3 +3,4 @@ export declare function hasReferenceID<T>(value: T): boolean;
3
3
  export declare function hasReference(id: string): boolean;
4
4
  export declare function getReferenceID<T>(value: T): string;
5
5
  export declare function getReference<T>(id: string): T;
6
+ //# sourceMappingURL=reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/core/reference.ts"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAI1D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAEnD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAGlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,CAG7C"}
@@ -0,0 +1,165 @@
1
+ import { SerovalObjectFlags } from './constants';
2
+ import type { Plugin, PluginAccessOptions, SerovalMode } from './plugin';
3
+ import type { SerovalArrayNode, SerovalNode, SerovalObjectRecordKey, SerovalObjectRecordNode, SerovalReferenceNode, SerovalObjectNode, SerovalNullConstructorNode, SerovalRegExpNode, SerovalDateNode, SerovalSetNode, SerovalMapNode, SerovalArrayBufferNode, SerovalTypedArrayNode, SerovalBigIntTypedArrayNode, SerovalDataViewNode, SerovalAggregateErrorNode, SerovalErrorNode, SerovalPromiseNode, SerovalWKSymbolNode, SerovalURLNode, SerovalURLSearchParamsNode, SerovalBlobNode, SerovalFileNode, SerovalHeadersNode, SerovalFormDataNode, SerovalBoxedNode, SerovalRequestNode, SerovalResponseNode, SerovalEventNode, SerovalCustomEventNode, SerovalDOMExceptionNode, SerovalPluginNode, SerovalPromiseConstructorNode, SerovalPromiseResolveNode, SerovalPromiseRejectNode, SerovalReadableStreamConstructorNode, SerovalReadableStreamEnqueueNode, SerovalReadableStreamErrorNode, SerovalReadableStreamCloseNode } from './types';
4
+ interface IndexAssignment {
5
+ t: 'index';
6
+ s: string;
7
+ k: undefined;
8
+ v: string;
9
+ }
10
+ interface SetAssignment {
11
+ t: 'set';
12
+ s: string;
13
+ k: string;
14
+ v: string;
15
+ }
16
+ interface AddAssignment {
17
+ t: 'add';
18
+ s: string;
19
+ k: undefined;
20
+ v: string;
21
+ }
22
+ interface DeleteAssignment {
23
+ t: 'delete';
24
+ s: string;
25
+ k: string;
26
+ v: undefined;
27
+ }
28
+ type Assignment = IndexAssignment | AddAssignment | SetAssignment | DeleteAssignment;
29
+ export interface FlaggedObject {
30
+ type: SerovalObjectFlags;
31
+ value: string;
32
+ }
33
+ declare const enum SpecialReference {
34
+ Sentinel = 0
35
+ }
36
+ export interface BaseSerializerContextOptions extends PluginAccessOptions {
37
+ features: number;
38
+ markedRefs: number[] | Set<number>;
39
+ }
40
+ export default abstract class BaseSerializerContext implements PluginAccessOptions {
41
+ /**
42
+ * @private
43
+ */
44
+ features: number;
45
+ /**
46
+ * To check if an object is synchronously referencing itself
47
+ * @private
48
+ */
49
+ stack: number[];
50
+ /**
51
+ * Array of object mutations
52
+ * @private
53
+ */
54
+ flags: FlaggedObject[];
55
+ /**
56
+ * Array of assignments to be done (used for recursion)
57
+ * @private
58
+ */
59
+ assignments: Assignment[];
60
+ plugins?: Plugin<any, any>[] | undefined;
61
+ /**
62
+ * Refs that are...referenced
63
+ * @private
64
+ */
65
+ marked: Set<number>;
66
+ constructor(options: BaseSerializerContextOptions);
67
+ abstract readonly mode: SerovalMode;
68
+ /**
69
+ * A tiny function that tells if a reference
70
+ * is to be accessed. This is a requirement for
71
+ * deciding whether or not we should generate
72
+ * an identifier for the object
73
+ */
74
+ protected markRef(id: number): void;
75
+ protected isMarked(id: number): boolean;
76
+ /**
77
+ * Converts the ID of a reference into a identifier string
78
+ * that is used to refer to the object instance in the
79
+ * generated script.
80
+ */
81
+ abstract getRefParam(id: number | string): string;
82
+ private specials;
83
+ /**
84
+ * Generates special references that isn't provided by the user
85
+ * but by the script.
86
+ */
87
+ protected getSpecialReference(ref: SpecialReference): string;
88
+ protected pushObjectFlag(flag: SerovalObjectFlags, id: number): void;
89
+ private resolveFlags;
90
+ protected resolvePatches(): string | undefined;
91
+ /**
92
+ * Generates the inlined assignment for the reference
93
+ * This is different from the assignments array as this one
94
+ * signifies creation rather than mutation
95
+ */
96
+ protected createAssignment(source: string, value: string): void;
97
+ protected createAddAssignment(ref: number, value: string): void;
98
+ protected createSetAssignment(ref: number, key: string, value: string): void;
99
+ protected createDeleteAssignment(ref: number, key: string): void;
100
+ protected createArrayAssign(ref: number, index: number | string, value: string): void;
101
+ protected createObjectAssign(ref: number, key: string, value: string): void;
102
+ /**
103
+ * Checks if the value is in the stack. Stack here is a reference
104
+ * structure to know if a object is to be accessed in a TDZ.
105
+ */
106
+ isIndexedValueInStack(node: SerovalNode): boolean;
107
+ /**
108
+ * Produces an assignment expression. `id` generates a reference
109
+ * parameter (through `getRefParam`) and has the option to
110
+ * return the reference parameter directly or assign a value to
111
+ * it.
112
+ */
113
+ protected abstract assignIndexedValue(id: number, value: string): string;
114
+ protected serializeReference(node: SerovalReferenceNode): string;
115
+ protected getIterableAccess(): string;
116
+ protected serializeIterable(node: SerovalNode): string;
117
+ protected serializeArrayItem(id: number, item: SerovalNode | undefined, index: number): string;
118
+ protected serializeArray(node: SerovalArrayNode): string;
119
+ protected serializeProperty(id: number, key: SerovalObjectRecordKey, val: SerovalNode): string;
120
+ protected serializeProperties(sourceID: number, node: SerovalObjectRecordNode): string;
121
+ protected serializeObject(node: SerovalObjectNode): string;
122
+ protected serializeWithObjectAssign(value: SerovalObjectRecordNode, id: number, serialized: string): string;
123
+ protected serializeAssignment(sourceID: number, mainAssignments: Assignment[], key: SerovalObjectRecordKey, value: SerovalNode): void;
124
+ protected serializeAssignments(sourceID: number, node: SerovalObjectRecordNode): string | undefined;
125
+ protected serializeDictionary(i: number, p: SerovalObjectRecordNode | undefined, init: string): string;
126
+ protected serializeNullConstructor(node: SerovalNullConstructorNode): string;
127
+ protected serializeDate(node: SerovalDateNode): string;
128
+ protected serializeRegExp(node: SerovalRegExpNode): string;
129
+ protected serializeSetItem(id: number, item: SerovalNode): string;
130
+ protected serializeSet(node: SerovalSetNode): string;
131
+ protected serializeMapEntry(id: number, key: SerovalNode, val: SerovalNode): string;
132
+ protected serializeMap(node: SerovalMapNode): string;
133
+ protected serializeArrayBuffer(node: SerovalArrayBufferNode): string;
134
+ protected serializeTypedArray(node: SerovalTypedArrayNode | SerovalBigIntTypedArrayNode): string;
135
+ protected serializeDataView(node: SerovalDataViewNode): string;
136
+ protected serializeAggregateError(node: SerovalAggregateErrorNode): string;
137
+ protected serializeError(node: SerovalErrorNode): string;
138
+ protected serializePromise(node: SerovalPromiseNode): string;
139
+ protected serializeWKSymbol(node: SerovalWKSymbolNode): string;
140
+ protected serializeURL(node: SerovalURLNode): string;
141
+ protected serializeURLSearchParams(node: SerovalURLSearchParamsNode): string;
142
+ protected serializeBlob(node: SerovalBlobNode): string;
143
+ protected serializeFile(node: SerovalFileNode): string;
144
+ protected serializeHeaders(node: SerovalHeadersNode): string;
145
+ protected serializeFormDataEntry(id: number, key: string, value: SerovalNode): string;
146
+ protected serializeFormDataEntries(node: SerovalFormDataNode, size: number): string;
147
+ protected serializeFormData(node: SerovalFormDataNode): string;
148
+ protected serializeBoxed(node: SerovalBoxedNode): string;
149
+ protected serializeRequest(node: SerovalRequestNode): string;
150
+ protected serializeResponse(node: SerovalResponseNode): string;
151
+ protected serializeEvent(node: SerovalEventNode): string;
152
+ protected serializeCustomEvent(node: SerovalCustomEventNode): string;
153
+ protected serializeDOMException(node: SerovalDOMExceptionNode): string;
154
+ protected serializePlugin(node: SerovalPluginNode): string;
155
+ protected abstract serializePromiseConstructor(node: SerovalPromiseConstructorNode): string;
156
+ protected abstract serializePromiseResolve(node: SerovalPromiseResolveNode): string;
157
+ protected abstract serializePromiseReject(node: SerovalPromiseRejectNode): string;
158
+ protected abstract serializeReadableStreamConstructor(node: SerovalReadableStreamConstructorNode): string;
159
+ protected abstract serializeReadableStreamEnqueue(node: SerovalReadableStreamEnqueueNode): string;
160
+ protected abstract serializeReadableStreamError(node: SerovalReadableStreamErrorNode): string;
161
+ protected abstract serializeReadableStreamClose(node: SerovalReadableStreamCloseNode): string;
162
+ serialize(node: SerovalNode): string;
163
+ }
164
+ export {};
165
+ //# sourceMappingURL=serializer-context.old.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer-context.old.d.ts","sourceRoot":"","sources":["../../../src/core/serializer-context.old.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,10 @@
1
1
  import type { ErrorValue } from '../types';
2
- import { SerovalObjectFlags } from './constants';
3
- import type { BaseParserContext } from './context';
4
- export declare function getErrorConstructorName(error: ErrorValue): string;
5
- type ErrorConstructors = ErrorConstructor | EvalErrorConstructor | RangeErrorConstructor | ReferenceErrorConstructor | SyntaxErrorConstructor | TypeErrorConstructor | URIErrorConstructor;
6
- export declare function getErrorConstructor(errorName: string): ErrorConstructors;
7
- export declare function getErrorOptions(ctx: BaseParserContext, error: Error): Record<string, unknown> | undefined;
8
- export declare function isIterable(ctx: BaseParserContext, value: unknown): value is Iterable<unknown>;
2
+ import { ErrorConstructorTag, SerovalObjectFlags } from './constants';
3
+ export declare function getErrorConstructor(error: ErrorValue): ErrorConstructorTag;
9
4
  type TypedArrayConstructor = Int8ArrayConstructor | Int16ArrayConstructor | Int32ArrayConstructor | Uint8ArrayConstructor | Uint16ArrayConstructor | Uint32ArrayConstructor | Uint8ClampedArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor;
10
5
  export declare function getTypedArrayConstructor(name: string): TypedArrayConstructor;
11
6
  export declare function isValidIdentifier(name: string): boolean;
12
7
  export declare function getObjectFlag(obj: unknown): SerovalObjectFlags;
8
+ export declare function getErrorOptions(error: Error, features: number): Record<string, unknown> | undefined;
13
9
  export {};
10
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/core/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,OAAO,EAEL,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,mBAAmB,CAoB1E;AAED,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,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAgB5E;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQvD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAW9D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CA2BrC"}
@@ -1,3 +1,4 @@
1
1
  export declare function serializeChar(str: string): string | undefined;
2
2
  export declare function serializeString(str: string): string;
3
3
  export declare function deserializeString(str: string): string;
4
+ //# sourceMappingURL=string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../src/core/string.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc7D;AAOD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBnD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYrD"}
@@ -1,3 +1,8 @@
1
- import type { ParserContext } from './context';
2
- import type { SerovalNode } from '../types';
3
- export default function parseAsync<T>(ctx: ParserContext, current: T): Promise<SerovalNode>;
1
+ import BaseAsyncParserContext from '../base/async';
2
+ import type { BaseParserContextOptions } from '../parser-context';
3
+ import type { SerovalMode } from '../plugin';
4
+ export type AsyncParserContextOptions = Omit<BaseParserContextOptions, 'refs'>;
5
+ export default class AsyncParserContext extends BaseAsyncParserContext {
6
+ readonly mode: SerovalMode;
7
+ }
8
+ //# sourceMappingURL=async.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/async.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAA;AAE9E,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,sBAAsB;IACpE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAa;CACxC"}
@@ -1,3 +1,50 @@
1
- import type { DeserializerContext } from './context';
2
1
  import type { SerovalNode } from '../types';
3
- export default function deserializeTree(ctx: DeserializerContext, node: SerovalNode): unknown;
2
+ import type { Plugin, PluginAccessOptions } from '../plugin';
3
+ export interface DeserializerOptions extends PluginAccessOptions {
4
+ markedRefs: number[] | Set<number>;
5
+ }
6
+ export default class VanillaDeserializerContext implements PluginAccessOptions {
7
+ /**
8
+ * Mapping ids to values
9
+ * @private
10
+ */
11
+ values: Map<number, unknown>;
12
+ /**
13
+ * Which refs are pre-marked
14
+ * @private
15
+ */
16
+ refs: Set<number>;
17
+ plugins?: Plugin<any, any>[] | undefined;
18
+ constructor(options: DeserializerOptions);
19
+ assignIndexedValue<T>(index: number, value: T): T;
20
+ private deserializeReference;
21
+ private deserializeArray;
22
+ private deserializeProperties;
23
+ private deserializeObject;
24
+ private deserializeDate;
25
+ private deserializeRegExp;
26
+ private deserializeSet;
27
+ private deserializeMap;
28
+ private deserializeArrayBuffer;
29
+ private deserializeTypedArray;
30
+ private deserializeDataView;
31
+ private deserializeDictionary;
32
+ private deserializeAggregateError;
33
+ private deserializeError;
34
+ private deserializePromise;
35
+ private deserializeURL;
36
+ private deserializeURLSearchParams;
37
+ private deserializeBlob;
38
+ private deserializeFile;
39
+ private deserializeHeaders;
40
+ private deserializeFormData;
41
+ private deserializeBoxed;
42
+ private deserializeRequest;
43
+ private deserializeResponse;
44
+ private deserializeEvent;
45
+ private deserializeCustomEvent;
46
+ private deserializeDOMException;
47
+ private deserializePlugin;
48
+ deserialize(node: SerovalNode): unknown;
49
+ }
50
+ //# sourceMappingURL=deserialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/deserialize.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAiBV,WAAW,EAeZ,MAAM,UAAU,CAAC;AAWlB,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAyC7D,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,CAAC,OAAO,OAAO,0BAA2B,YAAW,mBAAmB;IAC5E;;;OAGG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;IAEzC;;;OAGG;IACH,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;gBAE7B,OAAO,EAAE,mBAAmB;IAKxC,kBAAkB,CAAC,CAAC,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,GACP,CAAC;IAOJ,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,gBAAgB;YAWV,kBAAkB;IAchC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,iBAAiB;IAezB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;CAwExC"}
@@ -1,14 +1,17 @@
1
+ import type { PluginAccessOptions } from '../plugin';
1
2
  import type { SerovalNode } from '../types';
2
- import type { ParserOptions } from './context';
3
- export declare function serialize<T>(source: T, options?: Partial<ParserOptions>): string;
4
- export declare function serializeAsync<T>(source: T, options?: Partial<ParserOptions>): Promise<string>;
3
+ import type { AsyncParserContextOptions } from './async';
4
+ import type { SyncParserContextOptions } from './sync';
5
+ export declare function serialize<T>(source: T, options?: SyncParserContextOptions): string;
6
+ export declare function serializeAsync<T>(source: T, options?: AsyncParserContextOptions): Promise<string>;
5
7
  export declare function deserialize<T>(source: string): T;
6
8
  export interface SerovalJSON {
7
9
  t: SerovalNode;
8
10
  f: number;
9
11
  m: number[];
10
12
  }
11
- export declare function toJSON<T>(source: T, options?: Partial<ParserOptions>): SerovalJSON;
12
- export declare function toJSONAsync<T>(source: T, options?: Partial<ParserOptions>): Promise<SerovalJSON>;
13
- export declare function compileJSON(source: SerovalJSON): string;
14
- export declare function fromJSON<T>(source: SerovalJSON): T;
13
+ export declare function toJSON<T>(source: T, options?: SyncParserContextOptions): SerovalJSON;
14
+ export declare function toJSONAsync<T>(source: T, options?: AsyncParserContextOptions): Promise<SerovalJSON>;
15
+ export declare function compileJSON(source: SerovalJSON, options?: PluginAccessOptions): string;
16
+ export declare function fromJSON<T>(source: SerovalJSON, options?: PluginAccessOptions): T;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,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,CAYR;AAED,wBAAsB,cAAc,CAAC,CAAC,EACpC,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAGhD;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,CAUb;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,WAAW,CAAC,CAUtB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM,CAO1F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,mBAAwB,GAAG,CAAC,CAMrF"}
@@ -1,4 +1,37 @@
1
- import type { SerializerContext } from './context';
2
- import type { SerovalNode } from '../types';
3
- export declare function resolvePatches(ctx: SerializerContext): string | undefined;
4
- export default function serializeTree(ctx: SerializerContext, node: SerovalNode): string;
1
+ import type { SerovalNode, SerovalPromiseConstructorNode, SerovalPromiseRejectNode, SerovalPromiseResolveNode, SerovalReadableStreamCloseNode, SerovalReadableStreamConstructorNode, SerovalReadableStreamEnqueueNode, SerovalReadableStreamErrorNode } from '../types';
2
+ import type { BaseSerializerContextOptions } from '../serializer-context.old';
3
+ import BaseSerializerContext from '../serializer-context.old';
4
+ import type { SerovalMode } from '../plugin';
5
+ export type VanillaSerializerContextOptions = BaseSerializerContextOptions;
6
+ export default class VanillaSerializerContext extends BaseSerializerContext {
7
+ readonly mode: SerovalMode;
8
+ /**
9
+ * Map tree refs to actual refs
10
+ * @private
11
+ */
12
+ valid: Map<string | number, number>;
13
+ /**
14
+ * Variables
15
+ * @private
16
+ */
17
+ vars: (string | undefined)[];
18
+ /**
19
+ * Increments the number of references the referenced value has
20
+ */
21
+ markRef(current: number): void;
22
+ /**
23
+ * Creates the reference param (identifier) from the given reference ID
24
+ * Calling this function means the value has been referenced somewhere
25
+ */
26
+ getRefParam(index: number | string): string;
27
+ protected assignIndexedValue(index: number, value: string): string;
28
+ protected serializePromiseConstructor(node: SerovalPromiseConstructorNode): string;
29
+ protected serializePromiseResolve(node: SerovalPromiseResolveNode): string;
30
+ protected serializePromiseReject(node: SerovalPromiseRejectNode): string;
31
+ protected serializeReadableStreamConstructor(node: SerovalReadableStreamConstructorNode): string;
32
+ protected serializeReadableStreamEnqueue(node: SerovalReadableStreamEnqueueNode): string;
33
+ protected serializeReadableStreamError(node: SerovalReadableStreamErrorNode): string;
34
+ protected serializeReadableStreamClose(node: SerovalReadableStreamCloseNode): string;
35
+ serializeTop(tree: SerovalNode): string;
36
+ }
37
+ //# sourceMappingURL=serialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,oCAAoC,EACpC,gCAAgC,EAChC,8BAA8B,EAC/B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,qBAAqB,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI7C,MAAM,MAAM,+BAA+B,GAAG,4BAA4B,CAAA;AAE1E,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,qBAAqB;IACzE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAa;IAEvC;;;OAGG;IACH,KAAK,+BAAsC;IAE3C;;;OAGG;IACH,IAAI,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAM;IAElC;;OAEG;IACH,OAAO,CACL,OAAO,EAAE,MAAM,GACd,IAAI;IAIP;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAoB3C,SAAS,CAAC,kBAAkB,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM;IAOT,SAAS,CAAC,2BAA2B,CACnC,IAAI,EAAE,6BAA6B,GAClC,MAAM;IAIT,SAAS,CAAC,uBAAuB,CAC/B,IAAI,EAAE,yBAAyB,GAC9B,MAAM;IAIT,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,wBAAwB,GAC7B,MAAM;IAIT,SAAS,CAAC,kCAAkC,CAC1C,IAAI,EAAE,oCAAoC,GACzC,MAAM;IAIT,SAAS,CAAC,8BAA8B,CACtC,IAAI,EAAE,gCAAgC,GACrC,MAAM;IAIT,SAAS,CAAC,4BAA4B,CACpC,IAAI,EAAE,8BAA8B,GACnC,MAAM;IAIT,SAAS,CAAC,4BAA4B,CACpC,IAAI,EAAE,8BAA8B,GACnC,MAAM;IAIT,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;CA+BxC"}
@@ -1,3 +1,8 @@
1
- import type { ParserContext } from './context';
2
- import type { SerovalSyncNode } from '../types';
3
- export default function parseSync<T>(ctx: ParserContext, current: T): SerovalSyncNode;
1
+ import BaseSyncParserContext from '../base/sync';
2
+ import type { BaseParserContextOptions } from '../parser-context';
3
+ import type { SerovalMode } from '../plugin';
4
+ export type SyncParserContextOptions = Omit<BaseParserContextOptions, 'refs'>;
5
+ export default class SyncParserContext extends BaseSyncParserContext {
6
+ readonly mode: SerovalMode;
7
+ }
8
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/sync.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,qBAAqB;IAClE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAa;CACxC"}
@@ -1,4 +1,4 @@
1
- import type { SerovalNodeType, SerovalObjectFlags, SerovalConstant, Symbols } from './constants';
1
+ import type { SerovalNodeType, SerovalObjectFlags, SerovalConstant, Symbols, ErrorConstructorTag } from './constants';
2
2
  export interface SerovalBaseNode {
3
3
  t: SerovalNodeType;
4
4
  i: number | undefined;
@@ -124,7 +124,7 @@ export interface SerovalPromiseNode extends SerovalBaseNode {
124
124
  }
125
125
  export interface SerovalErrorNode extends SerovalBaseNode {
126
126
  t: SerovalNodeType.Error;
127
- c: string;
127
+ s: ErrorConstructorTag;
128
128
  m: string;
129
129
  p: SerovalObjectRecordNode | undefined;
130
130
  i: number;
@@ -252,6 +252,13 @@ export interface SerovalDOMExceptionNode extends SerovalBaseNode {
252
252
  s: string;
253
253
  c: string;
254
254
  }
255
- 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;
255
+ export interface SerovalPluginNode extends SerovalBaseNode {
256
+ t: SerovalNodeType.Plugin;
257
+ i: number;
258
+ s: unknown;
259
+ c: string;
260
+ }
261
+ 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;
256
262
  export type SerovalAsyncNode = SerovalPromiseNode | SerovalBlobNode | SerovalFileNode | SerovalPromiseConstructorNode | SerovalPromiseResolveNode | SerovalPromiseRejectNode | SerovalReadableStreamConstructorNode | SerovalReadableStreamEnqueueNode | SerovalReadableStreamCloseNode | SerovalReadableStreamErrorNode | SerovalRequestNode | SerovalResponseNode;
257
263
  export type SerovalNode = SerovalSyncNode | SerovalAsyncNode;
264
+ //# sourceMappingURL=types.d.ts.map