@yume-chan/struct 1.0.0 → 2.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.
- package/CHANGELOG.md +11 -0
- package/LICENSE +1 -1
- package/esm/bipedal.d.ts +2 -1
- package/esm/bipedal.d.ts.map +1 -1
- package/esm/bipedal.js +10 -3
- package/esm/bipedal.js.map +1 -1
- package/esm/buffer.d.ts +20 -11
- package/esm/buffer.d.ts.map +1 -1
- package/esm/buffer.js +137 -140
- package/esm/buffer.js.map +1 -1
- package/esm/concat.d.ts +13 -0
- package/esm/concat.d.ts.map +1 -0
- package/esm/concat.js +10 -0
- package/esm/concat.js.map +1 -0
- package/esm/extend.d.ts +6 -0
- package/esm/extend.d.ts.map +1 -0
- package/esm/extend.js +10 -0
- package/esm/extend.js.map +1 -0
- package/esm/field/factory.d.ts +13 -0
- package/esm/field/factory.d.ts.map +1 -0
- package/esm/field/factory.js +21 -0
- package/esm/field/factory.js.map +1 -0
- package/esm/field/index.d.ts +4 -0
- package/esm/field/index.d.ts.map +1 -0
- package/esm/field/index.js +4 -0
- package/esm/field/index.js.map +1 -0
- package/esm/field/serialize.d.ts +8 -0
- package/esm/field/serialize.d.ts.map +1 -0
- package/esm/field/serialize.js +33 -0
- package/esm/field/serialize.js.map +1 -0
- package/esm/field/types.d.ts +33 -0
- package/esm/field/types.d.ts.map +1 -0
- package/esm/field/types.js +2 -0
- package/esm/field/types.js.map +1 -0
- package/esm/index.d.ts +4 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -1
- package/esm/index.js.map +1 -1
- package/esm/number.d.ts +3 -3
- package/esm/number.d.ts.map +1 -1
- package/esm/number.js +29 -31
- package/esm/number.js.map +1 -1
- package/esm/readable.d.ts +6 -0
- package/esm/readable.d.ts.map +1 -1
- package/esm/readable.js +19 -0
- package/esm/readable.js.map +1 -1
- package/esm/string.d.ts +1 -1
- package/esm/string.d.ts.map +1 -1
- package/esm/string.js +4 -5
- package/esm/string.js.map +1 -1
- package/esm/struct.d.ts +20 -22
- package/esm/struct.d.ts.map +1 -1
- package/esm/struct.js +55 -18
- package/esm/struct.js.map +1 -1
- package/esm/types.d.ts +20 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/types.js +2 -0
- package/esm/types.js.map +1 -0
- package/package.json +7 -7
- package/src/bipedal.ts +18 -8
- package/src/buffer.ts +236 -162
- package/src/concat.ts +78 -0
- package/src/extend.ts +37 -0
- package/src/field/factory.ts +64 -0
- package/src/field/index.ts +3 -0
- package/src/field/serialize.ts +58 -0
- package/src/field/types.ts +48 -0
- package/src/index.ts +4 -1
- package/src/number.ts +48 -37
- package/src/readable.ts +28 -0
- package/src/string.ts +6 -8
- package/src/struct.ts +129 -86
- package/src/types.ts +37 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/field.d.ts +0 -21
- package/esm/field.d.ts.map +0 -1
- package/esm/field.js +0 -2
- package/esm/field.js.map +0 -1
- package/src/field.ts +0 -27
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Change Log - @yume-chan/struct
|
|
2
2
|
|
|
3
|
+
## 2.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- b79df96: Refactor struct package to allow `struct`s to be used as `field`
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
- @yume-chan/no-data-view@2.0.0
|
|
13
|
+
|
|
3
14
|
## 1.0.1
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/LICENSE
CHANGED
package/esm/bipedal.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { MaybePromiseLike } from "@yume-chan/async";
|
|
2
|
-
export
|
|
2
|
+
export type BipedalGenerator<This, T, A extends unknown[]> = (this: This, then: <U>(value: MaybePromiseLike<U>) => Iterable<unknown, U, unknown>, ...args: A) => Generator<unknown, T, unknown>;
|
|
3
|
+
export declare function bipedal<This, T, A extends unknown[]>(fn: BipedalGenerator<This, T, A>, bindThis?: This): {
|
|
3
4
|
(this: This, ...args: A): MaybePromiseLike<T>;
|
|
4
5
|
};
|
|
5
6
|
//# sourceMappingURL=bipedal.d.ts.map
|
package/esm/bipedal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bipedal.d.ts","sourceRoot":"","sources":["../src/bipedal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsBzD,
|
|
1
|
+
{"version":3,"file":"bipedal.d.ts","sourceRoot":"","sources":["../src/bipedal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsBzD,MAAM,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,CACzD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EACtE,GAAG,IAAI,EAAE,CAAC,KACT,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAGpC,wBAAgB,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,SAAS,OAAO,EAAE,EAChD,EAAE,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAChC,QAAQ,CAAC,EAAE,IAAI,GAChB;IAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;CAAE,CAgCnD"}
|
package/esm/bipedal.js
CHANGED
|
@@ -11,8 +11,9 @@ function advance(iterator, next) {
|
|
|
11
11
|
next = value;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
/* #__NO_SIDE_EFFECTS__ */
|
|
15
|
+
export function bipedal(fn, bindThis) {
|
|
16
|
+
function result(...args) {
|
|
16
17
|
const iterator = fn.call(this, function* (value) {
|
|
17
18
|
if (isPromiseLike(value)) {
|
|
18
19
|
const result = yield value;
|
|
@@ -26,6 +27,12 @@ export function bipedal(fn) {
|
|
|
26
27
|
return value;
|
|
27
28
|
}, ...args);
|
|
28
29
|
return advance(iterator, undefined);
|
|
29
|
-
}
|
|
30
|
+
}
|
|
31
|
+
if (bindThis) {
|
|
32
|
+
return result.bind(bindThis);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
30
37
|
}
|
|
31
38
|
//# sourceMappingURL=bipedal.js.map
|
package/esm/bipedal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bipedal.js","sourceRoot":"","sources":["../src/bipedal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,SAAS,OAAO,CACZ,QAAuC,EACvC,IAAa;IAEb,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,IAAI,CACb,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EACjD,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CACnD,CAAC;QACN,CAAC;QACD,IAAI,GAAG,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"bipedal.js","sourceRoot":"","sources":["../src/bipedal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,SAAS,OAAO,CACZ,QAAuC,EACvC,IAAa;IAEb,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,IAAI,CACb,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EACjD,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CACnD,CAAC;QACN,CAAC;QACD,IAAI,GAAG,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAQD,0BAA0B;AAC1B,MAAM,UAAU,OAAO,CACnB,EAAgC,EAChC,QAAe;IAEf,SAAS,MAAM,CAAa,GAAG,IAAO;QAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CACpB,IAAI,EACJ,QAAQ,CAAC,EACL,KAA0B;YAM1B,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;gBAC3B,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;oBACvB,OAAO,MAAM,CAAC,QAAQ,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACJ,MAAM,MAAM,CAAC,KAAK,CAAC;gBACvB,CAAC;YACL,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,EACD,GAAG,IAAI,CACD,CAAC;QACX,OAAO,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,OAAO,MAAM,CAAC;IAClB,CAAC;AACL,CAAC"}
|
package/esm/buffer.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Field } from "./field.js";
|
|
1
|
+
import type { Field } from "./field/index.js";
|
|
2
|
+
export declare const EmptyUint8Array: Uint8Array<ArrayBuffer>;
|
|
2
3
|
export interface Converter<From, To> {
|
|
3
4
|
convert: (value: From) => To;
|
|
4
5
|
back: (value: To) => From;
|
|
@@ -7,15 +8,23 @@ export interface BufferLengthConverter<K, KT> extends Converter<KT, number> {
|
|
|
7
8
|
field: K;
|
|
8
9
|
}
|
|
9
10
|
export interface BufferLike {
|
|
10
|
-
(length: number): Field<Uint8Array, never, never>;
|
|
11
|
-
<U>(length: number, converter: Converter<Uint8Array, U>): Field<U, never, never>;
|
|
12
|
-
<K extends string>(lengthField: K): Field<Uint8Array, K, Record<K, number
|
|
13
|
-
<K extends string, U>(lengthField: K, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, number
|
|
14
|
-
<K extends string, KT>(length: BufferLengthConverter<K, KT>): Field<Uint8Array, K, Record<K, KT
|
|
15
|
-
<K extends string, KT, U>(length: BufferLengthConverter<K, KT>, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, KT
|
|
16
|
-
<
|
|
17
|
-
<
|
|
11
|
+
(length: number): Field<Uint8Array, never, never, Uint8Array>;
|
|
12
|
+
<U>(length: number, converter: Converter<Uint8Array, U>): Field<U, never, never, Uint8Array>;
|
|
13
|
+
<K extends string>(lengthField: K): Field<Uint8Array, K, Record<K, number>, Uint8Array>;
|
|
14
|
+
<K extends string, U>(lengthField: K, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, number>, Uint8Array>;
|
|
15
|
+
<K extends string, KT>(length: BufferLengthConverter<K, KT>): Field<Uint8Array, K, Record<K, KT>, Uint8Array>;
|
|
16
|
+
<K extends string, KT, U>(length: BufferLengthConverter<K, KT>, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, KT>, Uint8Array>;
|
|
17
|
+
<LengthOmitInit extends string, LengthDependencies>(length: Field<number, LengthOmitInit, LengthDependencies, number>): Field<Uint8Array, LengthOmitInit, LengthDependencies, Uint8Array>;
|
|
18
|
+
<LengthOmitInit extends string, LengthDependencies, U>(length: Field<number, LengthOmitInit, LengthDependencies, number>, converter: Converter<Uint8Array, U>): Field<U, LengthOmitInit, LengthDependencies, Uint8Array>;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
declare function _buffer(length: number): Field<Uint8Array, never, never, Uint8Array>;
|
|
21
|
+
declare function _buffer<U>(length: number, converter: Converter<Uint8Array, U>): Field<U, never, never, Uint8Array>;
|
|
22
|
+
declare function _buffer<K extends string>(lengthField: K): Field<Uint8Array, K, Record<K, number>, Uint8Array>;
|
|
23
|
+
declare function _buffer<K extends string, U>(lengthField: K, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, number>, Uint8Array>;
|
|
24
|
+
declare function _buffer<K extends string, KT>(length: BufferLengthConverter<K, KT>): Field<Uint8Array, K, Record<K, KT>, Uint8Array>;
|
|
25
|
+
declare function _buffer<K extends string, KT, U>(length: BufferLengthConverter<K, KT>, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, KT>, Uint8Array>;
|
|
26
|
+
declare function _buffer<LengthOmitInit extends string, LengthDependencies>(length: Field<number, LengthOmitInit, LengthDependencies, number>): Field<Uint8Array, LengthOmitInit, LengthDependencies, Uint8Array>;
|
|
27
|
+
declare function _buffer<LengthOmitInit extends string, LengthDependencies, U>(length: Field<number, LengthOmitInit, LengthDependencies, number>, converter: Converter<Uint8Array, U>): Field<U, LengthOmitInit, LengthDependencies, Uint8Array>;
|
|
28
|
+
export declare const buffer: typeof _buffer;
|
|
29
|
+
export {};
|
|
21
30
|
//# sourceMappingURL=buffer.d.ts.map
|
package/esm/buffer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"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"}
|
package/esm/buffer.js
CHANGED
|
@@ -1,173 +1,170 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { field } from "./field/index.js";
|
|
2
2
|
export const EmptyUint8Array = new Uint8Array(0);
|
|
3
|
-
|
|
3
|
+
/* #__NO_SIDE_EFFECTS__ */
|
|
4
|
+
function _buffer(lengthOrField, converter) {
|
|
5
|
+
// Fixed length
|
|
4
6
|
if (typeof lengthOrField === "number") {
|
|
5
7
|
if (converter) {
|
|
6
8
|
if (lengthOrField === 0) {
|
|
7
|
-
return {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
9
|
+
return field(0, "byob", () => { },
|
|
10
|
+
// eslint-disable-next-line require-yield
|
|
11
|
+
function* () {
|
|
12
|
+
return converter.convert(EmptyUint8Array);
|
|
13
|
+
});
|
|
12
14
|
}
|
|
13
|
-
return {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
return field(0, "byob", (value, { buffer, index }) => {
|
|
16
|
+
buffer.set(value.slice(0, lengthOrField), index);
|
|
17
|
+
}, function* (then, reader) {
|
|
18
|
+
const array = yield* then(reader.readExactly(lengthOrField));
|
|
19
|
+
return converter.convert(array);
|
|
20
|
+
}, {
|
|
21
|
+
init(value) {
|
|
22
|
+
return converter.back(value);
|
|
17
23
|
},
|
|
18
|
-
|
|
19
|
-
const array = yield* then(reader.readExactly(lengthOrField));
|
|
20
|
-
return converter.convert(array);
|
|
21
|
-
}),
|
|
22
|
-
};
|
|
24
|
+
});
|
|
23
25
|
}
|
|
24
26
|
if (lengthOrField === 0) {
|
|
25
|
-
return {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
};
|
|
27
|
+
return field(0, "byob", () => { },
|
|
28
|
+
// eslint-disable-next-line require-yield
|
|
29
|
+
function* () {
|
|
30
|
+
return EmptyUint8Array;
|
|
31
|
+
});
|
|
30
32
|
}
|
|
31
|
-
return {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
};
|
|
33
|
+
return field(0, "byob", (value, { buffer, index }) => {
|
|
34
|
+
buffer.set(value.slice(0, lengthOrField), index);
|
|
35
|
+
},
|
|
36
|
+
// eslint-disable-next-line require-yield
|
|
37
|
+
function* (_then, reader) {
|
|
38
|
+
return reader.readExactly(lengthOrField);
|
|
39
|
+
});
|
|
38
40
|
}
|
|
39
|
-
//
|
|
41
|
+
// Declare length field
|
|
42
|
+
// Some field types are `function`s
|
|
40
43
|
if ((typeof lengthOrField === "object" ||
|
|
41
44
|
typeof lengthOrField === "function") &&
|
|
42
45
|
"serialize" in lengthOrField) {
|
|
43
46
|
if (converter) {
|
|
44
|
-
return {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
return field(lengthOrField.size, "default", (value, { littleEndian }) => {
|
|
48
|
+
if (lengthOrField.type === "default") {
|
|
49
|
+
const lengthBuffer = lengthOrField.serialize(value.length, { littleEndian });
|
|
50
|
+
const result = new Uint8Array(lengthBuffer.length + value.length);
|
|
51
|
+
result.set(lengthBuffer, 0);
|
|
52
|
+
result.set(value, lengthBuffer.length);
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const result = new Uint8Array(lengthOrField.size + value.length);
|
|
57
|
+
lengthOrField.serialize(value.length, {
|
|
58
|
+
buffer: result,
|
|
59
|
+
index: 0,
|
|
60
|
+
littleEndian,
|
|
61
|
+
});
|
|
62
|
+
result.set(value, lengthOrField.size);
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
}, function* (then, reader, context) {
|
|
66
|
+
const length = yield* then(lengthOrField.deserialize(reader, context));
|
|
67
|
+
const array = yield* then(reader.readExactly(length));
|
|
68
|
+
return converter.convert(array);
|
|
69
|
+
}, {
|
|
70
|
+
init(value) {
|
|
71
|
+
return converter.back(value);
|
|
58
72
|
},
|
|
59
|
-
|
|
60
|
-
const length = yield* then(lengthOrField.deserialize(context));
|
|
61
|
-
const array = yield* then(context.reader.readExactly(length));
|
|
62
|
-
return converter.convert(array);
|
|
63
|
-
}),
|
|
64
|
-
};
|
|
73
|
+
});
|
|
65
74
|
}
|
|
66
|
-
return {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
return field(lengthOrField.size, "default", (value, { littleEndian }) => {
|
|
76
|
+
if (lengthOrField.type === "default") {
|
|
77
|
+
const lengthBuffer = lengthOrField.serialize(value.length, {
|
|
78
|
+
littleEndian,
|
|
79
|
+
});
|
|
80
|
+
const result = new Uint8Array(lengthBuffer.length + value.length);
|
|
81
|
+
result.set(lengthBuffer, 0);
|
|
82
|
+
result.set(value, lengthBuffer.length);
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
const result = new Uint8Array(lengthOrField.size + value.length);
|
|
87
|
+
lengthOrField.serialize(value.length, {
|
|
88
|
+
buffer: result,
|
|
89
|
+
index: 0,
|
|
90
|
+
littleEndian,
|
|
91
|
+
});
|
|
92
|
+
result.set(value, lengthOrField.size);
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
}, function* (then, reader, context) {
|
|
96
|
+
const length = yield* then(lengthOrField.deserialize(reader, context));
|
|
97
|
+
return yield* then(reader.readExactly(length));
|
|
98
|
+
});
|
|
84
99
|
}
|
|
100
|
+
// Reference exiting length field
|
|
85
101
|
if (typeof lengthOrField === "string") {
|
|
86
102
|
if (converter) {
|
|
87
|
-
return
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
},
|
|
92
|
-
dynamicSize: (value) => {
|
|
93
|
-
return converter.back(value).length;
|
|
94
|
-
},
|
|
95
|
-
serialize: (value, { buffer, index }) => {
|
|
96
|
-
buffer.set(converter.back(value), index);
|
|
97
|
-
},
|
|
98
|
-
deserialize: bipedal(function* (then, { reader, runtimeStruct }) {
|
|
99
|
-
const length = runtimeStruct[lengthOrField];
|
|
100
|
-
if (length === 0) {
|
|
101
|
-
return converter.convert(EmptyUint8Array);
|
|
102
|
-
}
|
|
103
|
-
const value = yield* then(reader.readExactly(length));
|
|
104
|
-
return converter.convert(value);
|
|
105
|
-
}),
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
size: 0,
|
|
110
|
-
preSerialize: (value, runtimeStruct) => {
|
|
111
|
-
runtimeStruct[lengthOrField] = value.length;
|
|
112
|
-
},
|
|
113
|
-
dynamicSize: (value) => {
|
|
114
|
-
return value.length;
|
|
115
|
-
},
|
|
116
|
-
serialize: (value, { buffer, index }) => {
|
|
117
|
-
buffer.set(value, index);
|
|
118
|
-
},
|
|
119
|
-
deserialize: ({ reader, runtimeStruct }) => {
|
|
120
|
-
const length = runtimeStruct[lengthOrField];
|
|
103
|
+
return field(0, "default", (source) => source,
|
|
104
|
+
// eslint-disable-next-line require-yield
|
|
105
|
+
function* (_then, reader, { dependencies }) {
|
|
106
|
+
const length = dependencies[lengthOrField];
|
|
121
107
|
if (length === 0) {
|
|
122
108
|
return EmptyUint8Array;
|
|
123
109
|
}
|
|
124
110
|
return reader.readExactly(length);
|
|
111
|
+
}, {
|
|
112
|
+
init(value, dependencies) {
|
|
113
|
+
const array = converter.back(value);
|
|
114
|
+
dependencies[lengthOrField] = array.length;
|
|
115
|
+
return array;
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
return field(0, "default", (source) => source,
|
|
120
|
+
// eslint-disable-next-line require-yield
|
|
121
|
+
function* (_then, reader, { dependencies }) {
|
|
122
|
+
const length = dependencies[lengthOrField];
|
|
123
|
+
if (length === 0) {
|
|
124
|
+
return EmptyUint8Array;
|
|
125
|
+
}
|
|
126
|
+
return reader.readExactly(length);
|
|
127
|
+
}, {
|
|
128
|
+
init(value, dependencies) {
|
|
129
|
+
dependencies[lengthOrField] = value.length;
|
|
130
|
+
return undefined;
|
|
125
131
|
},
|
|
126
|
-
};
|
|
132
|
+
});
|
|
127
133
|
}
|
|
134
|
+
// Reference existing length field + converter
|
|
128
135
|
if (converter) {
|
|
129
|
-
return
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
runtimeStruct[lengthOrField.field] = lengthOrField.back(length);
|
|
134
|
-
},
|
|
135
|
-
dynamicSize: (value) => {
|
|
136
|
-
return converter.back(value).length;
|
|
137
|
-
},
|
|
138
|
-
serialize: (value, { buffer, index }) => {
|
|
139
|
-
buffer.set(converter.back(value), index);
|
|
140
|
-
},
|
|
141
|
-
deserialize: bipedal(function* (then, { reader, runtimeStruct }) {
|
|
142
|
-
const rawLength = runtimeStruct[lengthOrField.field];
|
|
143
|
-
const length = lengthOrField.convert(rawLength);
|
|
144
|
-
if (length === 0) {
|
|
145
|
-
return converter.convert(EmptyUint8Array);
|
|
146
|
-
}
|
|
147
|
-
const value = yield* then(reader.readExactly(length));
|
|
148
|
-
return converter.convert(value);
|
|
149
|
-
}),
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
return {
|
|
153
|
-
size: 0,
|
|
154
|
-
preSerialize: (value, runtimeStruct) => {
|
|
155
|
-
runtimeStruct[lengthOrField.field] = lengthOrField.back(value.length);
|
|
156
|
-
},
|
|
157
|
-
dynamicSize: (value) => {
|
|
158
|
-
return value.length;
|
|
159
|
-
},
|
|
160
|
-
serialize: (value, { buffer, index }) => {
|
|
161
|
-
buffer.set(value, index);
|
|
162
|
-
},
|
|
163
|
-
deserialize: ({ reader, runtimeStruct }) => {
|
|
164
|
-
const rawLength = runtimeStruct[lengthOrField.field];
|
|
136
|
+
return field(0, "default", (source) => source,
|
|
137
|
+
// eslint-disable-next-line require-yield
|
|
138
|
+
function* (_then, reader, { dependencies }) {
|
|
139
|
+
const rawLength = dependencies[lengthOrField.field];
|
|
165
140
|
const length = lengthOrField.convert(rawLength);
|
|
166
141
|
if (length === 0) {
|
|
167
142
|
return EmptyUint8Array;
|
|
168
143
|
}
|
|
169
144
|
return reader.readExactly(length);
|
|
145
|
+
}, {
|
|
146
|
+
init(value, dependencies) {
|
|
147
|
+
const array = converter.back(value);
|
|
148
|
+
dependencies[lengthOrField.field] = lengthOrField.back(array.length);
|
|
149
|
+
return array;
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return field(0, "default", (source) => source,
|
|
154
|
+
// eslint-disable-next-line require-yield
|
|
155
|
+
function* (_then, reader, { dependencies }) {
|
|
156
|
+
const rawLength = dependencies[lengthOrField.field];
|
|
157
|
+
const length = lengthOrField.convert(rawLength);
|
|
158
|
+
if (length === 0) {
|
|
159
|
+
return EmptyUint8Array;
|
|
160
|
+
}
|
|
161
|
+
return reader.readExactly(length);
|
|
162
|
+
}, {
|
|
163
|
+
init(value, dependencies) {
|
|
164
|
+
dependencies[lengthOrField.field] = lengthOrField.back(value.length);
|
|
165
|
+
return undefined;
|
|
170
166
|
},
|
|
171
|
-
};
|
|
172
|
-
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
export const buffer = _buffer;
|
|
173
170
|
//# sourceMappingURL=buffer.js.map
|
package/esm/buffer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer.js","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buffer.js","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAyEjD,0BAA0B;AAC1B,SAAS,OAAO,CACZ,aAI4C,EAC5C,SAA0C;IAE1C,eAAe;IACf,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,KAAK,CACR,CAAC,EACD,MAAM,EACN,GAAG,EAAE,GAAE,CAAC;gBACR,yCAAyC;gBACzC,QAAQ,CAAC;oBACL,OAAO,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC9C,CAAC,CACJ,CAAC;YACN,CAAC;YAED,OAAO,KAAK,CACR,CAAC,EACD,MAAM,EACN,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBACzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC,EACD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM;gBACnB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CACrB,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CACpC,CAAC;gBACF,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC,EACD;gBACI,IAAI,CAAC,KAAK;oBACN,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;aACJ,CACJ,CAAC;QACN,CAAC;QAED,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CACR,CAAC,EACD,MAAM,EACN,GAAG,EAAE,GAAE,CAAC;YACR,yCAAyC;YACzC,QAAQ,CAAC;gBACL,OAAO,eAAe,CAAC;YAC3B,CAAC,CACJ,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CACR,CAAC,EACD,MAAM,EACN,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YACzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,yCAAyC;QACzC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM;YACpB,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC,CACJ,CAAC;IACN,CAAC;IAED,uBAAuB;IACvB,mCAAmC;IACnC,IACI,CAAC,OAAO,aAAa,KAAK,QAAQ;QAC9B,OAAO,aAAa,KAAK,UAAU,CAAC;QACxC,WAAW,IAAI,aAAa,EAC9B,CAAC;QACC,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,KAAK,CACR,aAAa,CAAC,IAAI,EAClB,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;gBACxB,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACnC,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CACxC,KAAK,CAAC,MAAM,EACZ,EAAE,YAAY,EAAE,CACnB,CAAC;oBACF,MAAM,MAAM,GAAG,IAAI,UAAU,CACzB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CACrC,CAAC;oBACF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;oBAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;oBACvC,OAAO,MAAM,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACJ,MAAM,MAAM,GAAG,IAAI,UAAU,CACzB,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CACpC,CAAC;oBACF,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;wBAClC,MAAM,EAAE,MAAM;wBACd,KAAK,EAAE,CAAC;wBACR,YAAY;qBACf,CAAC,CAAC;oBACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;oBACtC,OAAO,MAAM,CAAC;gBAClB,CAAC;YACL,CAAC,EACD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;gBAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CACtB,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAC7C,CAAC;gBACF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtD,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC,EACD;gBACI,IAAI,CAAC,KAAK;oBACN,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;aACJ,CACJ,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CACR,aAAa,CAAC,IAAI,EAClB,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;YACxB,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;oBACvD,YAAY;iBACf,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,UAAU,CACzB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CACrC,CAAC;gBACF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBACvC,OAAO,MAAM,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,MAAM,MAAM,GAAG,IAAI,UAAU,CACzB,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CACpC,CAAC;gBACF,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;oBAClC,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,CAAC;oBACR,YAAY;iBACf,CAAC,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC,EACD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;YAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CACtB,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAC7C,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC,CACJ,CAAC;IACN,CAAC;IAED,iCAAiC;IACjC,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,KAAK,CACR,CAAC,EACD,SAAS,EACT,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM;YAClB,yCAAyC;YACzC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE;gBACtC,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAW,CAAC;gBACrD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,eAAe,CAAC;gBAC3B,CAAC;gBAED,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC,EACD;gBACI,IAAI,CAAC,KAAK,EAAE,YAAY;oBACpB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpC,YAAY,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;oBAC3C,OAAO,KAAK,CAAC;gBACjB,CAAC;aACJ,CACJ,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CACR,CAAC,EACD,SAAS,EACT,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM;QAClB,yCAAyC;QACzC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE;YACtC,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAW,CAAC;YACrD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,eAAe,CAAC;YAC3B,CAAC;YAED,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,EACD;YACI,IAAI,CAAC,KAAK,EAAE,YAAY;gBACpB,YAAY,CAAC,aAAa,CAAC,GAAI,KAAoB,CAAC,MAAM,CAAC;gBAC3D,OAAO,SAAS,CAAC;YACrB,CAAC;SACJ,CACJ,CAAC;IACN,CAAC;IAED,8CAA8C;IAC9C,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,KAAK,CACR,CAAC,EACD,SAAS,EACT,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM;QAClB,yCAAyC;QACzC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE;YACtC,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,eAAe,CAAC;YAC3B,CAAC;YAED,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,EACD;YACI,IAAI,CAAC,KAAK,EAAE,YAAY;gBACpB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,CAClD,KAAK,CAAC,MAAM,CACf,CAAC;gBACF,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ,CACJ,CAAC;IACN,CAAC;IAED,OAAO,KAAK,CACR,CAAC,EACD,SAAS,EACT,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM;IAClB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE;QACtC,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,EACD;QACI,IAAI,CAAC,KAAK,EAAE,YAAY;YACpB,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,CACjD,KAAoB,CAAC,MAAM,CAC/B,CAAC;YACF,OAAO,SAAS,CAAC;QACrB,CAAC;KACJ,CACJ,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC"}
|
package/esm/concat.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FieldsValue, Struct, StructFields } from "./struct.js";
|
|
2
|
+
type UnionToIntersection<U> = (U extends unknown ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
|
|
3
|
+
type As<T, U> = T extends infer V extends U ? V : never;
|
|
4
|
+
export type ConcatFields<T extends Struct<StructFields, Record<PropertyKey, unknown> | undefined, unknown>[]> = As<UnionToIntersection<T[number]["fields"]>, StructFields>;
|
|
5
|
+
type ConcatFieldValues<T extends Struct<StructFields, Record<PropertyKey, unknown> | undefined, unknown>[]> = FieldsValue<ConcatFields<T>>;
|
|
6
|
+
type ExtraToUnion<Extra extends Record<PropertyKey, unknown> | undefined> = Extra extends undefined ? never : Extra;
|
|
7
|
+
export type ConcatExtras<T extends Struct<StructFields, Record<PropertyKey, unknown> | undefined, unknown>[]> = As<UnionToIntersection<ExtraToUnion<T[number]["extra"]>>, Record<PropertyKey, unknown>>;
|
|
8
|
+
export declare function concat<T extends Struct<StructFields, Record<PropertyKey, unknown> | undefined, unknown>[], PostDeserialize = ConcatFieldValues<T> & ConcatExtras<T>>(options: {
|
|
9
|
+
littleEndian: boolean;
|
|
10
|
+
postDeserialize?: (this: ConcatFieldValues<T> & ConcatExtras<T>, value: ConcatFieldValues<T> & ConcatExtras<T>) => PostDeserialize;
|
|
11
|
+
}, ...structs: T): Struct<ConcatFields<T>, ConcatExtras<T>, PostDeserialize>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=concat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concat.d.ts","sourceRoot":"","sources":["../src/concat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGrE,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAC1B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAC7C,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GACxB,CAAC,GACD,KAAK,CAAC;AAEZ,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,YAAY,CACpB,CAAC,SAAS,MAAM,CACZ,YAAY,EACZ,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,EACxC,OAAO,CACV,EAAE,IACH,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAE/D,KAAK,iBAAiB,CAClB,CAAC,SAAS,MAAM,CACZ,YAAY,EACZ,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,EACxC,OAAO,CACV,EAAE,IACH,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjC,KAAK,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,IACpE,KAAK,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5C,MAAM,MAAM,YAAY,CACpB,CAAC,SAAS,MAAM,CACZ,YAAY,EACZ,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,EACxC,OAAO,CACV,EAAE,IACH,EAAE,CACF,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACrD,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAC/B,CAAC;AAGF,wBAAgB,MAAM,CAClB,CAAC,SAAS,MAAM,CACZ,YAAY,EACZ,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,EACxC,OAAO,CACV,EAAE,EACH,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAExD,OAAO,EAAE;IACL,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,CACd,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAC5C,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,KAC5C,eAAe,CAAC;CACxB,EACD,GAAG,OAAO,EAAE,CAAC,GACd,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAmB3D"}
|
package/esm/concat.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { struct } from "./struct.js";
|
|
2
|
+
/* #__NO_SIDE_EFFECTS__ */
|
|
3
|
+
export function concat(options, ...structs) {
|
|
4
|
+
return struct(structs.reduce((fields, struct) => Object.assign(fields, struct.fields), {}), {
|
|
5
|
+
littleEndian: options.littleEndian,
|
|
6
|
+
postDeserialize: options.postDeserialize,
|
|
7
|
+
extra: structs.reduce((extras, struct) => Object.defineProperties(extras, Object.getOwnPropertyDescriptors(struct.extra)), {}),
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=concat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concat.js","sourceRoot":"","sources":["../src/concat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAwCrC,0BAA0B;AAC1B,MAAM,UAAU,MAAM,CAQlB,OAMC,EACD,GAAG,OAAU;IAEb,OAAO,MAAM,CACT,OAAO,CAAC,MAAM,CACV,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EACxD,EAAE,CACI,EACV;QACI,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,KAAK,EAAE,OAAO,CAAC,MAAM,CACjB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACf,MAAM,CAAC,gBAAgB,CACnB,MAAM,EACN,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,CACjD,EACL,EAAE,CACI;KACb,CACK,CAAC;AACf,CAAC"}
|
package/esm/extend.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ExtraToIntersection, FieldsValue, Struct, StructFields } from "./struct.js";
|
|
2
|
+
export declare function extend<Base extends Struct<StructFields, Record<PropertyKey, unknown> | undefined, unknown>, Fields extends StructFields, PostDeserialize = FieldsValue<Base["fields"] & Fields> & ExtraToIntersection<Base["extra"]>>(base: Base, fields: Fields, options?: {
|
|
3
|
+
littleEndian?: boolean | undefined;
|
|
4
|
+
postDeserialize?: (this: FieldsValue<Base["fields"] & Fields> & ExtraToIntersection<Base["extra"]>, value: FieldsValue<Base["fields"] & Fields> & ExtraToIntersection<Base["extra"]>) => PostDeserialize;
|
|
5
|
+
}): Struct<Base["fields"] & Fields, Base["extra"], PostDeserialize>;
|
|
6
|
+
//# sourceMappingURL=extend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../src/extend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,WAAW,EACX,MAAM,EACN,YAAY,EACf,MAAM,aAAa,CAAC;AAIrB,wBAAgB,MAAM,CAClB,IAAI,SAAS,MAAM,CACf,YAAY,EACZ,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,EACxC,OAAO,CACV,EACD,MAAM,SAAS,YAAY,EAC3B,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GAClD,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAEtC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACN,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,CACd,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GACtC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACtC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GACvC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KACrC,eAAe,CAAC;CACxB,GACF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAMjE"}
|
package/esm/extend.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { struct } from "./struct.js";
|
|
2
|
+
/* #__NO_SIDE_EFFECTS__ */
|
|
3
|
+
export function extend(base, fields, options) {
|
|
4
|
+
return struct(Object.assign({}, base.fields, fields), {
|
|
5
|
+
littleEndian: options?.littleEndian ?? base.littleEndian,
|
|
6
|
+
extra: base.extra,
|
|
7
|
+
postDeserialize: options?.postDeserialize,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=extend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend.js","sourceRoot":"","sources":["../src/extend.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,0BAA0B;AAC1B,MAAM,UAAU,MAAM,CAUlB,IAAU,EACV,MAAc,EACd,OAQC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;QAClD,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,YAAY;QACxD,KAAK,EAAE,IAAI,CAAC,KAAc;QAC1B,eAAe,EAAE,OAAO,EAAE,eAAe;KAC5C,CAAU,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { BipedalGenerator } from "../bipedal.js";
|
|
2
|
+
import type { AsyncExactReadable } from "../readable.js";
|
|
3
|
+
import type { ByobFieldSerializer, DefaultFieldSerializer } from "./serialize.js";
|
|
4
|
+
import type { Field, FieldDeserializeContext, FieldOptions } from "./types.js";
|
|
5
|
+
export type BipedalFieldDeserializer<T, D> = BipedalGenerator<undefined, T, [
|
|
6
|
+
reader: AsyncExactReadable,
|
|
7
|
+
context: FieldDeserializeContext<D>
|
|
8
|
+
]>;
|
|
9
|
+
declare function _field<T, OmitInit extends string, D, Raw = T>(size: number, type: "default", serialize: DefaultFieldSerializer<Raw>, deserialize: BipedalFieldDeserializer<T, D>, options?: FieldOptions<T, OmitInit, D, Raw>): Field<T, OmitInit, D, Raw>;
|
|
10
|
+
declare function _field<T, OmitInit extends string, D, Raw = T>(size: number, type: "byob", serialize: ByobFieldSerializer<Raw>, deserialize: BipedalFieldDeserializer<T, D>, options?: FieldOptions<T, OmitInit, D, Raw>): Field<T, OmitInit, D, Raw>;
|
|
11
|
+
export declare const field: typeof _field;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/field/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EACR,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/E,MAAM,MAAM,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,gBAAgB,CACzD,SAAS,EACT,CAAC,EACD;IAAC,MAAM,EAAE,kBAAkB;IAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;CAAC,CACpE,CAAC;AAGF,iBAAS,MAAM,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAClD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,EACtC,WAAW,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3C,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,GAC5C,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAE9B,iBAAS,MAAM,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAClD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,EACnC,WAAW,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3C,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,GAC5C,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AA+B9B,eAAO,MAAM,KAAK,eAAS,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { bipedal } from "../bipedal.js";
|
|
2
|
+
import { byobFieldSerializer, defaultFieldSerializer } from "./serialize.js";
|
|
3
|
+
/* #__NO_SIDE_EFFECTS__ */
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/max-params
|
|
5
|
+
function _field(size, type, serialize, deserialize, options) {
|
|
6
|
+
const field = {
|
|
7
|
+
size,
|
|
8
|
+
type: type,
|
|
9
|
+
serialize: type === "default"
|
|
10
|
+
? defaultFieldSerializer(serialize)
|
|
11
|
+
: byobFieldSerializer(size, serialize),
|
|
12
|
+
deserialize: bipedal(deserialize),
|
|
13
|
+
omitInit: options?.omitInit,
|
|
14
|
+
};
|
|
15
|
+
if (options?.init) {
|
|
16
|
+
field.init = options.init;
|
|
17
|
+
}
|
|
18
|
+
return field;
|
|
19
|
+
}
|
|
20
|
+
export const field = _field;
|
|
21
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/field/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAyB7E,0BAA0B;AAC1B,yDAAyD;AACzD,SAAS,MAAM,CACX,IAAY,EACZ,IAAwB,EACxB,SAAiE,EACjE,WAA2C,EAC3C,OAA2C;IAE3C,MAAM,KAAK,GAA+B;QACtC,IAAI;QACJ,IAAI,EAAE,IAAI;QACV,SAAS,EACL,IAAI,KAAK,SAAS;YACd,CAAC,CAAC,sBAAsB,CAClB,SAAwC,CAC3C;YACH,CAAC,CAAC,mBAAmB,CACf,IAAI,EACJ,SAAqC,CACxC;QACX,WAAW,EAAE,OAAO,CAAC,WAAW,CAAU;QAC1C,QAAQ,EAAE,OAAO,EAAE,QAAQ;KAC9B,CAAC;IACF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC"}
|