@zudojs/serialization 0.1.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +131 -15
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/serializerEnvelope/envelope.core.d.ts +28 -5
- package/dist/serializerEnvelope/envelope.core.js +79 -8
- package/dist/serializerEnvelope/index.d.ts +1 -1
- package/dist/serializerEnvelope/index.js +1 -1
- package/dist/serializerJson/jsonSerializer.core.d.ts +4 -0
- package/dist/serializerJson/jsonSerializer.core.js +108 -52
- package/dist/serializerRegistry/index.d.ts +1 -0
- package/dist/serializerRegistry/serializerRegistry.factory.d.ts +17 -5
- package/dist/serializerRegistry/serializerRegistry.factory.js +12 -9
- package/dist/serializerTransformsExt/error.transformer.d.ts +4 -1
- package/dist/serializerTransformsExt/error.transformer.js +15 -4
- package/dist/serializerTypes/index.d.ts +1 -1
- package/dist/serializerTypes/serializer.type.d.ts +30 -13
- package/package.json +26 -14
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/serializerEnvelope/envelope.core.d.ts.map +0 -1
- package/dist/serializerEnvelope/envelope.core.js.map +0 -1
- package/dist/serializerEnvelope/index.d.ts.map +0 -1
- package/dist/serializerEnvelope/index.js.map +0 -1
- package/dist/serializerJson/index.d.ts.map +0 -1
- package/dist/serializerJson/index.js.map +0 -1
- package/dist/serializerJson/jsonSerializer.core.d.ts.map +0 -1
- package/dist/serializerJson/jsonSerializer.core.js.map +0 -1
- package/dist/serializerRegistry/index.d.ts.map +0 -1
- package/dist/serializerRegistry/index.js.map +0 -1
- package/dist/serializerRegistry/serializerRegistry.core.d.ts.map +0 -1
- package/dist/serializerRegistry/serializerRegistry.core.js.map +0 -1
- package/dist/serializerRegistry/serializerRegistry.factory.d.ts.map +0 -1
- package/dist/serializerRegistry/serializerRegistry.factory.js.map +0 -1
- package/dist/serializerTransforms/bigint.transformer.d.ts.map +0 -1
- package/dist/serializerTransforms/bigint.transformer.js.map +0 -1
- package/dist/serializerTransforms/date.transformer.d.ts.map +0 -1
- package/dist/serializerTransforms/date.transformer.js.map +0 -1
- package/dist/serializerTransforms/index.d.ts.map +0 -1
- package/dist/serializerTransforms/index.js.map +0 -1
- package/dist/serializerTransforms/map.transformer.d.ts.map +0 -1
- package/dist/serializerTransforms/map.transformer.js.map +0 -1
- package/dist/serializerTransforms/set.transformer.d.ts.map +0 -1
- package/dist/serializerTransforms/set.transformer.js.map +0 -1
- package/dist/serializerTransforms/transformerRegistry.core.d.ts.map +0 -1
- package/dist/serializerTransforms/transformerRegistry.core.js.map +0 -1
- package/dist/serializerTransformsExt/buffer.transformer.d.ts.map +0 -1
- package/dist/serializerTransformsExt/buffer.transformer.js.map +0 -1
- package/dist/serializerTransformsExt/encoding.utils.d.ts.map +0 -1
- package/dist/serializerTransformsExt/encoding.utils.js.map +0 -1
- package/dist/serializerTransformsExt/error.transformer.d.ts.map +0 -1
- package/dist/serializerTransformsExt/error.transformer.js.map +0 -1
- package/dist/serializerTransformsExt/index.d.ts.map +0 -1
- package/dist/serializerTransformsExt/index.js.map +0 -1
- package/dist/serializerTypes/index.d.ts.map +0 -1
- package/dist/serializerTypes/index.js.map +0 -1
- package/dist/serializerTypes/serializer.type.d.ts.map +0 -1
- package/dist/serializerTypes/serializer.type.js.map +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Zudojs Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @zudojs/serialization
|
|
2
2
|
|
|
3
|
-
|
|
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,142 @@ npm install @zudojs/serialization
|
|
|
13
13
|
```typescript
|
|
14
14
|
import { createSerializer } from "@zudojs/serialization";
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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`. On
|
|
85
|
+
the `preserveTypes` path the depth limit defaults to 128; on the fast path it
|
|
86
|
+
is enforced whenever you set it, per call or as an instance default.
|
|
87
|
+
- **An unrecognised `$type` tag is treated as ordinary data**, so a peer cannot
|
|
88
|
+
stop the consumer with `{"$type":"anything"}` and your own records may carry a
|
|
89
|
+
`$type` field. Pass `strict: true` to make an unknown tag an error instead.
|
|
90
|
+
|
|
91
|
+
## Errors
|
|
92
|
+
|
|
93
|
+
Stack traces are **not** serialized unless you ask, because a serialized error
|
|
94
|
+
routinely ends up in a queue message or a log sink:
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
serializer.serialize({ error }, { preserveTypes: true }); // name, message, code
|
|
98
|
+
serializer.serialize({ error }, { preserveTypes: true, includeStack: true });
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
On the way back, a wire-supplied stack is attached as a non-enumerable
|
|
102
|
+
`originalStack` rather than overwriting the reconstructed error's own.
|
|
103
|
+
|
|
104
|
+
## Envelopes
|
|
105
|
+
|
|
106
|
+
An envelope carries the metadata a consumer needs to decode the payload:
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
import {
|
|
110
|
+
serializeToEnvelope,
|
|
111
|
+
deserializeFromEnvelope,
|
|
112
|
+
} from "@zudojs/serialization";
|
|
113
|
+
|
|
114
|
+
const envelope = serializeToEnvelope(payload, serializer);
|
|
115
|
+
// { metadata: { format, version, contentType, encoding }, data }
|
|
116
|
+
|
|
117
|
+
const value = deserializeFromEnvelope(envelope, serializer, "json");
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Both helpers forward a fourth argument to the serializer, so the options that
|
|
121
|
+
matter on the wire are reachable through an envelope:
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
const envelope = serializeToEnvelope(payload, serializer, "json", {
|
|
125
|
+
preserveTypes: true,
|
|
19
126
|
});
|
|
20
127
|
|
|
21
|
-
const
|
|
22
|
-
|
|
128
|
+
const value = deserializeFromEnvelope(envelope, serializer, "json", {
|
|
129
|
+
preserveTypes: true,
|
|
130
|
+
strict: true,
|
|
131
|
+
maxSize: 1_000_000,
|
|
132
|
+
});
|
|
23
133
|
```
|
|
24
134
|
|
|
135
|
+
`unwrapEnvelope` validates the shape and rejects a payload stamped with a schema
|
|
136
|
+
version newer than this build understands, rather than misreading it.
|
|
137
|
+
`contentType` is derived from the format.
|
|
138
|
+
|
|
25
139
|
## Features
|
|
26
140
|
|
|
27
|
-
- JSON serialization with type
|
|
28
|
-
-
|
|
29
|
-
- Transformer registry
|
|
30
|
-
-
|
|
31
|
-
-
|
|
141
|
+
- JSON serialization with opt-in type preservation
|
|
142
|
+
- Built-in transformers for Date, BigInt, Map, Set, Buffer and Error
|
|
143
|
+
- Transformer registry for custom types
|
|
144
|
+
- Envelope pattern with schema-version and encoding checks
|
|
145
|
+
- Prototype-pollution protection on reconstruction
|
|
146
|
+
- Size and depth limits on both directions
|
|
147
|
+
- Circular reference detection (on the `preserveTypes` path)
|
|
32
148
|
|
|
33
149
|
## Use Cases
|
|
34
150
|
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
- Cache
|
|
38
|
-
-
|
|
151
|
+
- Queue and RPC message payloads
|
|
152
|
+
- Cross-service communication
|
|
153
|
+
- Cache value encoding
|
|
154
|
+
- 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,
|
|
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
|
-
|
|
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 {
|
|
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 ??
|
|
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
|
-
|
|
66
|
-
|
|
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,
|
|
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,136 @@ 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
|
|
38
|
-
const
|
|
39
|
-
|
|
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 =
|
|
44
|
-
? JSON.stringify(transformed, null,
|
|
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
|
-
|
|
50
|
-
|
|
52
|
+
// The fast path stays a bare `JSON.stringify` by default, but a depth
|
|
53
|
+
// limit the caller asked for must still be enforced: `maxDepth` used to
|
|
54
|
+
// be read only when `preserveTypes` was on, so a per-call or per-instance
|
|
55
|
+
// limit was silently ignored on the path most callers use.
|
|
56
|
+
if (opts.maxDepth !== undefined) {
|
|
57
|
+
assertDepthWithinLimit(value, maxDepth);
|
|
58
|
+
}
|
|
59
|
+
const json = opts.pretty
|
|
60
|
+
? JSON.stringify(value, null, opts.indent ?? 2)
|
|
51
61
|
: JSON.stringify(value);
|
|
52
62
|
this.assertOutputSize(json, maxSize);
|
|
53
63
|
return json;
|
|
54
64
|
}
|
|
55
65
|
deserialize(value, options) {
|
|
56
|
-
|
|
66
|
+
const opts = { ...this.defaults, ...options };
|
|
67
|
+
// Bound the input before parsing. `maxSize` used to apply on the way out
|
|
68
|
+
// only, which is the wrong direction: serialized output is ours, whereas
|
|
69
|
+
// the string handed to `deserialize` arrives from a queue, an RPC peer, or
|
|
70
|
+
// a request body.
|
|
71
|
+
const maxSize = opts.maxSize ?? SerializationLimits.MAX_SIZE;
|
|
72
|
+
this.assertInputSize(value, maxSize);
|
|
73
|
+
if (opts.strict === true)
|
|
57
74
|
this.assertValidJson(value);
|
|
58
75
|
const parsed = JSON.parse(value);
|
|
59
|
-
if (
|
|
60
|
-
const maxDepth =
|
|
76
|
+
if (opts.preserveTypes === true) {
|
|
77
|
+
const maxDepth = opts.maxDepth ?? SerializationLimits.MAX_DEPTH;
|
|
61
78
|
assertDepthWithinLimit(parsed, maxDepth);
|
|
62
|
-
return this.restoreValue(parsed, 0, maxDepth);
|
|
79
|
+
return this.restoreValue(parsed, 0, maxDepth, opts);
|
|
80
|
+
}
|
|
81
|
+
// Same contract on the fast path: an explicit `maxDepth` bounds input
|
|
82
|
+
// that arrives from the wire, whether or not types are being restored.
|
|
83
|
+
if (opts.maxDepth !== undefined) {
|
|
84
|
+
assertDepthWithinLimit(parsed, opts.maxDepth);
|
|
63
85
|
}
|
|
64
86
|
return parsed;
|
|
65
87
|
}
|
|
66
|
-
transformValue(value, depth, maxDepth) {
|
|
88
|
+
transformValue(value, depth, maxDepth, options) {
|
|
67
89
|
if (value === null || value === undefined)
|
|
68
90
|
return value;
|
|
69
91
|
if (typeof value === "bigint") {
|
|
70
92
|
const transformer = this.transformers.findForValue(value);
|
|
71
|
-
return transformer
|
|
93
|
+
return transformer
|
|
94
|
+
? transformer.serialize(value, options)
|
|
95
|
+
: value.toString();
|
|
72
96
|
}
|
|
73
97
|
if (typeof value !== "object")
|
|
74
98
|
return value;
|
|
75
|
-
if (depth >= maxDepth)
|
|
76
|
-
|
|
99
|
+
if (depth >= maxDepth) {
|
|
100
|
+
// Depth is pre-checked by assertDepthWithinLimit, so this is a belt-and
|
|
101
|
+
// braces guard. Returning the raw value would silently emit an untagged
|
|
102
|
+
// Map or Date, which cannot round-trip — fail loudly instead.
|
|
103
|
+
throw new Error(`Serialization exceeded maximum depth of ${maxDepth}`);
|
|
104
|
+
}
|
|
77
105
|
if (Array.isArray(value)) {
|
|
78
|
-
return value.map((item) => this.transformValue(item, depth + 1, maxDepth));
|
|
106
|
+
return value.map((item) => this.transformValue(item, depth + 1, maxDepth, options));
|
|
79
107
|
}
|
|
80
108
|
const transformer = this.transformers.findForValue(value);
|
|
81
109
|
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
|
-
};
|
|
110
|
+
const raw = transformer.serialize(value, options);
|
|
111
|
+
return this.transformValue(raw, depth + 1, maxDepth, options);
|
|
103
112
|
}
|
|
104
113
|
if (isPlainObject(value)) {
|
|
105
114
|
const result = {};
|
|
106
115
|
for (const key of Object.keys(value)) {
|
|
107
|
-
result
|
|
116
|
+
defineKey(result, key, this.transformValue(value[key], depth + 1, maxDepth, options), options.allowUnsafeKeys === true);
|
|
108
117
|
}
|
|
109
118
|
return result;
|
|
110
119
|
}
|
|
111
120
|
return value;
|
|
112
121
|
}
|
|
113
|
-
restoreValue(value, depth, maxDepth) {
|
|
122
|
+
restoreValue(value, depth, maxDepth, options) {
|
|
114
123
|
if (value === null || value === undefined)
|
|
115
124
|
return value;
|
|
116
125
|
if (typeof value !== "object")
|
|
117
126
|
return value;
|
|
118
|
-
if (depth >= maxDepth)
|
|
119
|
-
|
|
127
|
+
if (depth >= maxDepth) {
|
|
128
|
+
throw new Error(`Deserialization exceeded maximum depth of ${maxDepth}`);
|
|
129
|
+
}
|
|
120
130
|
if (Array.isArray(value)) {
|
|
121
|
-
return value.map((item) => this.restoreValue(item, depth + 1, maxDepth));
|
|
131
|
+
return value.map((item) => this.restoreValue(item, depth + 1, maxDepth, options));
|
|
122
132
|
}
|
|
123
133
|
const obj = value;
|
|
124
134
|
const typeTag = obj[SerializationTags.TYPE];
|
|
125
|
-
if (typeof typeTag === "string") {
|
|
126
|
-
|
|
127
|
-
|
|
135
|
+
if (typeof typeTag === "string" && this.transformers.has(typeTag)) {
|
|
136
|
+
// Restore the children first. A transformer receives a plain structure
|
|
137
|
+
// and has no way to recurse back into this serializer, so handing it the
|
|
138
|
+
// still-tagged payload is what used to leave a Map full of raw
|
|
139
|
+
// `{$type, $value}` objects.
|
|
140
|
+
const restoredShell = {};
|
|
141
|
+
for (const key of Object.keys(obj)) {
|
|
142
|
+
defineKey(restoredShell, key, key === SerializationTags.TYPE
|
|
143
|
+
? obj[key]
|
|
144
|
+
: this.restoreValue(obj[key], depth + 1, maxDepth, options), options.allowUnsafeKeys === true);
|
|
145
|
+
}
|
|
146
|
+
return this.transformers.get(typeTag).deserialize(restoredShell, options);
|
|
147
|
+
}
|
|
148
|
+
// An unknown tag is ordinary data. Throwing here let any peer crash the
|
|
149
|
+
// consumer with `{"$type":"anything"}`, and made legitimate payloads that
|
|
150
|
+
// happen to carry a `$type` field unparseable.
|
|
151
|
+
if (typeof typeTag === "string" && options.strict === true) {
|
|
152
|
+
throw new Error(`Unknown serialization type tag: "${typeTag}". ` +
|
|
153
|
+
"Register a transformer for it, or deserialize without strict mode.");
|
|
128
154
|
}
|
|
129
155
|
if (isPlainObject(value)) {
|
|
130
156
|
const result = {};
|
|
131
157
|
for (const key of Object.keys(value)) {
|
|
132
|
-
result
|
|
158
|
+
defineKey(result, key, this.restoreValue(value[key], depth + 1, maxDepth, options), options.allowUnsafeKeys === true);
|
|
133
159
|
}
|
|
134
160
|
return result;
|
|
135
161
|
}
|
|
@@ -144,12 +170,42 @@ export class JSONSerializer {
|
|
|
144
170
|
}
|
|
145
171
|
}
|
|
146
172
|
assertOutputSize(json, maxSize) {
|
|
147
|
-
const size =
|
|
148
|
-
? Buffer.byteLength(json, "utf-8")
|
|
149
|
-
: new TextEncoder().encode(json).byteLength;
|
|
173
|
+
const size = byteLength(json);
|
|
150
174
|
if (size > maxSize) {
|
|
151
175
|
throw new Error(`Serialized payload too large: ${size} bytes (max: ${maxSize})`);
|
|
152
176
|
}
|
|
153
177
|
}
|
|
178
|
+
assertInputSize(json, maxSize) {
|
|
179
|
+
const size = byteLength(json);
|
|
180
|
+
if (size > maxSize) {
|
|
181
|
+
throw new Error(`Serialized payload too large: ${size} bytes (max: ${maxSize})`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/** Byte length of a string, in whichever runtime we are on. */
|
|
186
|
+
function byteLength(value) {
|
|
187
|
+
return typeof Buffer !== "undefined"
|
|
188
|
+
? Buffer.byteLength(value, "utf-8")
|
|
189
|
+
: new TextEncoder().encode(value).byteLength;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Assigns a key onto a freshly built object without invoking a setter.
|
|
193
|
+
*
|
|
194
|
+
* Plain assignment of `__proto__` does not create an own property — it calls
|
|
195
|
+
* the inherited setter and replaces the object's prototype, so an attacker's
|
|
196
|
+
* keys resolve on the result while `Object.keys` shows nothing. `defineProperty`
|
|
197
|
+
* always creates a real own property, and forbidden keys are dropped outright
|
|
198
|
+
* unless the caller has explicitly opted in with `allowUnsafeKeys`.
|
|
199
|
+
*/
|
|
200
|
+
function defineKey(target, key, value, allowUnsafeKeys) {
|
|
201
|
+
if (!allowUnsafeKeys && SCHEMA_FORBIDDEN_KEYS.has(key)) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
Object.defineProperty(target, key, {
|
|
205
|
+
value,
|
|
206
|
+
writable: true,
|
|
207
|
+
enumerable: true,
|
|
208
|
+
configurable: true,
|
|
209
|
+
});
|
|
154
210
|
}
|
|
155
211
|
//# 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:
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
|
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,
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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.1
|
|
3
|
+
"version": "1.0.1",
|
|
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,25 +13,26 @@
|
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
15
|
"dist",
|
|
16
|
+
"!dist/**/*.map",
|
|
17
|
+
"!dist/**/*.tsbuildinfo",
|
|
18
|
+
"!dist/.tsbuildinfo",
|
|
16
19
|
"LICENSE"
|
|
17
20
|
],
|
|
18
|
-
"scripts": {
|
|
19
|
-
"build": "tsc",
|
|
20
|
-
"typecheck": "tsc --noEmit",
|
|
21
|
-
"test": "vitest run",
|
|
22
|
-
"test:watch": "vitest"
|
|
23
|
-
},
|
|
24
21
|
"dependencies": {
|
|
25
|
-
"@zudojs/constants": "0.1
|
|
26
|
-
"@zudojs/errors": "0.1
|
|
27
|
-
"@zudojs/types": "
|
|
28
|
-
"@zudojs/validation": "0.1
|
|
22
|
+
"@zudojs/constants": "1.0.1",
|
|
23
|
+
"@zudojs/errors": "1.0.1",
|
|
24
|
+
"@zudojs/types": "1.0.0",
|
|
25
|
+
"@zudojs/validation": "1.0.1"
|
|
29
26
|
},
|
|
30
27
|
"devDependencies": {
|
|
31
|
-
"typescript": "
|
|
28
|
+
"typescript": "7.0.2",
|
|
32
29
|
"vitest": "^4.1.11"
|
|
33
30
|
},
|
|
34
31
|
"license": "MIT",
|
|
32
|
+
"author": {
|
|
33
|
+
"name": "Oluwayemi Oyinlola",
|
|
34
|
+
"url": "https://github.com/oyinlola-tech"
|
|
35
|
+
},
|
|
35
36
|
"keywords": [
|
|
36
37
|
"zudojs",
|
|
37
38
|
"serialization",
|
|
@@ -46,8 +47,19 @@
|
|
|
46
47
|
},
|
|
47
48
|
"module": "./dist/index.js",
|
|
48
49
|
"homepage": "https://github.com/oyinlola-tech/zudo#readme",
|
|
50
|
+
"bugs": {
|
|
51
|
+
"url": "https://github.com/oyinlola-tech/zudo/issues"
|
|
52
|
+
},
|
|
49
53
|
"repository": {
|
|
50
54
|
"type": "git",
|
|
51
|
-
"url": "https://github.com/oyinlola-tech/zudo"
|
|
55
|
+
"url": "https://github.com/oyinlola-tech/zudo",
|
|
56
|
+
"directory": "packages/serialization"
|
|
57
|
+
},
|
|
58
|
+
"scripts": {
|
|
59
|
+
"build": "tsc -p tsconfig.json",
|
|
60
|
+
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit",
|
|
61
|
+
"test": "vitest run",
|
|
62
|
+
"test:watch": "vitest",
|
|
63
|
+
"clean": "rm -rf dist"
|
|
52
64
|
}
|
|
53
|
-
}
|
|
65
|
+
}
|
package/dist/index.d.ts.map
DELETED
|
@@ -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"}
|