@yume-chan/struct 2.0.1 → 3.0.0-beta.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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020-2025 Simon Chan
3
+ Copyright (c) 2020-2026 Simon Chan
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/esm/bipedal.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
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>;
2
+ export type BipedalGenerator<This, T, A extends unknown[]> = (this: This, then: <U>(value: MaybePromiseLike<U>) => Iterable<unknown, U, unknown>, ...args: A) => Generator<unknown, MaybePromiseLike<T>, unknown>;
3
3
  export declare function bipedal<This, T, A extends unknown[]>(fn: BipedalGenerator<This, T, A>, bindThis?: This): {
4
4
  (this: This, ...args: A): MaybePromiseLike<T>;
5
5
  };
@@ -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,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"}
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,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAGtD,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/buffer.d.ts CHANGED
@@ -7,24 +7,69 @@ export interface Converter<From, To> {
7
7
  export interface BufferLengthConverter<K, KT> extends Converter<KT, number> {
8
8
  field: K;
9
9
  }
10
- export interface BufferLike {
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>;
19
- }
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 {};
10
+ /**
11
+ * Create a fixed-length `Uint8Array` field.
12
+ *
13
+ * @param length Length of the field
14
+ */
15
+ export declare function buffer(length: number): Field<Uint8Array, never, never, Uint8Array>;
16
+ /**
17
+ * Create a custom-typed field, backed by a fixed-length `Uint8Array`.
18
+ *
19
+ * @param length Length of the field
20
+ * @param converter A value converter to convert between `Uint8Array` and the target type
21
+ */
22
+ export declare function buffer<U>(length: number, converter: Converter<Uint8Array, U>): Field<U, never, never, Uint8Array>;
23
+ /**
24
+ * Create a variable-length `Uint8Array` field.
25
+ * The length is determined by another number-typed field.
26
+ *
27
+ * @param lengthField Name of the length field. Must be declared before this field
28
+ */
29
+ export declare function buffer<K extends string>(lengthField: K): Field<Uint8Array, K, Record<K, number>, Uint8Array>;
30
+ /**
31
+ * Create a custom-typed field, backed by a variable-length `Uint8Array`.
32
+ * The length is determined by another number-typed field.
33
+ *
34
+ * @param lengthField Name of the length field. Must be declared before this field
35
+ * @param converter A value converter to convert between `Uint8Array` and the target type
36
+ */
37
+ export declare function buffer<K extends string, U>(lengthField: K, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, number>, Uint8Array>;
38
+ /**
39
+ * Create a variable-length `Uint8Array` field.
40
+ * The length is determined by converting another field to `number`.
41
+ *
42
+ * @param length
43
+ * Name of the length field,
44
+ * and a converter to convert between source type and `number`.
45
+ * Must be declared before this field
46
+ */
47
+ export declare function buffer<K extends string, KT>(length: BufferLengthConverter<K, KT>): Field<Uint8Array, K, Record<K, KT>, Uint8Array>;
48
+ /**
49
+ * Create a custom-typed field, backed by a variable-length `Uint8Array`.
50
+ * The length is determined by converting another field to `number`.
51
+ *
52
+ * @param length
53
+ * Name of the length field,
54
+ * and a converter to convert between source type and `number`.
55
+ * Must be declared before this field
56
+ * @param converter
57
+ * A value converter to convert between `Uint8Array` and the target type
58
+ */
59
+ export declare function buffer<K extends string, KT, U>(length: BufferLengthConverter<K, KT>, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, KT>, Uint8Array>;
60
+ /**
61
+ * Create a length field, and a variable-length `Uint8Array` field.
62
+ * This is a shortcut when the length field is directly before the data field.
63
+ *
64
+ * @param length The length field declaration
65
+ */
66
+ export declare function buffer<LengthOmitInit extends string, LengthDependencies>(length: Field<number, LengthOmitInit, LengthDependencies, number>): Field<Uint8Array, LengthOmitInit, LengthDependencies, Uint8Array>;
67
+ /**
68
+ * Create a length field, and a custom-typed field, backed by a variable-length `Uint8Array`.
69
+ * This is a shortcut when the length field is directly before the data field.
70
+ *
71
+ * @param length The length field declaration
72
+ * @param converter A value converter to convert between `Uint8Array` and the target type
73
+ */
74
+ export declare function buffer<LengthOmitInit extends string, LengthDependencies, U>(length: Field<number, LengthOmitInit, LengthDependencies, number>, converter: Converter<Uint8Array, U>): Field<U, LengthOmitInit, LengthDependencies, Uint8Array>;
30
75
  //# sourceMappingURL=buffer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGR,KAAK,EACR,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,eAAe,yBAAoB,CAAC;AAmBjD,MAAM,WAAW,SAAS,CAAC,IAAI,EAAE,EAAE;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;IAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAE,SAAQ,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;IACvE,KAAK,EAAE,CAAC,CAAC;CACZ;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAClB,MAAM,EAAE,MAAM,GACf,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC/C;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EACnC,WAAW,EAAE,CAAC,GACf,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AACvD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EACtC,WAAW,EAAE,CAAC,EACd,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EACvC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,GACrC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACnD;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAC1C,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACpC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,cAAc,SAAS,MAAM,EAAE,kBAAkB,EACpE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,CAAC,GAClE,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;AACrE;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,cAAc,SAAS,MAAM,EAAE,kBAAkB,EAAE,CAAC,EACvE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,CAAC,EACjE,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC"}
package/esm/buffer.js CHANGED
@@ -1,82 +1,89 @@
1
1
  import { field } from "./field/index.js";
2
2
  export const EmptyUint8Array = new Uint8Array(0);
3
+ function copyMaybeDifferentLength(dest, source, index, length) {
4
+ if (source.length < length) {
5
+ dest.set(source, index);
6
+ // Clear trailing bytes
7
+ dest.fill(0, index + source.length, index + length);
8
+ }
9
+ else if (source.length === length) {
10
+ dest.set(source, index);
11
+ }
12
+ else {
13
+ dest.set(source.subarray(0, length), index);
14
+ }
15
+ }
3
16
  /* #__NO_SIDE_EFFECTS__ */
4
- function _buffer(lengthOrField, converter) {
17
+ export function buffer(lengthOrField, converter) {
5
18
  // Fixed length
6
19
  if (typeof lengthOrField === "number") {
7
- if (converter) {
8
- if (lengthOrField === 0) {
9
- return field(0, "byob", () => { },
20
+ let serialize;
21
+ let deserialize;
22
+ let init;
23
+ if (lengthOrField === 0) {
24
+ serialize = () => { };
25
+ if (converter) {
10
26
  // eslint-disable-next-line require-yield
11
- function* () {
27
+ deserialize = function* () {
12
28
  return converter.convert(EmptyUint8Array);
13
- });
29
+ };
30
+ }
31
+ else {
32
+ // eslint-disable-next-line require-yield
33
+ deserialize = function* () {
34
+ return EmptyUint8Array;
35
+ };
14
36
  }
15
- return field(lengthOrField, "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);
23
- },
24
- });
25
37
  }
26
- if (lengthOrField === 0) {
27
- return field(0, "byob", () => { },
28
- // eslint-disable-next-line require-yield
29
- function* () {
30
- return EmptyUint8Array;
31
- });
38
+ else {
39
+ serialize = (value, { buffer, index }) => copyMaybeDifferentLength(buffer, value, index, lengthOrField);
40
+ if (converter) {
41
+ deserialize = function* (then, reader) {
42
+ const array = reader.readExactly(lengthOrField);
43
+ return converter.convert(yield* then(array));
44
+ };
45
+ init = (value) => converter.back(value);
46
+ }
47
+ else {
48
+ // eslint-disable-next-line require-yield
49
+ deserialize = function* (_then, reader) {
50
+ const array = reader.readExactly(lengthOrField);
51
+ return array;
52
+ };
53
+ }
32
54
  }
33
- return field(lengthOrField, "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
- });
55
+ return field(lengthOrField, "byob", serialize, deserialize, { init });
40
56
  }
41
57
  // Declare length field
42
58
  // Some field types are `function`s
43
59
  if ((typeof lengthOrField === "object" ||
44
60
  typeof lengthOrField === "function") &&
45
61
  "serialize" in lengthOrField) {
62
+ let deserialize;
63
+ let init;
46
64
  if (converter) {
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) {
65
+ deserialize = function* (then, reader, context) {
66
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);
72
- },
73
- });
67
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
68
+ return converter.convert(yield* then(array));
69
+ };
70
+ init = (value) => converter.back(value);
71
+ }
72
+ else {
73
+ deserialize = function* (then, reader, context) {
74
+ const length = yield* then(lengthOrField.deserialize(reader, context));
75
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
76
+ return array;
77
+ };
74
78
  }
75
79
  return field(lengthOrField.size, "default", (value, { littleEndian }) => {
76
80
  if (lengthOrField.type === "default") {
77
81
  const lengthBuffer = lengthOrField.serialize(value.length, {
78
82
  littleEndian,
79
83
  });
84
+ if (value.length === 0) {
85
+ return lengthBuffer;
86
+ }
80
87
  const result = new Uint8Array(lengthBuffer.length + value.length);
81
88
  result.set(lengthBuffer, 0);
82
89
  result.set(value, lengthBuffer.length);
@@ -92,79 +99,69 @@ function _buffer(lengthOrField, converter) {
92
99
  result.set(value, lengthOrField.size);
93
100
  return result;
94
101
  }
95
- }, function* (then, reader, context) {
96
- const length = yield* then(lengthOrField.deserialize(reader, context));
97
- return yield* then(reader.readExactly(length));
98
- });
102
+ }, deserialize, { init });
99
103
  }
