@zudojs/serialization 0.0.1 → 1.0.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 (57) hide show
  1. package/README.md +129 -15
  2. package/dist/index.d.ts +3 -2
  3. package/dist/index.js +1 -1
  4. package/dist/serializerEnvelope/envelope.core.d.ts +28 -5
  5. package/dist/serializerEnvelope/envelope.core.js +79 -8
  6. package/dist/serializerEnvelope/index.d.ts +1 -1
  7. package/dist/serializerEnvelope/index.js +1 -1
  8. package/dist/serializerJson/jsonSerializer.core.d.ts +4 -0
  9. package/dist/serializerJson/jsonSerializer.core.js +96 -52
  10. package/dist/serializerRegistry/index.d.ts +1 -0
  11. package/dist/serializerRegistry/serializerRegistry.factory.d.ts +17 -5
  12. package/dist/serializerRegistry/serializerRegistry.factory.js +12 -9
  13. package/dist/serializerTransformsExt/error.transformer.d.ts +4 -1
  14. package/dist/serializerTransformsExt/error.transformer.js +15 -4
  15. package/dist/serializerTypes/index.d.ts +1 -1
  16. package/dist/serializerTypes/serializer.type.d.ts +30 -13
  17. package/package.json +18 -10
  18. package/dist/index.d.ts.map +0 -1
  19. package/dist/index.js.map +0 -1
  20. package/dist/serializerEnvelope/envelope.core.d.ts.map +0 -1
  21. package/dist/serializerEnvelope/envelope.core.js.map +0 -1
  22. package/dist/serializerEnvelope/index.d.ts.map +0 -1
  23. package/dist/serializerEnvelope/index.js.map +0 -1
  24. package/dist/serializerJson/index.d.ts.map +0 -1
  25. package/dist/serializerJson/index.js.map +0 -1
  26. package/dist/serializerJson/jsonSerializer.core.d.ts.map +0 -1
  27. package/dist/serializerJson/jsonSerializer.core.js.map +0 -1
  28. package/dist/serializerRegistry/index.d.ts.map +0 -1
  29. package/dist/serializerRegistry/index.js.map +0 -1
  30. package/dist/serializerRegistry/serializerRegistry.core.d.ts.map +0 -1
  31. package/dist/serializerRegistry/serializerRegistry.core.js.map +0 -1
  32. package/dist/serializerRegistry/serializerRegistry.factory.d.ts.map +0 -1
  33. package/dist/serializerRegistry/serializerRegistry.factory.js.map +0 -1
  34. package/dist/serializerTransforms/bigint.transformer.d.ts.map +0 -1
  35. package/dist/serializerTransforms/bigint.transformer.js.map +0 -1
  36. package/dist/serializerTransforms/date.transformer.d.ts.map +0 -1
  37. package/dist/serializerTransforms/date.transformer.js.map +0 -1
  38. package/dist/serializerTransforms/index.d.ts.map +0 -1
  39. package/dist/serializerTransforms/index.js.map +0 -1
  40. package/dist/serializerTransforms/map.transformer.d.ts.map +0 -1
  41. package/dist/serializerTransforms/map.transformer.js.map +0 -1
  42. package/dist/serializerTransforms/set.transformer.d.ts.map +0 -1
  43. package/dist/serializerTransforms/set.transformer.js.map +0 -1
  44. package/dist/serializerTransforms/transformerRegistry.core.d.ts.map +0 -1
  45. package/dist/serializerTransforms/transformerRegistry.core.js.map +0 -1
  46. package/dist/serializerTransformsExt/buffer.transformer.d.ts.map +0 -1
  47. package/dist/serializerTransformsExt/buffer.transformer.js.map +0 -1
  48. package/dist/serializerTransformsExt/encoding.utils.d.ts.map +0 -1
  49. package/dist/serializerTransformsExt/encoding.utils.js.map +0 -1
  50. package/dist/serializerTransformsExt/error.transformer.d.ts.map +0 -1
  51. package/dist/serializerTransformsExt/error.transformer.js.map +0 -1
  52. package/dist/serializerTransformsExt/index.d.ts.map +0 -1
  53. package/dist/serializerTransformsExt/index.js.map +0 -1
  54. package/dist/serializerTypes/index.d.ts.map +0 -1
  55. package/dist/serializerTypes/index.js.map +0 -1
  56. package/dist/serializerTypes/serializer.type.d.ts.map +0 -1
  57. package/dist/serializerTypes/serializer.type.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @zudojs/serialization
2
2
 
3
- Data translation layer with JSON serializer, type transformers, envelopes, and registry for Zudojs applications.
3
+ JSON serialization with optional type preservation, a transformer registry, and an envelope for cross-service payloads.
4
4
 
5
5
  ## Installation
6
6
 
@@ -13,26 +13,140 @@ npm install @zudojs/serialization
13
13
  ```typescript
14
14
  import { createSerializer } from "@zudojs/serialization";
15
15
 
16
- const serializer = createSerializer({
17
- format: "json",
18
- transformers: [dateTransformer, bigIntTransformer],
16
+ // Format is positional; options are per-instance defaults.
17
+ const serializer = createSerializer("json", { preserveTypes: true });
18
+
19
+ const json = serializer.serialize({ id: "123", createdAt: new Date() });
20
+ const value = serializer.deserialize<{ id: string; createdAt: Date }>(json);
21
+
22
+ value.createdAt instanceof Date; // true
23
+ ```
24
+
25
+ The methods are `serialize` / `deserialize`, and every option can be overridden
26
+ per call:
27
+
28
+ ```typescript
29
+ serializer.serialize(value, { pretty: true, maxSize: 1_000_000 });
30
+ serializer.deserialize(json, { strict: true, maxDepth: 64 });
31
+ ```
32
+
33
+ ## Type preservation
34
+
35
+ By default the serializer is a thin pass to `JSON.stringify`/`JSON.parse`. With
36
+ `preserveTypes`, values that JSON cannot represent are tagged and restored:
37
+
38
+ ```typescript
39
+ const s = createSerializer("json", { preserveTypes: true });
40
+
41
+ const value = {
42
+ when: new Date(),
43
+ amount: 42n,
44
+ seen: new Set(["a"]),
45
+ index: new Map([["k", new Date()]]),
46
+ bytes: new Uint8Array([1, 2, 3]),
47
+ };
48
+
49
+ const json = s.serialize(value);
50
+ const back = s.deserialize<typeof value>(json);
51
+ // Date, BigInt, Set, Map, Uint8Array all restored — including values nested
52
+ // inside a Map or Set.
53
+ ```
54
+
55
+ Built-in transformers cover `Date`, `BigInt`, `Map`, `Set`, `Uint8Array`/`Buffer`
56
+ and `Error`. Register your own against the same contract:
57
+
58
+ ```typescript
59
+ import { TransformerRegistry, JSONSerializer } from "@zudojs/serialization";
60
+
61
+ const registry = new TransformerRegistry();
62
+ registry.register({
63
+ type: "Money",
64
+ canSerialize: (v): v is Money => v instanceof Money,
65
+ serialize: (v) => ({ $type: "Money", $value: v.toString() }),
66
+ deserialize: (v) => Money.parse((v as { $value: string }).$value),
67
+ });
68
+
69
+ const serializer = new JSONSerializer({ transformers: registry });
70
+ ```
71
+
72
+ ## Untrusted input
73
+
74
+ `deserialize` is the boundary that matters — the string arrives from a queue, an
75
+ RPC peer or a request body.
76
+
77
+ - **Prototype-polluting keys are dropped** on the `preserveTypes` path, which
78
+ is the one that rebuilds objects key by key. `__proto__`, `constructor` and
79
+ `prototype` never reach the reconstructed object; set `allowUnsafeKeys` to
80
+ keep them, as real own properties, when the payload is trusted. The fast path
81
+ is plain `JSON.parse`, where `__proto__` survives as an inert own property and
82
+ never reaches the prototype — but do not spread or deep-merge such an object
83
+ into another without screening its keys.
84
+ - **Input is size-bounded** by `maxSize`, and depth-bounded by `maxDepth`.
85
+ - **An unrecognised `$type` tag is treated as ordinary data**, so a peer cannot
86
+ stop the consumer with `{"$type":"anything"}` and your own records may carry a
87
+ `$type` field. Pass `strict: true` to make an unknown tag an error instead.
88
+
89
+ ## Errors
90
+
91
+ Stack traces are **not** serialized unless you ask, because a serialized error
92
+ routinely ends up in a queue message or a log sink:
93
+
94
+ ```typescript
95
+ serializer.serialize({ error }, { preserveTypes: true }); // name, message, code
96
+ serializer.serialize({ error }, { preserveTypes: true, includeStack: true });
97
+ ```
98
+
99
+ On the way back, a wire-supplied stack is attached as a non-enumerable
100
+ `originalStack` rather than overwriting the reconstructed error's own.
101
+
102
+ ## Envelopes
103
+
104
+ An envelope carries the metadata a consumer needs to decode the payload:
105
+
106
+ ```typescript
107
+ import {
108
+ serializeToEnvelope,
109
+ deserializeFromEnvelope,
110
+ } from "@zudojs/serialization";
111
+
112
+ const envelope = serializeToEnvelope(payload, serializer);
113
+ // { metadata: { format, version, contentType, encoding }, data }
114
+
115
+ const value = deserializeFromEnvelope(envelope, serializer, "json");
116
+ ```
117
+
118
+ Both helpers forward a fourth argument to the serializer, so the options that
119
+ matter on the wire are reachable through an envelope:
120
+
121
+ ```typescript
122
+ const envelope = serializeToEnvelope(payload, serializer, "json", {
123
+ preserveTypes: true,
19
124
  });
20
125
 
21
- const json = serializer.stringify({ id: "123", createdAt: new Date() });
22
- const obj = serializer.parse(json);
126
+ const value = deserializeFromEnvelope(envelope, serializer, "json", {
127
+ preserveTypes: true,
128
+ strict: true,
129
+ maxSize: 1_000_000,
130
+ });
23
131
  ```
