@oyinlola141/lattice-serialization 0.1.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.
- package/README.md +19 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/serializerEnvelope/envelope.core.d.ts +53 -0
- package/dist/serializerEnvelope/envelope.core.d.ts.map +1 -0
- package/dist/serializerEnvelope/envelope.core.js +68 -0
- package/dist/serializerEnvelope/envelope.core.js.map +1 -0
- package/dist/serializerEnvelope/index.d.ts +7 -0
- package/dist/serializerEnvelope/index.d.ts.map +1 -0
- package/dist/serializerEnvelope/index.js +7 -0
- package/dist/serializerEnvelope/index.js.map +1 -0
- package/dist/serializerJson/index.d.ts +8 -0
- package/dist/serializerJson/index.d.ts.map +1 -0
- package/dist/serializerJson/index.js +8 -0
- package/dist/serializerJson/index.js.map +1 -0
- package/dist/serializerJson/jsonSerializer.core.d.ts +26 -0
- package/dist/serializerJson/jsonSerializer.core.d.ts.map +1 -0
- package/dist/serializerJson/jsonSerializer.core.js +149 -0
- package/dist/serializerJson/jsonSerializer.core.js.map +1 -0
- package/dist/serializerRegistry/index.d.ts +9 -0
- package/dist/serializerRegistry/index.d.ts.map +1 -0
- package/dist/serializerRegistry/index.js +9 -0
- package/dist/serializerRegistry/index.js.map +1 -0
- package/dist/serializerRegistry/serializerRegistry.core.d.ts +31 -0
- package/dist/serializerRegistry/serializerRegistry.core.d.ts.map +1 -0
- package/dist/serializerRegistry/serializerRegistry.core.js +48 -0
- package/dist/serializerRegistry/serializerRegistry.core.js.map +1 -0
- package/dist/serializerRegistry/serializerRegistry.factory.d.ts +30 -0
- package/dist/serializerRegistry/serializerRegistry.factory.d.ts.map +1 -0
- package/dist/serializerRegistry/serializerRegistry.factory.js +39 -0
- package/dist/serializerRegistry/serializerRegistry.factory.js.map +1 -0
- package/dist/serializerTransforms/bigint.transformer.d.ts +10 -0
- package/dist/serializerTransforms/bigint.transformer.d.ts.map +1 -0
- package/dist/serializerTransforms/bigint.transformer.js +35 -0
- package/dist/serializerTransforms/bigint.transformer.js.map +1 -0
- package/dist/serializerTransforms/date.transformer.d.ts +10 -0
- package/dist/serializerTransforms/date.transformer.d.ts.map +1 -0
- package/dist/serializerTransforms/date.transformer.js +34 -0
- package/dist/serializerTransforms/date.transformer.js.map +1 -0
- package/dist/serializerTransforms/index.d.ts +11 -0
- package/dist/serializerTransforms/index.d.ts.map +1 -0
- package/dist/serializerTransforms/index.js +11 -0
- package/dist/serializerTransforms/index.js.map +1 -0
- package/dist/serializerTransforms/map.transformer.d.ts +10 -0
- package/dist/serializerTransforms/map.transformer.d.ts.map +1 -0
- package/dist/serializerTransforms/map.transformer.js +34 -0
- package/dist/serializerTransforms/map.transformer.js.map +1 -0
- package/dist/serializerTransforms/set.transformer.d.ts +10 -0
- package/dist/serializerTransforms/set.transformer.d.ts.map +1 -0
- package/dist/serializerTransforms/set.transformer.js +30 -0
- package/dist/serializerTransforms/set.transformer.js.map +1 -0
- package/dist/serializerTransforms/transformerRegistry.core.d.ts +33 -0
- package/dist/serializerTransforms/transformerRegistry.core.d.ts.map +1 -0
- package/dist/serializerTransforms/transformerRegistry.core.js +60 -0
- package/dist/serializerTransforms/transformerRegistry.core.js.map +1 -0
- package/dist/serializerTransformsExt/buffer.transformer.d.ts +10 -0
- package/dist/serializerTransformsExt/buffer.transformer.d.ts.map +1 -0
- package/dist/serializerTransformsExt/buffer.transformer.js +32 -0
- package/dist/serializerTransformsExt/buffer.transformer.js.map +1 -0
- package/dist/serializerTransformsExt/encoding.utils.d.ts +14 -0
- package/dist/serializerTransformsExt/encoding.utils.d.ts.map +1 -0
- package/dist/serializerTransformsExt/encoding.utils.js +43 -0
- package/dist/serializerTransformsExt/encoding.utils.js.map +1 -0
- package/dist/serializerTransformsExt/error.transformer.d.ts +10 -0
- package/dist/serializerTransformsExt/error.transformer.d.ts.map +1 -0
- package/dist/serializerTransformsExt/error.transformer.js +49 -0
- package/dist/serializerTransformsExt/error.transformer.js.map +1 -0
- package/dist/serializerTransformsExt/index.d.ts +10 -0
- package/dist/serializerTransformsExt/index.d.ts.map +1 -0
- package/dist/serializerTransformsExt/index.js +10 -0
- package/dist/serializerTransformsExt/index.js.map +1 -0
- package/dist/serializerTypes/index.d.ts +7 -0
- package/dist/serializerTypes/index.d.ts.map +1 -0
- package/dist/serializerTypes/index.js +7 -0
- package/dist/serializerTypes/index.js.map +1 -0
- package/dist/serializerTypes/serializer.type.d.ts +83 -0
- package/dist/serializerTypes/serializer.type.d.ts.map +1 -0
- package/dist/serializerTypes/serializer.type.js +9 -0
- package/dist/serializerTypes/serializer.type.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @oyinlola141/lattice-serialization — Type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Core contracts for serializers, transformers, and serialization options.
|
|
5
|
+
*/
|
|
6
|
+
export type { SerializationFormat, SerializedValue, SerializeOptions, DeserializeOptions, SerializationMetadata, SerializedEnvelope, Serializer, AsyncSerializer, TypeTransformer, UndefinedStrategy, } from "./serializer.type.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serializerTypes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @oyinlola141/lattice-serialization — Core type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Defines the contracts that all serialization implementations
|
|
5
|
+
* must satisfy. These types are serialization-specific and are
|
|
6
|
+
* NOT available in @oyinlola141/lattice-types or @oyinlola141/lattice-constants.
|
|
7
|
+
*/
|
|
8
|
+
/** Supported serialization format identifiers. */
|
|
9
|
+
export type SerializationFormat = "json" | "text" | "binary" | "messagepack" | string;
|
|
10
|
+
/** The output of a serialization operation. */
|
|
11
|
+
export type SerializedValue = string | Uint8Array;
|
|
12
|
+
/** Options for serialization operations. */
|
|
13
|
+
export interface SerializeOptions {
|
|
14
|
+
/** Pretty-print the output (JSON only). */
|
|
15
|
+
readonly pretty?: boolean;
|
|
16
|
+
/** Preserve special JS types (Date, BigInt, Map, Set, etc.). */
|
|
17
|
+
readonly preserveTypes?: boolean;
|
|
18
|
+
/** Maximum object depth before throwing. */
|
|
19
|
+
readonly maxDepth?: number;
|
|
20
|
+
/** Maximum serialized size in bytes. */
|
|
21
|
+
readonly maxSize?: number;
|
|
22
|
+
/** Indentation for pretty-print (default: 2). */
|
|
23
|
+
readonly indent?: number;
|
|
24
|
+
}
|
|
25
|
+
/** Options for deserialization operations. */
|
|
26
|
+
export interface DeserializeOptions {
|
|
27
|
+
/** Restore special JS types from tagged representations. */
|
|
28
|
+
readonly preserveTypes?: boolean;
|
|
29
|
+
/** Maximum object depth before throwing. */
|
|
30
|
+
readonly maxDepth?: number;
|
|
31
|
+
/** Throw on malformed or unexpected data. */
|
|
32
|
+
readonly strict?: boolean;
|
|
33
|
+
/** Allow prototype-polluting keys during reconstruction. */
|
|
34
|
+
readonly allowUnsafeKeys?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/** Metadata attached to serialized output. */
|
|
37
|
+
export interface SerializationMetadata {
|
|
38
|
+
/** The format used (e.g., "json"). */
|
|
39
|
+
readonly format: string;
|
|
40
|
+
/** Schema version for forward/backward compatibility. */
|
|
41
|
+
readonly version?: number;
|
|
42
|
+
/** MIME content type (e.g., "application/json"). */
|
|
43
|
+
readonly contentType?: string;
|
|
44
|
+
/** Character encoding (e.g., "utf-8"). */
|
|
45
|
+
readonly encoding?: string;
|
|
46
|
+
}
|
|
47
|
+
/** An envelope wrapping serialized data with metadata. */
|
|
48
|
+
export interface SerializedEnvelope {
|
|
49
|
+
readonly metadata: SerializationMetadata;
|
|
50
|
+
readonly data: SerializedValue;
|
|
51
|
+
}
|
|
52
|
+
/** Synchronous serializer contract. */
|
|
53
|
+
export interface Serializer<TValue = unknown, TSerialized = SerializedValue> {
|
|
54
|
+
/** Canonical name for registry lookup (e.g., "json"). */
|
|
55
|
+
readonly name: string;
|
|
56
|
+
/** The MIME content type produced by this serializer. */
|
|
57
|
+
readonly contentType: string;
|
|
58
|
+
/** Serialize a value into the target format. */
|
|
59
|
+
serialize(value: TValue, options?: SerializeOptions): TSerialized;
|
|
60
|
+
/** Deserialize a value from the target format. */
|
|
61
|
+
deserialize<T = TValue>(value: TSerialized, options?: DeserializeOptions): T;
|
|
62
|
+
}
|
|
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
|
+
/** Transforms a specific JS type during serialization. */
|
|
71
|
+
export interface TypeTransformer<TValue = unknown> {
|
|
72
|
+
/** Tag name used in tagged representations (e.g., "Date"). */
|
|
73
|
+
readonly type: string;
|
|
74
|
+
/** Returns true when this transformer handles the given value. */
|
|
75
|
+
canSerialize(value: unknown): value is TValue;
|
|
76
|
+
/** Convert the value into a JSON-safe representation. */
|
|
77
|
+
serialize(value: TValue): unknown;
|
|
78
|
+
/** Reconstruct the original value from the serialized form. */
|
|
79
|
+
deserialize(value: unknown): TValue;
|
|
80
|
+
}
|
|
81
|
+
/** Strategy for handling `undefined` values. */
|
|
82
|
+
export type UndefinedStrategy = "omit" | "null" | "preserve";
|
|
83
|
+
//# sourceMappingURL=serializer.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializer.type.d.ts","sourceRoot":"","sources":["../../src/serializerTypes/serializer.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @latticejs/serialization — Core type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Defines the contracts that all serialization implementations
|
|
5
|
+
* must satisfy. These types are serialization-specific and are
|
|
6
|
+
* NOT available in @latticejs/types or @latticejs/constants.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=serializer.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializer.type.js","sourceRoot":"","sources":["../../src/serializerTypes/serializer.type.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@oyinlola141/lattice-serialization",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Serialization framework for Lattice — multiple format support, type preservation, and streaming",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"LICENSE"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"typecheck": "tsc --noEmit",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"test:watch": "vitest"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@oyinlola141/lattice-constants": "workspace:*",
|
|
26
|
+
"@oyinlola141/lattice-errors": "workspace:*",
|
|
27
|
+
"@oyinlola141/lattice-types": "workspace:*",
|
|
28
|
+
"@oyinlola141/lattice-validation": "workspace:*"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"typescript": "^5.7.0",
|
|
32
|
+
"vitest": "^4.1.11"
|
|
33
|
+
},
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"keywords": [
|
|
36
|
+
"lattice",
|
|
37
|
+
"serialization",
|
|
38
|
+
"json",
|
|
39
|
+
"binary",
|
|
40
|
+
"messagepack",
|
|
41
|
+
"type-preservation"
|
|
42
|
+
],
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
},
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=24.0.0"
|
|
48
|
+
}
|
|
49
|
+
}
|