@yume-chan/struct 0.0.22 → 0.0.24

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 (51) hide show
  1. package/CHANGELOG.json +18 -0
  2. package/CHANGELOG.md +13 -1
  3. package/LICENSE +1 -1
  4. package/esm/basic/field-value.d.ts +2 -2
  5. package/esm/basic/field-value.d.ts.map +1 -1
  6. package/esm/basic/field-value.js.map +1 -1
  7. package/esm/basic/struct-value.d.ts +6 -2
  8. package/esm/basic/struct-value.d.ts.map +1 -1
  9. package/esm/basic/struct-value.js +5 -0
  10. package/esm/basic/struct-value.js.map +1 -1
  11. package/esm/struct.d.ts +27 -14
  12. package/esm/struct.d.ts.map +1 -1
  13. package/esm/struct.js +31 -18
  14. package/esm/struct.js.map +1 -1
  15. package/esm/sync-promise.d.ts +2 -2
  16. package/esm/sync-promise.d.ts.map +1 -1
  17. package/esm/sync-promise.js.map +1 -1
  18. package/esm/types/bigint.d.ts +13 -14
  19. package/esm/types/bigint.d.ts.map +1 -1
  20. package/esm/types/bigint.js +16 -17
  21. package/esm/types/bigint.js.map +1 -1
  22. package/esm/types/buffer/base.d.ts +31 -27
  23. package/esm/types/buffer/base.d.ts.map +1 -1
  24. package/esm/types/buffer/base.js +25 -26
  25. package/esm/types/buffer/base.js.map +1 -1
  26. package/esm/types/buffer/fixed-length.d.ts +2 -2
  27. package/esm/types/buffer/fixed-length.d.ts.map +1 -1
  28. package/esm/types/buffer/fixed-length.js.map +1 -1
  29. package/esm/types/buffer/variable-length.d.ts +10 -9
  30. package/esm/types/buffer/variable-length.d.ts.map +1 -1
  31. package/esm/types/buffer/variable-length.js +30 -19
  32. package/esm/types/buffer/variable-length.js.map +1 -1
  33. package/esm/types/number.d.ts +13 -13
  34. package/esm/types/number.d.ts.map +1 -1
  35. package/esm/types/number.js +22 -34
  36. package/esm/types/number.js.map +1 -1
  37. package/esm/utils.d.ts.map +1 -1
  38. package/esm/utils.js +6 -4
  39. package/esm/utils.js.map +1 -1
  40. package/package.json +9 -11
  41. package/src/basic/field-value.ts +7 -7
  42. package/src/basic/struct-value.ts +21 -3
  43. package/src/struct.ts +106 -65
  44. package/src/sync-promise.ts +9 -9
  45. package/src/types/bigint.ts +40 -37
  46. package/src/types/buffer/base.ts +48 -47
  47. package/src/types/buffer/fixed-length.ts +9 -4
  48. package/src/types/buffer/variable-length.ts +55 -31
  49. package/src/types/number.ts +32 -39
  50. package/src/utils.ts +6 -4
  51. package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.json CHANGED
