@amadeus-protocol/sdk 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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +410 -0
  3. package/dist/api/chain.d.ts +119 -0
  4. package/dist/api/chain.d.ts.map +1 -0
  5. package/dist/api/chain.js +147 -0
  6. package/dist/api/chain.js.map +1 -0
  7. package/dist/api/contract.d.ts +62 -0
  8. package/dist/api/contract.d.ts.map +1 -0
  9. package/dist/api/contract.js +76 -0
  10. package/dist/api/contract.js.map +1 -0
  11. package/dist/api/epoch.d.ts +68 -0
  12. package/dist/api/epoch.d.ts.map +1 -0
  13. package/dist/api/epoch.js +99 -0
  14. package/dist/api/epoch.js.map +1 -0
  15. package/dist/api/index.d.ts +8 -0
  16. package/dist/api/index.d.ts.map +1 -0
  17. package/dist/api/index.js +8 -0
  18. package/dist/api/index.js.map +1 -0
  19. package/dist/api/peer.d.ts +80 -0
  20. package/dist/api/peer.d.ts.map +1 -0
  21. package/dist/api/peer.js +95 -0
  22. package/dist/api/peer.js.map +1 -0
  23. package/dist/api/proof.d.ts +25 -0
  24. package/dist/api/proof.d.ts.map +1 -0
  25. package/dist/api/proof.js +30 -0
  26. package/dist/api/proof.js.map +1 -0
  27. package/dist/api/transaction.d.ts +71 -0
  28. package/dist/api/transaction.d.ts.map +1 -0
  29. package/dist/api/transaction.js +85 -0
  30. package/dist/api/transaction.js.map +1 -0
  31. package/dist/api/wallet.d.ts +39 -0
  32. package/dist/api/wallet.d.ts.map +1 -0
  33. package/dist/api/wallet.js +51 -0
  34. package/dist/api/wallet.js.map +1 -0
  35. package/dist/client.d.ts +70 -0
  36. package/dist/client.d.ts.map +1 -0
  37. package/dist/client.js +280 -0
  38. package/dist/client.js.map +1 -0
  39. package/dist/constants.d.ts +42 -0
  40. package/dist/constants.d.ts.map +1 -0
  41. package/dist/constants.js +42 -0
  42. package/dist/constants.js.map +1 -0
  43. package/dist/conversion.d.ts +32 -0
  44. package/dist/conversion.d.ts.map +1 -0
  45. package/dist/conversion.js +50 -0
  46. package/dist/conversion.js.map +1 -0
  47. package/dist/crypto.d.ts +93 -0
  48. package/dist/crypto.d.ts.map +1 -0
  49. package/dist/crypto.js +156 -0
  50. package/dist/crypto.js.map +1 -0
  51. package/dist/encoding.d.ts +108 -0
  52. package/dist/encoding.d.ts.map +1 -0
  53. package/dist/encoding.js +165 -0
  54. package/dist/encoding.js.map +1 -0
  55. package/dist/encryption.d.ts +76 -0
  56. package/dist/encryption.d.ts.map +1 -0
  57. package/dist/encryption.js +137 -0
  58. package/dist/encryption.js.map +1 -0
  59. package/dist/index.d.ts +47 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +47 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/schemas.d.ts +67 -0
  64. package/dist/schemas.d.ts.map +1 -0
  65. package/dist/schemas.js +103 -0
  66. package/dist/schemas.js.map +1 -0
  67. package/dist/sdk.d.ts +100 -0
  68. package/dist/sdk.d.ts.map +1 -0
  69. package/dist/sdk.js +120 -0
  70. package/dist/sdk.js.map +1 -0
  71. package/dist/serialization.d.ts +42 -0
  72. package/dist/serialization.d.ts.map +1 -0
  73. package/dist/serialization.js +247 -0
  74. package/dist/serialization.js.map +1 -0
  75. package/dist/transaction-builder.d.ts +267 -0
  76. package/dist/transaction-builder.d.ts.map +1 -0
  77. package/dist/transaction-builder.js +397 -0
  78. package/dist/transaction-builder.js.map +1 -0
  79. package/dist/types.d.ts +550 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +78 -0
  82. package/dist/types.js.map +1 -0
  83. package/dist/validation.d.ts +15 -0
  84. package/dist/validation.d.ts.map +1 -0
  85. package/dist/validation.js +39 -0
  86. package/dist/validation.js.map +1 -0
  87. package/package.json +80 -0
