@yume-chan/struct 0.0.19 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.json +27 -0
  2. package/CHANGELOG.md +16 -1
  3. package/README.md +126 -143
  4. package/esm/basic/definition.d.ts +3 -3
  5. package/esm/basic/definition.d.ts.map +1 -1
  6. package/esm/basic/definition.js.map +1 -1
  7. package/esm/basic/field-value.d.ts.map +1 -1
  8. package/esm/basic/field-value.js.map +1 -1
  9. package/esm/basic/stream.d.ts +11 -6
  10. package/esm/basic/stream.d.ts.map +1 -1
  11. package/esm/basic/stream.js +7 -1
  12. package/esm/basic/stream.js.map +1 -1
  13. package/esm/basic/struct-value.d.ts.map +1 -1
  14. package/esm/basic/struct-value.js.map +1 -1
  15. package/esm/index.d.ts +1 -0
  16. package/esm/index.d.ts.map +1 -1
  17. package/esm/index.js +1 -0
  18. package/esm/index.js.map +1 -1
  19. package/esm/struct.d.ts +19 -12
  20. package/esm/struct.d.ts.map +1 -1
  21. package/esm/struct.js +70 -38
  22. package/esm/struct.js.map +1 -1
  23. package/esm/sync-promise.js +12 -12
  24. package/esm/sync-promise.js.map +1 -1
  25. package/esm/types/bigint.d.ts +3 -3
  26. package/esm/types/bigint.d.ts.map +1 -1
  27. package/esm/types/bigint.js +2 -3
  28. package/esm/types/bigint.js.map +1 -1
  29. package/esm/types/buffer/base.d.ts +3 -3
  30. package/esm/types/buffer/base.d.ts.map +1 -1
  31. package/esm/types/buffer/base.js +3 -5
  32. package/esm/types/buffer/base.js.map +1 -1
  33. package/esm/types/buffer/fixed-length.d.ts.map +1 -1
  34. package/esm/types/buffer/fixed-length.js.map +1 -1
  35. package/esm/types/buffer/variable-length.d.ts.map +1 -1
  36. package/esm/types/buffer/variable-length.js.map +1 -1
  37. package/esm/types/number.d.ts +3 -3
  38. package/esm/types/number.d.ts.map +1 -1
  39. package/esm/types/number.js +15 -17
  40. package/esm/types/number.js.map +1 -1
  41. package/package.json +8 -8
  42. package/src/basic/definition.ts +15 -18
  43. package/src/basic/field-value.ts +11 -11
  44. package/src/basic/stream.ts +17 -6
  45. package/src/basic/struct-value.ts +4 -4
  46. package/src/index.ts +1 -0
  47. package/src/struct.ts +166 -133
  48. package/src/sync-promise.ts +25 -25
  49. package/src/types/bigint.ts +33 -41
  50. package/src/types/buffer/base.ts +38 -38
  51. package/src/types/buffer/fixed-length.ts +4 -3
  52. package/src/types/buffer/variable-length.ts +22 -20
  53. package/src/types/number.ts +40 -44
  54. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/basic/stream.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/basic/stream.ts"],"names":[],"mappings":"AAEA,mGAAmG;AAEnG,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9C;QACI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,eAAyB,CAAC;AAE1D;;GAEG;AACH,qBAAa,WAAW;IAMpB;;OAEG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAEjC,SAAS,EAAE,MAAM;IAapC;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAqBjE;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB;CAGlD"}