100
- // Reference exiting length field
104
+ // Reference existing length field
101
105
  if (typeof lengthOrField === "string") {
106
+ let deserialize;
107
+ let init;
102
108
  if (converter) {
103
- return field(0, "default", (source) => source,
109
+ deserialize = function* (then, reader, { dependencies }) {
110
+ const length = dependencies[lengthOrField];
111
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
112
+ return converter.convert(yield* then(array));
113
+ };
114
+ init = (value, dependencies) => {
115
+ const array = converter.back(value);
116
+ dependencies[lengthOrField] = array.length;
117
+ return array;
118
+ };
119
+ }
120
+ else {
104
121
  // eslint-disable-next-line require-yield
105
- function* (_then, reader, { dependencies }) {
122
+ deserialize = function* (_then, reader, { dependencies }) {
106
123
  const length = dependencies[lengthOrField];
107
- if (length === 0) {
108
- return EmptyUint8Array;
109
- }
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
- });
124
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
125
+ return array;
126
+ };
127
+ init = (value, dependencies) => {
128
+ const array = value;
129
+ dependencies[lengthOrField] = array.length;
130
+ return array;
131
+ };
118
132
  }
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;
131
- },
132
- });
133
+ return field(0, "default", (source) => source, deserialize, { init });
133
134
  }