package/dist/sdk.js ADDED
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Amadeus SDK
3
+ *
4
+ * Main SDK class that provides access to all API modules and utilities.
5
+ * This is the primary entry point for interacting with the Amadeus Protocol.
6
+ */
7
+ import { AmadeusClient } from './client';
8
+ import { ChainAPI, PeerAPI, TransactionAPI, WalletAPI, ContractAPI, EpochAPI, ProofAPI } from './api';
9
+ import { SDK_VERSION, NODE_API_URL } from './constants';
10
+ /**
11
+ * Main Amadeus SDK class
12
+ *
13
+ * Provides a unified interface to interact with the Amadeus Protocol.
14
+ * All API modules are accessible through this class instance.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { AmadeusSDK } from '@amadeus-protocol/sdk'
19
+ *
20
+ * // Initialize SDK with default node URL
21
+ * const sdk = new AmadeusSDK({
22
+ * baseUrl: 'https://nodes.amadeus.bot/api'
23
+ * })
24
+ *
25
+ * // Query chain
26
+ * const tip = await sdk.chain.getTip()
27
+ * const stats = await sdk.chain.getStats()
28
+ *
29
+ * // Query wallet balances
30
+ * const balance = await sdk.wallet.getBalance('5Kd3N...', 'AMA')
31
+ * const allBalances = await sdk.wallet.getAllBalances('5Kd3N...')
32
+ *
33
+ * // Submit transaction
34
+ * const result = await sdk.transaction.submit(txPacked)
35
+ *
36
+ * // Query contracts
37
+ * const contractData = await sdk.contract.get(key)
38
+ *
39
+ * // Query epoch data
40
+ * const scores = await sdk.epoch.getScore()
41
+ * ```
42
+ */
43
+ export class AmadeusSDK {
44
+ /** HTTP client instance */
45
+ client;
46
+ /** Chain API module for blockchain queries */
47
+ chain;
48
+ /** Peer API module for network information */
49
+ peer;
50
+ /** Transaction API module for submitting transactions */
51
+ transaction;
52
+ /** Wallet API module for balance queries */
53
+ wallet;
54
+ /** Contract API module for smart contract interactions */
55
+ contract;
56
+ /** Epoch API module for epoch and validator data */
57
+ epoch;
58
+ /** Proof API module for validator proofs */
59
+ proof;
60
+ /**
61
+ * Create a new AmadeusSDK instance
62
+ *
63
+ * @param config - SDK configuration
64
+ * @throws {AmadeusSDKError} If configuration is invalid
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * // Use default node URL
69
+ * const sdk = new AmadeusSDK({})
70
+ *
71
+ * // Use custom node URL
72
+ * const sdk = new AmadeusSDK({
73
+ * baseUrl: 'https://custom-node.com/api',
74
+ * timeout: 60000
75
+ * })
76
+ * ```
77
+ */
78
+ constructor(config = { baseUrl: NODE_API_URL }) {
79
+ this.client = new AmadeusClient(config);
80
+ // Initialize API modules
81
+ this.chain = new ChainAPI(this.client);
82
+ this.peer = new PeerAPI(this.client);
83
+ this.transaction = new TransactionAPI(this.client);
84
+ this.wallet = new WalletAPI(this.client);
85
+ this.contract = new ContractAPI(this.client);
86
+ this.epoch = new EpochAPI(this.client);
87
+ this.proof = new ProofAPI(this.client);
88
+ }
89
+ /**
90
+ * Get SDK version
91
+ */
92
+ static getVersion() {
93
+ return SDK_VERSION;
94
+ }
95
+ /**
96
+ * Get the current configuration
97
+ */
98
+ getConfig() {
99
+ return this.client.getConfig();
100
+ }
101
+ /**
102
+ * Update the base URL
103
+ */
104
+ setBaseUrl(url) {
105
+ this.client.setBaseUrl(url);
106
+ }
107
+ /**
108
+ * Update headers
109
+ */
110
+ setHeaders(headers) {
111
+ this.client.setHeaders(headers);
112
+ }
113
+ /**
114
+ * Cancel ongoing requests
115
+ */
116
+ cancel() {
117
+ this.client.cancel();
118
+ }
119
+ }
120
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EACN,QAAQ,EACR,OAAO,EACP,cAAc,EACd,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,UAAU;IACtB,2BAA2B;IACX,MAAM,CAAe;IAErC,8CAA8C;IAC9B,KAAK,CAAU;IAE/B,8CAA8C;IAC9B,IAAI,CAAS;IAE7B,yDAAyD;IACzC,WAAW,CAAgB;IAE3C,4CAA4C;IAC5B,MAAM,CAAW;IAEjC,0DAA0D;IAC1C,QAAQ,CAAa;IAErC,oDAAoD;IACpC,KAAK,CAAU;IAE/B,4CAA4C;IAC5B,KAAK,CAAU;IAE/B;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,SAA2B,EAAE,OAAO,EAAE,YAAY,EAAE;QAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;QAEvC,yBAAyB;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QAChB,OAAO,WAAW,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,SAAS;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,GAAW;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAA+B;QACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,MAAM;QACL,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;IACrB,CAAC;CACD"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * VecPack Canonical Serialization Format
3
+ *
4
+ * This module implements the VecPack canonical serialization format used by Amadeus.
5
+ * VecPack provides deterministic, canonical encoding of values for use in cryptographic
6
+ * operations (e.g., transaction signing). It ensures that equivalent data structures
7
+ * always serialize to the same byte sequence through canonical ordering of map keys.
8
+ *
9
+ * Format specification:
10
+ * - Supports: null, booleans, integers (varint), bytes, lists, and maps
11
+ * - Maps/objects are sorted by their encoded key bytes for canonical ordering
12
+ * - Varints are limited to 16 bytes maximum
13
+ * - Zero values are encoded as a single 0x00 byte
14
+ */
15
+ import type { DecodedValue, SerializableValue } from './types';
16
+ /**
17
+ * Encode a value into canonical serialization format
18
+ *
19
+ * @param term - The value to encode
20
+ * @returns Encoded bytes as Uint8Array
21
+ * @throws Error if the value contains unsupported types
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const encoded = encode({ foo: 'bar', count: 42 })
26
+ * ```
27
+ */
28
+ export declare function encode(term: SerializableValue): Uint8Array;
29
+ /**
30
+ * Decode a value from canonical serialization format
31
+ *
32
+ * @param bytes - The encoded bytes to decode
33
+ * @returns Decoded value
34
+ * @throws Error if the bytes are invalid or contain trailing bytes
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const decoded = decode(encodedBytes)
39
+ * ```
40
+ */
41
+ export declare function decode(bytes: Uint8Array | number[]): DecodedValue;
42
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAM9D;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAI1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,YAAY,CAQjE"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * VecPack Canonical Serialization Format
3
+ *
4
+ * This module implements the VecPack canonical serialization format used by Amadeus.
5
+ * VecPack provides deterministic, canonical encoding of values for use in cryptographic
6
+ * operations (e.g., transaction signing). It ensures that equivalent data structures
7
+ * always serialize to the same byte sequence through canonical ordering of map keys.
8
+ *
9
+ * Format specification:
10
+ * - Supports: null, booleans, integers (varint), bytes, lists, and maps
11
+ * - Maps/objects are sorted by their encoded key bytes for canonical ordering
12
+ * - Varints are limited to 16 bytes maximum
13
+ * - Zero values are encoded as a single 0x00 byte
14
+ */
15
+ const TYPE_NULL = 0x00;
16
+ const TYPE_TRUE = 0x01;
17
+ const TYPE_FALSE = 0x02;
18
+ const TYPE_INT = 0x03;
19
+ const TYPE_BYTES = 0x05;
20
+ const TYPE_LIST = 0x06;
21
+ const TYPE_MAP = 0x07;
22
+ /**
23
+ * Encode a value into canonical serialization format
24
+ *
25
+ * @param term - The value to encode
26
+ * @returns Encoded bytes as Uint8Array
27
+ * @throws Error if the value contains unsupported types
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const encoded = encode({ foo: 'bar', count: 42 })
32
+ * ```
33
+ */
34
+ export function encode(term) {
35
+ const bytesOut = [];
36
+ encodeTerm(term, bytesOut);
37
+ return new Uint8Array(bytesOut);
38
+ }
39
+ /**
40
+ * Decode a value from canonical serialization format
41
+ *
42
+ * @param bytes - The encoded bytes to decode
43
+ * @returns Decoded value
44
+ * @throws Error if the bytes are invalid or contain trailing bytes
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const decoded = decode(encodedBytes)
49
+ * ```
50
+ */
51
+ export function decode(bytes) {
52
+ const data = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
53
+ const ref = { offset: 0 };
54
+ const value = decodeTerm(data, ref);
55
+ if (ref.offset !== data.length) {
56
+ throw new Error('trailing_bytes');
57
+ }
58
+ return value;
59
+ }
60
+ /*
61
+ * Helper functions for encoding and decoding
62
+ */
63
+ function appendBytes(out, bytes) {
64
+ for (const b of bytes) {
65
+ out.push(b);
66
+ }
67
+ }
68
+ function compareBytes(a, b) {
69
+ const n = Math.min(a.length, b.length);
70
+ for (let i = 0; i < n; i++) {
71
+ if (a[i] !== b[i])
72
+ return a[i] - b[i];
73
+ }
74
+ return a.length - b.length; // shorter wins if prefix equal
75
+ }
76
+ function encodeKeyBytes(k) {
77
+ const tmp = [];
78
+ encodeTerm(k, tmp);
79
+ return tmp;
80
+ }
81
+ function encodeVarint(n, out) {
82
+ let value = typeof n === 'bigint' ? n : BigInt(n);
83
+ if (value === 0n) {
84
+ out.push(0);
85
+ return;
86
+ }
87
+ const isNegative = value < 0n;
88
+ if (isNegative)
89
+ value = -value;
90
+ // build big-endian magnitude
91
+ const magBytes = [];
92
+ while (value > 0n) {
93
+ magBytes.push(Number(value & 0xffn));
94
+ value >>= 8n;
95
+ }
96
+ magBytes.reverse(); // now big-endian
97
+ const len = magBytes.length;
98
+ if (len === 0 || len > 16) {
99
+ throw new Error('bad_varint_length');
100
+ }
101
+ // Rust also rejects leading zero in decode; we don't generate those here
102
+ if (magBytes[0] === 0) {
103
+ throw new Error('varint_leading_zero');
104
+ }
105
+ const header = ((isNegative ? 1 : 0) << 7) | len;
106
+ out.push(header);
107
+ appendBytes(out, magBytes);
108
+ }
109
+ function decodeVarint(data, ref) {
110
+ const header = data[ref.offset++];
111
+ if (header === 0)
112
+ return 0n;
113
+ if (header === 0x80)
114
+ throw new Error('noncanonical_zero');
115
+ const signBit = header >> 7;
116
+ const length = header & 0x7f;
117
+ let mag = 0n;
118
+ for (let i = 0; i < length; i++) {
119
+ mag = (mag << 8n) | BigInt(data[ref.offset++]);
120
+ }
121
+ if (mag > BigInt(Number.MAX_SAFE_INTEGER))
122
+ throw new Error('length_overflow');
123
+ if (signBit === 1) {
124
+ return -mag;
125
+ }
126
+ else {
127
+ return mag;
128
+ }
129
+ }
130
+ function decodeVarintGteZero(data, ref) {
131
+ const n = decodeVarint(data, ref);
132
+ if (n < 0n) {
133
+ throw new Error('length_is_negative');
134
+ }
135
+ return Number(n);
136
+ }
137
+ function encodeTerm(value, out) {
138
+ if (value === null) {
139
+ out.push(TYPE_NULL);
140
+ }
141
+ else if (typeof value === 'boolean') {
142
+ out.push(value ? TYPE_TRUE : TYPE_FALSE);
143
+ }
144
+ else if (typeof value === 'number' || typeof value === 'bigint') {
145
+ out.push(TYPE_INT);
146
+ encodeVarint(value, out);
147
+ }
148
+ else if (typeof value === 'string') {
149
+ out.push(TYPE_BYTES);
150
+ const utf8 = new TextEncoder().encode(value);
151
+ encodeVarint(utf8.length, out);
152
+ appendBytes(out, utf8);
153
+ }
154
+ else if (value instanceof Uint8Array) {
155
+ out.push(TYPE_BYTES);
156
+ encodeVarint(value.length, out);
157
+ appendBytes(out, value);
158
+ }
159
+ else if (Array.isArray(value)) {
160
+ out.push(TYPE_LIST);
161
+ encodeVarint(value.length, out);
162
+ for (const element of value) {
163
+ encodeTerm(element, out);
164
+ }
165
+ }
166
+ else if (value instanceof Map ||
167
+ (typeof value === 'object' && !Array.isArray(value) && !(value instanceof Uint8Array))) {
168
+ const entries = [];
169
+ if (value instanceof Map) {
170
+ for (const [k, v] of value.entries()) {
171
+ const bytes = encodeKeyBytes(k); // encodes key as Term
172
+ entries.push({ k, v, bytes });
173
+ }
174
+ }
175
+ else {
176
+ for (const k of Object.keys(value)) {
177
+ const v = value[k];
178
+ const bytes = encodeKeyBytes(k); // k is string; still encoded via encodeValue
179
+ entries.push({ k, v, bytes });
180
+ }
181
+ }
182
+ entries.sort((a, b) => compareBytes(a.bytes, b.bytes));
183
+ out.push(TYPE_MAP);
184
+ encodeVarint(entries.length, out);
185
+ for (const entry of entries) {
186
+ encodeTerm(entry.k, out);
187
+ encodeTerm(entry.v, out);
188
+ }
189
+ }
190
+ else {
191
+ throw new Error(`Unsupported type: ${typeof value}`);
192
+ }
193
+ }
194
+ function decodeTerm(data, ref) {
195
+ if (ref.offset >= data.length) {
196
+ throw new Error('decodeBytes: Out of bounds read');
197
+ }
198
+ const type = data[ref.offset++];
199
+ switch (type) {
200
+ case TYPE_NULL:
201
+ return null;
202
+ case TYPE_TRUE:
203
+ return true;
204
+ case TYPE_FALSE:
205
+ return false;
206
+ case TYPE_INT:
207
+ return decodeVarint(data, ref);
208
+ case TYPE_BYTES: {
209
+ const length = decodeVarintGteZero(data, ref);
210
+ const bytes = data.slice(ref.offset, ref.offset + length);
211
+ ref.offset += length;
212
+ return bytes;
213
+ }
214
+ case TYPE_LIST: {
215
+ const count = decodeVarintGteZero(data, ref);
216
+ const items = new Array(count);
217
+ for (let i = 0; i < count; i++) {
218
+ items[i] = decodeTerm(data, ref);
219
+ }
220
+ return items;
221
+ }
222
+ case TYPE_MAP: {
223
+ const count = decodeVarintGteZero(data, ref);
224
+ let prevKeyBytes = null;
225
+ const map = new Map();
226
+ for (let idx = 0; idx < count; idx++) {
227
+ // canonical check: track raw key bytes
228
+ const kStart = ref.offset;
229
+ const key = decodeTerm(data, ref);
230
+ const kEnd = ref.offset;
231
+ const keyBytes = data.slice(kStart, kEnd);
232
+ if (prevKeyBytes !== null) {
233
+ if (compareBytes(keyBytes, prevKeyBytes) <= 0) {
234
+ throw new Error('map_not_canonical');
235
+ }
236
+ }
237
+ prevKeyBytes = keyBytes;
238
+ const value = decodeTerm(data, ref);
239
+ map.set(key, value);
240
+ }
241
+ return map;
242
+ }
243
+ default:
244
+ throw new Error('decodeBytes: Unknown type');
245
+ }
246
+ }
247
+ //# sourceMappingURL=serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"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"}