1
+ {"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,eAAyB,CAAC;AAE1D;;GAEG;AACH,qBAAa,WAAW;IAMpB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAEjC,SAAS,EAAE,MAAM;IAa7B;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAqB1D;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB;CAG3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,gBAAgB,CAAU,WAAW,GAGjC,EAAE,CAAC;IAEP;;OAEG;IACa,KAAK,CAA+B;IAEpD,YAAmB,SAAiB;QAChC,6CAA6C;QAC7C,oDAAoD;QACpD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAiC,CAAC;QAEtE,wCAAwC;QACxC,sCAAsC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE;YACnD,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAC,IAAiB,EAAE,UAA4B;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAEpC,wCAAwC;QACxC,oCAAoC;QACpC,IAAI,UAAU,CAAC,kBAAkB,EAAE;YAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;gBACpC,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,GAAG;oBACC,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC5B,CAAC;gBACD,GAAG,CAAC,CAAC;oBACD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;aACJ,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;SACvC;IACL,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAiB;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,CAAC;IACnC,CAAC;CACJ"}
1
+ {"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,gBAAgB,CAAU,WAAW,GAGjC,EAAE,CAAC;IAEP;;OAEG;IACM,KAAK,CAA+B;IAE7C,YAAY,SAAiB;QACzB,6CAA6C;QAC7C,oDAAoD;QACpD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAiC,CAAC;QAEtE,wCAAwC;QACxC,sCAAsC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE;YACnD,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,IAAiB,EAAE,UAA4B;QAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAEpC,wCAAwC;QACxC,oCAAoC;QACpC,IAAI,UAAU,CAAC,kBAAkB,EAAE;YAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;gBACpC,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,GAAG;oBACC,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC5B,CAAC;gBACD,GAAG,CAAC,CAAC;oBACD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;aACJ,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;SACvC;IACL,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,IAAiB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,CAAC;IACnC,CAAC;CACJ"}
package/esm/index.d.ts CHANGED
@@ -9,6 +9,7 @@ declare global {
9
9
  export * from "./basic/index.js";
10
10
  export * from "./struct.js";
11
11
  export { Struct as default } from "./struct.js";
12
+ export * from "./sync-promise.js";
12
13
  export * from "./types/index.js";
13
14
  export * from "./utils.js";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -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,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
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,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
package/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./basic/index.js";
2
2
  export * from "./struct.js";
3
3
  export { Struct as default } from "./struct.js";
4
+ export * from "./sync-promise.js";
4
5
  export * from "./types/index.js";
5
6
  export * from "./utils.js";
6
7
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
package/esm/struct.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import type { StructAsyncDeserializeStream, StructDeserializeStream, StructFieldDefinition, StructOptions } from "./basic/index.js";
1
+ import type { AsyncExactReadable, ExactReadable, StructFieldDefinition, StructOptions } from "./basic/index.js";
2
2
  import type { BufferFieldSubType, FixedLengthBufferLikeFieldOptions, LengthField, VariableLengthBufferLikeFieldOptions } from "./types/index.js";
3
3
  import { BigIntFieldType, FixedLengthBufferLikeFieldDefinition, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition } from "./types/index.js";
4
4
  import type { Evaluate, Identity, Overwrite } from "./utils.js";
5
5
  export interface StructLike<TValue> {
6
- deserialize(stream: StructDeserializeStream | StructAsyncDeserializeStream): Promise<TValue>;
6
+ deserialize(stream: ExactReadable | AsyncExactReadable): Promise<TValue>;
7
7
  }
8
8
  /**
9
9
  * Extract the value type of the specified `Struct`
@@ -22,21 +22,31 @@ interface BoundArrayBufferLikeFieldDefinitionCreator<TFields extends object, TOm
22
22
  }
23
23
  export type StructPostDeserialized<TFields, TPostDeserialized> = (this: TFields, object: TFields) => TPostDeserialized;
24
24
  export type StructDeserializedResult<TFields extends object, TExtra extends object, TPostDeserialized> = TPostDeserialized extends undefined ? Overwrite<TExtra, TFields> : TPostDeserialized;
25
+ export declare class StructDeserializeError extends Error {
26
+ constructor(message: string);
27
+ }
28
+ export declare class StructNotEnoughDataError extends StructDeserializeError {
29
+ constructor();
30
+ }
31
+ export declare class StructEmptyError extends StructDeserializeError {
32
+ constructor();
33
+ }
25
34
  export declare class Struct<TFields extends object = Record<never, never>, TOmitInitKey extends PropertyKey = never, TExtra extends object = Record<never, never>, TPostDeserialized = undefined> implements StructLike<StructDeserializedResult<TFields, TExtra, TPostDeserialized>> {
35
+ #private;
26
36
  readonly TFields: TFields;
27
37
  readonly TOmitInitKey: TOmitInitKey;
28
38
  readonly TExtra: TExtra;
29
39
  readonly TInit: Evaluate<Omit<TFields, TOmitInitKey>>;
30
40
  readonly TDeserializeResult: StructDeserializedResult<TFields, TExtra, TPostDeserialized>;
31
41
  readonly options: Readonly<StructOptions>;
32
- private _size;
33
42
  /**
34
43
  * Gets the static size (exclude fields that can change size at runtime)
35
44
  */
36
45
  get size(): number;
37
- private _fields;
38
- private _extra;
39
- private _postDeserialized?;
46
+ get fields(): readonly [
47
+ name: PropertyKey,
48
+ definition: StructFieldDefinition<any, any, any>
49
+ ][];
40
50
  constructor(options?: Partial<Readonly<StructOptions>>);
41
51
  /**
42
52
  * Appends a `StructFieldDefinition` to the `Struct
@@ -45,8 +55,7 @@ export declare class Struct<TFields extends object = Record<never, never>, TOmit
45
55
  /**
46
56
  * Merges (flats) another `Struct`'s fields and extra fields into this one.
47
57
  */
48
- fields<TOther extends Struct<any, any, any, any>>(other: TOther): Struct<TFields & TOther["TFields"], TOmitInitKey | TOther["TOmitInitKey"], TExtra & TOther["TExtra"], TPostDeserialized>;
49
- private number;
58
+ concat<TOther extends Struct<any, any, any, any>>(other: TOther): Struct<TFields & TOther["TFields"], TOmitInitKey | TOther["TOmitInitKey"], TExtra & TOther["TExtra"], TPostDeserialized>;
50
59
  /**
51
60
  * Appends an `int8` field to the `Struct`
52
61
  */
@@ -71,7 +80,6 @@ export declare class Struct<TFields extends object = Record<never, never>, TOmit
71
80
  * Appends an `uint32` field to the `Struct`
72
81
  */
73
82
  uint32<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
74
- private bigint;
75
83
  /**
76
84
  * Appends an `int64` field to the `Struct`
77
85
  *
@@ -84,7 +92,6 @@ export declare class Struct<TFields extends object = Record<never, never>, TOmit
84
92
  * Requires native `BigInt` support
85
93
  */
86
94
  uint64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType["TTypeScriptType"]>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
87
- private arrayBufferLike;
88
95
  uint8Array: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, Uint8ArrayBufferFieldSubType>;
89
96
  string: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, StringBufferFieldSubType>;
90
97
  /**
@@ -122,8 +129,8 @@ export declare class Struct<TFields extends object = Record<never, never>, TOmit
122
129
  /**
123
130
  * Deserialize a struct value from `stream`.
124
131
  */
125
- deserialize(stream: StructDeserializeStream): StructDeserializedResult<TFields, TExtra, TPostDeserialized>;
126
- deserialize(stream: StructAsyncDeserializeStream): Promise<StructDeserializedResult<TFields, TExtra, TPostDeserialized>>;
132
+ deserialize(stream: ExactReadable): StructDeserializedResult<TFields, TExtra, TPostDeserialized>;
133
+ deserialize(stream: AsyncExactReadable): Promise<StructDeserializedResult<TFields, TExtra, TPostDeserialized>>;
127
134
  serialize(init: Evaluate<Omit<TFields, TOmitInitKey>>): Uint8Array;
128
135
  serialize(init: Evaluate<Omit<TFields, TOmitInitKey>>, output: Uint8Array): number;
129
136
  }