24
132
 
133
+ `unwrapEnvelope` validates the shape and rejects a payload stamped with a schema
134
+ version newer than this build understands, rather than misreading it.
135
+ `contentType` is derived from the format.
136
+
25
137
  ## Features
26
138
 
27
- - JSON serialization with type transformers
28
- - Envelope pattern for API responses
29
- - Transformer registry
30
- - Support for BigInt, Date, Buffer, and custom types
31
- - Circular reference detection
139
+ - JSON serialization with opt-in type preservation
140
+ - Built-in transformers for Date, BigInt, Map, Set, Buffer and Error
141
+ - Transformer registry for custom types
142
+ - Envelope pattern with schema-version and encoding checks
143
+ - Prototype-pollution protection on reconstruction
144
+ - Size and depth limits on both directions
145
+ - Circular reference detection (on the `preserveTypes` path)
32
146
 
33
147
  ## Use Cases
34
148
 
35
- - API response serialization
36
- - Event payload serialization
37
- - Cache serialization
38
- - Cross-service data transfer
149
+ - Queue and RPC message payloads
150
+ - Cross-service communication
151
+ - Cache value encoding
152
+ - API responses carrying non-JSON types
package/dist/index.d.ts CHANGED
@@ -24,7 +24,7 @@
24
24
  * );