134
- // Reference existing length field + converter
135
+ let deserialize;
136
+ let init;
137
+ // Reference existing length field + length converter
135
138
  if (converter) {
136
- return field(0, "default", (source) => source,
139
+ deserialize = function* (then, reader, { dependencies }) {
140
+ const rawLength = dependencies[lengthOrField.field];
141
+ const length = lengthOrField.convert(rawLength);
142
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
143
+ return converter.convert(yield* then(array));
144
+ };
145
+ init = (value, dependencies) => {
146
+ const array = converter.back(value);
147
+ dependencies[lengthOrField.field] = lengthOrField.back(array.length);
148
+ return array;
149
+ };
150
+ }
151
+ else {
137
152
  // eslint-disable-next-line require-yield
138
- function* (_then, reader, { dependencies }) {
153
+ deserialize = function* (_then, reader, { dependencies }) {
139
154
  const rawLength = dependencies[lengthOrField.field];
140
155
  const length = lengthOrField.convert(rawLength);
141
- if (length === 0) {
142
- return EmptyUint8Array;
143
- }
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
- });
156
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
157
+ return array;
158
+ };
159
+ init = (value, dependencies) => {
160
+ const array = value;
161
+ dependencies[lengthOrField.field] = lengthOrField.back(array.length);
162
+ return array;
163
+ };
152
164
  }
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;
166
- },
167
- });
165
+ return field(0, "default", (source) => source, deserialize, { init });
168
166
  }
169
- export const buffer = _buffer;
170
167
  //# 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":"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,aAAa,EACb,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,aAAa,EACb,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"}
1
+ {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"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"}
package/esm/concat.js.map CHANGED
@@ -1 +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"}
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,CACJ,CAAC;AACN,CAAC"}
package/esm/extend.js.map CHANGED
@@ -1 +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"}
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,CAAC,CAAC;AACP,CAAC"}
@@ -15,7 +15,10 @@ export interface FieldSerializer<T> {
15
15
  }