@@ -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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"}
package/esm/struct.js CHANGED
@@ -1,6 +1,22 @@
1
- import { STRUCT_VALUE_SYMBOL, StructDefaultOptions, StructValue, } from "./basic/index.js";
1
+ import { ExactReadableEndedError, STRUCT_VALUE_SYMBOL, StructDefaultOptions, StructValue, } from "./basic/index.js";
2
2
  import { SyncPromise } from "./sync-promise.js";
3
3
  import { BigIntFieldDefinition, BigIntFieldType, FixedLengthBufferLikeFieldDefinition, NumberFieldDefinition, NumberFieldType, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition, } from "./types/index.js";
4
+ export class StructDeserializeError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ Object.setPrototypeOf(this, new.target.prototype);
8
+ }
9
+ }
10
+ export class StructNotEnoughDataError extends StructDeserializeError {
11
+ constructor() {
12
+ super("The underlying readable was ended before the struct was fully deserialized");
13
+ }
14
+ }
15
+ export class StructEmptyError extends StructDeserializeError {
16
+ constructor() {
17
+ super("The underlying readable doesn't contain any more struct");
18
+ }
19
+ }
4
20
  export class Struct {
5
21
  TFields;
6
22
  TOmitInitKey;
@@ -8,16 +24,19 @@ export class Struct {
8
24
  TInit;
9
25
  TDeserializeResult;
10
26
  options;
11
- _size = 0;
27
+ #size = 0;
12
28
  /**
13
29
  * Gets the static size (exclude fields that can change size at runtime)
14
30
  */
15
31
  get size() {
16
- return this._size;
32
+ return this.#size;
33
+ }
34
+ #fields = [];
35
+ get fields() {
36
+ return this.#fields;
17
37
  }
18
- _fields = [];
19
- _extra = {};
20
- _postDeserialized;
38
+ #extra = {};
39
+ #postDeserialized;
21
40
  constructor(options) {
22
41
  this.options = { ...StructDefaultOptions, ...options };
23
42
  }
@@ -25,68 +44,70 @@ export class Struct {
25
44
  * Appends a `StructFieldDefinition` to the `Struct
26
45
  */
27
46
  field(name, definition) {
28
- for (const field of this._fields) {
47
+ for (const field of this.#fields) {
29
48
  if (field[0] === name) {
30
- throw new Error(`This struct already have a field with name '${String(name)}'`);
49
+ // Convert Symbol to string
50
+ const nameString = String(name);
51
+ throw new Error(`This struct already have a field with name '${nameString}'`);
31
52
  }
32
53
  }
33
- this._fields.push([name, definition]);
54
+ this.#fields.push([name, definition]);
34
55
  const size = definition.getSize();
35
- this._size += size;
56
+ this.#size += size;
36
57
  // Force cast `this` to another type
37
58
  return this;
38
59
  }
39
60
  /**
40
61
  * Merges (flats) another `Struct`'s fields and extra fields into this one.
41
62
  */
42
- fields(other) {
43
- for (const field of other._fields) {
44
- this._fields.push(field);
63
+ concat(other) {
64
+ for (const field of other.#fields) {
65
+ this.#fields.push(field);
45
66
  }
46
- this._size += other._size;
47
- Object.defineProperties(this._extra, Object.getOwnPropertyDescriptors(other._extra));
67
+ this.#size += other.#size;
68
+ Object.defineProperties(this.#extra, Object.getOwnPropertyDescriptors(other.#extra));
48
69
  return this;
49
70
  }
50
- number(name, type, typeScriptType) {
71
+ #number(name, type, typeScriptType) {
51
72
  return this.field(name, new NumberFieldDefinition(type, typeScriptType));
52
73
  }
53
74
  /**
54
75
  * Appends an `int8` field to the `Struct`
55
76
  */
56
77
  int8(name, typeScriptType) {
57
- return this.number(name, NumberFieldType.Int8, typeScriptType);
78
+ return this.#number(name, NumberFieldType.Int8, typeScriptType);
58
79
  }
59
80
  /**
60
81
  * Appends an `uint8` field to the `Struct`
61
82
  */
62
83
  uint8(name, typeScriptType) {
63
- return this.number(name, NumberFieldType.Uint8, typeScriptType);
84
+ return this.#number(name, NumberFieldType.Uint8, typeScriptType);
64
85
  }
65
86
  /**
66
87
  * Appends an `int16` field to the `Struct`
67
88
  */
68
89
  int16(name, typeScriptType) {
69
- return this.number(name, NumberFieldType.Int16, typeScriptType);
90
+ return this.#number(name, NumberFieldType.Int16, typeScriptType);
70
91
  }
71
92
  /**
72
93
  * Appends an `uint16` field to the `Struct`
73
94
  */
74
95
  uint16(name, typeScriptType) {
75
- return this.number(name, NumberFieldType.Uint16, typeScriptType);
96
+ return this.#number(name, NumberFieldType.Uint16, typeScriptType);
76
97
  }
77
98
  /**
78
99
  * Appends an `int32` field to the `Struct`
79
100
  */
80
101
  int32(name, typeScriptType) {
81
- return this.number(name, NumberFieldType.Int32, typeScriptType);
102
+ return this.#number(name, NumberFieldType.Int32, typeScriptType);
82
103
  }
83
104
  /**
84
105
  * Appends an `uint32` field to the `Struct`
85
106
  */
86
107
  uint32(name, typeScriptType) {
87
- return this.number(name, NumberFieldType.Uint32, typeScriptType);
108
+ return this.#number(name, NumberFieldType.Uint32, typeScriptType);
88
109
  }
89
- bigint(name, type, typeScriptType) {
110
+ #bigint(name, type, typeScriptType) {
90
111
  return this.field(name, new BigIntFieldDefinition(type, typeScriptType));
91
112
  }
92
113
  /**
@@ -95,7 +116,7 @@ export class Struct {
95
116
  * Requires native `BigInt` support
96
117
  */
97
118
  int64(name, typeScriptType) {
98
- return this.bigint(name, BigIntFieldType.Int64, typeScriptType);
119
+ return this.#bigint(name, BigIntFieldType.Int64, typeScriptType);
99
120
  }
100
121
  /**
101
122
  * Appends an `uint64` field to the `Struct`
@@ -103,9 +124,9 @@ export class Struct {
103
124
  * Requires native `BigInt` support
104
125
  */
105
126
  uint64(name, typeScriptType) {
106
- return this.bigint(name, BigIntFieldType.Uint64, typeScriptType);
127
+ return this.#bigint(name, BigIntFieldType.Uint64, typeScriptType);
107
128
  }
108
- arrayBufferLike = (name, type, options) => {
129
+ #arrayBufferLike = (name, type, options) => {
109
130
  if ("length" in options) {
110
131
  return this.field(name, new FixedLengthBufferLikeFieldDefinition(type, options));
111
132
  }
@@ -114,10 +135,10 @@ export class Struct {
114
135
  }
115
136
  };
116
137
  uint8Array = (name, options, typeScriptType) => {
117
- return this.arrayBufferLike(name, Uint8ArrayBufferFieldSubType.Instance, options, typeScriptType);
138
+ return this.#arrayBufferLike(name, Uint8ArrayBufferFieldSubType.Instance, options, typeScriptType);
118
139
  };
119
140
  string = (name, options, typeScriptType) => {
120
- return this.arrayBufferLike(name, StringBufferFieldSubType.Instance, options, typeScriptType);
141
+ return this.#arrayBufferLike(name, StringBufferFieldSubType.Instance, options, typeScriptType);
121
142
  };
122
143
  /**
123
144
  * Adds some extra properties into every `Struct` value.
@@ -130,36 +151,47 @@ export class Struct {
130
151
  * An object containing properties to be added to the result value. Accessors and methods are also allowed.
131
152
  */
132
153
  extra(value) {
133
- Object.defineProperties(this._extra, Object.getOwnPropertyDescriptors(value));
154
+ Object.defineProperties(this.#extra, Object.getOwnPropertyDescriptors(value));
134
155
  return this;
135
156
  }
136
157
  postDeserialize(callback) {
137
- this._postDeserialized = callback;
158
+ this.#postDeserialized = callback;
138
159
  return this;
139
160
  }
140
161
  deserialize(stream) {
141
- const structValue = new StructValue(this._extra);
162
+ const structValue = new StructValue(this.#extra);
142
163
  let promise = SyncPromise.resolve();
143
- for (const [name, definition] of this._fields) {
164
+ const startPosition = stream.position;
165
+ for (const [name, definition] of this.#fields) {
144
166
  promise = promise
145
167
  .then(() => definition.deserialize(this.options, stream, structValue))
146
168
  .then((fieldValue) => {
147
169
  structValue.set(name, fieldValue);
170
+ }, (e) => {
171
+ if (!(e instanceof ExactReadableEndedError)) {
172
+ throw e;
173
+ }
174
+ if (stream.position === startPosition) {
175
+ throw new StructEmptyError();
176
+ }
177
+ else {
178
+ throw new StructNotEnoughDataError();
179
+ }
148
180
  });
149
181
  }
150
182
  return promise
151
183
  .then(() => {
152
- const object = structValue.value;
184
+ const value = structValue.value;
153
185
  // Run `postDeserialized`
154
- if (this._postDeserialized) {
155
- const override = this._postDeserialized.call(object, object);
186
+ if (this.#postDeserialized) {
187
+ const override = this.#postDeserialized.call(value, value);
156
188
  // If it returns a new value, use that as result
157
189
  // Otherwise it only inspects/mutates the object in place.
158
190
  if (override !== undefined) {
159
191
  return override;
160
192
  }
161
193
  }
162
- return object;
194
+ return value;
163
195
  })
164
196
  .valueOrPromise();
165
197
  }
@@ -176,14 +208,14 @@ export class Struct {
176
208
  }
177
209
  else {
178
210
  structValue = new StructValue({});
179
- for (const [name, definition] of this._fields) {
211
+ for (const [name, definition] of this.#fields) {
180
212
  const fieldValue = definition.create(this.options, structValue, init[name]);
181
213
  structValue.set(name, fieldValue);
182
214
  }
183
215
  }
184
216
  let structSize = 0;
185
217
  const fieldsInfo = [];
186
- for (const [name] of this._fields) {
218
+ for (const [name] of this.#fields) {
187
219
  const fieldValue = structValue.get(name);
188
220
  const size = fieldValue.getSize();
189
221
  fieldsInfo.push({ fieldValue, size });
package/esm/struct.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
@@ -27,45 +27,45 @@ export const SyncPromise = {
27
27
  },
28
28
  };
29
29
  class PendingSyncPromise {
30
- promise;
30
+ #promise;
31
31
  constructor(promise) {
32
- this.promise = promise;
32
+ this.#promise = promise;
33
33
  }
34
34
  then(onfulfilled, onrejected) {
35
- return new PendingSyncPromise(this.promise.then(onfulfilled, onrejected));
35
+ return new PendingSyncPromise(this.#promise.then(onfulfilled, onrejected));
36
36
  }
37
37
  valueOrPromise() {
38
- return this.promise;
38
+ return this.#promise;
39
39
  }
40
40
  }
41
41
  class ResolvedSyncPromise {
42
- value;
42
+ #value;
43
43
  constructor(value) {
44
- this.value = value;
44
+ this.#value = value;
45
45
  }
46
46
  then(onfulfilled) {
47
47
  if (!onfulfilled) {
48
48
  return this;
49
49
  }
50
- return SyncPromise.try(() => onfulfilled(this.value));
50
+ return SyncPromise.try(() => onfulfilled(this.#value));
51
51
  }
52
52
  valueOrPromise() {
53
- return this.value;
53
+ return this.#value;
54
54
  }
55
55
  }
56
56
  class RejectedSyncPromise {
57
- reason;
57
+ #reason;
58
58
  constructor(reason) {
59
- this.reason = reason;
59
+ this.#reason = reason;
60
60
  }
61
61
  then(onfulfilled, onrejected) {
62
62
  if (!onrejected) {
63
63
  return this;
64
64
  }
65
- return SyncPromise.try(() => onrejected(this.reason));
65
+ return SyncPromise.try(() => onrejected(this.#reason));
66
66
  }
67
67
  valueOrPromise() {
68
- throw this.reason;
68
+ throw this.#reason;
69
69
  }
70
70
  }
71
71
  //# sourceMappingURL=sync-promise.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-promise.js","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC1C,MAAM,CAAY,MAAY;QAC1B,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAI,KAA0B;QACjC,IACI,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,OAAQ,KAAwB,CAAC,IAAI,KAAK,UAAU,EACtD;YACE,IACI,KAAK,YAAY,kBAAkB;gBACnC,KAAK,YAAY,mBAAmB;gBACpC,KAAK,YAAY,mBAAmB,EACtC;gBACE,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,IAAI,kBAAkB,CAAC,KAAuB,CAAC,CAAC;SAC1D;aAAM;YACH,OAAO,IAAI,mBAAmB,CAAC,KAAU,CAAC,CAAC;SAC9C;IACL,CAAC;IACD,GAAG,CAAI,QAAkC;QACrC,IAAI;YACA,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1C;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChC;IACL,CAAC;CACJ,CAAC;AAEF,MAAM,kBAAkB;IACZ,OAAO,CAAiB;IAEhC,YAAmB,OAAuB;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,IAAI,CACP,WAGe,EACf,UAGe;QAEf,OAAO,IAAI,kBAAkB,CACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAC7C,CAAC;IACN,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAED,MAAM,mBAAmB;IACb,KAAK,CAAI;IAEjB,YAAmB,KAAQ;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,IAAI,CACP,WAGe;QAEf,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,IAAW,CAAC;SACtB;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;CACJ;AAED,MAAM,mBAAmB;IACb,MAAM,CAAM;IAEpB,YAAmB,MAAW;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,IAAI,CACP,WAGe,EACf,UAGe;QAEf,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,IAAW,CAAC;SACtB;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,cAAc;QACjB,MAAM,IAAI,CAAC,MAAM,CAAC;IACtB,CAAC;CACJ"}
1
+ {"version":3,"file":"sync-promise.js","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC1C,MAAM,CAAY,MAAY;QAC1B,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAI,KAA0B;QACjC,IACI,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,OAAQ,KAAwB,CAAC,IAAI,KAAK,UAAU,EACtD;YACE,IACI,KAAK,YAAY,kBAAkB;gBACnC,KAAK,YAAY,mBAAmB;gBACpC,KAAK,YAAY,mBAAmB,EACtC;gBACE,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,IAAI,kBAAkB,CAAC,KAAuB,CAAC,CAAC;SAC1D;aAAM;YACH,OAAO,IAAI,mBAAmB,CAAC,KAAU,CAAC,CAAC;SAC9C;IACL,CAAC;IACD,GAAG,CAAI,QAAkC;QACrC,IAAI;YACA,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1C;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChC;IACL,CAAC;CACJ,CAAC;AAEF,MAAM,kBAAkB;IACpB,QAAQ,CAAiB;IAEzB,YAAY,OAAuB;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,IAAI,CACA,WAGe,EACf,UAGe;QAEf,OAAO,IAAI,kBAAkB,CACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAC9C,CAAC;IACN,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAED,MAAM,mBAAmB;IACrB,MAAM,CAAI;IAEV,YAAY,KAAQ;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,CACA,WAGe;QAEf,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,IAAW,CAAC;SACtB;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AAED,MAAM,mBAAmB;IACrB,OAAO,CAAM;IAEb,YAAY,MAAW;QACnB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,CACA,WAGe,EACf,UAGe;QAEf,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,IAAW,CAAC;SACtB;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,cAAc;QACV,MAAM,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;CACJ"}
@@ -1,4 +1,4 @@
1
- import type { StructAsyncDeserializeStream, StructDeserializeStream, StructOptions, StructValue } from "../basic/index.js";
1
+ import type { AsyncExactReadable, ExactReadable, StructOptions, StructValue } from "../basic/index.js";
2
2
  import { StructFieldDefinition, StructFieldValue } from "../basic/index.js";
3
3
  type DataViewBigInt64Getter = (dataView: DataView, byteOffset: number, littleEndian: boolean | undefined) => bigint;
4
4
  type DataViewBigInt64Setter = (dataView: DataView, byteOffset: number, value: bigint, littleEndian: boolean | undefined) => void;
@@ -16,8 +16,8 @@ export declare class BigIntFieldDefinition<TType extends BigIntFieldType = BigIn
16
16
  constructor(type: TType, typescriptType?: TTypeScriptType);
17
17
  getSize(): number;
18
18
  create(options: Readonly<StructOptions>, struct: StructValue, value: TTypeScriptType): BigIntFieldValue<this>;
19
- deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): BigIntFieldValue<this>;
20
- deserialize(options: Readonly<StructOptions>, stream: StructAsyncDeserializeStream, struct: StructValue): Promise<BigIntFieldValue<this>>;
19
+ deserialize(options: Readonly<StructOptions>, stream: ExactReadable, struct: StructValue): BigIntFieldValue<this>;
20
+ deserialize(options: Readonly<StructOptions>, stream: AsyncExactReadable, struct: StructValue): Promise<BigIntFieldValue<this>>;
21
21
  }
22
22
  export declare class BigIntFieldValue<TDefinition extends BigIntFieldDefinition<BigIntFieldType, any>> extends StructFieldValue<TDefinition> {
23
23
  serialize(dataView: DataView, offset: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,4BAA4B,EAC5B,uBAAuB,EACvB,aAAa,EACb,WAAW,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI5E,KAAK,sBAAsB,GAAG,CAC1B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,GAAG,SAAS,KAChC,MAAM,CAAC;AAEZ,KAAK,sBAAsB,GAAG,CAC1B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,OAAO,GAAG,SAAS,KAChC,IAAI,CAAC;AAEV,qBAAa,eAAe;IACxB,SAAgB,eAAe,EAAG,MAAM,CAAC;IAEzC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,SAAgB,MAAM,EAAE,sBAAsB,CAAC;IAE/C,SAAgB,MAAM,EAAE,sBAAsB,CAAC;gBAG3C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,sBAAsB;IAOlC,gBAAuB,KAAK,kBAI1B;IAEF,gBAAuB,MAAM,kBAI3B;CACL;AAED,qBAAa,qBAAqB,CAC9B,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/C,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAC5C,SAAQ,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC;IAClD,SAAgB,IAAI,EAAE,KAAK,CAAC;gBAET,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,eAAe;IAMzD,OAAO,IAAI,MAAM;IAIjB,MAAM,CACT,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,eAAe,GACvB,gBAAgB,CAAC,IAAI,CAAC;IAIT,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,WAAW,GACpB,gBAAgB,CAAC,IAAI,CAAC;IACT,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,4BAA4B,EACpC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAoBrC;AAED,qBAAa,gBAAgB,CACzB,WAAW,SAAS,qBAAqB,CAAC,eAAe,EAAE,GAAG,CAAC,CACjE,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAC5B,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAQ7D"}
1
+ {"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI5E,KAAK,sBAAsB,GAAG,CAC1B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,GAAG,SAAS,KAChC,MAAM,CAAC;AAEZ,KAAK,sBAAsB,GAAG,CAC1B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,OAAO,GAAG,SAAS,KAChC,IAAI,CAAC;AAEV,qBAAa,eAAe;IACxB,QAAQ,CAAC,eAAe,EAAG,MAAM,CAAC;IAElC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAExC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;gBAGpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,sBAAsB;IAOlC,MAAM,CAAC,QAAQ,CAAC,KAAK,kBAAoD;IAEzE,MAAM,CAAC,QAAQ,CAAC,MAAM,kBAAsD;CAC/E;AAED,qBAAa,qBAAqB,CAC9B,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/C,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAC5C,SAAQ,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;gBAET,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,eAAe;IAMzD,OAAO,IAAI,MAAM;IAIjB,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,eAAe,GACvB,gBAAgB,CAAC,IAAI,CAAC;IAIhB,WAAW,CAChB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,WAAW,GACpB,gBAAgB,CAAC,IAAI,CAAC;IAChB,WAAW,CAChB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAoBrC;AAED,qBAAa,gBAAgB,CACzB,WAAW,SAAS,qBAAqB,CAAC,eAAe,EAAE,GAAG,CAAC,CACjE,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IACnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAQtD"}
@@ -1,7 +1,7 @@
1
1
  import { getBigInt64, getBigUint64, setBigInt64, setBigUint64, } from "@yume-chan/dataview-bigint-polyfill/esm/fallback.js";
2
2
  import { StructFieldDefinition, StructFieldValue } from "../basic/index.js";
3
3
  import { SyncPromise } from "../sync-promise.js";
4
- class BigIntFieldType {
4
+ export class BigIntFieldType {
5
5
  TTypeScriptType;
6
6
  size;
7
7
  getter;
@@ -14,7 +14,6 @@ class BigIntFieldType {
14
14
  static Int64 = new BigIntFieldType(8, getBigInt64, setBigInt64);
15
15
  static Uint64 = new BigIntFieldType(8, getBigUint64, setBigUint64);
16
16
  }
17
- export { BigIntFieldType };
18
17
  export class BigIntFieldDefinition extends StructFieldDefinition {
19
18
  type;
20
19
  constructor(type, typescriptType) {
@@ -30,7 +29,7 @@ export class BigIntFieldDefinition extends StructFieldDefinition {
30
29
  }
31
30
  deserialize(options, stream, struct) {
32
31
  return SyncPromise.try(() => {
33
- return stream.read(this.getSize());
32
+ return stream.readExactly(this.getSize());
34
33
  })
35
34
  .then((array) => {
36
35
  const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
@@ -1 +1 @@
1
- {"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,GACf,MAAM,qDAAqD,CAAC;AAQ7D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgBjD,MAAa,eAAe;IACR,eAAe,CAAU;IAEzB,IAAI,CAAS;IAEb,MAAM,CAAyB;IAE/B,MAAM,CAAyB;IAE/C,YACI,IAAY,EACZ,MAA8B,EAC9B,MAA8B;QAE9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,MAAM,CAAU,KAAK,GAAG,IAAI,eAAe,CAC9C,CAAC,EACD,WAAW,EACX,WAAW,CACd,CAAC;IAEK,MAAM,CAAU,MAAM,GAAG,IAAI,eAAe,CAC/C,CAAC,EACD,YAAY,EACZ,YAAY,CACf,CAAC;;SA7BO,eAAe;AAgC5B,MAAM,OAAO,qBAGX,SAAQ,qBAA4C;IAClC,IAAI,CAAQ;IAE5B,YAAmB,IAAW,EAAE,cAAgC;QAC5D,KAAK,cAAc,CAAC;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAEM,MAAM,CACT,OAAgC,EAChC,MAAmB,EACnB,KAAsB;QAEtB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAYe,WAAW,CACvB,OAAgC,EAChC,MAA8D,EAC9D,MAAmB;QAEnB,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;YACxB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;aACG,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,IAAI,QAAQ,CACrB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,CACnB,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAY,CAAC,CAAC;QACtD,CAAC,CAAC;aACD,cAAc,EAAE,CAAC;IAC1B,CAAC;CACJ;AAED,MAAM,OAAO,gBAEX,SAAQ,gBAA6B;IAC5B,SAAS,CAAC,QAAkB,EAAE,MAAc;QAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CACvB,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5B,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,GACf,MAAM,qDAAqD,CAAC;AAQ7D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgBjD,MAAM,OAAO,eAAe;IACf,eAAe,CAAU;IAEzB,IAAI,CAAS;IAEb,MAAM,CAAyB;IAE/B,MAAM,CAAyB;IAExC,YACI,IAAY,EACZ,MAA8B,EAC9B,MAA8B;QAE9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAU,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEzE,MAAM,CAAU,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;;AAGhF,MAAM,OAAO,qBAGX,SAAQ,qBAA4C;IACzC,IAAI,CAAQ;IAErB,YAAY,IAAW,EAAE,cAAgC;QACrD,KAAK,cAAc,CAAC;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,MAAM,CACF,OAAgC,EAChC,MAAmB,EACnB,KAAsB;QAEtB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAYQ,WAAW,CAChB,OAAgC,EAChC,MAA0C,EAC1C,MAAmB;QAEnB,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;YACxB,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC;aACG,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,IAAI,QAAQ,CACrB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,CACnB,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAY,CAAC,CAAC;QACtD,CAAC,CAAC;aACD,cAAc,EAAE,CAAC;IAC1B,CAAC;CACJ;AAED,MAAM,OAAO,gBAEX,SAAQ,gBAA6B;IACnC,SAAS,CAAC,QAAkB,EAAE,MAAc;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CACvB,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5B,CAAC;IACN,CAAC;CACJ"}
@@ -1,4 +1,4 @@
1
- import type { StructAsyncDeserializeStream, StructDeserializeStream, StructOptions, StructValue } from "../../basic/index.js";
1
+ import type { AsyncExactReadable, ExactReadable, StructOptions, StructValue } from "../../basic/index.js";
2
2
  import { StructFieldDefinition, StructFieldValue } from "../../basic/index.js";
3
3
  /**
4
4
  * Base class for all types that
@@ -53,8 +53,8 @@ export declare abstract class BufferLikeFieldDefinition<TType extends BufferFiel
53
53
  * When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
54
54
  */
55
55
  create(options: Readonly<StructOptions>, struct: StructValue, value: TType["TTypeScriptType"], array?: Uint8Array): BufferLikeFieldValue<this>;
56
- deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): BufferLikeFieldValue<this>;
57
- deserialize(options: Readonly<StructOptions>, stream: StructAsyncDeserializeStream, struct: StructValue): Promise<BufferLikeFieldValue<this>>;
56
+ deserialize(options: Readonly<StructOptions>, stream: ExactReadable, struct: StructValue): BufferLikeFieldValue<this>;
57
+ deserialize(options: Readonly<StructOptions>, stream: AsyncExactReadable, struct: StructValue): Promise<BufferLikeFieldValue<this>>;
58
58
  }
59
59
  export declare class BufferLikeFieldValue<TDefinition extends BufferLikeFieldDefinition<BufferFieldSubType<unknown, unknown>, any, any>> extends StructFieldValue<TDefinition> {
60
60
  protected array: Uint8Array | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/types/buffer/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/types/buffer/base.ts"],"names":[],"mappings":"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"}