@@ -1,6 +1,24 @@
1
1
  {
2
2
  "name": "@yume-chan/struct",
3
3
  "entries": [
4
+ {
5
+ "version": "0.0.24",
6
+ "tag": "@yume-chan/struct_v0.0.24",
7
+ "date": "Tue, 18 Jun 2024 02:49:43 GMT",
8
+ "comments": {
9
+ "none": [
10
+ {
11
+ "comment": "Rename some internal types to make them more distinguishable"
12
+ }
13
+ ]
14
+ }
15
+ },
16
+ {
17
+ "version": "0.0.23",
18
+ "tag": "@yume-chan/struct_v0.0.23",
19
+ "date": "Thu, 21 Mar 2024 03:15:10 GMT",
20
+ "comments": {}
21
+ },
4
22
  {
5
23
  "version": "0.0.22",
6
24
  "tag": "@yume-chan/struct_v0.0.22",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Change Log - @yume-chan/struct
2
2
 
3
- This log was last generated on Wed, 13 Dec 2023 05:57:27 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 18 Jun 2024 02:49:43 GMT and should not be manually modified.
4
+
5
+ ## 0.0.24
6
+ Tue, 18 Jun 2024 02:49:43 GMT
7
+
8
+ ### Updates
9
+
10
+ - Rename some internal types to make them more distinguishable
11
+
12
+ ## 0.0.23
13
+ Thu, 21 Mar 2024 03:15:10 GMT
14
+
15
+ _Version update only_
4
16
 
5
17
  ## 0.0.22
6
18
  Wed, 13 Dec 2023 05:57:27 GMT
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020-2023 Simon Chan
3
+ Copyright (c) 2020-2024 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
@@ -7,7 +7,7 @@ import type { StructValue } from "./struct-value.js";
7
7
  * It may contains extra metadata about the value which are essential or
8
8
  * helpful for the serialization process.
9
9
  */
10
- export declare abstract class StructFieldValue<TDefinition extends StructFieldDefinition<any, any, any> = StructFieldDefinition<any, any, any>> {
10
+ export declare abstract class StructFieldValue<TDefinition extends StructFieldDefinition<unknown, unknown, PropertyKey>> {
11
11
  /** Gets the definition associated with this runtime value */
12
12
  readonly definition: TDefinition;
13
13
  /** Gets the options of the associated `Struct` */
@@ -34,6 +34,6 @@ export declare abstract class StructFieldValue<TDefinition extends StructFieldDe
34
34
  /**
35
35
  * When implemented in derived classes, serializes this field into `dataView` at `offset`
36
36
  */
37
- abstract serialize(dataView: DataView, offset: number): void;
37
+ abstract serialize(dataView: DataView, array: Uint8Array, offset: number): void;
38
38
  }
39
39
  //# sourceMappingURL=field-value.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;GAKG;AACH,8BAAsB,gBAAgB,CAClC,WAAW,SAAS,qBAAqB,CACrC,GAAG,EACH,GAAG,EACH,GAAG,CACN,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAExC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IAEjC,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE1C,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,IAAI,kBAAkB,IAAI,OAAO,CAKhC;IAED,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAGnC,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC;IAQhC;;;;OAIG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC;IAI5B;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;IAIvC;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAC/D"}
1
+ {"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;GAKG;AACH,8BAAsB,gBAAgB,CAClC,WAAW,SAAS,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC;IAExE,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IAEjC,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE1C,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,IAAI,kBAAkB,IAAI,OAAO,CAKhC;IAED,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAGnC,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC;IAQhC;;;;OAIG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC;IAI5B;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;IAIvC;;OAEG;IACH,QAAQ,CAAC,SAAS,CACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,GACf,IAAI;CACV"}
@@ -1 +1 @@
1
- {"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAgB,gBAAgB;IAOlC,6DAA6D;IACpD,UAAU,CAAc;IAEjC,kDAAkD;IACzC,OAAO,CAA0B;IAE1C,4CAA4C;IACnC,MAAM,CAAc;IAE7B,IAAI,kBAAkB;QAClB,OAAO,CACH,IAAI,CAAC,GAAG,KAAK,gBAAgB,CAAC,SAAS,CAAC,GAAG;YAC3C,IAAI,CAAC,GAAG,KAAK,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAC9C,CAAC;IACN,CAAC;IAES,KAAK,CAAwB;IAEvC,YACI,UAAuB,EACvB,OAAgC,EAChC,MAAmB,EACnB,KAA4B;QAE5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,OAAO;QACH,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,GAAG;QACC,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAA4B;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CAMJ"}
1
+ {"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAgB,gBAAgB;IAGlC,6DAA6D;IACpD,UAAU,CAAc;IAEjC,kDAAkD;IACzC,OAAO,CAA0B;IAE1C,4CAA4C;IACnC,MAAM,CAAc;IAE7B,IAAI,kBAAkB;QAClB,OAAO,CACH,IAAI,CAAC,GAAG,KAAK,gBAAgB,CAAC,SAAS,CAAC,GAAG;YAC3C,IAAI,CAAC,GAAG,KAAK,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAC9C,CAAC;IACN,CAAC;IAES,KAAK,CAAwB;IAEvC,YACI,UAAuB,EACvB,OAAgC,EAChC,MAAmB,EACnB,KAA4B;QAE5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,OAAO;QACH,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,GAAG;QACC,OAAO,IAAI,CAAC,KAAc,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAA4B;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CAUJ"}
@@ -1,5 +1,9 @@
1
+ import type { StructFieldDefinition } from "./definition.js";
1
2
  import type { StructFieldValue } from "./field-value.js";
2
3
  export declare const STRUCT_VALUE_SYMBOL: unique symbol;
4
+ export declare function isStructValueInit(value: unknown): value is {
5
+ [STRUCT_VALUE_SYMBOL]: StructValue;
6
+ };
3
7
  /**
4
8
  * A struct value is a map between keys in a struct and their field values.
5
9
  */
@@ -15,12 +19,12 @@ export declare class StructValue {
15
19
  * @param name The field name
16
20
  * @param fieldValue The associated `StructFieldValue`
17
21
  */
18
- set(name: PropertyKey, fieldValue: StructFieldValue): void;
22
+ set(name: PropertyKey, fieldValue: StructFieldValue<StructFieldDefinition<unknown, unknown, PropertyKey>>): void;
19
23
  /**
20
24
  * Gets the `StructFieldValue` for `key`
21
25
  *
22
26
  * @param name The field name
23
27
  */
24
- get(name: PropertyKey): StructFieldValue;
28
+ get(name: PropertyKey): StructFieldValue<StructFieldDefinition<unknown, unknown, PropertyKey>>;
25
29
  }
26
30
  //# sourceMappingURL=struct-value.d.ts.map
@@ -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,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
+ {"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,eAAyB,CAAC;AAE1D,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,OAAO,GACf,KAAK,IAAI;IAAE,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAA;CAAE,CAMjD;AAED;;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,CACC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,gBAAgB,CACxB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CACvD,GACF,IAAI;IAqBP;;;;OAIG;IACH,GAAG,CACC,IAAI,EAAE,WAAW,GAClB,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;CAG5E"}
@@ -1,4 +1,9 @@
1
1
  export const STRUCT_VALUE_SYMBOL = Symbol("struct-value");
2
+ export function isStructValueInit(value) {
3
+ return (typeof value === "object" &&
4
+ value !== null &&
5
+ STRUCT_VALUE_SYMBOL in value);
6
+ }
2
7
  /**
3
8
  * A struct value is a map between keys in a struct and their field values.
4
9
  */
@@ -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;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,CAAC;YAChC,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;QACP,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,IAAiB;QACjB,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":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAC7B,KAAc;IAEd,OAAO,CACH,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,mBAAmB,IAAI,KAAK,CAC/B,CAAC;AACN,CAAC;AAED;;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,CACC,IAAiB,EACjB,UAEC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAEpC,wCAAwC;QACxC,oCAAoC;QACpC,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAChC,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;QACP,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,GAAG,CACC,IAAiB;QAEjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,CAAC;IACnC,CAAC;CACJ"}
package/esm/struct.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { AsyncExactReadable, ExactReadable, StructFieldDefinition, StructOptions } from "./basic/index.js";
2
- import type { BufferFieldSubType, FixedLengthBufferLikeFieldOptions, LengthField, VariableLengthBufferLikeFieldOptions } from "./types/index.js";
3
- import { BigIntFieldType, FixedLengthBufferLikeFieldDefinition, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition } from "./types/index.js";
2
+ import type { BufferFieldConverter, FixedLengthBufferLikeFieldOptions, LengthField, VariableLengthBufferLikeFieldOptions } from "./types/index.js";
3
+ import { BigIntFieldVariant, FixedLengthBufferLikeFieldDefinition, StringBufferFieldConverter, Uint8ArrayBufferFieldConverter, VariableLengthBufferLikeFieldDefinition } from "./types/index.js";
4
4
  import type { Evaluate, Identity, Overwrite } from "./utils.js";
5
5
  export interface StructLike<TValue> {
6
6
  deserialize(stream: ExactReadable | AsyncExactReadable): Promise<TValue>;
@@ -12,13 +12,13 @@ export type StructValueType<T extends StructLike<unknown>> = Awaited<ReturnType<
12
12
  /**
13
13
  * Create a new `Struct` type with `TDefinition` appended
14
14
  */
15
- type AddFieldDescriptor<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TFieldName extends PropertyKey, TDefinition extends StructFieldDefinition<any, any, any>> = Identity<Struct<Evaluate<TFields & Record<TFieldName, TDefinition["TValue"]>>, TOmitInitKey | TDefinition["TOmitInitKey"], TExtra, TPostDeserialized>>;
15
+ type AddFieldDescriptor<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TFieldName extends PropertyKey, TDefinition extends StructFieldDefinition<unknown, unknown, PropertyKey>> = Identity<Struct<Evaluate<TFields & Record<TFieldName, TDefinition["TValue"]>>, TOmitInitKey | TDefinition["TOmitInitKey"], TExtra, TPostDeserialized>>;
16
16
  /**
17
17
  * Similar to `ArrayBufferLikeFieldCreator`, but bind to `TType`
18
18
  */
19
- interface BoundArrayBufferLikeFieldDefinitionCreator<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TType extends BufferFieldSubType<any, any>> {
19
+ interface BoundArrayBufferLikeFieldDefinitionCreator<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TType extends BufferFieldConverter<unknown, unknown>> {
20
20
  <TName extends PropertyKey, TTypeScriptType = TType["TTypeScriptType"]>(name: TName, options: FixedLengthBufferLikeFieldOptions, typeScriptType?: TTypeScriptType): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, FixedLengthBufferLikeFieldDefinition<TType, FixedLengthBufferLikeFieldOptions, TTypeScriptType>>;
21
- <TName extends PropertyKey, TLengthField extends LengthField<TFields>, TOptions extends VariableLengthBufferLikeFieldOptions<TFields, TLengthField>, TTypeScriptType = TType["TTypeScriptType"]>(name: TName, options: TOptions, typeScriptType?: TTypeScriptType): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, VariableLengthBufferLikeFieldDefinition<TType, TOptions, TTypeScriptType>>;
21
+ <TName extends PropertyKey, TOptions extends VariableLengthBufferLikeFieldOptions<TFields, LengthField<TFields>>, TTypeScriptType = TType["TTypeScriptType"]>(name: TName, options: TOptions, typeScriptType?: TTypeScriptType): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, VariableLengthBufferLikeFieldDefinition<TType, TOptions, TTypeScriptType>>;
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;
@@ -31,6 +31,12 @@ export declare class StructNotEnoughDataError extends StructDeserializeError {
31
31
  export declare class StructEmptyError extends StructDeserializeError {
32
32
  constructor();
33
33
  }
34
+ interface StructDefinition<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object> {
35
+ readonly TFields: TFields;
36
+ readonly TOmitInitKey: TOmitInitKey;
37
+ readonly TExtra: TExtra;
38
+ readonly TInit: Evaluate<Omit<TFields, TOmitInitKey>>;
39
+ }
34
40
  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
41
  #private;
36
42
  readonly TFields: TFields;
@@ -45,17 +51,19 @@ export declare class Struct<TFields extends object = Record<never, never>, TOmit
45
51
  get size(): number;
46
52
  get fields(): readonly [
47
53
  name: PropertyKey,
48
- definition: StructFieldDefinition<any, any, any>
54
+ definition: StructFieldDefinition<unknown, unknown, PropertyKey>
49
55
  ][];
50
56
  constructor(options?: Partial<Readonly<StructOptions>>);
51
57
  /**
52
58
  * Appends a `StructFieldDefinition` to the `Struct
53
59
  */
54
- field<TName extends PropertyKey, TDefinition extends StructFieldDefinition<any, any, any>>(name: TName, definition: TDefinition): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, TDefinition>;
60
+ field<TName extends PropertyKey, TDefinition extends StructFieldDefinition<unknown, unknown, PropertyKey>>(name: TName, definition: TDefinition): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, TDefinition>;
55
61
  /**
56
62
  * Merges (flats) another `Struct`'s fields and extra fields into this one.
63
+ *
64
+ * `other`'s `postDeserialize` will be ignored.
57
65
  */
58
- concat<TOther extends Struct<any, any, any, any>>(other: TOther): Struct<TFields & TOther["TFields"], TOmitInitKey | TOther["TOmitInitKey"], TExtra & TOther["TExtra"], TPostDeserialized>;
66
+ concat<TOther extends StructDefinition<object, PropertyKey, object>>(other: TOther): Struct<TFields & TOther["TFields"], TOmitInitKey | TOther["TOmitInitKey"], TExtra & TOther["TExtra"], TPostDeserialized>;
59
67
  /**
60
68
  * Appends an `int8` field to the `Struct`
61
69
  */
@@ -85,15 +93,15 @@ export declare class Struct<TFields extends object = Record<never, never>, TOmit
85
93
  *
86
94
  * Requires native `BigInt` support
87
95
  */
88
- int64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType["TTypeScriptType"]>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
96
+ int64<TName extends PropertyKey, TTypeScriptType = BigIntFieldVariant["TTypeScriptType"]>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
89
97
  /**
90
98
  * Appends an `uint64` field to the `Struct`
91
99
  *
92
100
  * Requires native `BigInt` support
93
101
  */
94
- uint64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType["TTypeScriptType"]>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
95
- uint8Array: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, Uint8ArrayBufferFieldSubType>;
96
- string: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, StringBufferFieldSubType>;
102
+ uint64<TName extends PropertyKey, TTypeScriptType = BigIntFieldVariant["TTypeScriptType"]>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
103
+ uint8Array: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, Uint8ArrayBufferFieldConverter>;
104
+ string: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, StringBufferFieldConverter>;
97
105
  /**
98
106
  * Adds some extra properties into every `Struct` value.
99
107
  *
@@ -131,8 +139,13 @@ export declare class Struct<TFields extends object = Record<never, never>, TOmit
131
139
  */
132
140
  deserialize(stream: ExactReadable): StructDeserializedResult<TFields, TExtra, TPostDeserialized>;
133
141
  deserialize(stream: AsyncExactReadable): Promise<StructDeserializedResult<TFields, TExtra, TPostDeserialized>>;
134
- serialize(init: Evaluate<Omit<TFields, TOmitInitKey>>): Uint8Array;
135
- serialize(init: Evaluate<Omit<TFields, TOmitInitKey>>, output: Uint8Array): number;
142
+ /**
143
+ * Serialize a struct value to a buffer.
144
+ * @param init Fields of the struct
145
+ * @param output The buffer to serialize the struct to. It must be large enough to hold the entire struct. If not provided, a new buffer will be created.
146
+ * @returns A view of `output` that contains the serialized struct, or a new buffer if `output` is not provided.
147
+ */
148
+ serialize(init: Evaluate<Omit<TFields, TOmitInitKey>>, output?: Uint8Array): Uint8Array;
136
149
  }
137
150
  export {};
138
151
  //# 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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"}
package/esm/struct.js CHANGED
@@ -1,6 +1,7 @@
1
- import { ExactReadableEndedError, STRUCT_VALUE_SYMBOL, StructDefaultOptions, StructValue, } from "./basic/index.js";
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { ExactReadableEndedError, STRUCT_VALUE_SYMBOL, StructDefaultOptions, StructValue, isStructValueInit, } from "./basic/index.js";
2
3
  import { SyncPromise } from "./sync-promise.js";
3
- import { BigIntFieldDefinition, BigIntFieldType, FixedLengthBufferLikeFieldDefinition, NumberFieldDefinition, NumberFieldType, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition, } from "./types/index.js";
4
+ import { BigIntFieldDefinition, BigIntFieldVariant, FixedLengthBufferLikeFieldDefinition, NumberFieldDefinition, NumberFieldVariant, StringBufferFieldConverter, Uint8ArrayBufferFieldConverter, VariableLengthBufferLikeFieldDefinition, } from "./types/index.js";
4
5
  export class StructDeserializeError extends Error {
5
6
  constructor(message) {
6
7
  super(message);
@@ -59,8 +60,13 @@ export class Struct {
59
60
  }
60
61
  /**
61
62
  * Merges (flats) another `Struct`'s fields and extra fields into this one.
63
+ *
64
+ * `other`'s `postDeserialize` will be ignored.
62
65
  */
63
66
  concat(other) {
67
+ if (!(other instanceof Struct)) {
68
+ throw new TypeError("The other value must be a `Struct` instance");
69
+ }
64
70
  for (const field of other.#fields) {
65
71
  this.#fields.push(field);
66
72
  }
@@ -75,37 +81,37 @@ export class Struct {
75
81
  * Appends an `int8` field to the `Struct`
76
82
  */
77
83
  int8(name, typeScriptType) {
78
- return this.#number(name, NumberFieldType.Int8, typeScriptType);
84
+ return this.#number(name, NumberFieldVariant.Int8, typeScriptType);
79
85
  }
80
86
  /**
81
87
  * Appends an `uint8` field to the `Struct`
82
88
  */
83
89
  uint8(name, typeScriptType) {
84
- return this.#number(name, NumberFieldType.Uint8, typeScriptType);
90
+ return this.#number(name, NumberFieldVariant.Uint8, typeScriptType);
85
91
  }
86
92
  /**
87
93
  * Appends an `int16` field to the `Struct`
88
94
  */
89
95
  int16(name, typeScriptType) {
90
- return this.#number(name, NumberFieldType.Int16, typeScriptType);
96
+ return this.#number(name, NumberFieldVariant.Int16, typeScriptType);
91
97
  }
92
98
  /**
93
99
  * Appends an `uint16` field to the `Struct`
94
100
  */
95
101
  uint16(name, typeScriptType) {
96
- return this.#number(name, NumberFieldType.Uint16, typeScriptType);
102
+ return this.#number(name, NumberFieldVariant.Uint16, typeScriptType);
97
103
  }
98
104
  /**
99
105
  * Appends an `int32` field to the `Struct`
100
106
  */
101
107
  int32(name, typeScriptType) {
102
- return this.#number(name, NumberFieldType.Int32, typeScriptType);
108
+ return this.#number(name, NumberFieldVariant.Int32, typeScriptType);
103
109
  }
104
110
  /**
105
111
  * Appends an `uint32` field to the `Struct`
106
112
  */
107
113
  uint32(name, typeScriptType) {
108
- return this.#number(name, NumberFieldType.Uint32, typeScriptType);
114
+ return this.#number(name, NumberFieldVariant.Uint32, typeScriptType);
109
115
  }
110
116
  #bigint(name, type, typeScriptType) {
111
117
  return this.field(name, new BigIntFieldDefinition(type, typeScriptType));
@@ -116,7 +122,7 @@ export class Struct {
116
122
  * Requires native `BigInt` support
117
123
  */
118
124
  int64(name, typeScriptType) {
119
- return this.#bigint(name, BigIntFieldType.Int64, typeScriptType);
125
+ return this.#bigint(name, BigIntFieldVariant.Int64, typeScriptType);
120
126
  }
121
127
  /**
122
128
  * Appends an `uint64` field to the `Struct`
@@ -124,7 +130,7 @@ export class Struct {
124
130
  * Requires native `BigInt` support
125
131
  */
126
132
  uint64(name, typeScriptType) {
127
- return this.#bigint(name, BigIntFieldType.Uint64, typeScriptType);
133
+ return this.#bigint(name, BigIntFieldVariant.Uint64, typeScriptType);
128
134
  }
129
135
  #arrayBufferLike = (name, type, options) => {
130
136
  if ("length" in options) {
@@ -135,10 +141,10 @@ export class Struct {
135
141
  }
136
142
  };
137
143
  uint8Array = (name, options, typeScriptType) => {
138
- return this.#arrayBufferLike(name, Uint8ArrayBufferFieldSubType.Instance, options, typeScriptType);
144
+ return this.#arrayBufferLike(name, Uint8ArrayBufferFieldConverter.Instance, options, typeScriptType);
139
145
  };
140
146
  string = (name, options, typeScriptType) => {
141
- return this.#arrayBufferLike(name, StringBufferFieldSubType.Instance, options, typeScriptType);
147
+ return this.#arrayBufferLike(name, StringBufferFieldConverter.Instance, options, typeScriptType);
142
148
  };
143
149
  /**
144
150
  * Adds some extra properties into every `Struct` value.
@@ -195,9 +201,15 @@ export class Struct {
195
201
  })
196
202
  .valueOrPromise();
197
203
  }
204
+ /**
205
+ * Serialize a struct value to a buffer.
206
+ * @param init Fields of the struct
207
+ * @param output The buffer to serialize the struct to. It must be large enough to hold the entire struct. If not provided, a new buffer will be created.
208
+ * @returns A view of `output` that contains the serialized struct, or a new buffer if `output` is not provided.
209
+ */
198
210
  serialize(init, output) {
199
211
  let structValue;
200
- if (STRUCT_VALUE_SYMBOL in init) {
212
+ if (isStructValueInit(init)) {
201
213
  structValue = init[STRUCT_VALUE_SYMBOL];
202
214
  for (const [key, value] of Object.entries(init)) {
203
215
  const fieldValue = structValue.get(key);
@@ -221,19 +233,20 @@ export class Struct {
221
233
  fieldsInfo.push({ fieldValue, size });
222
234
  structSize += size;
223
235
  }
224
- let outputType = "number";
225
236
  if (!output) {
226
237
  output = new Uint8Array(structSize);
227
- outputType = "Uint8Array";
238
+ }
239
+ else if (output.length < structSize) {
240
+ throw new TypeError("Output buffer is too small");
228
241
  }
229
242
  const dataView = new DataView(output.buffer, output.byteOffset, output.byteLength);
230
243
  let offset = 0;
231
244
  for (const { fieldValue, size } of fieldsInfo) {
232
- fieldValue.serialize(dataView, offset);
245
+ fieldValue.serialize(dataView, output, offset);
233
246
  offset += size;
234
247
  }
235
- if (outputType === "number") {
236
- return structSize;
248
+ if (output.length !== structSize) {
249
+ return output.subarray(0, structSize);
237
250
  }
238
251
  else {
239
252
  return output;
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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"}
@@ -1,9 +1,9 @@
1
1
  export interface SyncPromise<T> {
2
- then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): SyncPromise<TResult1 | TResult2>;
2
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null | undefined): SyncPromise<TResult1 | TResult2>;
3
3
  valueOrPromise(): T | PromiseLike<T>;
4
4
  }
5
5
  interface SyncPromiseStatic {
6
- reject<T = never>(reason?: any): SyncPromise<T>;
6
+ reject<T = never>(reason?: unknown): SyncPromise<T>;
7
7
  resolve(): SyncPromise<void>;
8
8
  resolve<T>(value: T | PromiseLike<T>): SyncPromise<T>;
9
9
  try<T>(executor: () => T | PromiseLike<T>): SyncPromise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-promise.d.ts","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,EACN,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAChD,IAAI,GACJ,SAAS,EACf,UAAU,CAAC,EACL,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GACnD,IAAI,GACJ,SAAS,GAChB,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAEpC,cAAc,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CACxC;AAED,UAAU,iBAAiB;IACvB,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEhD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEtD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,WAAW,EAAE,iBA8BzB,CAAC"}
1
+ {"version":3,"file":"sync-promise.d.ts","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,EACN,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAChD,IAAI,GACJ,SAAS,EACf,UAAU,CAAC,EACL,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GACvD,IAAI,GACJ,SAAS,GAChB,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAEpC,cAAc,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CACxC;AAED,UAAU,iBAAiB;IACvB,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEpD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEtD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,WAAW,EAAE,iBA8BzB,CAAC"}
@@ -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,CAAC;YACC,IACI,KAAK,YAAY,kBAAkB;gBACnC,KAAK,YAAY,mBAAmB;gBACpC,KAAK,YAAY,mBAAmB,EACtC,CAAC;gBACC,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,OAAO,IAAI,kBAAkB,CAAC,KAAuB,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,mBAAmB,CAAC,KAAU,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IACD,GAAG,CAAI,QAAkC;QACrC,IAAI,CAAC;YACD,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;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,CAAC;YACf,OAAO,IAAW,CAAC;QACvB,CAAC;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,CAAC;YACd,OAAO,IAAW,CAAC;QACvB,CAAC;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
+ {"version":3,"file":"sync-promise.js","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC1C,MAAM,CAAY,MAAgB;QAC9B,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,CAAC;YACC,IACI,KAAK,YAAY,kBAAkB;gBACnC,KAAK,YAAY,mBAAmB;gBACpC,KAAK,YAAY,mBAAmB,EACtC,CAAC;gBACC,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,OAAO,IAAI,kBAAkB,CAAC,KAAuB,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,mBAAmB,CAAC,KAAU,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IACD,GAAG,CAAI,QAAkC;QACrC,IAAI,CAAC;YACD,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;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,CAAC;YACf,OAAO,IAAa,CAAC;QACzB,CAAC;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,CAAU;IAEjB,YAAY,MAAe;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,CACA,WAGe,EACf,UAGe;QAEf,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,IAAa,CAAC;QACzB,CAAC;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,26 +1,25 @@
1
1
  import type { AsyncExactReadable, ExactReadable, StructOptions, StructValue } from "../basic/index.js";
2
2
  import { StructFieldDefinition, StructFieldValue } from "../basic/index.js";
3
- type DataViewBigInt64Getter = (dataView: DataView, byteOffset: number, littleEndian: boolean | undefined) => bigint;
4
- type DataViewBigInt64Setter = (dataView: DataView, byteOffset: number, value: bigint, littleEndian: boolean | undefined) => void;
5
- export declare class BigIntFieldType {
3
+ export type BigIntDeserializer = (array: Uint8Array, byteOffset: number, littleEndian: boolean) => bigint;
4
+ export type BigIntSerializer = (array: Uint8Array, byteOffset: number, value: bigint, littleEndian: boolean) => void;
5
+ export declare class BigIntFieldVariant {
6
6
  readonly TTypeScriptType: bigint;
7
7
  readonly size: number;
8
- readonly getter: DataViewBigInt64Getter;
9
- readonly setter: DataViewBigInt64Setter;
10
- constructor(size: number, getter: DataViewBigInt64Getter, setter: DataViewBigInt64Setter);
11
- static readonly Int64: BigIntFieldType;
12
- static readonly Uint64: BigIntFieldType;
8
+ readonly deserialize: BigIntDeserializer;
9
+ readonly serialize: BigIntSerializer;
10
+ constructor(size: number, deserialize: BigIntDeserializer, serialize: BigIntSerializer);
11
+ static readonly Int64: BigIntFieldVariant;
12
+ static readonly Uint64: BigIntFieldVariant;
13
13
  }
14
- export declare class BigIntFieldDefinition<TType extends BigIntFieldType = BigIntFieldType, TTypeScriptType = TType["TTypeScriptType"]> extends StructFieldDefinition<void, TTypeScriptType> {
15
- readonly type: TType;
16
- constructor(type: TType, typescriptType?: TTypeScriptType);
14
+ export declare class BigIntFieldDefinition<TVariant extends BigIntFieldVariant = BigIntFieldVariant, TTypeScriptType = TVariant["TTypeScriptType"]> extends StructFieldDefinition<void, TTypeScriptType> {
15
+ readonly variant: TVariant;
16
+ constructor(variant: TVariant, typescriptType?: TTypeScriptType);
17
17
  getSize(): number;
18
18
  create(options: Readonly<StructOptions>, struct: StructValue, value: TTypeScriptType): BigIntFieldValue<this>;
19
19
  deserialize(options: Readonly<StructOptions>, stream: ExactReadable, struct: StructValue): BigIntFieldValue<this>;
20
20
  deserialize(options: Readonly<StructOptions>, stream: AsyncExactReadable, struct: StructValue): Promise<BigIntFieldValue<this>>;
21
21
  }
22
- export declare class BigIntFieldValue<TDefinition extends BigIntFieldDefinition<BigIntFieldType, any>> extends StructFieldValue<TDefinition> {
23
- serialize(dataView: DataView, offset: number): void;
22
+ export declare class BigIntFieldValue<TDefinition extends BigIntFieldDefinition<BigIntFieldVariant, unknown>> extends StructFieldValue<TDefinition> {
23
+ serialize(dataView: DataView, array: Uint8Array, offset: number): void;
24
24
  }
25
- export {};
26
25
  //# sourceMappingURL=bigint.d.ts.map
@@ -1 +1 @@
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
+ {"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,MAAM,MAAM,kBAAkB,GAAG,CAC7B,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,KACpB,MAAM,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAC3B,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,OAAO,KACpB,IAAI,CAAC;AAEV,qBAAa,kBAAkB;IAC3B,QAAQ,CAAC,eAAe,EAAG,MAAM,CAAC;IAElC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAEzC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBAGjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,kBAAkB,EAC/B,SAAS,EAAE,gBAAgB;IAO/B,MAAM,CAAC,QAAQ,CAAC,KAAK,qBAAiD;IAEtE,MAAM,CAAC,QAAQ,CAAC,MAAM,qBAAmD;CAC5E;AAED,qBAAa,qBAAqB,CAC9B,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,EACxD,eAAe,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAC/C,SAAQ,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;gBAEf,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,eAAe;IAM/D,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;CAmBrC;AAED,qBAAa,gBAAgB,CACzB,WAAW,SAAS,qBAAqB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CACxE,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAC1B,SAAS,CACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,GACf,IAAI;CAQV"}
@@ -1,28 +1,28 @@
1
- import { getBigInt64, getBigUint64, setBigInt64, setBigUint64, } from "@yume-chan/dataview-bigint-polyfill/esm/fallback.js";
1
+ import { getInt64, getUint64, setInt64, setUint64, } from "@yume-chan/no-data-view";
2
2
  import { StructFieldDefinition, StructFieldValue } from "../basic/index.js";
3
3
  import { SyncPromise } from "../sync-promise.js";
4
- export class BigIntFieldType {
4
+ export class BigIntFieldVariant {
5
5
  TTypeScriptType;
6
6
  size;
7
- getter;
8
- setter;
9
- constructor(size, getter, setter) {
7
+ deserialize;
8
+ serialize;
9
+ constructor(size, deserialize, serialize) {
10
10
  this.size = size;
11
- this.getter = getter;
12
- this.setter = setter;
11
+ this.deserialize = deserialize;
12
+ this.serialize = serialize;
13
13
  }
14
- static Int64 = new BigIntFieldType(8, getBigInt64, setBigInt64);
15
- static Uint64 = new BigIntFieldType(8, getBigUint64, setBigUint64);
14
+ static Int64 = new BigIntFieldVariant(8, getInt64, setInt64);
15
+ static Uint64 = new BigIntFieldVariant(8, getUint64, setUint64);
16
16
  }
17
17
  export class BigIntFieldDefinition extends StructFieldDefinition {
18
- type;
19
- constructor(type, typescriptType) {
18
+ variant;
19
+ constructor(variant, typescriptType) {
20
20
  void typescriptType;
21
21
  super();
22
- this.type = type;
22
+ this.variant = variant;
23
23
  }
24
24
  getSize() {
25
- return this.type.size;
25
+ return this.variant.size;
26
26
  }
27
27
  create(options, struct, value) {
28
28
  return new BigIntFieldValue(this, options, struct, value);
@@ -32,16 +32,15 @@ export class BigIntFieldDefinition extends StructFieldDefinition {
32
32
  return stream.readExactly(this.getSize());
33
33
  })
34
34
  .then((array) => {
35
- const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
36
- const value = this.type.getter(view, 0, options.littleEndian);
35
+ const value = this.variant.deserialize(array, 0, options.littleEndian);
37
36
  return this.create(options, struct, value);
38
37
  })
39
38
  .valueOrPromise();
40
39
  }
41
40
  }
42
41
  export class BigIntFieldValue extends StructFieldValue {
43
- serialize(dataView, offset) {
44
- this.definition.type.setter(dataView, offset, this.value, this.options.littleEndian);
42
+ serialize(dataView, array, offset) {
43
+ this.definition.variant.serialize(array, offset, this.value, this.options.littleEndian);
45
44
  }
46
45
  }
47
46
  //# sourceMappingURL=bigint.js.map