16
16
  export interface Field<T, OmitInit extends string, D, Raw = T> extends FieldSerializer<Raw>, FieldDeserializer<T, D> {
17
17
  omitInit: OmitInit | undefined;
18
- init?(value: T, dependencies: D): Raw | undefined;
18
+ /**
19
+ * A function to convert deserialized value back to raw value for serialization.
20
+ */
21
+ init?(value: T, dependencies: D): Raw;
19
22
  }
20
23
  export interface FieldDeserializeContext<D> {
21
24
  littleEndian: boolean;
@@ -28,6 +31,9 @@ export interface FieldDeserializer<T, D> {
28
31
  export interface FieldOptions<T, OmitInit extends string, D, Raw = T> {
29
32
  omitInit?: OmitInit;
30
33
  dependencies?: D;
31
- init?: (value: T, dependencies: D) => Raw | undefined;
34
+ /**
35
+ * A function to convert deserialized value back to raw value for serialization.
36
+ */
37
+ init?: ((value: T, dependencies: D) => Raw) | undefined;
32
38
  }
33
39
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,4BAA4B;IACzC,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,yBACb,SAAQ,4BAA4B;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAC9B,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,GAAG,UAAU,CAAC;IACxE,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC;CACpE;AAED,MAAM,WAAW,KAAK,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CACzD,SAAQ,eAAe,CAAC,GAAG,CAAC,EACxB,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3B,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE/B,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACnC,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3E,WAAW,CACP,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GACpC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;IAChE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,KAAK,GAAG,GAAG,SAAS,CAAC;CACzD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,4BAA4B;IACzC,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,yBAA0B,SAAQ,4BAA4B;IAC3E,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAC9B,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,GAAG,UAAU,CAAC;IACxE,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC;CACpE;AAED,MAAM,WAAW,KAAK,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CACzD,SAAQ,eAAe,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IACrD,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE/B;;OAEG;IACH,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,GAAG,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACnC,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3E,WAAW,CACP,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GACpC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;IAChE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;CAC3D"}
package/esm/index.d.ts CHANGED
@@ -1,11 +1,3 @@
1
- declare global {
2
- interface ArrayBuffer {
3
- __brand: never;
4
- }
5
- interface SharedArrayBuffer {
6
- __brand: never;
7
- }
8
- }
9
1
  export * from "./bipedal.js";
10
2
  export * from "./buffer.js";
11
3
  export * from "./concat.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW;QAEjB,OAAO,EAAE,KAAK,CAAC;KAClB;IAED,UAAU,iBAAiB;QAEvB,OAAO,EAAE,KAAK,CAAC;KAClB;CACJ;AAED,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
package/esm/readable.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
+ declare const ExactReadableEndedErrorBrand: unique symbol;
2
3
  export declare class ExactReadableEndedError extends Error {
4
+ [ExactReadableEndedErrorBrand]: boolean;
5
+ static [Symbol.hasInstance](value: unknown): boolean;
3
6
  constructor();
4
7
  }
5
8
  export interface ExactReadable {
@@ -28,4 +31,5 @@ export interface AsyncExactReadable {
28
31
  */
29
32
  readExactly(length: number): MaybePromiseLike<Uint8Array>;
30
33
  }
34
+ export {};
31
35
  //# sourceMappingURL=readable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../src/readable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,qBAAa,uBAAwB,SAAQ,KAAK;;CAIjD;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;CAC3C;AAED,qBAAa,uBAAwB,YAAW,aAAa;;IAIzD,IAAI,QAAQ,WAEX;gBAEW,IAAI,EAAE,UAAU;IAK5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;CAa1C;AAED,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;CAC7D"}
1
+ {"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../src/readable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,QAAA,MAAM,4BAA4B,eAEjC,CAAC;AAEF,qBAAa,uBAAwB,SAAQ,KAAK;IAC9C,CAAC,4BAA4B,CAAC,UAAQ;WAEtB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO;;CAStD;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;CAC3C;AAED,qBAAa,uBAAwB,YAAW,aAAa;;IAIzD,IAAI,QAAQ,WAEX;gBAEW,IAAI,EAAE,UAAU;IAK5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;CAa1C;AAED,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;CAC7D"}
package/esm/readable.js CHANGED
@@ -1,5 +1,10 @@
1
1
  // TODO: allow over reading (returning a `Uint8Array`, an `offset` and a `length`) to avoid copying
2
+ const ExactReadableEndedErrorBrand = Symbol.for("ExactReadableEndedError.brand");
2
3
  export class ExactReadableEndedError extends Error {
4
+ [ExactReadableEndedErrorBrand] = true;
5
+ static [Symbol.hasInstance](value) {
6
+ return !!value?.[ExactReadableEndedErrorBrand];
7
+ }
3
8
  constructor() {
4
9
  super("ExactReadable ended");
5
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"readable.js","sourceRoot":"","sources":["../src/readable.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAInG,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9C;QACI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;CACJ;AAcD,MAAM,OAAO,uBAAuB;IAChC,KAAK,CAAa;IAClB,SAAS,CAAS;IAElB,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YAAY,IAAgB;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,MAAc;QACtB,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,IAAI,uBAAuB,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC9B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,GAAG,MAAM,CAC1B,CAAC;QAEF,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzB,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
1
+ {"version":3,"file":"readable.js","sourceRoot":"","sources":["../src/readable.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAInG,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAC3C,+BAA+B,CAClC,CAAC;AAEF,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9C,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC;IAEtC,MAAM,CAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAc;QAC/C,OAAO,CAAC,CAAE,KAA6C,EAAE,CACrD,4BAA4B,CAC/B,CAAC;IACN,CAAC;IAED;QACI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;CACJ;AAcD,MAAM,OAAO,uBAAuB;IAChC,KAAK,CAAa;IAClB,SAAS,CAAS;IAElB,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YAAY,IAAgB;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,MAAc;QACtB,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,IAAI,uBAAuB,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC9B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,GAAG,MAAM,CAC1B,CAAC;QAEF,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzB,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
package/esm/struct.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Field, FieldDeserializer } from "./field/index.js";
2
- import type { StructDeserializer, StructSerializer } from "./types.js";
2
+ import type { StructDeserializer, StructLike, StructSerializer } from "./types.js";
3
3
  export type StructField = Field<unknown, string, unknown, unknown> | (StructSerializer<unknown> & StructDeserializer<unknown>);
4
4
  export type StructFields = Record<string, StructField>;
5
5
  export type FieldsValue<T extends StructFields> = {
@@ -16,7 +16,10 @@ export declare class StructDeserializeError extends Error {
16
16
  export declare class StructNotEnoughDataError extends StructDeserializeError {
17
17
  constructor();
18
18
  }
19
+ declare const StructEmptyErrorBrand: unique symbol;
19
20
  export declare class StructEmptyError extends StructDeserializeError {
21
+ [StructEmptyErrorBrand]: boolean;
22
+ static [Symbol.hasInstance](value: unknown): boolean;
20
23
  constructor();
21
24
  }
22
25
  export type ExtraToIntersection<Extra extends Record<PropertyKey, unknown> | undefined> = Extra extends undefined ? unknown : Extra;
@@ -25,9 +28,10 @@ export interface Struct<Fields extends StructFields, Extra extends Record<Proper
25
28
  fields: Fields;
26
29
  extra: Extra;
27
30
  }
28
- export declare function struct<Fields extends Record<string, Field<unknown, string, Partial<FieldsValue<Fields>>, unknown> | (StructSerializer<unknown> & StructDeserializer<unknown>)>, Extra extends Record<PropertyKey, unknown> | undefined = undefined, PostDeserialize = FieldsValue<Fields> & ExtraToIntersection<Extra>>(fields: Fields, options: {
31
+ export declare function struct<Fields extends Record<string, Field<unknown, string, Partial<FieldsValue<Fields>>, unknown> | StructLike<unknown>>, Extra extends Record<PropertyKey, unknown> | undefined = undefined, PostDeserialize = FieldsValue<Fields> & ExtraToIntersection<Extra>>(fields: Fields, options: {
29
32
  littleEndian: boolean;
30
33
  extra?: (Extra & ThisType<FieldsValue<Fields>>) | undefined;
31
34
  postDeserialize?: ((this: FieldsValue<Fields> & ExtraToIntersection<Extra>, value: FieldsValue<Fields> & ExtraToIntersection<Extra>) => PostDeserialize) | undefined;
32
35
  }): Struct<Fields, Extra, PostDeserialize>;
36
+ export {};
33
37
  //# sourceMappingURL=struct.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}