@yume-chan/struct 0.0.17 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +12 -0
- package/CHANGELOG.md +8 -1
- package/LICENSE +1 -1
- package/esm/basic/definition.d.ts +4 -4
- package/esm/basic/definition.d.ts.map +1 -1
- package/esm/basic/definition.js.map +1 -1
- package/esm/basic/field-value.d.ts +7 -7
- package/esm/basic/field-value.d.ts.map +1 -1
- package/esm/basic/field-value.js +2 -2
- package/esm/basic/field-value.js.map +1 -1
- package/esm/basic/stream.d.ts +1 -1
- package/esm/basic/stream.d.ts.map +1 -1
- package/esm/basic/struct-value.d.ts +2 -2
- package/esm/basic/struct-value.d.ts.map +1 -1
- package/esm/basic/struct-value.js +10 -3
- package/esm/basic/struct-value.js.map +1 -1
- package/esm/struct.d.ts +19 -19
- package/esm/struct.d.ts.map +1 -1
- package/esm/struct.js +10 -8
- package/esm/struct.js.map +1 -1
- package/esm/sync-promise.d.ts.map +1 -1
- package/esm/sync-promise.js +4 -4
- package/esm/sync-promise.js.map +1 -1
- package/esm/types/bigint.d.ts +4 -4
- package/esm/types/bigint.d.ts.map +1 -1
- package/esm/types/bigint.js +6 -6
- package/esm/types/bigint.js.map +1 -1
- package/esm/types/buffer/base.d.ts +4 -4
- package/esm/types/buffer/base.d.ts.map +1 -1
- package/esm/types/buffer/base.js +5 -6
- package/esm/types/buffer/base.js.map +1 -1
- package/esm/types/buffer/fixed-length.d.ts.map +1 -1
- package/esm/types/buffer/fixed-length.js +0 -1
- package/esm/types/buffer/fixed-length.js.map +1 -1
- package/esm/types/buffer/variable-length.d.ts +7 -7
- package/esm/types/buffer/variable-length.d.ts.map +1 -1
- package/esm/types/buffer/variable-length.js +4 -4
- package/esm/types/buffer/variable-length.js.map +1 -1
- package/esm/types/number.d.ts +16 -22
- package/esm/types/number.d.ts.map +1 -1
- package/esm/types/number.js +89 -40
- package/esm/types/number.js.map +1 -1
- package/esm/utils.d.ts +6 -6
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +1 -8
- package/esm/utils.js.map +1 -1
- package/package.json +12 -9
- package/src/basic/definition.ts +12 -9
- package/src/basic/field-value.ts +18 -15
- package/src/basic/stream.ts +1 -1
- package/src/basic/struct-value.ts +17 -11
- package/src/struct.ts +207 -201
- package/src/sync-promise.ts +32 -12
- package/src/types/bigint.ts +58 -31
- package/src/types/buffer/base.ts +53 -35
- package/src/types/buffer/fixed-length.ts +3 -8
- package/src/types/buffer/variable-length.ts +41 -24
- package/src/types/number.ts +131 -79
- package/src/utils.ts +30 -8
- package/tsconfig.build.json +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yume-chan/struct",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.0.18",
|
|
6
|
+
"tag": "@yume-chan/struct_v0.0.18",
|
|
7
|
+
"date": "Wed, 25 Jan 2023 21:33:49 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"none": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "Refactor number types for easier extending (see `ScrcpyFloatToInt16FieldDefinition` for an example)"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
},
|
|
4
16
|
{
|
|
5
17
|
"version": "0.0.17",
|
|
6
18
|
"tag": "@yume-chan/struct_v0.0.17",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# Change Log - @yume-chan/struct
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Wed, 25 Jan 2023 21:33:49 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 0.0.18
|
|
6
|
+
Wed, 25 Jan 2023 21:33:49 GMT
|
|
7
|
+
|
|
8
|
+
### Updates
|
|
9
|
+
|
|
10
|
+
- Refactor number types for easier extending (see `ScrcpyFloatToInt16FieldDefinition` for an example)
|
|
4
11
|
|
|
5
12
|
## 0.0.17
|
|
6
13
|
Tue, 18 Oct 2022 09:32:30 GMT
|
package/LICENSE
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
1
|
+
import { type StructFieldValue } from "./field-value.js";
|
|
2
|
+
import { type StructOptions } from "./options.js";
|
|
3
|
+
import { type StructAsyncDeserializeStream, type StructDeserializeStream } from "./stream.js";
|
|
4
|
+
import { type StructValue } from "./struct-value.js";
|
|
5
5
|
/**
|
|
6
6
|
* A field definition defines how to deserialize a field.
|
|
7
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;GAMG;AACH,8BAAsB,qBAAqB,CACvC,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,OAAO,EAChB,YAAY,SAAS,WAAW,GAAG,KAAK;IAExC;;;OAGG;IACH,SAAgB,MAAM,EAAG,MAAM,CAAC;IAEhC;;;OAGG;IACH,SAAgB,YAAY,EAAG,YAAY,CAAC;IAE5C,SAAgB,OAAO,EAAE,QAAQ,CAAC;gBAEf,OAAO,EAAE,QAAQ;IAIpC;;;;OAIG;aACa,OAAO,IAAI,MAAM;IAEjC;;OAEG;aACa,MAAM,CAClB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,GACd,gBAAgB,CAAC,IAAI,CAAC;IAEzB;;;;;OAKG;aACa,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,WAAW,GACzB,gBAAgB,CAAC,IAAI,CAAC;aACT,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,4BAA4B,EACpC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CACrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAM,OAAgB,qBAAqB;IAKvC;;;OAGG;IACa,MAAM,CAAU;IAEhC;;;OAGG;IACa,YAAY,CAAgB;IAE5B,OAAO,CAAW;IAElC,YAAmB,OAAiB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CAkCJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
1
|
+
import { type StructFieldDefinition } from "./definition.js";
|
|
2
|
+
import { type StructOptions } from "./options.js";
|
|
3
|
+
import { type StructValue } from "./struct-value.js";
|
|
4
4
|
/**
|
|
5
5
|
* A field value defines how to serialize a field.
|
|
6
6
|
*
|
|
@@ -15,8 +15,8 @@ export declare abstract class StructFieldValue<TDefinition extends StructFieldDe
|
|
|
15
15
|
/** Gets the associated `Struct` instance */
|
|
16
16
|
readonly struct: StructValue;
|
|
17
17
|
get hasCustomAccessors(): boolean;
|
|
18
|
-
protected value: TDefinition[
|
|
19
|
-
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition[
|
|
18
|
+
protected value: TDefinition["TValue"];
|
|
19
|
+
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition["TValue"]);
|
|
20
20
|
/**
|
|
21
21
|
* Gets size of this field. By default, it returns its `definition`'s size.
|
|
22
22
|
*
|
|
@@ -26,11 +26,11 @@ export declare abstract class StructFieldValue<TDefinition extends StructFieldDe
|
|
|
26
26
|
/**
|
|
27
27
|
* When implemented in derived classes, reads current field's value.
|
|
28
28
|
*/
|
|
29
|
-
get(): TDefinition[
|
|
29
|
+
get(): TDefinition["TValue"];
|
|
30
30
|
/**
|
|
31
31
|
* When implemented in derived classes, updates current field's value.
|
|
32
32
|
*/
|
|
33
|
-
set(value: TDefinition[
|
|
33
|
+
set(value: TDefinition["TValue"]): void;
|
|
34
34
|
/**
|
|
35
35
|
* When implemented in derived classes, serializes this field into `dataView` at `offset`
|
|
36
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,KAAK,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,SAAgB,UAAU,EAAE,WAAW,CAAC;IAExC,kDAAkD;IAClD,SAAgB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEjD,4CAA4C;IAC5C,SAAgB,MAAM,EAAE,WAAW,CAAC;IAEpC,IAAW,kBAAkB,IAAI,OAAO,CAKvC;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;IACI,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC;IAInC;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;IAI9C;;OAEG;aACa,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CACtE"}
|
package/esm/basic/field-value.js
CHANGED
|
@@ -12,8 +12,8 @@ export class StructFieldValue {
|
|
|
12
12
|
/** Gets the associated `Struct` instance */
|
|
13
13
|
struct;
|
|
14
14
|
get hasCustomAccessors() {
|
|
15
|
-
return this.get !== StructFieldValue.prototype.get ||
|
|
16
|
-
this.set !== StructFieldValue.prototype.set;
|
|
15
|
+
return (this.get !== StructFieldValue.prototype.get ||
|
|
16
|
+
this.set !== StructFieldValue.prototype.set);
|
|
17
17
|
}
|
|
18
18
|
value;
|
|
19
19
|
constructor(definition, options, struct, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAgB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAgB,gBAAgB;IAOlC,6DAA6D;IAC7C,UAAU,CAAc;IAExC,kDAAkD;IAClC,OAAO,CAA0B;IAEjD,4CAA4C;IAC5B,MAAM,CAAc;IAEpC,IAAW,kBAAkB;QACzB,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;IACI,OAAO;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,GAAG;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,KAA4B;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CAMJ"}
|
package/esm/basic/stream.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/basic/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/basic/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,MAAM,WAAW,uBAAuB;IACpC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;CACpC;AAED,MAAM,WAAW,4BAA4B;IACzC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;CACpD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type StructFieldValue } from "./field-value.js";
|
|
2
2
|
export declare const STRUCT_VALUE_SYMBOL: unique symbol;
|
|
3
3
|
/**
|
|
4
4
|
* A struct value is a map between keys in a struct and their field values.
|
|
@@ -8,7 +8,7 @@ export declare class StructValue {
|
|
|
8
8
|
* Gets the result struct value object
|
|
9
9
|
*/
|
|
10
10
|
readonly value: Record<PropertyKey, unknown>;
|
|
11
|
-
constructor(prototype:
|
|
11
|
+
constructor(prototype: object);
|
|
12
12
|
/**
|
|
13
13
|
* Sets a `StructFieldValue` for `key`
|
|
14
14
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,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"}
|
|
@@ -14,7 +14,10 @@ export class StructValue {
|
|
|
14
14
|
this.value = Object.create(prototype);
|
|
15
15
|
// PERF: `Object.defineProperty` is slow
|
|
16
16
|
// but we need it to be non-enumerable
|
|
17
|
-
Object.defineProperty(this.value, STRUCT_VALUE_SYMBOL, {
|
|
17
|
+
Object.defineProperty(this.value, STRUCT_VALUE_SYMBOL, {
|
|
18
|
+
enumerable: false,
|
|
19
|
+
value: this,
|
|
20
|
+
});
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
23
|
* Sets a `StructFieldValue` for `key`
|
|
@@ -30,8 +33,12 @@ export class StructValue {
|
|
|
30
33
|
Object.defineProperty(this.value, name, {
|
|
31
34
|
configurable: true,
|
|
32
35
|
enumerable: true,
|
|
33
|
-
get() {
|
|
34
|
-
|
|
36
|
+
get() {
|
|
37
|
+
return fieldValue.get();
|
|
38
|
+
},
|
|
39
|
+
set(v) {
|
|
40
|
+
fieldValue.set(v);
|
|
41
|
+
},
|
|
35
42
|
});
|
|
36
43
|
}
|
|
37
44
|
else {
|
|
@@ -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,
|
|
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"}
|
package/esm/struct.d.ts
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { StructAsyncDeserializeStream, StructDeserializeStream, StructFieldDefinition, StructOptions } from
|
|
2
|
-
import { BigIntFieldType,
|
|
3
|
-
import type
|
|
1
|
+
import { type StructAsyncDeserializeStream, type StructDeserializeStream, type StructFieldDefinition, type StructOptions } from "./basic/index.js";
|
|
2
|
+
import { BigIntFieldType, FixedLengthBufferLikeFieldDefinition, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition, type BufferFieldSubType, type FixedLengthBufferLikeFieldOptions, type LengthField, type VariableLengthBufferLikeFieldOptions } from "./types/index.js";
|
|
3
|
+
import { type Evaluate, type Identity, type Overwrite } from "./utils.js";
|
|
4
4
|
export interface StructLike<TValue> {
|
|
5
5
|
deserialize(stream: StructDeserializeStream | StructAsyncDeserializeStream): Promise<TValue>;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Extract the value type of the specified `Struct`
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export type StructValueType<T extends StructLike<unknown>> = Awaited<ReturnType<T["deserialize"]>>;
|
|
11
11
|
/**
|
|
12
12
|
* Create a new `Struct` type with `TDefinition` appended
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
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
15
|
/**
|
|
16
16
|
* Similar to `ArrayBufferLikeFieldCreator`, but bind to `TType`
|
|
17
17
|
*/
|
|
18
18
|
interface BoundArrayBufferLikeFieldDefinitionCreator<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TType extends BufferFieldSubType<any, any>> {
|
|
19
|
-
<TName extends PropertyKey, TTypeScriptType = TType[
|
|
20
|
-
<TName extends PropertyKey, TLengthField extends LengthField<TFields>, TOptions extends VariableLengthBufferLikeFieldOptions<TFields, TLengthField>, TTypeScriptType = TType[
|
|
19
|
+
<TName extends PropertyKey, TTypeScriptType = TType["TTypeScriptType"]>(name: TName, options: FixedLengthBufferLikeFieldOptions, typeScriptType?: TTypeScriptType): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, FixedLengthBufferLikeFieldDefinition<TType, FixedLengthBufferLikeFieldOptions, TTypeScriptType>>;
|
|
20
|
+
<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
21
|
}
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export declare class Struct<TFields extends object =
|
|
22
|
+
export type StructPostDeserialized<TFields, TPostDeserialized> = (this: TFields, object: TFields) => TPostDeserialized;
|
|
23
|
+
export type StructDeserializedResult<TFields extends object, TExtra extends object, TPostDeserialized> = TPostDeserialized extends undefined ? Overwrite<TExtra, TFields> : TPostDeserialized;
|
|
24
|
+
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>> {
|
|
25
25
|
readonly TFields: TFields;
|
|
26
26
|
readonly TOmitInitKey: TOmitInitKey;
|
|
27
27
|
readonly TExtra: TExtra;
|
|
@@ -44,45 +44,45 @@ export declare class Struct<TFields extends object = {}, TOmitInitKey extends Pr
|
|
|
44
44
|
/**
|
|
45
45
|
* Merges (flats) another `Struct`'s fields and extra fields into this one.
|
|
46
46
|
*/
|
|
47
|
-
fields<TOther extends Struct<any, any, any, any>>(other: TOther): Struct<TFields & TOther[
|
|
47
|
+
fields<TOther extends Struct<any, any, any, any>>(other: TOther): Struct<TFields & TOther["TFields"], TOmitInitKey | TOther["TOmitInitKey"], TExtra & TOther["TExtra"], TPostDeserialized>;
|
|
48
48
|
private number;
|
|
49
49
|
/**
|
|
50
50
|
* Appends an `int8` field to the `Struct`
|
|
51
51
|
*/
|
|
52
|
-
int8<TName extends PropertyKey, TTypeScriptType =
|
|
52
|
+
int8<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
53
53
|
/**
|
|
54
54
|
* Appends an `uint8` field to the `Struct`
|
|
55
55
|
*/
|
|
56
|
-
uint8<TName extends PropertyKey, TTypeScriptType =
|
|
56
|
+
uint8<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
57
57
|
/**
|
|
58
58
|
* Appends an `int16` field to the `Struct`
|
|
59
59
|
*/
|
|
60
|
-
int16<TName extends PropertyKey, TTypeScriptType =
|
|
60
|
+
int16<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
61
61
|
/**
|
|
62
62
|
* Appends an `uint16` field to the `Struct`
|
|
63
63
|
*/
|
|
64
|
-
uint16<TName extends PropertyKey, TTypeScriptType =
|
|
64
|
+
uint16<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
65
65
|
/**
|
|
66
66
|
* Appends an `int32` field to the `Struct`
|
|
67
67
|
*/
|
|
68
|
-
int32<TName extends PropertyKey, TTypeScriptType =
|
|
68
|
+
int32<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
69
69
|
/**
|
|
70
70
|
* Appends an `uint32` field to the `Struct`
|
|
71
71
|
*/
|
|
72
|
-
uint32<TName extends PropertyKey, TTypeScriptType =
|
|
72
|
+
uint32<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
73
73
|
private bigint;
|
|
74
74
|
/**
|
|
75
75
|
* Appends an `int64` field to the `Struct`
|
|
76
76
|
*
|
|
77
77
|
* Requires native `BigInt` support
|
|
78
78
|
*/
|
|
79
|
-
int64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType[
|
|
79
|
+
int64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType["TTypeScriptType"]>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
80
80
|
/**
|
|
81
81
|
* Appends an `uint64` field to the `Struct`
|
|
82
82
|
*
|
|
83
83
|
* Requires native `BigInt` support
|
|
84
84
|
*/
|
|
85
|
-
uint64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType[
|
|
85
|
+
uint64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType["TTypeScriptType"]>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
86
86
|
private arrayBufferLike;
|
|
87
87
|
uint8Array: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, Uint8ArrayBufferFieldSubType>;
|
|
88
88
|
string: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, StringBufferFieldSubType>;
|
package/esm/struct.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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,6 @@
|
|
|
1
|
-
import { StructDefaultOptions, StructValue,
|
|
1
|
+
import { STRUCT_VALUE_SYMBOL, StructDefaultOptions, StructValue, } from "./basic/index.js";
|
|
2
2
|
import { SyncPromise } from "./sync-promise.js";
|
|
3
|
-
import { BigIntFieldDefinition, BigIntFieldType, FixedLengthBufferLikeFieldDefinition, NumberFieldDefinition, NumberFieldType, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition } from
|
|
3
|
+
import { BigIntFieldDefinition, BigIntFieldType, FixedLengthBufferLikeFieldDefinition, NumberFieldDefinition, NumberFieldType, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition, } from "./types/index.js";
|
|
4
4
|
export class Struct {
|
|
5
5
|
TFields;
|
|
6
6
|
TOmitInitKey;
|
|
@@ -12,7 +12,9 @@ export class Struct {
|
|
|
12
12
|
/**
|
|
13
13
|
* Gets the static size (exclude fields that can change size at runtime)
|
|
14
14
|
*/
|
|
15
|
-
get size() {
|
|
15
|
+
get size() {
|
|
16
|
+
return this._size;
|
|
17
|
+
}
|
|
16
18
|
_fields = [];
|
|
17
19
|
_extra = {};
|
|
18
20
|
_postDeserialized;
|
|
@@ -104,7 +106,7 @@ export class Struct {
|
|
|
104
106
|
return this.bigint(name, BigIntFieldType.Uint64, typeScriptType);
|
|
105
107
|
}
|
|
106
108
|
arrayBufferLike = (name, type, options) => {
|
|
107
|
-
if (
|
|
109
|
+
if ("length" in options) {
|
|
108
110
|
return this.field(name, new FixedLengthBufferLikeFieldDefinition(type, options));
|
|
109
111
|
}
|
|
110
112
|
else {
|
|
@@ -141,7 +143,7 @@ export class Struct {
|
|
|
141
143
|
for (const [name, definition] of this._fields) {
|
|
142
144
|
promise = promise
|
|
143
145
|
.then(() => definition.deserialize(this.options, stream, structValue))
|
|
144
|
-
.then(fieldValue => {
|
|
146
|
+
.then((fieldValue) => {
|
|
145
147
|
structValue.set(name, fieldValue);
|
|
146
148
|
});
|
|
147
149
|
}
|
|
@@ -187,10 +189,10 @@ export class Struct {
|
|
|
187
189
|
fieldsInfo.push({ fieldValue, size });
|
|
188
190
|
structSize += size;
|
|
189
191
|
}
|
|
190
|
-
let outputType =
|
|
192
|
+
let outputType = "number";
|
|
191
193
|
if (!output) {
|
|
192
194
|
output = new Uint8Array(structSize);
|
|
193
|
-
outputType =
|
|
195
|
+
outputType = "Uint8Array";
|
|
194
196
|
}
|
|
195
197
|
const dataView = new DataView(output.buffer, output.byteOffset, output.byteLength);
|
|
196
198
|
let offset = 0;
|
|
@@ -198,7 +200,7 @@ export class Struct {
|
|
|
198
200
|
fieldValue.serialize(dataView, offset);
|
|
199
201
|
offset += size;
|
|
200
202
|
}
|
|
201
|
-
if (outputType ===
|
|
203
|
+
if (outputType === "number") {
|
|
202
204
|
return structSize;
|
|
203
205
|
}
|
|
204
206
|
else {
|
package/esm/struct.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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"}
|
package/esm/sync-promise.js
CHANGED
|
@@ -3,9 +3,9 @@ export const SyncPromise = {
|
|
|
3
3
|
return new RejectedSyncPromise(reason);
|
|
4
4
|
},
|
|
5
5
|
resolve(value) {
|
|
6
|
-
if (typeof value ===
|
|
6
|
+
if (typeof value === "object" &&
|
|
7
7
|
value !== null &&
|
|
8
|
-
typeof value.then ===
|
|
8
|
+
typeof value.then === "function") {
|
|
9
9
|
if (value instanceof PendingSyncPromise ||
|
|
10
10
|
value instanceof ResolvedSyncPromise ||
|
|
11
11
|
value instanceof RejectedSyncPromise) {
|
|
@@ -24,7 +24,7 @@ export const SyncPromise = {
|
|
|
24
24
|
catch (e) {
|
|
25
25
|
return SyncPromise.reject(e);
|
|
26
26
|
}
|
|
27
|
-
}
|
|
27
|
+
},
|
|
28
28
|
};
|
|
29
29
|
class PendingSyncPromise {
|
|
30
30
|
promise;
|
|
@@ -43,7 +43,7 @@ class ResolvedSyncPromise {
|
|
|
43
43
|
constructor(value) {
|
|
44
44
|
this.value = value;
|
|
45
45
|
}
|
|
46
|
-
then(onfulfilled
|
|
46
|
+
then(onfulfilled) {
|
|
47
47
|
if (!onfulfilled) {
|
|
48
48
|
return this;
|
|
49
49
|
}
|
package/esm/sync-promise.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-promise.js","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"
|
|
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"}
|
package/esm/types/bigint.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { StructFieldDefinition, StructFieldValue,
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { StructFieldDefinition, StructFieldValue, type StructAsyncDeserializeStream, type StructDeserializeStream, type StructOptions, type StructValue } from "../basic/index.js";
|
|
2
|
+
type DataViewBigInt64Getter = (dataView: DataView, byteOffset: number, littleEndian: boolean | undefined) => bigint;
|
|
3
|
+
type DataViewBigInt64Setter = (dataView: DataView, byteOffset: number, value: bigint, littleEndian: boolean | undefined) => void;
|
|
4
4
|
export declare class BigIntFieldType {
|
|
5
5
|
readonly TTypeScriptType: bigint;
|
|
6
6
|
readonly size: number;
|
|
@@ -12,7 +12,7 @@ export declare class BigIntFieldType {
|
|
|
12
12
|
}
|
|
13
13
|
export declare class BigIntFieldDefinition<TType extends BigIntFieldType = BigIntFieldType, TTypeScriptType = TType["TTypeScriptType"]> extends StructFieldDefinition<void, TTypeScriptType> {
|
|
14
14
|
readonly type: TType;
|
|
15
|
-
constructor(type: TType,
|
|
15
|
+
constructor(type: TType, typescriptType?: TTypeScriptType);
|
|
16
16
|
getSize(): number;
|
|
17
17
|
create(options: Readonly<StructOptions>, struct: StructValue, value: TTypeScriptType): BigIntFieldValue<this>;
|
|
18
18
|
deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): BigIntFieldValue<this>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,WAAW,EACnB,MAAM,mBAAmB,CAAC;AAI3B,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"}
|
package/esm/types/bigint.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getBigInt64, getBigUint64, setBigInt64, setBigUint64 } from
|
|
2
|
-
import { StructFieldDefinition, StructFieldValue } from "../basic/index.js";
|
|
1
|
+
import { getBigInt64, getBigUint64, setBigInt64, setBigUint64, } from "@yume-chan/dataview-bigint-polyfill/esm/fallback.js";
|
|
2
|
+
import { StructFieldDefinition, StructFieldValue, } from "../basic/index.js";
|
|
3
3
|
import { SyncPromise } from "../sync-promise.js";
|
|
4
4
|
export class BigIntFieldType {
|
|
5
5
|
TTypeScriptType;
|
|
@@ -16,7 +16,8 @@ export class BigIntFieldType {
|
|
|
16
16
|
}
|
|
17
17
|
export class BigIntFieldDefinition extends StructFieldDefinition {
|
|
18
18
|
type;
|
|
19
|
-
constructor(type,
|
|
19
|
+
constructor(type, typescriptType) {
|
|
20
|
+
void typescriptType;
|
|
20
21
|
super();
|
|
21
22
|
this.type = type;
|
|
22
23
|
}
|
|
@@ -27,11 +28,10 @@ export class BigIntFieldDefinition extends StructFieldDefinition {
|
|
|
27
28
|
return new BigIntFieldValue(this, options, struct, value);
|
|
28
29
|
}
|
|
29
30
|
deserialize(options, stream, struct) {
|
|
30
|
-
return SyncPromise
|
|
31
|
-
.try(() => {
|
|
31
|
+
return SyncPromise.try(() => {
|
|
32
32
|
return stream.read(this.getSize());
|
|
33
33
|
})
|
|
34
|
-
.then(array => {
|
|
34
|
+
.then((array) => {
|
|
35
35
|
const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
|
|
36
36
|
const value = this.type.getter(view, 0, options.littleEndian);
|
|
37
37
|
return this.create(options, struct, value);
|
package/esm/types/bigint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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;AAE7D,OAAO,EACH,qBAAqB,EACrB,gBAAgB,GAKnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgBjD,MAAM,OAAO,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;;AAGN,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,4 +1,4 @@
|
|
|
1
|
-
import { StructFieldDefinition, StructFieldValue,
|
|
1
|
+
import { StructFieldDefinition, StructFieldValue, type StructAsyncDeserializeStream, type StructDeserializeStream, type StructOptions, type StructValue } from "../../basic/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Base class for all types that
|
|
4
4
|
* can be converted from an `Uint8Array` when deserialized,
|
|
@@ -51,14 +51,14 @@ export declare abstract class BufferLikeFieldDefinition<TType extends BufferFiel
|
|
|
51
51
|
/**
|
|
52
52
|
* When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
|
|
53
53
|
*/
|
|
54
|
-
create(options: Readonly<StructOptions>, struct: StructValue, value: TType[
|
|
54
|
+
create(options: Readonly<StructOptions>, struct: StructValue, value: TType["TTypeScriptType"], array?: Uint8Array): BufferLikeFieldValue<this>;
|
|
55
55
|
deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): BufferLikeFieldValue<this>;
|
|
56
56
|
deserialize(options: Readonly<StructOptions>, stream: StructAsyncDeserializeStream, struct: StructValue): Promise<BufferLikeFieldValue<this>>;
|
|
57
57
|
}
|
|
58
58
|
export declare class BufferLikeFieldValue<TDefinition extends BufferLikeFieldDefinition<BufferFieldSubType<unknown, unknown>, any, any>> extends StructFieldValue<TDefinition> {
|
|
59
59
|
protected array: Uint8Array | undefined;
|
|
60
|
-
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition[
|
|
61
|
-
set(value: TDefinition[
|
|
60
|
+
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition["TValue"], array?: Uint8Array);
|
|
61
|
+
set(value: TDefinition["TValue"]): void;
|
|
62
62
|
serialize(dataView: DataView, offset: number): void;
|
|
63
63
|
}
|
|
64
64
|
//# sourceMappingURL=base.d.ts.map
|