solidity-codecs 0.0.1-beta.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/codecs/BytesX.d.ts +2 -0
- package/dist/codecs/Fixed.d.ts +6 -0
- package/dist/codecs/Int.d.ts +3 -0
- package/dist/codecs/Struct.d.ts +2 -25
- package/dist/codecs/Tuple.d.ts +2 -25
- package/dist/codecs/Uint.d.ts +4 -0
- package/dist/codecs/Vector.d.ts +2 -14
- package/dist/codecs/address.d.ts +1 -0
- package/dist/codecs/bytes.d.ts +1 -6
- package/dist/codecs/index.d.ts +9 -8
- package/dist/solidity-codecs.cjs.development.js +379 -256
- package/dist/solidity-codecs.cjs.development.js.map +3 -3
- package/dist/solidity-codecs.cjs.production.min.js +1 -1
- package/dist/solidity-codecs.cjs.production.min.js.map +3 -3
- package/dist/solidity-codecs.js +377 -254
- package/dist/solidity-codecs.js.map +3 -3
- package/dist/solidity-codecs.mjs +377 -254
- package/dist/solidity-codecs.mjs.map +3 -3
- package/dist/types.d.ts +3 -7
- package/dist/utils.d.ts +1 -1
- package/package.json +7 -8
- package/dist/codecs/Bytes.d.ts +0 -6
- package/dist/codecs/Enum.d.ts +0 -57
- package/dist/codecs/Option.d.ts +0 -6
- package/dist/codecs/Result.d.ts +0 -22
- package/dist/codecs/call.d.ts +0 -6
- package/dist/codecs/compact.d.ts +0 -2
- package/dist/codecs/fixed-width-ints.d.ts +0 -11
- package/dist/codecs/fixed.d.ts +0 -3
- package/dist/codecs/int.d.ts +0 -6
- package/dist/codecs/struct.d.ts +0 -6
- package/dist/codecs/tuple.d.ts +0 -6
- package/dist/codecs/uint.d.ts +0 -2
- package/dist/codecs/vector.d.ts +0 -6
- package/dist/codecs/void.d.ts +0 -2
- package/dist/scale-ts.cjs.development.js +0 -427
- package/dist/scale-ts.cjs.development.js.map +0 -7
- package/dist/scale-ts.cjs.production.min.js +0 -318
- package/dist/scale-ts.cjs.production.min.js.map +0 -7
- package/dist/scale-ts.es2017.js +0 -403
- package/dist/scale-ts.es2017.js.map +0 -7
- package/dist/scale-ts.es2019.mjs +0 -348
- package/dist/scale-ts.es2019.mjs.map +0 -7
- package/dist/test-utils.d.ts +0 -5
package/dist/scale-ts.es2017.js
DELETED
@@ -1,403 +0,0 @@
|
|
1
|
-
var __defProp = Object.defineProperty
|
2
|
-
var __defNormalProp = (obj, key, value) =>
|
3
|
-
key in obj
|
4
|
-
? __defProp(obj, key, {
|
5
|
-
enumerable: true,
|
6
|
-
configurable: true,
|
7
|
-
writable: true,
|
8
|
-
value,
|
9
|
-
})
|
10
|
-
: (obj[key] = value)
|
11
|
-
var __publicField = (obj, key, value) => {
|
12
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value)
|
13
|
-
return value
|
14
|
-
}
|
15
|
-
|
16
|
-
// src/utils.ts
|
17
|
-
var createCodec = (encoder, decoder) => {
|
18
|
-
const result = [encoder, decoder]
|
19
|
-
result.enc = encoder
|
20
|
-
result.dec = decoder
|
21
|
-
return result
|
22
|
-
}
|
23
|
-
var enhanceEncoder = (encoder, mapper) => (value) => encoder(mapper(value))
|
24
|
-
var enhanceDecoder = (decoder, mapper) => (value) => mapper(decoder(value))
|
25
|
-
var enhanceCodec = ([encoder, decoder], toFrom, fromTo) =>
|
26
|
-
createCodec(enhanceEncoder(encoder, toFrom), enhanceDecoder(decoder, fromTo))
|
27
|
-
|
28
|
-
// src/internal/toInternalBytes.ts
|
29
|
-
var HEX_MAP = {
|
30
|
-
0: 0,
|
31
|
-
1: 1,
|
32
|
-
2: 2,
|
33
|
-
3: 3,
|
34
|
-
4: 4,
|
35
|
-
5: 5,
|
36
|
-
6: 6,
|
37
|
-
7: 7,
|
38
|
-
8: 8,
|
39
|
-
9: 9,
|
40
|
-
a: 10,
|
41
|
-
b: 11,
|
42
|
-
c: 12,
|
43
|
-
d: 13,
|
44
|
-
e: 14,
|
45
|
-
f: 15,
|
46
|
-
A: 10,
|
47
|
-
B: 11,
|
48
|
-
C: 12,
|
49
|
-
D: 13,
|
50
|
-
E: 14,
|
51
|
-
F: 15,
|
52
|
-
}
|
53
|
-
function fromHex(hexString) {
|
54
|
-
const isOdd = hexString.length % 2
|
55
|
-
const base = (hexString[1] === "x" ? 2 : 0) + isOdd
|
56
|
-
const nBytes = (hexString.length - base) / 2 + isOdd
|
57
|
-
const bytes = new Uint8Array(nBytes)
|
58
|
-
if (isOdd) bytes[0] = 0 | HEX_MAP[hexString[2]]
|
59
|
-
for (let i = 0; i < nBytes; ) {
|
60
|
-
const idx = base + i * 2
|
61
|
-
const a = HEX_MAP[hexString[idx]]
|
62
|
-
const b = HEX_MAP[hexString[idx + 1]]
|
63
|
-
bytes[isOdd + i++] = (a << 4) | b
|
64
|
-
}
|
65
|
-
return bytes
|
66
|
-
}
|
67
|
-
var InternalUint8Array = class extends Uint8Array {
|
68
|
-
constructor(buffer) {
|
69
|
-
super(buffer)
|
70
|
-
__publicField(this, "i", 0)
|
71
|
-
__publicField(this, "v")
|
72
|
-
this.v = new DataView(buffer)
|
73
|
-
}
|
74
|
-
}
|
75
|
-
var toInternalBytes = (fn) => (buffer) =>
|
76
|
-
fn(
|
77
|
-
buffer instanceof InternalUint8Array
|
78
|
-
? buffer
|
79
|
-
: new InternalUint8Array(
|
80
|
-
typeof buffer === "string"
|
81
|
-
? fromHex(buffer).buffer
|
82
|
-
: buffer instanceof Uint8Array
|
83
|
-
? buffer.buffer
|
84
|
-
: buffer,
|
85
|
-
),
|
86
|
-
)
|
87
|
-
|
88
|
-
// src/internal/mergeUint8.ts
|
89
|
-
var mergeUint8 = (...inputs) => {
|
90
|
-
const totalLen = inputs.reduce((acc, a) => acc + a.byteLength, 0)
|
91
|
-
const result = new Uint8Array(totalLen)
|
92
|
-
for (let idx = 0, at = 0; idx < inputs.length; idx++) {
|
93
|
-
const current = inputs[idx]
|
94
|
-
result.set(current, at)
|
95
|
-
at += current.byteLength
|
96
|
-
}
|
97
|
-
return result
|
98
|
-
}
|
99
|
-
|
100
|
-
// src/internal/mapObject.ts
|
101
|
-
function mapObject(input, mapper) {
|
102
|
-
return Object.fromEntries(
|
103
|
-
Object.entries(input).map(([key, value]) => [key, mapper(value, key)]),
|
104
|
-
)
|
105
|
-
}
|
106
|
-
|
107
|
-
// src/codecs/fixed-width-ints.ts
|
108
|
-
function decodeInt(nBytes, getter) {
|
109
|
-
return toInternalBytes((bytes) => {
|
110
|
-
const result = bytes.v[getter](bytes.i, true)
|
111
|
-
bytes.i += nBytes
|
112
|
-
return result
|
113
|
-
})
|
114
|
-
}
|
115
|
-
function encodeInt(nBytes, setter) {
|
116
|
-
return (input) => {
|
117
|
-
const result = new Uint8Array(nBytes)
|
118
|
-
const dv = new DataView(result.buffer)
|
119
|
-
dv[setter](0, input, true)
|
120
|
-
return result
|
121
|
-
}
|
122
|
-
}
|
123
|
-
function intCodec(nBytes, getter, setter) {
|
124
|
-
return createCodec(encodeInt(nBytes, setter), decodeInt(nBytes, getter))
|
125
|
-
}
|
126
|
-
var u8 = intCodec(1, "getUint8", "setUint8")
|
127
|
-
var u16 = intCodec(2, "getUint16", "setUint16")
|
128
|
-
var u32 = intCodec(4, "getUint32", "setUint32")
|
129
|
-
var u64 = intCodec(8, "getBigUint64", "setBigUint64")
|
130
|
-
var i8 = intCodec(1, "getInt8", "setInt8")
|
131
|
-
var i16 = intCodec(2, "getInt16", "setInt16")
|
132
|
-
var i32 = intCodec(4, "getInt32", "setInt32")
|
133
|
-
var i64 = intCodec(8, "getBigInt64", "setBigInt64")
|
134
|
-
var x128Enc = (value) => {
|
135
|
-
const result = new Uint8Array(16)
|
136
|
-
const dv = new DataView(result.buffer)
|
137
|
-
dv.setBigInt64(0, value, true)
|
138
|
-
dv.setBigInt64(8, value >> 64n, true)
|
139
|
-
return result
|
140
|
-
}
|
141
|
-
var create128Dec = (isSigned) =>
|
142
|
-
toInternalBytes((input) => {
|
143
|
-
const { v, i } = input
|
144
|
-
const right = v.getBigUint64(i, true)
|
145
|
-
const left = v[isSigned ? "getBigInt64" : "getBigUint64"](i + 8, true)
|
146
|
-
input.i += 16
|
147
|
-
return (left << 64n) | right
|
148
|
-
})
|
149
|
-
var u128 = createCodec(x128Enc, create128Dec())
|
150
|
-
var i128 = createCodec(x128Enc, create128Dec(1))
|
151
|
-
|
152
|
-
// src/codecs/bool.ts
|
153
|
-
var booleanToNumber = (value) => (value ? 1 : 0)
|
154
|
-
var bool = enhanceCodec(u8, booleanToNumber, Boolean)
|
155
|
-
|
156
|
-
// src/codecs/compact.ts
|
157
|
-
var bytesToIntType = {
|
158
|
-
[1]: u8[1],
|
159
|
-
[2]: u16[1],
|
160
|
-
[4]: u32[1],
|
161
|
-
}
|
162
|
-
var compactDec = toInternalBytes((bytes) => {
|
163
|
-
let usedBytes = bytes.i
|
164
|
-
const init = bytes[usedBytes]
|
165
|
-
const kind = init & 3
|
166
|
-
if (kind !== 3) {
|
167
|
-
const nBytes2 = kind === 2 ? 4 : kind + 1
|
168
|
-
return bytesToIntType[nBytes2](bytes) >>> 2
|
169
|
-
}
|
170
|
-
const nBytes = (init >>> 2) + 4
|
171
|
-
const start = usedBytes + 1
|
172
|
-
bytes.i += nBytes + 1
|
173
|
-
let result = 0n
|
174
|
-
for (let i = nBytes - 1; i >= 0; i--)
|
175
|
-
result = (result << 8n) | BigInt(bytes[start + i])
|
176
|
-
return result
|
177
|
-
})
|
178
|
-
var compactEnc = (input) => {
|
179
|
-
if (input < 0) {
|
180
|
-
throw new Error(`Wrong Compat input (${input})`)
|
181
|
-
}
|
182
|
-
if (input < 1 << 6) {
|
183
|
-
const temp = new Uint8Array(1)
|
184
|
-
temp[0] = Number(input) << 2
|
185
|
-
return temp
|
186
|
-
}
|
187
|
-
if (input < 1 << 14) {
|
188
|
-
const temp = new Uint8Array(2)
|
189
|
-
let pInput = (Number(input) << 2) + 1
|
190
|
-
const dv = new DataView(temp.buffer)
|
191
|
-
dv.setUint16(0, pInput, true)
|
192
|
-
return temp
|
193
|
-
}
|
194
|
-
if (input < 1 << 30) {
|
195
|
-
const temp = new Uint8Array(4)
|
196
|
-
let pInput = (Number(input) << 2) + 2
|
197
|
-
const dv = new DataView(temp.buffer)
|
198
|
-
dv.setUint32(0, pInput, true)
|
199
|
-
return temp
|
200
|
-
}
|
201
|
-
const result = []
|
202
|
-
let tmp = BigInt(input)
|
203
|
-
while (tmp > 0) {
|
204
|
-
result.push(Number(tmp))
|
205
|
-
tmp >>= 8n
|
206
|
-
}
|
207
|
-
result.unshift(((result.length - 4) << 2) + 3)
|
208
|
-
return new Uint8Array(result)
|
209
|
-
}
|
210
|
-
var compact = createCodec(compactEnc, compactDec)
|
211
|
-
|
212
|
-
// src/codecs/str.ts
|
213
|
-
var textEncoder = new TextEncoder()
|
214
|
-
var strEnc = (str2) => {
|
215
|
-
const val = textEncoder.encode(str2)
|
216
|
-
return mergeUint8(compact.enc(val.length), val)
|
217
|
-
}
|
218
|
-
var textDecoder = new TextDecoder()
|
219
|
-
var strDec = toInternalBytes((bytes) => {
|
220
|
-
let nElements = compact.dec(bytes)
|
221
|
-
const dv = new DataView(bytes.buffer, bytes.i, nElements)
|
222
|
-
bytes.i += nElements
|
223
|
-
return textDecoder.decode(dv)
|
224
|
-
})
|
225
|
-
var str = createCodec(strEnc, strDec)
|
226
|
-
|
227
|
-
// src/codecs/void.ts
|
228
|
-
var emptyArr = new Uint8Array(0)
|
229
|
-
var _void = createCodec(() => emptyArr, Function.prototype)
|
230
|
-
|
231
|
-
// src/codecs/Bytes.ts
|
232
|
-
var BytesEnc = (nBytes) => (bytes) =>
|
233
|
-
bytes.length === nBytes ? bytes : bytes.slice(0, nBytes)
|
234
|
-
var BytesDec = (nBytes) =>
|
235
|
-
toInternalBytes((bytes) => {
|
236
|
-
const nUsedBytes = bytes.i
|
237
|
-
const len = nBytes !== Infinity ? nBytes : bytes.byteLength - nUsedBytes
|
238
|
-
const result = new Uint8Array(bytes.buffer, nUsedBytes, len)
|
239
|
-
bytes.i += len
|
240
|
-
return result
|
241
|
-
})
|
242
|
-
var Bytes = (nBytes) => createCodec(BytesEnc(nBytes), BytesDec(nBytes))
|
243
|
-
Bytes.enc = BytesEnc
|
244
|
-
Bytes.dec = BytesDec
|
245
|
-
|
246
|
-
// src/codecs/Enum.ts
|
247
|
-
var enumEnc = (inner) => {
|
248
|
-
const keys = Object.keys(inner)
|
249
|
-
return ({ tag, value }) => {
|
250
|
-
const idx = keys.indexOf(tag)
|
251
|
-
return mergeUint8(u8.enc(idx), inner[tag](value))
|
252
|
-
}
|
253
|
-
}
|
254
|
-
var enumDec = (inner) => {
|
255
|
-
const entries = Object.entries(inner)
|
256
|
-
return toInternalBytes((bytes) => {
|
257
|
-
const idx = u8.dec(bytes)
|
258
|
-
const [tag, innerDecoder] = entries[idx]
|
259
|
-
const innerResult = innerDecoder(bytes)
|
260
|
-
return {
|
261
|
-
tag,
|
262
|
-
value: innerResult,
|
263
|
-
}
|
264
|
-
})
|
265
|
-
}
|
266
|
-
var Enum = (inner) =>
|
267
|
-
createCodec(
|
268
|
-
enumEnc(mapObject(inner, ([encoder]) => encoder)),
|
269
|
-
enumDec(mapObject(inner, ([, decoder]) => decoder)),
|
270
|
-
)
|
271
|
-
Enum.enc = enumEnc
|
272
|
-
Enum.dec = enumDec
|
273
|
-
|
274
|
-
// src/codecs/Option.ts
|
275
|
-
var OptionDec = (inner) =>
|
276
|
-
toInternalBytes((bytes) => {
|
277
|
-
const val = u8.dec(bytes)
|
278
|
-
if (val === 0) return void 0
|
279
|
-
return inner === bool[1] ? val === 1 : inner(bytes)
|
280
|
-
})
|
281
|
-
var OptionEnc = (inner) => (value) => {
|
282
|
-
const result = new Uint8Array(1)
|
283
|
-
if (value === void 0) {
|
284
|
-
result[0] = 0
|
285
|
-
return result
|
286
|
-
}
|
287
|
-
result[0] = 1
|
288
|
-
if (inner === bool[0]) {
|
289
|
-
result[0] = value ? 1 : 2
|
290
|
-
return result
|
291
|
-
}
|
292
|
-
return mergeUint8(result, inner(value))
|
293
|
-
}
|
294
|
-
var Option = (inner) => createCodec(OptionEnc(inner[0]), OptionDec(inner[1]))
|
295
|
-
Option.enc = OptionEnc
|
296
|
-
Option.dec = OptionDec
|
297
|
-
|
298
|
-
// src/codecs/Result.ts
|
299
|
-
var ResultDec = (okDecoder, koDecoder) =>
|
300
|
-
toInternalBytes((bytes) => {
|
301
|
-
const val = u8[1](bytes)
|
302
|
-
const success = val === 0
|
303
|
-
const decoder = success ? okDecoder : koDecoder
|
304
|
-
const value = decoder(bytes)
|
305
|
-
return { success, value }
|
306
|
-
})
|
307
|
-
var ResultEnc =
|
308
|
-
(okEncoder, koEncoder) =>
|
309
|
-
({ success, value }) =>
|
310
|
-
mergeUint8(u8[0](success ? 0 : 1), (success ? okEncoder : koEncoder)(value))
|
311
|
-
var Result = (okCodec, koCodec) =>
|
312
|
-
createCodec(
|
313
|
-
ResultEnc(okCodec[0], koCodec[0]),
|
314
|
-
ResultDec(okCodec[1], koCodec[1]),
|
315
|
-
)
|
316
|
-
Result.dec = ResultDec
|
317
|
-
Result.enc = ResultEnc
|
318
|
-
|
319
|
-
// src/codecs/Tuple.ts
|
320
|
-
var TupleDec = (...decoders) =>
|
321
|
-
toInternalBytes((bytes) => decoders.map((decoder) => decoder(bytes)))
|
322
|
-
var TupleEnc =
|
323
|
-
(...encoders) =>
|
324
|
-
(values) =>
|
325
|
-
mergeUint8(...values.map((value, idx) => encoders[idx](value)))
|
326
|
-
var Tuple = (...codecs) =>
|
327
|
-
createCodec(
|
328
|
-
TupleEnc(...codecs.map(([encoder]) => encoder)),
|
329
|
-
TupleDec(...codecs.map(([, decoder]) => decoder)),
|
330
|
-
)
|
331
|
-
Tuple.enc = TupleEnc
|
332
|
-
Tuple.dec = TupleDec
|
333
|
-
|
334
|
-
// src/codecs/Struct.ts
|
335
|
-
var StructEnc = (encoders) => {
|
336
|
-
const keys = Object.keys(encoders)
|
337
|
-
return enhanceEncoder(Tuple.enc(...Object.values(encoders)), (input) =>
|
338
|
-
keys.map((k) => input[k]),
|
339
|
-
)
|
340
|
-
}
|
341
|
-
var StructDec = (decoders) => {
|
342
|
-
const keys = Object.keys(decoders)
|
343
|
-
return enhanceDecoder(Tuple.dec(...Object.values(decoders)), (tuple) =>
|
344
|
-
Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])),
|
345
|
-
)
|
346
|
-
}
|
347
|
-
var Struct = (codecs) =>
|
348
|
-
createCodec(
|
349
|
-
StructEnc(mapObject(codecs, (x) => x[0])),
|
350
|
-
StructDec(mapObject(codecs, (x) => x[1])),
|
351
|
-
)
|
352
|
-
Struct.enc = StructEnc
|
353
|
-
Struct.dec = StructDec
|
354
|
-
|
355
|
-
// src/codecs/Vector.ts
|
356
|
-
var VectorEnc = (inner, size) =>
|
357
|
-
size > 0
|
358
|
-
? (value) => mergeUint8(...value.map(inner))
|
359
|
-
: (value) => mergeUint8(compact.enc(value.length), ...value.map(inner))
|
360
|
-
function VectorDec(getter, size) {
|
361
|
-
return toInternalBytes((bytes) => {
|
362
|
-
const nElements = size > 0 ? size : compact.dec(bytes)
|
363
|
-
const result = new Array(nElements)
|
364
|
-
for (let i = 0; i < nElements; i++) {
|
365
|
-
const current = getter(bytes)
|
366
|
-
result[i] = current
|
367
|
-
}
|
368
|
-
return result
|
369
|
-
})
|
370
|
-
}
|
371
|
-
function Vector(inner, size) {
|
372
|
-
return createCodec(VectorEnc(inner[0], size), VectorDec(inner[1], size))
|
373
|
-
}
|
374
|
-
Vector.enc = VectorEnc
|
375
|
-
Vector.dec = VectorDec
|
376
|
-
export {
|
377
|
-
Bytes,
|
378
|
-
Enum,
|
379
|
-
Option,
|
380
|
-
Result,
|
381
|
-
Struct,
|
382
|
-
Tuple,
|
383
|
-
Vector,
|
384
|
-
_void,
|
385
|
-
bool,
|
386
|
-
compact,
|
387
|
-
createCodec,
|
388
|
-
enhanceCodec,
|
389
|
-
enhanceDecoder,
|
390
|
-
enhanceEncoder,
|
391
|
-
i128,
|
392
|
-
i16,
|
393
|
-
i32,
|
394
|
-
i64,
|
395
|
-
i8,
|
396
|
-
str,
|
397
|
-
u128,
|
398
|
-
u16,
|
399
|
-
u32,
|
400
|
-
u64,
|
401
|
-
u8,
|
402
|
-
}
|
403
|
-
//# sourceMappingURL=scale-ts.es2017.js.map
|
@@ -1,7 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"version": 3,
|
3
|
-
"sources": ["../src/utils.ts", "../src/internal/toInternalBytes.ts", "../src/internal/mergeUint8.ts", "../src/internal/mapObject.ts", "../src/codecs/fixed-width-ints.ts", "../src/codecs/bool.ts", "../src/codecs/compact.ts", "../src/codecs/str.ts", "../src/codecs/void.ts", "../src/codecs/Bytes.ts", "../src/codecs/Enum.ts", "../src/codecs/Option.ts", "../src/codecs/Result.ts", "../src/codecs/Tuple.ts", "../src/codecs/Struct.ts", "../src/codecs/Vector.ts"],
|
4
|
-
"sourcesContent": ["import type { Codec, Decoder, Encoder } from \"./types\"\n\nexport const createCodec = <T>(\n encoder: Encoder<T>,\n decoder: Decoder<T>,\n): Codec<T> => {\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n return result\n}\n\nexport const enhanceEncoder =\n <I, O>(encoder: Encoder<I>, mapper: (value: O) => I): Encoder<O> =>\n (value) =>\n encoder(mapper(value))\n\nexport const enhanceDecoder =\n <I, O>(decoder: Decoder<I>, mapper: (value: I) => O): Decoder<O> =>\n (value) =>\n mapper(decoder(value))\n\nexport const enhanceCodec = <I, O>(\n [encoder, decoder]: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n createCodec(enhanceEncoder(encoder, toFrom), enhanceDecoder(decoder, fromTo))\n", "import { Decoder } from \"../types\"\n\n// https://jsben.ch/URe1X\nconst HEX_MAP: Record<string, number> = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n}\nexport function fromHex(hexString: string): Uint8Array {\n const isOdd = hexString.length % 2\n const base = (hexString[1] === \"x\" ? 2 : 0) + isOdd\n const nBytes = (hexString.length - base) / 2 + isOdd\n const bytes = new Uint8Array(nBytes)\n\n if (isOdd) bytes[0] = 0 | HEX_MAP[hexString[2]]\n\n for (let i = 0; i < nBytes; ) {\n const idx = base + i * 2\n const a = HEX_MAP[hexString[idx]]\n const b = HEX_MAP[hexString[idx + 1]]\n bytes[isOdd + i++] = (a << 4) | b\n }\n\n return bytes\n}\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes =\n <T>(fn: (input: InternalUint8Array) => T): Decoder<T> =>\n (buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer instanceof Uint8Array\n ? buffer.buffer\n : buffer,\n ),\n )\n", "export const mergeUint8 = (...inputs: Array<Uint8Array>): Uint8Array => {\n const totalLen = inputs.reduce((acc, a) => acc + a.byteLength, 0)\n const result = new Uint8Array(totalLen)\n\n for (let idx = 0, at = 0; idx < inputs.length; idx++) {\n const current = inputs[idx]\n result.set(current, at)\n at += current.byteLength\n }\n\n return result\n}\n", "export function mapObject<K extends string | number | symbol, I, O>(\n input: Record<K, I>,\n mapper: (i: I, k: K) => O,\n): Record<K, O>\n\nexport function mapObject<K extends string | number | symbol, I, O>(\n input: Record<K, I>,\n mapper: (i: I, k?: K) => O,\n): Record<K, O> {\n return Object.fromEntries(\n Object.entries(input).map(\n ([key, value]: any) => [key, mapper(value, key)] as const,\n ),\n ) as any\n}\n", "import { createCodec } from \"../utils\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes } from \"../internal\"\n\nfunction decodeInt(nBytes: 8, getter: keyof DataView): Decoder<bigint>\nfunction decodeInt(nBytes: number, getter: keyof DataView): Decoder<number>\nfunction decodeInt(\n nBytes: number,\n getter: keyof DataView,\n): Decoder<number> | Decoder<bigint> {\n return toInternalBytes((bytes) => {\n const result = (bytes.v[getter] as any)(bytes.i, true) as number\n bytes.i += nBytes\n return result\n })\n}\n\nfunction encodeInt(nBytes: 8, setter: keyof DataView): Encoder<bigint>\nfunction encodeInt(nBytes: number, setter: keyof DataView): Encoder<number>\nfunction encodeInt(\n nBytes: number,\n setter: keyof DataView,\n): Encoder<number> | Encoder<bigint> {\n return (input: number | bigint) => {\n const result = new Uint8Array(nBytes)\n const dv = new DataView(result.buffer)\n ;(dv[setter] as any)(0, input, true)\n return result\n }\n}\n\nfunction intCodec(\n nBytes: 8,\n getter: keyof DataView,\n setter: keyof DataView,\n): Codec<bigint>\nfunction intCodec(\n nBytes: number,\n getter: keyof DataView,\n setter: keyof DataView,\n): Codec<number>\nfunction intCodec(\n nBytes: number,\n getter: keyof DataView,\n setter: keyof DataView,\n): Codec<bigint> | Codec<number> {\n return createCodec(encodeInt(nBytes, setter), decodeInt(nBytes, getter))\n}\n\nexport const u8 = intCodec(1, \"getUint8\", \"setUint8\")\nexport const u16 = intCodec(2, \"getUint16\", \"setUint16\")\nexport const u32 = intCodec(4, \"getUint32\", \"setUint32\")\nexport const u64 = intCodec(8, \"getBigUint64\", \"setBigUint64\")\nexport const i8 = intCodec(1, \"getInt8\", \"setInt8\")\nexport const i16 = intCodec(2, \"getInt16\", \"setInt16\")\nexport const i32 = intCodec(4, \"getInt32\", \"setInt32\")\nexport const i64 = intCodec(8, \"getBigInt64\", \"setBigInt64\")\n\nconst x128Enc: Encoder<bigint> = (value) => {\n const result = new Uint8Array(16)\n const dv = new DataView(result.buffer)\n dv.setBigInt64(0, value, true)\n dv.setBigInt64(8, value >> 64n, true)\n return result\n}\n\nconst create128Dec = (isSigned?: number): Decoder<bigint> =>\n toInternalBytes((input) => {\n const { v, i } = input\n const right = v.getBigUint64(i, true)\n const left = v[isSigned ? \"getBigInt64\" : \"getBigUint64\"](i + 8, true)\n input.i += 16\n return (left << 64n) | right\n })\n\nexport const u128 = createCodec(x128Enc, create128Dec())\nexport const i128 = createCodec(x128Enc, create128Dec(1))\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../\"\nimport { u8 } from \"./fixed-width-ints\"\n\nconst booleanToNumber = (value: boolean) => (value ? 1 : 0)\n\nexport const bool: Codec<boolean> = enhanceCodec(u8, booleanToNumber, Boolean)\n", "import { createCodec } from \"../\"\nimport { toInternalBytes } from \"../internal\"\nimport { u8, u16, u32 } from \"./fixed-width-ints\"\nimport { Decoder, Encoder, Codec } from \"../types\"\n\nconst bytesToIntType = {\n [1]: u8[1],\n [2]: u16[1],\n [4]: u32[1],\n} as const\n\nconst compactDec: Decoder<number | bigint> = toInternalBytes<number | bigint>(\n (bytes) => {\n let usedBytes = bytes.i\n const init = bytes[usedBytes]\n\n const kind = init & 3\n\n if (kind !== 3) {\n const nBytes = kind === 2 ? 4 : kind + 1\n return bytesToIntType[nBytes as 1 | 2 | 4](bytes) >>> 2\n }\n\n const nBytes = (init >>> 2) + 4\n const start = usedBytes + 1\n bytes.i += nBytes + 1\n\n let result = 0n\n for (let i = nBytes - 1; i >= 0; i--)\n result = (result << 8n) | BigInt(bytes[start + i])\n\n return result\n },\n)\n\nconst compactEnc: Encoder<number | bigint> = (input) => {\n if (input < 0) {\n throw new Error(`Wrong Compat input (${input})`)\n }\n if (input < 1 << 6) {\n const temp = new Uint8Array(1)\n temp[0] = Number(input) << 2\n return temp\n }\n if (input < 1 << 14) {\n const temp = new Uint8Array(2)\n let pInput = (Number(input) << 2) + 1\n const dv = new DataView(temp.buffer)\n dv.setUint16(0, pInput, true)\n return temp\n }\n if (input < 1 << 30) {\n const temp = new Uint8Array(4)\n let pInput = (Number(input) << 2) + 2\n const dv = new DataView(temp.buffer)\n dv.setUint32(0, pInput, true)\n return temp\n }\n\n const result: number[] = []\n let tmp = BigInt(input)\n while (tmp > 0) {\n result.push(Number(tmp))\n tmp >>= 8n\n }\n result.unshift(((result.length - 4) << 2) + 3)\n return new Uint8Array(result)\n}\n\nexport const compact: Codec<number | bigint> = createCodec(\n compactEnc,\n compactDec,\n)\n", "import { createCodec, Decoder, Encoder } from \"../\"\nimport { toInternalBytes, mergeUint8 } from \"../internal\"\nimport { compact } from \"./compact\"\n\nconst textEncoder = new TextEncoder()\nconst strEnc: Encoder<string> = (str) => {\n const val = textEncoder.encode(str)\n return mergeUint8(compact.enc(val.length), val)\n}\n\nconst textDecoder = new TextDecoder()\nconst strDec: Decoder<string> = toInternalBytes((bytes) => {\n let nElements = compact.dec(bytes) as number\n const dv = new DataView(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n return textDecoder.decode(dv)\n})\n\nexport const str = createCodec(strEnc, strDec)\n", "import { Codec } from \"../types\"\nimport { createCodec } from \"../\"\n\nconst emptyArr = new Uint8Array(0)\nexport const _void: Codec<undefined> = createCodec(\n () => emptyArr,\n Function.prototype as () => undefined,\n)\n", "import { Encoder, Decoder, Codec } from \"../types\"\nimport { createCodec } from \"../\"\nimport { toInternalBytes } from \"../internal\"\n\nconst BytesEnc =\n (nBytes: number): Encoder<Uint8Array> =>\n (bytes) =>\n bytes.length === nBytes ? bytes : bytes.slice(0, nBytes)\n\nconst BytesDec = (nBytes: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const nUsedBytes = bytes.i\n const len = nBytes !== Infinity ? nBytes : bytes.byteLength - nUsedBytes\n const result = new Uint8Array(bytes.buffer, nUsedBytes, len)\n bytes.i += len\n return result\n })\n\nexport const Bytes = (nBytes: number): Codec<Uint8Array> =>\n createCodec(BytesEnc(nBytes), BytesDec(nBytes))\n\nBytes.enc = BytesEnc\nBytes.dec = BytesDec\n", "import { Codec, Decoder, Encoder, StringRecord } from \"../types\"\nimport { toInternalBytes, mapObject, mergeUint8 } from \"../internal\"\nimport { createCodec, u8 } from \"../\"\n\nconst enumEnc = <\n O extends StringRecord<Encoder<any>>,\n OT extends {\n [K in keyof O]: O[K] extends Encoder<infer D>\n ? D extends undefined\n ? { tag: K; value?: undefined }\n : { tag: K; value: D }\n : unknown\n },\n>(\n inner: O,\n): Encoder<OT[keyof O]> => {\n const keys = Object.keys(inner)\n return ({ tag, value }: any) => {\n const idx = keys.indexOf(tag)\n return mergeUint8(u8.enc(idx), (inner as any)[tag](value))\n }\n}\n\nconst enumDec = <\n O extends StringRecord<Decoder<any>>,\n OT extends {\n [K in keyof O]: O[K] extends Decoder<infer D>\n ? D extends undefined\n ? { tag: K; value?: undefined }\n : { tag: K; value: D }\n : unknown\n },\n>(\n inner: O,\n): Decoder<OT[keyof O]> => {\n const entries = Object.entries(inner)\n\n return toInternalBytes((bytes) => {\n const idx = u8.dec(bytes)\n const [tag, innerDecoder] = entries[idx]\n const innerResult = innerDecoder(bytes)\n\n return {\n tag,\n value: innerResult,\n } as OT[keyof O]\n })\n}\n\nexport const Enum = <\n O extends StringRecord<Codec<any>>,\n OT extends {\n [K in keyof O]: O[K] extends Codec<infer D>\n ? D extends undefined\n ? { tag: K; value?: undefined }\n : { tag: K; value: D }\n : unknown\n },\n>(\n inner: O,\n): Codec<OT[keyof O]> =>\n createCodec<OT[keyof O]>(\n enumEnc(mapObject(inner, ([encoder]) => encoder) as any) as any,\n enumDec(mapObject(inner, ([, decoder]) => decoder) as any),\n )\n\nEnum.enc = enumEnc\nEnum.dec = enumDec\n", "import { Decoder, Encoder, Codec } from \"../types\"\nimport { toInternalBytes, mergeUint8 } from \"../internal\"\nimport { createCodec } from \"../utils\"\nimport { u8 } from \"./fixed-width-ints\"\nimport { bool } from \"./bool\"\n\nconst OptionDec = <T>(inner: Decoder<T>): Decoder<T | undefined | void> =>\n toInternalBytes<T | undefined>((bytes) => {\n const val = u8.dec(bytes)\n if (val === 0) return undefined\n\n return inner === (bool[1] as any)\n ? ((val === 1) as unknown as T)\n : inner(bytes)\n })\n\nconst OptionEnc =\n <T>(inner: Encoder<T>): Encoder<T | undefined | void> =>\n (value) => {\n const result = new Uint8Array(1)\n if (value === undefined) {\n result[0] = 0\n return result\n }\n\n result[0] = 1\n if (inner === (bool[0] as any)) {\n result[0] = value ? 1 : 2\n return result\n }\n\n return mergeUint8(result, inner(value))\n }\n\nexport const Option = <T>(inner: Codec<T>): Codec<T | undefined | void> =>\n createCodec(OptionEnc(inner[0]), OptionDec(inner[1]))\n\nOption.enc = OptionEnc\nOption.dec = OptionDec\n", "import { createCodec } from \"../utils\"\nimport { mergeUint8, toInternalBytes } from \"../internal\"\nimport { Decoder, Encoder, Codec } from \"../types\"\nimport { u8 } from \"./fixed-width-ints\"\n\ntype ResultPayload<OK, KO> =\n | { success: true; value: OK }\n | { success: false; value: KO }\n\nconst ResultDec = <OK, KO>(\n okDecoder: Decoder<OK>,\n koDecoder: Decoder<KO>,\n): Decoder<ResultPayload<OK, KO>> =>\n toInternalBytes((bytes) => {\n const val = u8[1](bytes)\n const success = val === 0\n const decoder = success ? okDecoder : koDecoder\n const value = decoder(bytes)\n return { success, value } as ResultPayload<OK, KO>\n })\n\nconst ResultEnc =\n <OK, KO>(\n okEncoder: Encoder<OK>,\n koEncoder: Encoder<KO>,\n ): Encoder<ResultPayload<OK, KO>> =>\n ({ success, value }) =>\n mergeUint8(\n u8[0](success ? 0 : 1),\n (success ? okEncoder : koEncoder)(value as any),\n )\n\nexport const Result = <OK, KO>(\n okCodec: Codec<OK>,\n koCodec: Codec<KO>,\n): Codec<ResultPayload<OK, KO>> =>\n createCodec(\n ResultEnc(okCodec[0], koCodec[0]),\n ResultDec(okCodec[1], koCodec[1]),\n )\n\nResult.dec = ResultDec\nResult.enc = ResultEnc\n", "import { Codec, Decoder, Encoder } from \"../types\"\nimport { mergeUint8, toInternalBytes } from \"../internal\"\nimport { createCodec } from \"../utils\"\n\nconst TupleDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> =>\n toInternalBytes(\n (bytes) => decoders.map((decoder) => decoder(bytes)) as [...OT],\n )\n\nconst TupleEnc =\n <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n >(\n ...encoders: A\n ): Encoder<[...OT]> =>\n (values) =>\n mergeUint8(...values.map((value, idx) => encoders[idx](value)))\n\nexport const Tuple = <\n A extends Array<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n ...codecs: A\n): Codec<[...OT]> =>\n createCodec(\n TupleEnc(...codecs.map(([encoder]) => encoder)),\n TupleDec(...codecs.map(([, decoder]) => decoder)),\n )\n\nTuple.enc = TupleEnc\nTuple.dec = TupleDec\n", "import { mapObject } from \"../internal\"\nimport { Codec, Decoder, Encoder, StringRecord } from \"../types\"\nimport { createCodec, enhanceDecoder, enhanceEncoder } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nconst StructEnc = <\n A extends StringRecord<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n encoders: A,\n): Encoder<OT> => {\n const keys = Object.keys(encoders)\n return enhanceEncoder(Tuple.enc(...Object.values(encoders)), (input: OT) =>\n keys.map((k) => input[k]),\n )\n}\n\nconst StructDec = <\n A extends StringRecord<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n decoders: A,\n): Decoder<OT> => {\n const keys = Object.keys(decoders)\n return enhanceDecoder(\n Tuple.dec(...Object.values(decoders)),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as OT,\n )\n}\n\nexport const Struct = <\n A extends StringRecord<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n codecs: A,\n): Codec<OT> =>\n createCodec(\n StructEnc(mapObject(codecs, (x) => x[0]) as any),\n StructDec(mapObject(codecs, (x) => x[1]) as any),\n )\n\nStruct.enc = StructEnc\nStruct.dec = StructDec\n", "import { toInternalBytes, mergeUint8 } from \"../internal\"\nimport { createCodec } from \"../utils\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { compact } from \"./compact\"\n\nconst VectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> =>\n size! > 0\n ? (value) => mergeUint8(...value.map(inner))\n : (value) => mergeUint8(compact.enc(value.length), ...value.map(inner))\n\nfunction VectorDec<T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> {\n return toInternalBytes((bytes) => {\n const nElements = size! > 0 ? size! : compact.dec(bytes)\n const result = new Array(nElements as number)\n\n for (let i = 0; i < nElements; i++) {\n const current = getter(bytes)\n result[i] = current\n }\n\n return result\n })\n}\n\nexport function Vector<T>(inner: Codec<T>, size?: number): Codec<Array<T>> {\n return createCodec(VectorEnc(inner[0], size), VectorDec(inner[1], size))\n}\n\nVector.enc = VectorEnc\nVector.dec = VectorDec\n"],
|
5
|
-
"mappings": "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",
|
6
|
-
"names": []
|
7
|
-
}
|