25
25
  * ```
26
26
  */
27
- export type { SerializationFormat, SerializedValue, SerializeOptions, DeserializeOptions, SerializationMetadata, SerializedEnvelope, Serializer, AsyncSerializer, TypeTransformer, UndefinedStrategy, } from "./serializerTypes/index.js";
27
+ export type { SerializationFormat, SerializedValue, SerializeOptions, DeserializeOptions, SerializationMetadata, SerializedEnvelope, Serializer, TypeTransformer, } from "./serializerTypes/index.js";
28
28
  export { JSONSerializer } from "./serializerJson/index.js";
29
29
  export { TransformerRegistry } from "./serializerTransforms/index.js";
30
30
  export { DateTransformer } from "./serializerTransforms/index.js";
@@ -34,7 +34,8 @@ export { SetTransformer } from "./serializerTransforms/index.js";
34
34
  export { BufferTransformer } from "./serializerTransformsExt/index.js";
35
35
  export { ErrorTransformer } from "./serializerTransformsExt/index.js";
36
36
  export { toBase64, fromBase64, encodeUtf8, decodeUtf8, } from "./serializerTransformsExt/index.js";
37
- export { createEnvelope, unwrapEnvelope, serializeToEnvelope, deserializeFromEnvelope, } from "./serializerEnvelope/index.js";
37
+ export { createEnvelope, assertValidEnvelope, contentTypeForFormat, unwrapEnvelope, serializeToEnvelope, deserializeFromEnvelope, } from "./serializerEnvelope/index.js";
38
38
  export { SerializerRegistry } from "./serializerRegistry/index.js";
39
39
  export { createSerializer, createDefaultRegistry, } from "./serializerRegistry/index.js";
40
+ export type { CreateSerializerOptions } from "./serializerRegistry/index.js";
40
41
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -37,7 +37,7 @@ export { BufferTransformer } from "./serializerTransformsExt/index.js";
37
37
  export { ErrorTransformer } from "./serializerTransformsExt/index.js";
38
38
  export { toBase64, fromBase64, encodeUtf8, decodeUtf8, } from "./serializerTransformsExt/index.js";
39
39
  // ─── Envelope ─────────────────────────────────────────────────
40
- export { createEnvelope, unwrapEnvelope, serializeToEnvelope, deserializeFromEnvelope, } from "./serializerEnvelope/index.js";
40
+ export { createEnvelope, assertValidEnvelope, contentTypeForFormat, unwrapEnvelope, serializeToEnvelope, deserializeFromEnvelope, } from "./serializerEnvelope/index.js";
41
41
  // ─── Registry & Factory ───────────────────────────────────────
42
42
  export { SerializerRegistry } from "./serializerRegistry/index.js";
43
43
  export { createSerializer, createDefaultRegistry, } from "./serializerRegistry/index.js";
@@ -5,7 +5,7 @@
5
5
  * so consumers know how to deserialize the payload. Essential for
6
6
  * messaging, queues, RPC, and cross-service communication.
7
7
  */
8
- import type { SerializedEnvelope, SerializedValue } from "../serializerTypes/index.js";
8
+ import type { SerializedEnvelope, SerializedValue, SerializeOptions, DeserializeOptions } from "../serializerTypes/index.js";
9
9
  /**
10
10
  * Create a serialization envelope wrapping data with metadata.
11
11
  *
@@ -19,6 +19,20 @@ export declare function createEnvelope(data: SerializedValue, format?: string, o
19
19
  readonly contentType?: string;
20
20
  readonly encoding?: string;
21
21
  }): SerializedEnvelope;
22
+ /**
23
+ * Maps a format identifier to its MIME content type.
24
+ *
25
+ * Defaulting every envelope to `application/json` regardless of format is how
26
+ * a msgpack payload ends up labelled as JSON on the wire.
27
+ */
28
+ export declare function contentTypeForFormat(format: string): string;
29
+ /**
30
+ * Validates that a value received from the wire is a well-formed envelope.
31
+ *
32
+ * @param envelope - The candidate envelope.
33
+ * @throws {Error} when the shape or schema version is unusable.
34
+ */
35
+ export declare function assertValidEnvelope(envelope: unknown): asserts envelope is SerializedEnvelope;
22
36
  /**
23
37
  * Extract the data from an envelope, validating metadata.
24
38
  *
@@ -34,20 +48,29 @@ export declare function unwrapEnvelope(envelope: SerializedEnvelope, expectedFor
34
48
  * @param value - The value to serialize.
35
49
  * @param serializer - The serializer to use.
36
50
  * @param format - The format identifier for metadata.
51
+ * @param options - Serialize options forwarded to the serializer. Without this
52
+ * the helper could only ever call `serialize(value)`, so `preserveTypes`,
53
+ * `pretty` and the size/depth limits were unreachable through an envelope
54
+ * unless they happened to be baked into the serializer instance.
37
55
  * @returns A SerializedEnvelope containing the serialized data.
38
56
  */
39
57
  export declare function serializeToEnvelope<T>(value: T, serializer: {
40
- serialize: (v: T) => string;
41
- }, format?: string): SerializedEnvelope;
58
+ serialize: (v: T, options?: SerializeOptions) => string;
59
+ contentType?: string;
60
+ }, format?: string, options?: SerializeOptions): SerializedEnvelope;
42
61
  /**
43
62
  * Unwrap an envelope and deserialize the data.
44
63
  *
45
64
  * @param envelope - The envelope to unwrap.
46
65
  * @param deserializer - The deserializer to use.
47
66
  * @param expectedFormat - Optional format to validate against.
67
+ * @param options - Deserialize options forwarded to the deserializer, so that
68
+ * `preserveTypes`, `strict`, `maxSize` and `maxDepth` are reachable through
69
+ * an envelope. Envelope payloads arrive from the wire, which is exactly
70
+ * where those limits matter.
48
71
  * @returns The deserialized value.
49
72
  */
50
73
  export declare function deserializeFromEnvelope<T>(envelope: SerializedEnvelope, deserializer: {
51
- deserialize: <U>(v: string) => U;
52
- }, expectedFormat?: string): T;
74
+ deserialize: <U>(v: string, options?: DeserializeOptions) => U;
75
+ }, expectedFormat?: string, options?: DeserializeOptions): T;
53
76
  //# sourceMappingURL=envelope.core.d.ts.map
@@ -6,7 +6,7 @@
6
6
  * messaging, queues, RPC, and cross-service communication.
7
7
  */
8
8
  import { SerializationFormat, SerializationContentType, SERIALIZATION_SCHEMA_VERSION, } from "@zudojs/constants";
9
- import { encodeUtf8, decodeUtf8 } from "../serializerTransformsExt/index.js";
9
+ import { decodeUtf8 } from "../serializerTransformsExt/index.js";
10
10
  /**
11
11
  * Create a serialization envelope wrapping data with metadata.
12
12
  *
@@ -20,12 +20,66 @@ export function createEnvelope(data, format = SerializationFormat.JSON, options
20
20
  metadata: {
21
21
  format,
22
22
  version: options.version ?? SERIALIZATION_SCHEMA_VERSION,
23
- contentType: options.contentType ?? SerializationContentType.JSON,
23
+ contentType: options.contentType ?? contentTypeForFormat(format),
24
24
  encoding: options.encoding ?? "utf-8",
25
25
  },
26
26
  data,
27
27
  };
28
28
  }
29
+ /**
30
+ * Maps a format identifier to its MIME content type.
31
+ *
32
+ * Defaulting every envelope to `application/json` regardless of format is how
33
+ * a msgpack payload ends up labelled as JSON on the wire.
34
+ */
35
+ export function contentTypeForFormat(format) {
36
+ switch (format) {
37
+ case SerializationFormat.JSON:
38
+ return SerializationContentType.JSON;
39
+ case "text":
40
+ return "text/plain";
41
+ case "binary":
42
+ return "application/octet-stream";
43
+ case "messagepack":
44
+ case "msgpack":
45
+ return "application/msgpack";
46
+ default:
47
+ return "application/octet-stream";
48
+ }
49
+ }
50
+ /**
51
+ * Validates that a value received from the wire is a well-formed envelope.
52
+ *
53
+ * @param envelope - The candidate envelope.
54
+ * @throws {Error} when the shape or schema version is unusable.
55
+ */
56
+ export function assertValidEnvelope(envelope) {
57
+ if (typeof envelope !== "object" || envelope === null) {
58
+ throw new Error(`Malformed envelope: expected an object, got ${envelope === null ? "null" : typeof envelope}`);
59
+ }
60
+ const candidate = envelope;
61
+ if (typeof candidate.metadata !== "object" || candidate.metadata === null) {
62
+ throw new Error("Malformed envelope: missing metadata");
63
+ }
64
+ const metadata = candidate.metadata;
65
+ if (typeof metadata.format !== "string" || metadata.format.length === 0) {
66
+ throw new Error("Malformed envelope: metadata.format is missing");
67
+ }
68
+ if (typeof candidate.data !== "string" &&
69
+ !(candidate.data instanceof Uint8Array)) {
70
+ throw new Error("Malformed envelope: data must be a string or Uint8Array");
71
+ }
72
+ // The version exists so a future producer can be detected rather than
73
+ // silently misread. Older versions stay readable; newer ones do not.
74
+ if (metadata.version !== undefined) {
75
+ if (!Number.isInteger(metadata.version)) {
76
+ throw new Error(`Malformed envelope: metadata.version must be an integer, got ${String(metadata.version)}`);
77
+ }
78
+ if (metadata.version > SERIALIZATION_SCHEMA_VERSION) {
79
+ throw new Error(`Unsupported envelope schema version ${metadata.version}: this build understands up to ${SERIALIZATION_SCHEMA_VERSION}`);
80
+ }
81
+ }
82
+ }
29
83
  /**
30
84
  * Extract the data from an envelope, validating metadata.
31
85
  *
@@ -35,6 +89,7 @@ export function createEnvelope(data, format = SerializationFormat.JSON, options
35
89
  * @throws {Error} when the envelope format doesn't match expectations.
36
90
  */
37
91
  export function unwrapEnvelope(envelope, expectedFormat) {
92
+ assertValidEnvelope(envelope);
38
93
  if (expectedFormat && envelope.metadata.format !== expectedFormat) {
39
94
  throw new Error(`Envelope format mismatch: expected "${expectedFormat}", got "${envelope.metadata.format}"`);
40
95
  }
@@ -46,11 +101,17 @@ export function unwrapEnvelope(envelope, expectedFormat) {
46
101
  * @param value - The value to serialize.
47
102
  * @param serializer - The serializer to use.
48
103
  * @param format - The format identifier for metadata.
104
+ * @param options - Serialize options forwarded to the serializer. Without this
105
+ * the helper could only ever call `serialize(value)`, so `preserveTypes`,
106
+ * `pretty` and the size/depth limits were unreachable through an envelope
107
+ * unless they happened to be baked into the serializer instance.
49
108
  * @returns A SerializedEnvelope containing the serialized data.
50
109
  */
51
- export function serializeToEnvelope(value, serializer, format = SerializationFormat.JSON) {
52
- const data = serializer.serialize(value);
53
- return createEnvelope(data, format);
110
+ export function serializeToEnvelope(value, serializer, format = SerializationFormat.JSON, options) {
111
+ const data = serializer.serialize(value, options);
112
+ return createEnvelope(data, format, {
113
+ contentType: serializer.contentType,
114
+ });
54
115
  }
55
116
  /**
56
117
  * Unwrap an envelope and deserialize the data.
@@ -58,11 +119,21 @@ export function serializeToEnvelope(value, serializer, format = SerializationFor
58
119
  * @param envelope - The envelope to unwrap.
59
120
  * @param deserializer - The deserializer to use.
60
121
  * @param expectedFormat - Optional format to validate against.
122
+ * @param options - Deserialize options forwarded to the deserializer, so that
123
+ * `preserveTypes`, `strict`, `maxSize` and `maxDepth` are reachable through
124
+ * an envelope. Envelope payloads arrive from the wire, which is exactly
125
+ * where those limits matter.
61
126
  * @returns The deserialized value.
62
127
  */
63
- export function deserializeFromEnvelope(envelope, deserializer, expectedFormat) {
128
+ export function deserializeFromEnvelope(envelope, deserializer, expectedFormat, options) {
64
129
  const data = unwrapEnvelope(envelope, expectedFormat);
65
- const str = typeof data === "string" ? data : decodeUtf8(data);
66
- return deserializer.deserialize(str);
130
+ if (typeof data === "string") {
131
+ return deserializer.deserialize(data, options);
132
+ }
133
+ const encoding = (envelope.metadata.encoding ?? "utf-8").toLowerCase();
134
+ if (encoding !== "utf-8" && encoding !== "utf8") {
135
+ throw new Error(`Unsupported envelope encoding "${envelope.metadata.encoding}": only UTF-8 is supported`);
136
+ }
137
+ return deserializer.deserialize(decodeUtf8(data), options);
67
138
  }
68
139
  //# sourceMappingURL=envelope.core.js.map
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * Wraps serialized data with metadata for cross-service communication.
5
5
  */
6
- export { createEnvelope, unwrapEnvelope, serializeToEnvelope, deserializeFromEnvelope, } from "./envelope.core.js";
6
+ export { createEnvelope, assertValidEnvelope, contentTypeForFormat, unwrapEnvelope, serializeToEnvelope, deserializeFromEnvelope, } from "./envelope.core.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * Wraps serialized data with metadata for cross-service communication.
5
5
  */
6
- export { createEnvelope, unwrapEnvelope, serializeToEnvelope, deserializeFromEnvelope, } from "./envelope.core.js";
6
+ export { createEnvelope, assertValidEnvelope, contentTypeForFormat, unwrapEnvelope, serializeToEnvelope, deserializeFromEnvelope, } from "./envelope.core.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -11,8 +11,11 @@ export declare class JSONSerializer implements Serializer<unknown, string> {
11
11
  readonly name = "json";
12
12
  readonly contentType = "application/json";
13
13
  private readonly transformers;
14
+ private readonly defaults;
14
15
  constructor(options?: {
15
16
  readonly transformers?: TransformerRegistry;
17
+ /** Default options merged into every call. */
18
+ readonly defaults?: SerializeOptions & DeserializeOptions;
16
19
  });
17
20
  /** Register a custom type transformer. */
18
21
  registerTransformer(transformer: import("../serializerTypes/index.js").TypeTransformer): void;
@@ -22,5 +25,6 @@ export declare class JSONSerializer implements Serializer<unknown, string> {
22
25
  private restoreValue;
23
26
  private assertValidJson;
24
27
  private assertOutputSize;
28
+ private assertInputSize;
25
29
  }
26
30
  //# sourceMappingURL=jsonSerializer.core.d.ts.map
@@ -8,9 +8,9 @@
8
8
  import { TransformerRegistry } from "../serializerTransforms/index.js";
9
9
  import { DateTransformer, BigIntTransformer, MapTransformer, SetTransformer, } from "../serializerTransforms/index.js";
10
10
  import { BufferTransformer, ErrorTransformer, } from "../serializerTransformsExt/index.js";
11
- import { SerializationLimits, SerializationTags } from "@zudojs/constants";
11
+ import { SerializationLimits, SerializationTags, SCHEMA_FORBIDDEN_KEYS, } from "@zudojs/constants";
12
12
  import { isPlainObject } from "@zudojs/types";
13
- import { assertNoCircularReference, assertDepthWithinLimit, assertSizeWithinLimit, } from "@zudojs/validation";
13
+ import { assertNoCircularReference, assertDepthWithinLimit, } from "@zudojs/validation";
14
14
  /** Default transformer registry with all built-in transformers. */
15
15
  function createDefaultTransformers() {
16
16
  const registry = new TransformerRegistry();
@@ -26,110 +26,124 @@ export class JSONSerializer {
26
26
  name = "json";
27
27
  contentType = "application/json";
28
28
  transformers;
29
+ defaults;
29
30
  constructor(options) {
30
31
  this.transformers = options?.transformers ?? createDefaultTransformers();
32
+ this.defaults = options?.defaults ?? {};
31
33
  }
32
34
  /** Register a custom type transformer. */
33
35
  registerTransformer(transformer) {
34
36
  this.transformers.register(transformer);
35
37
  }
36
38
  serialize(value, options) {
37
- const maxDepth = options?.maxDepth ?? SerializationLimits.MAX_DEPTH;
38
- const maxSize = options?.maxSize ?? SerializationLimits.MAX_SIZE;
39
- if (options?.preserveTypes === true) {
39
+ const opts = { ...this.defaults, ...options };
40
+ const maxDepth = opts.maxDepth ?? SerializationLimits.MAX_DEPTH;
41
+ const maxSize = opts.maxSize ?? SerializationLimits.MAX_SIZE;
42
+ if (opts.preserveTypes === true) {
40
43
  assertNoCircularReference(value);
41
44
  assertDepthWithinLimit(value, maxDepth);
42
- const transformed = this.transformValue(value, 0, maxDepth);
43
- const json = options?.pretty
44
- ? JSON.stringify(transformed, null, options?.indent ?? 2)
45
+ const transformed = this.transformValue(value, 0, maxDepth, opts);
46
+ const json = opts.pretty
47
+ ? JSON.stringify(transformed, null, opts.indent ?? 2)
45
48
  : JSON.stringify(transformed);
46
49
  this.assertOutputSize(json, maxSize);
47
50
  return json;
48
51
  }
49
- const json = options?.pretty
50
- ? JSON.stringify(value, null, options?.indent ?? 2)
52
+ const json = opts.pretty
53
+ ? JSON.stringify(value, null, opts.indent ?? 2)
51
54
  : JSON.stringify(value);
52
55
  this.assertOutputSize(json, maxSize);
53
56
  return json;
54
57
  }
55
58
  deserialize(value, options) {
56
- if (options?.strict === true)
59
+ const opts = { ...this.defaults, ...options };
60
+ // Bound the input before parsing. `maxSize` used to apply on the way out
61
+ // only, which is the wrong direction: serialized output is ours, whereas
62
+ // the string handed to `deserialize` arrives from a queue, an RPC peer, or
63
+ // a request body.
64
+ const maxSize = opts.maxSize ?? SerializationLimits.MAX_SIZE;
65
+ this.assertInputSize(value, maxSize);
66
+ if (opts.strict === true)
57
67
  this.assertValidJson(value);
58
68
  const parsed = JSON.parse(value);
59
- if (options?.preserveTypes === true) {
60
- const maxDepth = options?.maxDepth ?? SerializationLimits.MAX_DEPTH;
69
+ if (opts.preserveTypes === true) {
70
+ const maxDepth = opts.maxDepth ?? SerializationLimits.MAX_DEPTH;
61
71
  assertDepthWithinLimit(parsed, maxDepth);
62
- return this.restoreValue(parsed, 0, maxDepth);
72
+ return this.restoreValue(parsed, 0, maxDepth, opts);
63
73
  }
64
74
  return parsed;
65
75
  }
66
- transformValue(value, depth, maxDepth) {
76
+ transformValue(value, depth, maxDepth, options) {
67
77
  if (value === null || value === undefined)
68
78
  return value;
69
79
  if (typeof value === "bigint") {
70
80
  const transformer = this.transformers.findForValue(value);
71
- return transformer ? transformer.serialize(value) : value.toString();
81
+ return transformer
82
+ ? transformer.serialize(value, options)
83
+ : value.toString();
72
84
  }
73
85
  if (typeof value !== "object")
74
86
  return value;
75
- if (depth >= maxDepth)
76
- return value;
87
+ if (depth >= maxDepth) {
88
+ // Depth is pre-checked by assertDepthWithinLimit, so this is a belt-and
89
+ // braces guard. Returning the raw value would silently emit an untagged
90
+ // Map or Date, which cannot round-trip — fail loudly instead.
91
+ throw new Error(`Serialization exceeded maximum depth of ${maxDepth}`);
92
+ }
77
93
  if (Array.isArray(value)) {
78
- return value.map((item) => this.transformValue(item, depth + 1, maxDepth));
94
+ return value.map((item) => this.transformValue(item, depth + 1, maxDepth, options));
79
95
  }
80
96
  const transformer = this.transformers.findForValue(value);
81
97
  if (transformer) {
82
- const raw = transformer.serialize(value);
83
- return this.transformValue(raw, depth + 1, maxDepth);
84
- }
85
- if (value instanceof Map) {
86
- const entries = [];
87
- for (const [k, v] of value) {
88
- entries.push([
89
- this.transformValue(k, depth + 1, maxDepth),
90
- this.transformValue(v, depth + 1, maxDepth),
91
- ]);
92
- }
93
- return {
94
- [SerializationTags.TYPE]: "Map",
95
- [SerializationTags.VALUE]: entries,
96
- };
97
- }
98
- if (value instanceof Set) {
99
- return {
100
- [SerializationTags.TYPE]: "Set",
101
- [SerializationTags.VALUE]: [...value].map((v) => this.transformValue(v, depth + 1, maxDepth)),
102
- };
98
+ const raw = transformer.serialize(value, options);
99
+ return this.transformValue(raw, depth + 1, maxDepth, options);
103
100
  }
104
101
  if (isPlainObject(value)) {
105
102
  const result = {};
106
103
  for (const key of Object.keys(value)) {
107
- result[key] = this.transformValue(value[key], depth + 1, maxDepth);
104
+ defineKey(result, key, this.transformValue(value[key], depth + 1, maxDepth, options), options.allowUnsafeKeys === true);
108
105
  }
109
106
  return result;
110
107
  }
111
108
  return value;
112
109
  }
113
- restoreValue(value, depth, maxDepth) {
110
+ restoreValue(value, depth, maxDepth, options) {
114
111
  if (value === null || value === undefined)
115
112
  return value;
116
113
  if (typeof value !== "object")
117
114
  return value;
118
- if (depth >= maxDepth)
119
- return value;
115
+ if (depth >= maxDepth) {
116
+ throw new Error(`Deserialization exceeded maximum depth of ${maxDepth}`);
117
+ }
120
118
  if (Array.isArray(value)) {
121
- return value.map((item) => this.restoreValue(item, depth + 1, maxDepth));
119
+ return value.map((item) => this.restoreValue(item, depth + 1, maxDepth, options));
122
120
  }
123
121
  const obj = value;
124
122
  const typeTag = obj[SerializationTags.TYPE];
125
- if (typeof typeTag === "string") {
126
- const transformer = this.transformers.get(typeTag);
127
- return transformer.deserialize(value);
123
+ if (typeof typeTag === "string" && this.transformers.has(typeTag)) {
124
+ // Restore the children first. A transformer receives a plain structure
125
+ // and has no way to recurse back into this serializer, so handing it the
126
+ // still-tagged payload is what used to leave a Map full of raw
127
+ // `{$type, $value}` objects.
128
+ const restoredShell = {};
129
+ for (const key of Object.keys(obj)) {
130
+ defineKey(restoredShell, key, key === SerializationTags.TYPE
131
+ ? obj[key]
132
+ : this.restoreValue(obj[key], depth + 1, maxDepth, options), options.allowUnsafeKeys === true);
133
+ }
134
+ return this.transformers.get(typeTag).deserialize(restoredShell, options);
135
+ }
136
+ // An unknown tag is ordinary data. Throwing here let any peer crash the
137
+ // consumer with `{"$type":"anything"}`, and made legitimate payloads that
138
+ // happen to carry a `$type` field unparseable.
139
+ if (typeof typeTag === "string" && options.strict === true) {
140
+ throw new Error(`Unknown serialization type tag: "${typeTag}". ` +
141
+ "Register a transformer for it, or deserialize without strict mode.");
128
142
  }
129
143
  if (isPlainObject(value)) {
130
144
  const result = {};
131
145
  for (const key of Object.keys(value)) {
132
- result[key] = this.restoreValue(value[key], depth + 1, maxDepth);
146
+ defineKey(result, key, this.restoreValue(value[key], depth + 1, maxDepth, options), options.allowUnsafeKeys === true);
133
147
  }
134
148
  return result;
135
149
  }
@@ -144,12 +158,42 @@ export class JSONSerializer {
144
158
  }
145
159
  }
146
160
  assertOutputSize(json, maxSize) {
147
- const size = typeof Buffer !== "undefined"
148
- ? Buffer.byteLength(json, "utf-8")
149
- : new TextEncoder().encode(json).byteLength;
161
+ const size = byteLength(json);
162
+ if (size > maxSize) {
163
+ throw new Error(`Serialized payload too large: ${size} bytes (max: ${maxSize})`);
164
+ }
165
+ }
166
+ assertInputSize(json, maxSize) {
167
+ const size = byteLength(json);
150
168
  if (size > maxSize) {
151
169
  throw new Error(`Serialized payload too large: ${size} bytes (max: ${maxSize})`);
152
170
  }
153
171
  }
154
172
  }
173
+ /** Byte length of a string, in whichever runtime we are on. */
174
+ function byteLength(value) {
175
+ return typeof Buffer !== "undefined"
176
+ ? Buffer.byteLength(value, "utf-8")
177
+ : new TextEncoder().encode(value).byteLength;
178
+ }
179
+ /**
180
+ * Assigns a key onto a freshly built object without invoking a setter.
181
+ *
182
+ * Plain assignment of `__proto__` does not create an own property — it calls
183
+ * the inherited setter and replaces the object's prototype, so an attacker's
184
+ * keys resolve on the result while `Object.keys` shows nothing. `defineProperty`
185
+ * always creates a real own property, and forbidden keys are dropped outright
186
+ * unless the caller has explicitly opted in with `allowUnsafeKeys`.
187
+ */
188
+ function defineKey(target, key, value, allowUnsafeKeys) {
189
+ if (!allowUnsafeKeys && SCHEMA_FORBIDDEN_KEYS.has(key)) {
190
+ return;
191
+ }
192
+ Object.defineProperty(target, key, {
193
+ value,
194
+ writable: true,
195
+ enumerable: true,
196
+ configurable: true,
197
+ });
198
+ }
155
199
  //# sourceMappingURL=jsonSerializer.core.js.map
@@ -6,4 +6,5 @@
6
6
  */
7
7
  export { SerializerRegistry } from "./serializerRegistry.core.js";
8
8
  export { createSerializer, createDefaultRegistry, } from "./serializerRegistry.factory.js";
9
+ export type { CreateSerializerOptions } from "./serializerRegistry.factory.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -6,21 +6,33 @@
6
6
  * exposing concrete class constructors.
7
7
  */
8
8
  import type { Serializer, SerializationFormat } from "../serializerTypes/index.js";
9
+ import { SerializationFormat as Format } from "@zudojs/constants";
9
10
  import { TransformerRegistry } from "../serializerTransforms/index.js";
10
11
  import { SerializerRegistry } from "./serializerRegistry.core.js";
12
+ /** Options accepted when creating a serializer. */
13
+ export interface CreateSerializerOptions {
14
+ /** Transformer registry to use instead of the built-in one. */
15
+ readonly transformers?: TransformerRegistry;
16
+ /** Pretty-print by default. Overridable per call. */
17
+ readonly pretty?: boolean;
18
+ /** Preserve special JS types by default. Overridable per call. */
19
+ readonly preserveTypes?: boolean;
20
+ }
11
21
  /**
12
22
  * Create a serializer for the given format.
13
23
  *
24
+ * The `"json"` overload reports `Serializer<unknown, string>` rather than the
25
+ * `string | Uint8Array` union. JSON output is always a string, and the union
26
+ * made the result unusable with this package's own `serializeToEnvelope`,
27
+ * which needs a string-producing serializer.
28
+ *
14
29
  * @param format - The serialization format (e.g., "json").
15
30
  * @param options - Optional configuration for the serializer.
16
31
  * @returns A Serializer instance.
17
32
  * @throws {UnsupportedSerializationFormatError} when the format is not supported.
18
33
  */
19
- export declare function createSerializer(format: SerializationFormat, options?: {
20
- readonly transformers?: TransformerRegistry;
21
- readonly pretty?: boolean;
22
- readonly preserveTypes?: boolean;
23
- }): Serializer;
34
+ export declare function createSerializer(format: typeof Format.JSON, options?: CreateSerializerOptions): Serializer<unknown, string>;
35
+ export declare function createSerializer(format: SerializationFormat, options?: CreateSerializerOptions): Serializer;
24
36
  /**
25
37
  * Create a default serializer registry pre-populated with built-in serializers.
26
38
  *
@@ -10,18 +10,21 @@ import { UnsupportedSerializationFormatError } from "@zudojs/errors";
10
10
  import { SerializationFormat as Format } from "@zudojs/constants";
11
11
  import { TransformerRegistry } from "../serializerTransforms/index.js";
12
12
  import { SerializerRegistry } from "./serializerRegistry.core.js";
13
- /**
14
- * Create a serializer for the given format.
15
- *
16
- * @param format - The serialization format (e.g., "json").
17
- * @param options - Optional configuration for the serializer.
18
- * @returns A Serializer instance.
19
- * @throws {UnsupportedSerializationFormatError} when the format is not supported.
20
- */
21
13
  export function createSerializer(format, options) {
22
14
  switch (format) {
23
15
  case Format.JSON:
24
- return new JSONSerializer({ transformers: options?.transformers });
16
+ // `pretty` and `preserveTypes` used to be accepted and thrown away.
17
+ // They are now carried as per-instance defaults that each call can
18
+ // still override.
19
+ return new JSONSerializer({
20
+ transformers: options?.transformers,
21
+ defaults: {
22
+ ...(options?.pretty !== undefined ? { pretty: options.pretty } : {}),
23
+ ...(options?.preserveTypes !== undefined
24
+ ? { preserveTypes: options.preserveTypes }
25
+ : {}),
26
+ },
27
+ });
25
28
  default:
26
29
  throw new UnsupportedSerializationFormatError(format);
27
30
  }
@@ -2,7 +2,10 @@
2
2
  * @zudojs/serialization — Error transformer.
3
3
  *
4
4
  * Preserves Error instances across serialization boundaries.
5
- * Stack traces are controlled via options for security.
5
+ *
6
+ * Stack traces are omitted unless `includeStack` is set: a stack names
7
+ * absolute file paths and internal call structure, and a serialized error
8
+ * routinely ends up in a queue message, an RPC response, or a log sink.
6
9
  */
7
10
  import type { TypeTransformer } from "../serializerTypes/index.js";
8
11
  /** Transformer that handles Error round-trips. */
@@ -2,7 +2,10 @@
2
2
  * @zudojs/serialization — Error transformer.
3
3
  *
4
4
  * Preserves Error instances across serialization boundaries.
5
- * Stack traces are controlled via options for security.
5
+ *
6
+ * Stack traces are omitted unless `includeStack` is set: a stack names
7
+ * absolute file paths and internal call structure, and a serialized error
8
+ * routinely ends up in a queue message, an RPC response, or a log sink.
6
9
  */
7
10
  import { SerializationTags } from "@zudojs/constants";
8
11
  const ERROR_TYPE = "Error";
@@ -12,13 +15,13 @@ export const ErrorTransformer = {
12
15
  canSerialize(value) {
13
16
  return value instanceof Error;
14
17
  },
15
- serialize(value) {
18
+ serialize(value, options) {
16
19
  const result = {
17
20
  [SerializationTags.TYPE]: ERROR_TYPE,
18
21
  name: value.name,
19
22
  message: value.message,
20
23
  };
21
- if (value.stack !== undefined) {
24
+ if (options?.includeStack === true && value.stack !== undefined) {
22
25
  result.stack = value.stack;
23
26
  }
24
27
  const code = value.code;
@@ -35,9 +38,17 @@ export const ErrorTransformer = {
35
38
  if (typeof name === "string" && name !== "Error") {
36
39
  error.name = name;
37
40
  }
41
+ // A stack from the wire is attacker-controlled text. Restoring it over the
42
+ // real one would make the reconstructed error lie about where it came
43
+ // from, so it is carried as a separate, clearly-named field instead.
38
44
  const stack = data.stack;
39
45
  if (typeof stack === "string") {
40
- error.stack = stack;
46
+ Object.defineProperty(error, "originalStack", {
47
+ value: stack,
48
+ writable: true,
49
+ enumerable: false,
50
+ configurable: true,
51
+ });
41
52
  }
42
53
  const code = data.code;
43
54
  if (typeof code === "string") {
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * Core contracts for serializers, transformers, and serialization options.
5
5
  */
6
- export type { SerializationFormat, SerializedValue, SerializeOptions, DeserializeOptions, SerializationMetadata, SerializedEnvelope, Serializer, AsyncSerializer, TypeTransformer, UndefinedStrategy, } from "./serializer.type.js";
6
+ export type { SerializationFormat, SerializedValue, SerializeOptions, DeserializeOptions, SerializationMetadata, SerializedEnvelope, Serializer, TypeTransformer, } from "./serializer.type.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -21,6 +21,18 @@ export interface SerializeOptions {
21
21
  readonly maxSize?: number;
22
22
  /** Indentation for pretty-print (default: 2). */
23
23
  readonly indent?: number;
24
+ /**
25
+ * Include `Error.stack` when serializing errors (default: false).
26
+ *
27
+ * A stack names absolute file paths and internal call structure. Serialized
28
+ * errors travel to queues, RPC peers and log sinks, so stacks are opt-in.
29
+ */
30
+ readonly includeStack?: boolean;
31
+ /**
32
+ * Permit `__proto__`, `constructor` and `prototype` as data keys
33
+ * (default: false). See {@link DeserializeOptions.allowUnsafeKeys}.
34
+ */
35
+ readonly allowUnsafeKeys?: boolean;
24
36
  }
25
37
  /** Options for deserialization operations. */
26
38
  export interface DeserializeOptions {
@@ -28,10 +40,24 @@ export interface DeserializeOptions {
28
40
  readonly preserveTypes?: boolean;
29
41
  /** Maximum object depth before throwing. */
30
42
  readonly maxDepth?: number;
31
- /** Throw on malformed or unexpected data. */
43
+ /**
44
+ * Throw on malformed or unexpected data.
45
+ *
46
+ * Also makes an unrecognised `$type` tag an error rather than treating the
47
+ * object as ordinary data.
48
+ */
32
49
  readonly strict?: boolean;
33
- /** Allow prototype-polluting keys during reconstruction. */
50
+ /**
51
+ * Allow prototype-polluting keys during reconstruction (default: false).
52
+ *
53
+ * With this off — the default — `__proto__`, `constructor` and `prototype`
54
+ * are dropped from reconstructed objects. Turning it on reinstates them as
55
+ * real own properties (never as a prototype assignment), which is only safe
56
+ * when the payload is trusted.
57
+ */
34
58
  readonly allowUnsafeKeys?: boolean;
59
+ /** Maximum accepted input size in bytes. */
60
+ readonly maxSize?: number;
35
61
  }
36
62
  /** Metadata attached to serialized output. */
37
63
  export interface SerializationMetadata {
@@ -60,13 +86,6 @@ export interface Serializer<TValue = unknown, TSerialized = SerializedValue> {
60
86
  /** Deserialize a value from the target format. */
61
87
  deserialize<T = TValue>(value: TSerialized, options?: DeserializeOptions): T;
62
88
  }
63
- /** Asynchronous serializer contract (for streaming / large payloads). */
64
- export interface AsyncSerializer<TValue = unknown, TSerialized = SerializedValue> {
65
- readonly name: string;
66
- readonly contentType: string;
67
- serialize(value: TValue, options?: SerializeOptions): Promise<TSerialized>;
68
- deserialize<T = TValue>(value: TSerialized, options?: DeserializeOptions): Promise<T>;
69
- }
70
89
  /** Transforms a specific JS type during serialization. */
71
90
  export interface TypeTransformer<TValue = unknown> {
72
91
  /** Tag name used in tagged representations (e.g., "Date"). */
@@ -74,10 +93,8 @@ export interface TypeTransformer<TValue = unknown> {
74
93
  /** Returns true when this transformer handles the given value. */
75
94
  canSerialize(value: unknown): value is TValue;
76
95
  /** Convert the value into a JSON-safe representation. */
77
- serialize(value: TValue): unknown;
96
+ serialize(value: TValue, options?: SerializeOptions): unknown;
78
97
  /** Reconstruct the original value from the serialized form. */
79
- deserialize(value: unknown): TValue;
98
+ deserialize(value: unknown, options?: DeserializeOptions): TValue;
80
99
  }
81
- /** Strategy for handling `undefined` values. */
82
- export type UndefinedStrategy = "omit" | "null" | "preserve";
83
100
  //# sourceMappingURL=serializer.type.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zudojs/serialization",
3
- "version": "0.0.1",
3
+ "version": "1.0.0",
4
4
  "description": "Data translation layer with JSON serializer, type transformers, envelopes, and registry for Zudojs applications.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,16 +13,19 @@
13
13
  },
14
14
  "files": [
15
15
  "dist",
16
+ "!dist/**/*.map",
17
+ "!dist/**/*.tsbuildinfo",
18
+ "!dist/.tsbuildinfo",
16
19
  "LICENSE"
17
20
  ],
18
21
  "dependencies": {
19
- "@zudojs/constants": "0.0.1",
20
- "@zudojs/errors": "0.0.1",
21
- "@zudojs/types": "0.0.1",
22
- "@zudojs/validation": "0.0.1"
22
+ "@zudojs/constants": "1.0.0",
23
+ "@zudojs/errors": "1.0.0",
24
+ "@zudojs/types": "1.0.0",
25
+ "@zudojs/validation": "1.0.0"
23
26
  },
24
27
  "devDependencies": {
25
- "typescript": "^5.7.0",
28
+ "typescript": "7.0.2",
26
29
  "vitest": "^4.1.11"
27
30
  },
28
31
  "license": "MIT",
@@ -40,14 +43,19 @@
40
43
  },
41
44
  "module": "./dist/index.js",
42
45
  "homepage": "https://github.com/oyinlola-tech/zudo#readme",
46
+ "bugs": {
47
+ "url": "https://github.com/oyinlola-tech/zudo/issues"
48
+ },
43
49
  "repository": {
44
50
  "type": "git",
45
- "url": "https://github.com/oyinlola-tech/zudo"
51
+ "url": "https://github.com/oyinlola-tech/zudo",
52
+ "directory": "packages/serialization"
46
53
  },
47
54
  "scripts": {
48
- "build": "tsc",
49
- "typecheck": "tsc --noEmit",
55
+ "build": "tsc -p tsconfig.json",
56
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit",
50
57
  "test": "vitest run",
51
- "test:watch": "vitest"
58
+ "test:watch": "vitest",
59
+ "clean": "rm -rf dist"
52
60
  }
53
61
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAgBH,iEAAiE;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,iEAAiE;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,iEAAiE;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,oCAAoC,CAAC;AAE5C,iEAAiE;AACjE,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,iEAAiE;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.core.d.ts","sourceRoot":"","sources":["../../src/serializerEnvelope/envelope.core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAElB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAQrC;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,eAAe,EACrB,MAAM,GAAE,MAAiC,EACzC,OAAO,GAAE;IACP,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACvB,GACL,kBAAkB,CAUpB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,MAAM,GACtB,eAAe,CAOjB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,EACR,UAAU,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;CAAE,EAC3C,MAAM,GAAE,MAAiC,GACxC,kBAAkB,CAGpB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE;IAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,CAAA;CAAE,EAClD,cAAc,CAAC,EAAE,MAAM,GACtB,CAAC,CAIH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.core.js","sourceRoot":"","sources":["../../src/serializerEnvelope/envelope.core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAE7E;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAqB,EACrB,SAAiB,mBAAmB,CAAC,IAAI,EACzC,UAII,EAAE;IAEN,OAAO;QACL,QAAQ,EAAE;YACR,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,4BAA4B;YACxD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,wBAAwB,CAAC,IAAI;YACjE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO;SACtC;QACD,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA4B,EAC5B,cAAuB;IAEvB,IAAI,cAAc,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,uCAAuC,cAAc,WAAW,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAQ,EACR,UAA2C,EAC3C,SAAiB,mBAAmB,CAAC,IAAI;IAEzC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAA4B,EAC5B,YAAkD,EAClD,cAAuB;IAEvB,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,YAAY,CAAC,WAAW,CAAI,GAAG,CAAC,CAAC;AAC1C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serializerEnvelope/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serializerEnvelope/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serializerJson/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serializerJson/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsonSerializer.core.d.ts","sourceRoot":"","sources":["../../src/serializerJson/jsonSerializer.core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AA+BvE,qBAAa,cAAe,YAAW,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;IAChE,SAAgB,IAAI,UAAU;IAC9B,SAAgB,WAAW,sBAAsB;IAEjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;gBAEvC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAA;KAAE;IAIrE,0CAA0C;IAC1C,mBAAmB,CACjB,WAAW,EAAE,OAAO,6BAA6B,EAAE,eAAe,GACjE,IAAI;IAIP,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAsB7D,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,CAAC;IAcxE,OAAO,CAAC,cAAc;IA+DtB,OAAO,CAAC,YAAY;IAoCpB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,gBAAgB;CAWzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsonSerializer.core.js","sourceRoot":"","sources":["../../src/serializerJson/jsonSerializer.core.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serializerRegistry/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serializerRegistry/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializerRegistry.core.d.ts","sourceRoot":"","sources":["../../src/serializerRegistry/serializerRegistry.core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG9D;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAE7D,sFAAsF;IACtF,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAItC,uCAAuC;IACvC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,kFAAkF;IAClF,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAM7B,iEAAiE;IACjE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,+CAA+C;IAC/C,KAAK,IAAI,MAAM,EAAE;IAIjB,yCAAyC;IACzC,KAAK,IAAI,IAAI;IAIb,wCAAwC;IACxC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializerRegistry.core.js","sourceRoot":"","sources":["../../src/serializerRegistry/serializerRegistry.core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACZ,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE7D,sFAAsF;IACtF,QAAQ,CAAC,UAAsB;QAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,uCAAuC;IACvC,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,kFAAkF;IAClF,GAAG,CAAC,IAAY;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iEAAiE;IACjE,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,+CAA+C;IAC/C,KAAK;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,yCAAyC;IACzC,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,wCAAwC;IACxC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializerRegistry.factory.d.ts","sourceRoot":"","sources":["../../src/serializerRegistry/serializerRegistry.factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC,GACA,UAAU,CAOZ;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAI1D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializerRegistry.factory.js","sourceRoot":"","sources":["../../src/serializerRegistry/serializerRegistry.factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mCAAmC,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,mBAAmB,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAA2B,EAC3B,OAIC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,IAAI;YACd,OAAO,IAAI,cAAc,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACrE;YACE,MAAM,IAAI,mCAAmC,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bigint.transformer.d.ts","sourceRoot":"","sources":["../../src/serializerTransforms/bigint.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAKnE,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAAC,MAAM,CA4BrD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bigint.transformer.js","sourceRoot":"","sources":["../../src/serializerTransforms/bigint.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,GAAG,QAAiB,CAAC;AAEtC,mDAAmD;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAA4B;IACxD,IAAI,EAAE,WAAW;IAEjB,YAAY,CAAC,KAAc;QACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,OAAO;YACL,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;YACrC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE;SAC5C,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,MAAM,IAAI,GAAG,KAAgC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,yDAAyD,OAAO,GAAG,EAAE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.transformer.d.ts","sourceRoot":"","sources":["../../src/serializerTransforms/date.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAKnE,iDAAiD;AACjD,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,IAAI,CA4BjD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.transformer.js","sourceRoot":"","sources":["../../src/serializerTransforms/date.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,SAAS,GAAG,MAAe,CAAC;AAElC,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,IAAI,EAAE,SAAS;IAEf,YAAY,CAAC,KAAc;QACzB,OAAO,KAAK,YAAY,IAAI,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,KAAW;QACnB,OAAO;YACL,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,SAAS;YACnC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE;SAC/C,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,MAAM,IAAI,GAAG,KAAgC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,uDAAuD,OAAO,GAAG,EAAE,CACpE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serializerTransforms/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serializerTransforms/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"map.transformer.d.ts","sourceRoot":"","sources":["../../src/serializerTransforms/map.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAKnE,gDAAgD;AAChD,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CA4BjE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"map.transformer.js","sourceRoot":"","sources":["../../src/serializerTransforms/map.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,QAAQ,GAAG,KAAc,CAAC;AAEhC,gDAAgD;AAChD,MAAM,CAAC,MAAM,cAAc,GAA2C;IACpE,IAAI,EAAE,QAAQ;IAEd,YAAY,CAAC,KAAc;QACzB,OAAO,KAAK,YAAY,GAAG,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,KAA4B;QACpC,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,OAAO;YACL,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ;YAClC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO;SACnC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,MAAM,IAAI,GAAG,KAAgC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,qDAAqD,OAAO,GAAG,EAAE,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,GAAgC,CAAC,CAAC;IACnD,CAAC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.transformer.d.ts","sourceRoot":"","sources":["../../src/serializerTransforms/set.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAKnE,gDAAgD;AAChD,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAwBxD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.transformer.js","sourceRoot":"","sources":["../../src/serializerTransforms/set.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,QAAQ,GAAG,KAAc,CAAC;AAEhC,gDAAgD;AAChD,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,IAAI,EAAE,QAAQ;IAEd,YAAY,CAAC,KAAc;QACzB,OAAO,KAAK,YAAY,GAAG,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,KAAmB;QAC3B,OAAO;YACL,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ;YAClC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;SACtC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,MAAM,IAAI,GAAG,KAAgC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,qDAAqD,OAAO,GAAG,EAAE,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformerRegistry.core.d.ts","sourceRoot":"","sources":["../../src/serializerTransforms/transformerRegistry.core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAInE;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IAEnE,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAS5C,4CAA4C;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,0CAA0C;IAC1C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAMlC,6DAA6D;IAC7D,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS;IAOzD,sEAAsE;IACtE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,wCAAwC;IACxC,KAAK,IAAI,MAAM,EAAE;IAIjB,0CAA0C;IAC1C,KAAK,IAAI,IAAI;IAIb,yCAAyC;IACzC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformerRegistry.core.js","sourceRoot":"","sources":["../../src/serializerTransforms/transformerRegistry.core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IACb,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEnE,8DAA8D;IAC9D,QAAQ,CAAC,WAA4B;QACnC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,8BAA8B,mBAAmB,CAAC,gBAAgB,YAAY,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,4CAA4C;IAC5C,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,0CAA0C;IAC1C,GAAG,CAAC,IAAY;QACd,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,6DAA6D;IAC7D,YAAY,CAAC,KAAc;QACzB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,IAAI,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC;gBAAE,OAAO,WAAW,CAAC;QAC1D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,sEAAsE;IACtE,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,wCAAwC;IACxC,KAAK;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,0CAA0C;IAC1C,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,yCAAyC;IACzC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buffer.transformer.d.ts","sourceRoot":"","sources":["../../src/serializerTransformsExt/buffer.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAMnE,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAAC,UAAU,CAyBzD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buffer.transformer.js","sourceRoot":"","sources":["../../src/serializerTransformsExt/buffer.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,GAAG,QAAiB,CAAC;AAEtC,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAgC;IAC5D,IAAI,EAAE,WAAW;IAEjB,YAAY,CAAC,KAAc;QACzB,OAAO,KAAK,YAAY,UAAU,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,KAAiB;QACzB,OAAO;YACL,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;YACrC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,QAAQ;YACtC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;SAC3C,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,MAAM,IAAI,GAAG,KAAgC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,yDAAyD,OAAO,GAAG,EAAE,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"encoding.utils.d.ts","sourceRoot":"","sources":["../../src/serializerTransformsExt/encoding.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8CAA8C;AAC9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CASjD;AAED,gDAAgD;AAChD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAUrD;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAKnD;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAKnD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"encoding.utils.js","sourceRoot":"","sources":["../../src/serializerTransformsExt/encoding.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8CAA8C;AAC9C,MAAM,UAAU,QAAQ,CAAC,IAAgB;IACvC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;QACvC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;QACvC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.transformer.d.ts","sourceRoot":"","sources":["../../src/serializerTransformsExt/error.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAKnE,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,KAAK,CAgDnD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.transformer.js","sourceRoot":"","sources":["../../src/serializerTransformsExt/error.transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,UAAU,GAAG,OAAgB,CAAC;AAEpC,kDAAkD;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,IAAI,EAAE,UAAU;IAEhB,YAAY,CAAC,KAAc;QACzB,OAAO,KAAK,YAAY,KAAK,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,KAAY;QACpB,MAAM,MAAM,GAA4B;YACtC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,UAAU;YACpC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;QAEF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,GAAI,KAA4C,CAAC,IAAI,CAAC;QAChE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,MAAM,IAAI,GAAG,KAAgC,CAAC;QAC9C,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAA4C,CAAC,IAAI,GAAG,IAAI,CAAC;QAC5D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serializerTransformsExt/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serializerTransformsExt/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serializerTypes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serializerTypes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.type.d.ts","sourceRoot":"","sources":["../../src/serializerTypes/serializer.type.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.type.js","sourceRoot":"","sources":["../../src/serializerTypes/serializer.type.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}