@yume-chan/struct 0.0.9 → 0.0.13
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 +65 -0
- package/CHANGELOG.md +39 -0
- package/LICENSE +21 -21
- package/README.md +769 -709
- package/esm/basic/definition.d.ts +44 -0
- package/esm/basic/definition.d.ts.map +1 -0
- package/esm/basic/definition.js +13 -9
- package/esm/basic/definition.js.map +1 -1
- package/esm/basic/field-value.d.ts +38 -0
- package/esm/basic/field-value.d.ts.map +1 -0
- package/esm/basic/field-value.js +13 -7
- package/esm/basic/field-value.js.map +1 -1
- package/esm/basic/index.d.ts +6 -0
- package/esm/basic/index.d.ts.map +1 -0
- package/esm/basic/index.js +5 -4
- package/esm/basic/index.js.map +1 -1
- package/esm/basic/options.d.ts +10 -0
- package/esm/basic/options.d.ts.map +1 -0
- package/esm/basic/{context.js → options.js} +1 -1
- package/esm/basic/options.js.map +1 -0
- package/esm/basic/stream.d.ts +19 -0
- package/esm/basic/stream.d.ts.map +1 -0
- package/esm/basic/stream.js +2 -0
- package/esm/basic/stream.js.map +1 -0
- package/{dts → esm}/basic/struct-value.d.ts +3 -3
- package/esm/basic/struct-value.d.ts.map +1 -0
- package/esm/basic/struct-value.js +7 -15
- package/esm/basic/struct-value.js.map +1 -1
- package/esm/index.d.ts +14 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +5 -5
- package/esm/index.js.map +1 -1
- package/{dts → esm}/struct.d.ts +25 -22
- package/esm/struct.d.ts.map +1 -0
- package/esm/struct.js +75 -52
- package/esm/struct.js.map +1 -1
- package/esm/syncbird.d.ts +65 -0
- package/esm/syncbird.d.ts.map +1 -0
- package/esm/syncbird.js +38 -0
- package/esm/syncbird.js.map +1 -0
- package/esm/types/bigint.d.ts +25 -0
- package/esm/types/bigint.d.ts.map +1 -0
- package/esm/types/bigint.js +45 -0
- package/esm/types/bigint.js.map +1 -0
- package/esm/types/buffer/base.d.ts +63 -0
- package/esm/types/buffer/base.d.ts.map +1 -0
- package/esm/types/buffer/base.js +100 -0
- package/esm/types/buffer/base.js.map +1 -0
- package/esm/types/buffer/fixed-length.d.ts +8 -0
- package/esm/types/buffer/fixed-length.d.ts.map +1 -0
- package/esm/types/buffer/fixed-length.js +8 -0
- package/esm/types/buffer/fixed-length.js.map +1 -0
- package/esm/types/buffer/index.d.ts +4 -0
- package/esm/types/buffer/index.d.ts.map +1 -0
- package/esm/types/buffer/index.js +4 -0
- package/esm/types/buffer/index.js.map +1 -0
- package/esm/types/buffer/variable-length.d.ts +43 -0
- package/esm/types/buffer/variable-length.d.ts.map +1 -0
- package/esm/types/buffer/variable-length.js +76 -0
- package/esm/types/buffer/variable-length.js.map +1 -0
- package/esm/types/index.d.ts +4 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/index.js +3 -4
- package/esm/types/index.js.map +1 -1
- package/esm/types/number.d.ts +32 -0
- package/esm/types/number.d.ts.map +1 -0
- package/esm/types/number.js +26 -18
- package/esm/types/number.js.map +1 -1
- package/{dts → esm}/utils.d.ts +3 -2
- package/{dts → esm}/utils.d.ts.map +1 -1
- package/esm/utils.js +16 -0
- package/esm/utils.js.map +1 -1
- package/package.json +46 -49
- package/src/basic/definition.ts +70 -69
- package/src/basic/field-value.ts +67 -73
- package/src/basic/index.ts +5 -4
- package/src/basic/options.ts +19 -0
- package/src/basic/stream.ts +19 -0
- package/src/basic/struct-value.ts +39 -45
- package/src/index.ts +17 -5
- package/src/struct.ts +609 -575
- package/src/syncbird.ts +131 -0
- package/src/types/bigint.ts +102 -0
- package/src/types/buffer/base.ts +176 -0
- package/src/types/buffer/fixed-length.ts +17 -0
- package/src/types/buffer/index.ts +3 -0
- package/src/types/buffer/variable-length.ts +156 -0
- package/src/types/index.ts +3 -4
- package/src/types/number.ts +115 -100
- package/src/utils.ts +70 -51
- package/cjs/basic/context.js +0 -7
- package/cjs/basic/context.js.map +0 -1
- package/cjs/basic/definition.js +0 -25
- package/cjs/basic/definition.js.map +0 -1
- package/cjs/basic/field-value.js +0 -40
- package/cjs/basic/field-value.js.map +0 -1
- package/cjs/basic/index.js +0 -8
- package/cjs/basic/index.js.map +0 -1
- package/cjs/basic/struct-value.js +0 -46
- package/cjs/basic/struct-value.js.map +0 -1
- package/cjs/index.js +0 -11
- package/cjs/index.js.map +0 -1
- package/cjs/struct.js +0 -177
- package/cjs/struct.js.map +0 -1
- package/cjs/types/array-buffer.js +0 -118
- package/cjs/types/array-buffer.js.map +0 -1
- package/cjs/types/fixed-length-array-buffer.js +0 -12
- package/cjs/types/fixed-length-array-buffer.js.map +0 -1
- package/cjs/types/index.js +0 -8
- package/cjs/types/index.js.map +0 -1
- package/cjs/types/number.js +0 -52
- package/cjs/types/number.js.map +0 -1
- package/cjs/types/variable-length-array-buffer.js +0 -77
- package/cjs/types/variable-length-array-buffer.js.map +0 -1
- package/cjs/utils.js +0 -11
- package/cjs/utils.js.map +0 -1
- package/dts/basic/context.d.ts +0 -36
- package/dts/basic/context.d.ts.map +0 -1
- package/dts/basic/definition.d.ts +0 -48
- package/dts/basic/definition.d.ts.map +0 -1
- package/dts/basic/field-value.d.ts +0 -40
- package/dts/basic/field-value.d.ts.map +0 -1
- package/dts/basic/index.d.ts +0 -5
- package/dts/basic/index.d.ts.map +0 -1
- package/dts/basic/struct-value.d.ts.map +0 -1
- package/dts/index.d.ts +0 -6
- package/dts/index.d.ts.map +0 -1
- package/dts/struct.d.ts.map +0 -1
- package/dts/types/array-buffer.d.ts +0 -70
- package/dts/types/array-buffer.d.ts.map +0 -1
- package/dts/types/fixed-length-array-buffer.d.ts +0 -8
- package/dts/types/fixed-length-array-buffer.d.ts.map +0 -1
- package/dts/types/index.d.ts +0 -5
- package/dts/types/index.d.ts.map +0 -1
- package/dts/types/number.d.ts +0 -33
- package/dts/types/number.d.ts.map +0 -1
- package/dts/types/variable-length-array-buffer.d.ts +0 -32
- package/dts/types/variable-length-array-buffer.d.ts.map +0 -1
- package/esm/basic/context.js.map +0 -1
- package/esm/types/array-buffer.js +0 -109
- package/esm/types/array-buffer.js.map +0 -1
- package/esm/types/fixed-length-array-buffer.js +0 -8
- package/esm/types/fixed-length-array-buffer.js.map +0 -1
- package/esm/types/variable-length-array-buffer.js +0 -71
- package/esm/types/variable-length-array-buffer.js.map +0 -1
- package/src/basic/context.ts +0 -42
- package/src/types/array-buffer.ts +0 -184
- package/src/types/fixed-length-array-buffer.ts +0 -17
- package/src/types/variable-length-array-buffer.ts +0 -145
- package/tsconfig.cjs.json +0 -11
- package/tsconfig.esm.json +0 -15
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { StructAsyncDeserializeStream, StructDeserializeStream } from "./stream.js";
|
|
2
|
+
import type { StructFieldValue } from "./field-value.js";
|
|
3
|
+
import type { StructValue } from "./struct-value.js";
|
|
4
|
+
import type { StructOptions } from "./options.js";
|
|
5
|
+
/**
|
|
6
|
+
* A field definition defines how to deserialize a field.
|
|
7
|
+
*
|
|
8
|
+
* @template TOptions TypeScript type of this definition's `options`.
|
|
9
|
+
* @template TValue TypeScript type of this field.
|
|
10
|
+
* @template TOmitInitKey Optionally remove some fields from the init type. Should be a union of string literal types.
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class StructFieldDefinition<TOptions = void, TValue = unknown, TOmitInitKey extends PropertyKey = never> {
|
|
13
|
+
/**
|
|
14
|
+
* When `T` is a type initiated `StructFieldDefinition`,
|
|
15
|
+
* use `T['TValue']` to retrieve its `TValue` type parameter.
|
|
16
|
+
*/
|
|
17
|
+
readonly TValue: TValue;
|
|
18
|
+
/**
|
|
19
|
+
* When `T` is a type initiated `StructFieldDefinition`,
|
|
20
|
+
* use `T['TOmitInitKey']` to retrieve its `TOmitInitKey` type parameter.
|
|
21
|
+
*/
|
|
22
|
+
readonly TOmitInitKey: TOmitInitKey;
|
|
23
|
+
readonly options: TOptions;
|
|
24
|
+
constructor(options: TOptions);
|
|
25
|
+
/**
|
|
26
|
+
* When implemented in derived classes, returns the size (or minimal size if it's dynamic) of this field.
|
|
27
|
+
*
|
|
28
|
+
* Actual size can be retrieved from `StructFieldValue#getSize`
|
|
29
|
+
*/
|
|
30
|
+
abstract getSize(): number;
|
|
31
|
+
/**
|
|
32
|
+
* When implemented in derived classes, creates a `StructFieldValue` from a given `value`.
|
|
33
|
+
*/
|
|
34
|
+
abstract create(options: Readonly<StructOptions>, struct: StructValue, value: TValue): StructFieldValue<this>;
|
|
35
|
+
/**
|
|
36
|
+
* When implemented in derived classes,It must be synchronous (returns a value) or asynchronous (returns a `Promise`) depending
|
|
37
|
+
* on the type of `stream`. reads and creates a `StructFieldValue` from `stream`.
|
|
38
|
+
*
|
|
39
|
+
* `Syncbird` can be used to make the implementation easier.
|
|
40
|
+
*/
|
|
41
|
+
abstract deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): StructFieldValue<this>;
|
|
42
|
+
abstract deserialize(options: Readonly<StructOptions>, stream: StructAsyncDeserializeStream, struct: StructValue): Promise<StructFieldValue<this>>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;;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,MAAM,EAAE,WAAW,EACnB,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,MAAM,EAAE,WAAW,GACpB,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"}
|
package/esm/basic/definition.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
|
+
// cspell: ignore Syncbird
|
|
1
2
|
/**
|
|
2
|
-
* A field definition
|
|
3
|
-
*
|
|
4
|
-
* `Struct` record fields in a list of `StructFieldDefinition`s.
|
|
5
|
-
*
|
|
6
|
-
* When `Struct#create` or `Struct#deserialize` are called, each field's definition
|
|
7
|
-
* crates its own type of `StructFieldValue` to manage the field value in that `Struct` instance.
|
|
8
|
-
*
|
|
9
|
-
* One `StructFieldDefinition` can represents multiple similar types, just returns the corresponding
|
|
10
|
-
* `StructFieldValue` when `createValue` was called.
|
|
3
|
+
* A field definition defines how to deserialize a field.
|
|
11
4
|
*
|
|
12
5
|
* @template TOptions TypeScript type of this definition's `options`.
|
|
13
6
|
* @template TValue TypeScript type of this field.
|
|
14
7
|
* @template TOmitInitKey Optionally remove some fields from the init type. Should be a union of string literal types.
|
|
15
8
|
*/
|
|
16
9
|
export class StructFieldDefinition {
|
|
10
|
+
/**
|
|
11
|
+
* When `T` is a type initiated `StructFieldDefinition`,
|
|
12
|
+
* use `T['TValue']` to retrieve its `TValue` type parameter.
|
|
13
|
+
*/
|
|
14
|
+
TValue;
|
|
15
|
+
/**
|
|
16
|
+
* When `T` is a type initiated `StructFieldDefinition`,
|
|
17
|
+
* use `T['TOmitInitKey']` to retrieve its `TOmitInitKey` type parameter.
|
|
18
|
+
*/
|
|
19
|
+
TOmitInitKey;
|
|
20
|
+
options;
|
|
17
21
|
constructor(options) {
|
|
18
22
|
this.options = options;
|
|
19
23
|
}
|
|
@@ -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":"AAAA,0BAA0B;AAO1B;;;;;;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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { StructFieldDefinition } from "./definition.js";
|
|
2
|
+
import type { StructOptions } from "./options.js";
|
|
3
|
+
import type { StructValue } from "./struct-value.js";
|
|
4
|
+
/**
|
|
5
|
+
* A field value defines how to serialize a field.
|
|
6
|
+
*
|
|
7
|
+
* It may contains extra metadata about the value which are essential or
|
|
8
|
+
* helpful for the serialization process.
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class StructFieldValue<TDefinition extends StructFieldDefinition<any, any, any> = StructFieldDefinition<any, any, any>> {
|
|
11
|
+
/** Gets the definition associated with this runtime value */
|
|
12
|
+
readonly definition: TDefinition;
|
|
13
|
+
/** Gets the options of the associated `Struct` */
|
|
14
|
+
readonly options: Readonly<StructOptions>;
|
|
15
|
+
/** Gets the associated `Struct` instance */
|
|
16
|
+
readonly struct: StructValue;
|
|
17
|
+
protected value: TDefinition['TValue'];
|
|
18
|
+
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition['TValue']);
|
|
19
|
+
/**
|
|
20
|
+
* Gets size of this field. By default, it returns its `definition`'s size.
|
|
21
|
+
*
|
|
22
|
+
* When overridden in derived classes, can have custom logic to calculate the actual size.
|
|
23
|
+
*/
|
|
24
|
+
getSize(): number;
|
|
25
|
+
/**
|
|
26
|
+
* When implemented in derived classes, reads current field's value.
|
|
27
|
+
*/
|
|
28
|
+
get(): TDefinition['TValue'];
|
|
29
|
+
/**
|
|
30
|
+
* When implemented in derived classes, updates current field's value.
|
|
31
|
+
*/
|
|
32
|
+
set(value: TDefinition['TValue']): void;
|
|
33
|
+
/**
|
|
34
|
+
* When implemented in derived classes, serializes this field into `dataView` at `offset`
|
|
35
|
+
*/
|
|
36
|
+
abstract serialize(dataView: DataView, offset: number): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=field-value.d.ts.map
|
|
@@ -0,0 +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,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAE/F,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,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,CACrB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACf,IAAI;CACV"}
|
package/esm/basic/field-value.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* A field value defines how to serialize a field.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* It may contains extra metadata about the value which are essential or
|
|
5
|
+
* helpful for the serialization process.
|
|
6
6
|
*/
|
|
7
7
|
export class StructFieldValue {
|
|
8
|
-
|
|
8
|
+
/** Gets the definition associated with this runtime value */
|
|
9
|
+
definition;
|
|
10
|
+
/** Gets the options of the associated `Struct` */
|
|
11
|
+
options;
|
|
12
|
+
/** Gets the associated `Struct` instance */
|
|
13
|
+
struct;
|
|
14
|
+
value;
|
|
15
|
+
constructor(definition, options, struct, value) {
|
|
9
16
|
this.definition = definition;
|
|
10
17
|
this.options = options;
|
|
11
|
-
this.context = context;
|
|
12
18
|
this.struct = struct;
|
|
13
19
|
this.value = value;
|
|
14
20
|
}
|
|
@@ -21,13 +27,13 @@ export class StructFieldValue {
|
|
|
21
27
|
return this.definition.getSize();
|
|
22
28
|
}
|
|
23
29
|
/**
|
|
24
|
-
* When implemented in derived classes,
|
|
30
|
+
* When implemented in derived classes, reads current field's value.
|
|
25
31
|
*/
|
|
26
32
|
get() {
|
|
27
33
|
return this.value;
|
|
28
34
|
}
|
|
29
35
|
/**
|
|
30
|
-
* When implemented in derived classes,
|
|
36
|
+
* When implemented in derived classes, updates current field's value.
|
|
31
37
|
*/
|
|
32
38
|
set(value) {
|
|
33
39
|
this.value = 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;IAGlC,6DAA6D;IAC7C,UAAU,CAAc;IAExC,kDAAkD;IAClC,OAAO,CAA0B;IAEjD,4CAA4C;IAC5B,MAAM,CAAc;IAE1B,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;CASJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"}
|
package/esm/basic/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
1
|
+
export * from './definition.js';
|
|
2
|
+
export * from './field-value.js';
|
|
3
|
+
export * from './options.js';
|
|
4
|
+
export * from './stream.js';
|
|
5
|
+
export * from './struct-value.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/esm/basic/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface StructOptions {
|
|
2
|
+
/**
|
|
3
|
+
* Whether all multi-byte fields in this struct are little-endian encoded.
|
|
4
|
+
*
|
|
5
|
+
* @default false
|
|
6
|
+
*/
|
|
7
|
+
littleEndian: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const StructDefaultOptions: Readonly<StructOptions>;
|
|
10
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/basic/options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;CAQzB;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAExD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/basic/options.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,oBAAoB,GAA4B;IACzD,YAAY,EAAE,KAAK;CACtB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface StructDeserializeStream {
|
|
2
|
+
/**
|
|
3
|
+
* Read data from the underlying data source.
|
|
4
|
+
*
|
|
5
|
+
* The stream must return exactly `length` bytes or data. If that's not possible
|
|
6
|
+
* (due to end of file or other error condition), it must throw an error.
|
|
7
|
+
*/
|
|
8
|
+
read(length: number): Uint8Array;
|
|
9
|
+
}
|
|
10
|
+
export interface StructAsyncDeserializeStream {
|
|
11
|
+
/**
|
|
12
|
+
* Read data from the underlying data source.
|
|
13
|
+
*
|
|
14
|
+
* The stream must return exactly `length` bytes or data. If that's not possible
|
|
15
|
+
* (due to end of file or other error condition), it must throw an error.
|
|
16
|
+
*/
|
|
17
|
+
read(length: number): Promise<Uint8Array>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/basic/stream.ts"],"names":[],"mappings":"AAAA,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,OAAO,CAAC,UAAU,CAAC,CAAC;CAC7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/basic/stream.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { StructFieldValue } from
|
|
1
|
+
import type { StructFieldValue } from "./field-value.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* A struct value is a map between keys in a struct and their field values.
|
|
4
4
|
*/
|
|
5
5
|
export declare class StructValue {
|
|
6
6
|
/**
|
|
@@ -15,7 +15,7 @@ export declare class StructValue {
|
|
|
15
15
|
*/
|
|
16
16
|
set(key: PropertyKey, value: StructFieldValue): void;
|
|
17
17
|
/**
|
|
18
|
-
* Gets
|
|
18
|
+
* Gets the `StructFieldValue` for `key`
|
|
19
19
|
*
|
|
20
20
|
* @param key The field name
|
|
21
21
|
*/
|
|
@@ -0,0 +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;;GAEG;AACH,qBAAa,WAAW;IAGpB;;OAEG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAM;IAEzD;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAW3D;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB;CAGjD"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* A struct value is a map between keys in a struct and their field values.
|
|
3
3
|
*/
|
|
4
4
|
export class StructValue {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
this.value = {};
|
|
11
|
-
}
|
|
5
|
+
/** @internal */ fieldValues = {};
|
|
6
|
+
/**
|
|
7
|
+
* Gets the result struct value object
|
|
8
|
+
*/
|
|
9
|
+
value = {};
|
|
12
10
|
/**
|
|
13
11
|
* Sets a `StructFieldValue` for `key`
|
|
14
12
|
*
|
|
@@ -16,9 +14,6 @@ export class StructValue {
|
|
|
16
14
|
* @param value The associated `StructFieldValue`
|
|
17
15
|
*/
|
|
18
16
|
set(key, value) {
|
|
19
|
-
// TODO: TypeScript 4.2 will allow this behavior
|
|
20
|
-
// https://github.com/microsoft/TypeScript/pull/26797
|
|
21
|
-
// @ts-expect-error Type 'symbol' cannot be used as an index type. ts(2538)
|
|
22
17
|
this.fieldValues[key] = value;
|
|
23
18
|
Object.defineProperty(this.value, key, {
|
|
24
19
|
configurable: true,
|
|
@@ -28,14 +23,11 @@ export class StructValue {
|
|
|
28
23
|
});
|
|
29
24
|
}
|
|
30
25
|
/**
|
|
31
|
-
* Gets
|
|
26
|
+
* Gets the `StructFieldValue` for `key`
|
|
32
27
|
*
|
|
33
28
|
* @param key The field name
|
|
34
29
|
*/
|
|
35
30
|
get(key) {
|
|
36
|
-
// TODO: TypeScript 4.2 will allow this behavior
|
|
37
|
-
// https://github.com/microsoft/TypeScript/pull/26797
|
|
38
|
-
// @ts-expect-error Type 'symbol' cannot be used as an index type. ts(2538)
|
|
39
31
|
return this.fieldValues[key];
|
|
40
32
|
}
|
|
41
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,gBAAgB,CAAU,WAAW,GAA0C,EAAE,CAAC;IAElF;;OAEG;IACa,KAAK,GAAiC,EAAE,CAAC;IAEzD;;;;;OAKG;IACI,GAAG,CAAC,GAAgB,EAAE,KAAuB;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAE9B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YACnC,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI;YAChB,GAAG,KAAK,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAgB;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,CAAC;IAClC,CAAC;CACJ"}
|
package/esm/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
interface ArrayBuffer {
|
|
3
|
+
__brand: never;
|
|
4
|
+
}
|
|
5
|
+
interface SharedArrayBuffer {
|
|
6
|
+
__brand: never;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export * from './basic/index.js';
|
|
10
|
+
export * from './struct.js';
|
|
11
|
+
export { Struct as default } from './struct.js';
|
|
12
|
+
export * from './types/index.js';
|
|
13
|
+
export * from './utils.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
package/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './basic';
|
|
2
|
-
export * from './struct';
|
|
3
|
-
export { Struct as default } from './struct';
|
|
4
|
-
export * from './types';
|
|
5
|
-
export * from './utils';
|
|
1
|
+
export * from './basic/index.js';
|
|
2
|
+
export * from './struct.js';
|
|
3
|
+
export { Struct as default } from './struct.js';
|
|
4
|
+
export * from './types/index.js';
|
|
5
|
+
export * from './utils.js';
|
|
6
6
|
//# 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":"
|
|
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"}
|
package/{dts → esm}/struct.d.ts
RENAMED
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { StructAsyncDeserializeStream, StructDeserializeStream, StructFieldDefinition, StructOptions } from './basic/index.js';
|
|
2
|
+
import { BigIntFieldType, BufferFieldSubType, FixedLengthBufferLikeFieldDefinition, NumberFieldType, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition, type FixedLengthBufferLikeFieldOptions, type LengthField, type VariableLengthBufferLikeFieldOptions } from './types/index.js';
|
|
3
|
+
import type { Evaluate, Identity, Overwrite } from "./utils.js";
|
|
4
4
|
export interface StructLike<TValue> {
|
|
5
|
-
deserialize(
|
|
5
|
+
deserialize(stream: StructDeserializeStream | StructAsyncDeserializeStream): Promise<TValue>;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Extract the value type of the specified `Struct`
|
|
9
|
-
*
|
|
10
|
-
* The lack of generic constraint is on purpose to allow `StructLike` types
|
|
11
9
|
*/
|
|
12
10
|
export declare type StructValueType<T extends StructLike<any>> = Awaited<ReturnType<T['deserialize']>>;
|
|
13
11
|
/**
|
|
14
|
-
* Create a new `Struct` type with `
|
|
12
|
+
* Create a new `Struct` type with `TDefinition` appended
|
|
15
13
|
*/
|
|
16
14
|
declare 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>>;
|
|
17
15
|
/**
|
|
18
|
-
* Similar to `ArrayBufferLikeFieldCreator`, but bind to
|
|
16
|
+
* Similar to `ArrayBufferLikeFieldCreator`, but bind to `TType`
|
|
19
17
|
*/
|
|
20
|
-
interface
|
|
21
|
-
<TName extends PropertyKey, TTypeScriptType = TType['TTypeScriptType']>(name: TName, options:
|
|
22
|
-
<TName extends PropertyKey, TLengthField extends LengthField<TFields>, TOptions extends
|
|
18
|
+
interface BoundArrayBufferLikeFieldDefinitionCreator<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TType extends BufferFieldSubType<any, any>> {
|
|
19
|
+
<TName extends PropertyKey, TTypeScriptType = TType['TTypeScriptType']>(name: TName, options: FixedLengthBufferLikeFieldOptions, typescriptType?: TTypeScriptType): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, FixedLengthBufferLikeFieldDefinition<TType, FixedLengthBufferLikeFieldOptions>>;
|
|
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>>;
|
|
23
21
|
}
|
|
24
22
|
export declare type StructPostDeserialized<TFields, TPostDeserialized> = (this: TFields, object: TFields) => TPostDeserialized;
|
|
25
23
|
export declare type StructDeserializedResult<TFields extends object, TExtra extends object, TPostDeserialized> = TPostDeserialized extends undefined ? Overwrite<TExtra, TFields> : TPostDeserialized;
|
|
@@ -72,31 +70,31 @@ export declare class Struct<TFields extends object = {}, TOmitInitKey extends Pr
|
|
|
72
70
|
* Appends an `uint32` field to the `Struct`
|
|
73
71
|
*/
|
|
74
72
|
uint32<TName extends PropertyKey, TTypeScriptType = (typeof NumberFieldType)['Uint32']['TTypeScriptType']>(name: TName, typescriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
73
|
+
private bigint;
|
|
75
74
|
/**
|
|
76
75
|
* Appends an `int64` field to the `Struct`
|
|
77
76
|
*
|
|
78
77
|
* Requires native `BigInt` support
|
|
79
78
|
*/
|
|
80
|
-
int64<TName extends PropertyKey, TTypeScriptType =
|
|
79
|
+
int64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType['TTypeScriptType']>(name: TName, _typescriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
81
80
|
/**
|
|
82
81
|
* Appends an `uint64` field to the `Struct`
|
|
83
82
|
*
|
|
84
83
|
* Requires native `BigInt` support
|
|
85
84
|
*/
|
|
86
|
-
uint64<TName extends PropertyKey, TTypeScriptType =
|
|
85
|
+
uint64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType['TTypeScriptType']>(name: TName, _typescriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
87
86
|
private arrayBufferLike;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
string: ArrayBufferTypeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, StringFieldType>;
|
|
87
|
+
uint8Array: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, Uint8ArrayBufferFieldSubType>;
|
|
88
|
+
string: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, StringBufferFieldSubType>;
|
|
91
89
|
/**
|
|
92
|
-
* Adds some extra
|
|
90
|
+
* Adds some extra properties into every `Struct` value.
|
|
93
91
|
*
|
|
94
|
-
* Extra
|
|
92
|
+
* Extra properties will not affect serialize or deserialize process.
|
|
95
93
|
*
|
|
96
|
-
* Multiple calls to `extra` will merge all
|
|
94
|
+
* Multiple calls to `extra` will merge all properties together.
|
|
97
95
|
*
|
|
98
96
|
* @param value
|
|
99
|
-
* An object containing
|
|
97
|
+
* An object containing properties to be added to the result value. Accessors and methods are also allowed.
|
|
100
98
|
*/
|
|
101
99
|
extra<T extends Record<Exclude<keyof T, Exclude<keyof T, keyof TFields>>, never>>(value: T & ThisType<Overwrite<Overwrite<TExtra, T>, TFields>>): Struct<TFields, TOmitInitKey, Overwrite<TExtra, T>, TPostDeserialized>;
|
|
102
100
|
/**
|
|
@@ -120,8 +118,13 @@ export declare class Struct<TFields extends object = {}, TOmitInitKey extends Pr
|
|
|
120
118
|
* will `deserialize` to return that object instead.
|
|
121
119
|
*/
|
|
122
120
|
postDeserialize<TPostSerialize>(callback?: StructPostDeserialized<TFields, TPostSerialize>): Struct<TFields, TOmitInitKey, TExtra, TPostSerialize>;
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
/**
|
|
122
|
+
* Deserialize a struct value from `stream`.
|
|
123
|
+
*/
|
|
124
|
+
deserialize(stream: StructDeserializeStream): StructDeserializedResult<TFields, TExtra, TPostDeserialized>;
|
|
125
|
+
deserialize(stream: StructAsyncDeserializeStream): Promise<StructDeserializedResult<TFields, TExtra, TPostDeserialized>>;
|
|
126
|
+
serialize(init: Evaluate<Omit<TFields, TOmitInitKey>>): Uint8Array;
|
|
127
|
+
serialize(init: Evaluate<Omit<TFields, TOmitInitKey>>, output: Uint8Array): number;
|
|
125
128
|
}
|
|
126
129
|
export {};
|
|
127
130
|
//# sourceMappingURL=struct.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
|