@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
package/cjs/struct.js
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Struct = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const basic_1 = require("./basic");
|
|
6
|
-
const types_1 = require("./types");
|
|
7
|
-
class Struct {
|
|
8
|
-
constructor(options) {
|
|
9
|
-
this._size = 0;
|
|
10
|
-
this._fields = [];
|
|
11
|
-
this._extra = {};
|
|
12
|
-
this.arrayBufferLike = (name, type, options) => {
|
|
13
|
-
if ('length' in options) {
|
|
14
|
-
return this.field(name, new types_1.FixedLengthArrayBufferLikeFieldDefinition(type, options));
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return this.field(name, new types_1.VariableLengthArrayBufferLikeFieldDefinition(type, options));
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
this.arrayBuffer = (name, options) => {
|
|
21
|
-
return this.arrayBufferLike(name, types_1.ArrayBufferFieldType.instance, options);
|
|
22
|
-
};
|
|
23
|
-
this.uint8ClampedArray = (name, options) => {
|
|
24
|
-
return this.arrayBufferLike(name, types_1.Uint8ClampedArrayFieldType.instance, options);
|
|
25
|
-
};
|
|
26
|
-
this.string = (name, options) => {
|
|
27
|
-
return this.arrayBufferLike(name, types_1.StringFieldType.instance, options);
|
|
28
|
-
};
|
|
29
|
-
this.options = Object.assign(Object.assign({}, basic_1.StructDefaultOptions), options);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Gets the static size (exclude fields that can change size at runtime)
|
|
33
|
-
*/
|
|
34
|
-
get size() { return this._size; }
|
|
35
|
-
/**
|
|
36
|
-
* Appends a `StructFieldDefinition` to the `Struct
|
|
37
|
-
*/
|
|
38
|
-
field(name, definition) {
|
|
39
|
-
for (const field of this._fields) {
|
|
40
|
-
if (field[0] === name) {
|
|
41
|
-
throw new Error(`This struct already have a field with name '${name}'`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
this._fields.push([name, definition]);
|
|
45
|
-
const size = definition.getSize();
|
|
46
|
-
this._size += size;
|
|
47
|
-
// Force cast `this` to another type
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Merges (flats) another `Struct`'s fields and extra fields into this one.
|
|
52
|
-
*/
|
|
53
|
-
fields(other) {
|
|
54
|
-
for (const field of other._fields) {
|
|
55
|
-
this._fields.push(field);
|
|
56
|
-
}
|
|
57
|
-
this._size += other._size;
|
|
58
|
-
Object.assign(this._extra, other._extra);
|
|
59
|
-
return this;
|
|
60
|
-
}
|
|
61
|
-
number(name, type, _typescriptType) {
|
|
62
|
-
return this.field(name, new types_1.NumberFieldDefinition(type, _typescriptType));
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Appends an `int8` field to the `Struct`
|
|
66
|
-
*/
|
|
67
|
-
int8(name, _typescriptType) {
|
|
68
|
-
return this.number(name, types_1.NumberFieldType.Int8, _typescriptType);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Appends an `uint8` field to the `Struct`
|
|
72
|
-
*/
|
|
73
|
-
uint8(name, _typescriptType) {
|
|
74
|
-
return this.number(name, types_1.NumberFieldType.Uint8, _typescriptType);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Appends an `int16` field to the `Struct`
|
|
78
|
-
*/
|
|
79
|
-
int16(name, _typescriptType) {
|
|
80
|
-
return this.number(name, types_1.NumberFieldType.Int16, _typescriptType);
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Appends an `uint16` field to the `Struct`
|
|
84
|
-
*/
|
|
85
|
-
uint16(name, _typescriptType) {
|
|
86
|
-
return this.number(name, types_1.NumberFieldType.Uint16, _typescriptType);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Appends an `int32` field to the `Struct`
|
|
90
|
-
*/
|
|
91
|
-
int32(name, _typescriptType) {
|
|
92
|
-
return this.number(name, types_1.NumberFieldType.Int32, _typescriptType);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Appends an `uint32` field to the `Struct`
|
|
96
|
-
*/
|
|
97
|
-
uint32(name, typescriptType) {
|
|
98
|
-
return this.number(name, types_1.NumberFieldType.Uint32, typescriptType);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Appends an `int64` field to the `Struct`
|
|
102
|
-
*
|
|
103
|
-
* Requires native `BigInt` support
|
|
104
|
-
*/
|
|
105
|
-
int64(name, _typescriptType) {
|
|
106
|
-
return this.number(name, types_1.NumberFieldType.Int64, _typescriptType);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Appends an `uint64` field to the `Struct`
|
|
110
|
-
*
|
|
111
|
-
* Requires native `BigInt` support
|
|
112
|
-
*/
|
|
113
|
-
uint64(name, _typescriptType) {
|
|
114
|
-
return this.number(name, types_1.NumberFieldType.Uint64, _typescriptType);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Adds some extra fields into every Struct value.
|
|
118
|
-
*
|
|
119
|
-
* Extra fields will not affect serialize or deserialize process.
|
|
120
|
-
*
|
|
121
|
-
* Multiple calls to `extra` will merge all values together.
|
|
122
|
-
*
|
|
123
|
-
* @param value
|
|
124
|
-
* An object containing anything you want to add to the result object. Accessors and methods are also allowed.
|
|
125
|
-
*/
|
|
126
|
-
extra(value) {
|
|
127
|
-
Object.assign(this._extra, Object.getOwnPropertyDescriptors(value));
|
|
128
|
-
return this;
|
|
129
|
-
}
|
|
130
|
-
postDeserialize(callback) {
|
|
131
|
-
this._postDeserialized = callback;
|
|
132
|
-
return this;
|
|
133
|
-
}
|
|
134
|
-
deserialize(context) {
|
|
135
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
136
|
-
const value = new basic_1.StructValue();
|
|
137
|
-
Object.defineProperties(value.value, this._extra);
|
|
138
|
-
for (const [name, definition] of this._fields) {
|
|
139
|
-
const fieldValue = yield definition.deserialize(this.options, context, value);
|
|
140
|
-
value.set(name, fieldValue);
|
|
141
|
-
}
|
|
142
|
-
if (this._postDeserialized) {
|
|
143
|
-
const object = value.value;
|
|
144
|
-
const result = this._postDeserialized.call(object, object);
|
|
145
|
-
if (result) {
|
|
146
|
-
return result;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return value.value;
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
serialize(init, context) {
|
|
153
|
-
const value = new basic_1.StructValue();
|
|
154
|
-
for (const [name, definition] of this._fields) {
|
|
155
|
-
const fieldValue = definition.create(this.options, context, value, init[name]);
|
|
156
|
-
value.set(name, fieldValue);
|
|
157
|
-
}
|
|
158
|
-
let structSize = 0;
|
|
159
|
-
const fieldsInfo = [];
|
|
160
|
-
for (const [name] of this._fields) {
|
|
161
|
-
const fieldValue = value.get(name);
|
|
162
|
-
const size = fieldValue.getSize();
|
|
163
|
-
fieldsInfo.push({ fieldValue, size });
|
|
164
|
-
structSize += size;
|
|
165
|
-
}
|
|
166
|
-
const buffer = new ArrayBuffer(structSize);
|
|
167
|
-
const dataView = new DataView(buffer);
|
|
168
|
-
let offset = 0;
|
|
169
|
-
for (const { fieldValue, size } of fieldsInfo) {
|
|
170
|
-
fieldValue.serialize(dataView, offset, context);
|
|
171
|
-
offset += size;
|
|
172
|
-
}
|
|
173
|
-
return buffer;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
exports.Struct = Struct;
|
|
177
|
-
//# sourceMappingURL=struct.js.map
|
package/cjs/struct.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ArrayBufferLikeFieldValue = exports.ArrayBufferLikeFieldDefinition = exports.StringFieldType = exports.Uint8ClampedArrayFieldType = exports.ArrayBufferFieldType = exports.ArrayBufferLikeFieldType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const basic_1 = require("../basic");
|
|
6
|
-
/**
|
|
7
|
-
* Base class for all types that
|
|
8
|
-
* can be converted from an ArrayBuffer when deserialized,
|
|
9
|
-
* and need to be converted to an ArrayBuffer when serializing
|
|
10
|
-
*
|
|
11
|
-
* @template TValue The actual TypeScript type of this type
|
|
12
|
-
* @template TTypeScriptType Optional another type (should be compatible with `TType`)
|
|
13
|
-
* specified by user when creating field definitions.
|
|
14
|
-
*/
|
|
15
|
-
class ArrayBufferLikeFieldType {
|
|
16
|
-
}
|
|
17
|
-
exports.ArrayBufferLikeFieldType = ArrayBufferLikeFieldType;
|
|
18
|
-
/** An ArrayBufferLike type that's actually an `ArrayBuffer` */
|
|
19
|
-
class ArrayBufferFieldType extends ArrayBufferLikeFieldType {
|
|
20
|
-
constructor() {
|
|
21
|
-
super();
|
|
22
|
-
}
|
|
23
|
-
toArrayBuffer(value) {
|
|
24
|
-
return value;
|
|
25
|
-
}
|
|
26
|
-
fromArrayBuffer(arrayBuffer) {
|
|
27
|
-
return arrayBuffer;
|
|
28
|
-
}
|
|
29
|
-
getSize(value) {
|
|
30
|
-
return value.byteLength;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.ArrayBufferFieldType = ArrayBufferFieldType;
|
|
34
|
-
ArrayBufferFieldType.instance = new ArrayBufferFieldType();
|
|
35
|
-
/** Am ArrayBufferLike type that converts between `ArrayBuffer` and `Uint8ClampedArray` */
|
|
36
|
-
class Uint8ClampedArrayFieldType extends ArrayBufferLikeFieldType {
|
|
37
|
-
constructor() {
|
|
38
|
-
super();
|
|
39
|
-
}
|
|
40
|
-
toArrayBuffer(value) {
|
|
41
|
-
return value.buffer;
|
|
42
|
-
}
|
|
43
|
-
fromArrayBuffer(arrayBuffer) {
|
|
44
|
-
return new Uint8ClampedArray(arrayBuffer);
|
|
45
|
-
}
|
|
46
|
-
getSize(value) {
|
|
47
|
-
return value.byteLength;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.Uint8ClampedArrayFieldType = Uint8ClampedArrayFieldType;
|
|
51
|
-
Uint8ClampedArrayFieldType.instance = new Uint8ClampedArrayFieldType();
|
|
52
|
-
/** Am ArrayBufferLike type that converts between `ArrayBuffer` and `string` */
|
|
53
|
-
class StringFieldType extends ArrayBufferLikeFieldType {
|
|
54
|
-
toArrayBuffer(value, context) {
|
|
55
|
-
return context.encodeUtf8(value);
|
|
56
|
-
}
|
|
57
|
-
fromArrayBuffer(arrayBuffer, context) {
|
|
58
|
-
return context.decodeUtf8(arrayBuffer);
|
|
59
|
-
}
|
|
60
|
-
getSize() {
|
|
61
|
-
// Return `-1`, so `ArrayBufferLikeFieldDefinition` will
|
|
62
|
-
// convert this `value` into an `ArrayBuffer` (and cache the result),
|
|
63
|
-
// Then get the size from that `ArrayBuffer`
|
|
64
|
-
return -1;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
exports.StringFieldType = StringFieldType;
|
|
68
|
-
StringFieldType.instance = new StringFieldType();
|
|
69
|
-
const EmptyArrayBuffer = new ArrayBuffer(0);
|
|
70
|
-
class ArrayBufferLikeFieldDefinition extends basic_1.StructFieldDefinition {
|
|
71
|
-
constructor(type, options) {
|
|
72
|
-
super(options);
|
|
73
|
-
this.type = type;
|
|
74
|
-
}
|
|
75
|
-
getDeserializeSize(struct) {
|
|
76
|
-
return this.getSize();
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
|
|
80
|
-
*/
|
|
81
|
-
create(options, context, struct, value, arrayBuffer) {
|
|
82
|
-
return new ArrayBufferLikeFieldValue(this, options, context, struct, value, arrayBuffer);
|
|
83
|
-
}
|
|
84
|
-
deserialize(options, context, struct) {
|
|
85
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
const size = this.getDeserializeSize(struct);
|
|
87
|
-
let arrayBuffer;
|
|
88
|
-
if (size === 0) {
|
|
89
|
-
arrayBuffer = EmptyArrayBuffer;
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
arrayBuffer = yield context.read(size);
|
|
93
|
-
}
|
|
94
|
-
const value = this.type.fromArrayBuffer(arrayBuffer, context);
|
|
95
|
-
return this.create(options, context, struct, value, arrayBuffer);
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
exports.ArrayBufferLikeFieldDefinition = ArrayBufferLikeFieldDefinition;
|
|
100
|
-
class ArrayBufferLikeFieldValue extends basic_1.StructFieldValue {
|
|
101
|
-
constructor(definition, options, context, struct, value, arrayBuffer) {
|
|
102
|
-
super(definition, options, context, struct, value);
|
|
103
|
-
this.arrayBuffer = arrayBuffer;
|
|
104
|
-
}
|
|
105
|
-
set(value) {
|
|
106
|
-
super.set(value);
|
|
107
|
-
this.arrayBuffer = undefined;
|
|
108
|
-
}
|
|
109
|
-
serialize(dataView, offset, context) {
|
|
110
|
-
if (!this.arrayBuffer) {
|
|
111
|
-
this.arrayBuffer = this.definition.type.toArrayBuffer(this.value, context);
|
|
112
|
-
}
|
|
113
|
-
new Uint8Array(dataView.buffer)
|
|
114
|
-
.set(new Uint8Array(this.arrayBuffer), offset);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
exports.ArrayBufferLikeFieldValue = ArrayBufferLikeFieldValue;
|
|
118
|
-
//# sourceMappingURL=array-buffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"array-buffer.js","sourceRoot":"","sources":["../../src/types/array-buffer.ts"],"names":[],"mappings":";;;;AAAA,oCAAyJ;AAEzJ;;;;;;;;GAQG;AACH,MAAsB,wBAAwB;CAsB7C;AAtBD,4DAsBC;AAED,+DAA+D;AAC/D,MAAa,oBAAqB,SAAQ,wBAAqC;IAG3E;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAEM,aAAa,CAAC,KAAkB;QACnC,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,eAAe,CAAC,WAAwB;QAC3C,OAAO,WAAW,CAAC;IACvB,CAAC;IAEM,OAAO,CAAC,KAAkB;QAC7B,OAAO,KAAK,CAAC,UAAU,CAAC;IAC5B,CAAC;;AAjBL,oDAkBC;AAjB0B,6BAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAmBjE,0FAA0F;AAC1F,MAAa,0BACT,SAAQ,wBAA8D;IAGtE;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAEM,aAAa,CAAC,KAAwB;QACzC,OAAO,KAAK,CAAC,MAAM,CAAC;IACxB,CAAC;IAEM,eAAe,CAAC,WAAwB;QAC3C,OAAO,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAEM,OAAO,CAAC,KAAwB;QACnC,OAAO,KAAK,CAAC,UAAU,CAAC;IAC5B,CAAC;;AAlBL,gEAmBC;AAjB0B,mCAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAC;AAmBvE,+EAA+E;AAC/E,MAAa,eACT,SAAQ,wBAAiD;IAGlD,aAAa,CAAC,KAAa,EAAE,OAAmC;QACnE,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEM,eAAe,CAAC,WAAwB,EAAE,OAAqC;QAClF,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO;QACV,wDAAwD;QACxD,qEAAqE;QACrE,4CAA4C;QAC5C,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;;AAjBL,0CAkBC;AAhB0B,wBAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AAkB5D,MAAM,gBAAgB,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAE5C,MAAsB,8BAIhB,SAAQ,6BAIT;IAGD,YAAmB,IAAW,EAAE,OAAiB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAES,kBAAkB,CAAC,MAAmB;QAC5C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,MAAM,CACT,OAAgC,EAChC,OAAmC,EACnC,MAAmB,EACnB,KAA+B,EAC/B,WAAyB;QAEzB,OAAO,IAAI,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7F,CAAC;IAEY,WAAW,CACpB,OAAgC,EAChC,OAAqC,EACrC,MAAmB;;YAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAE7C,IAAI,WAAwB,CAAC;YAC7B,IAAI,IAAI,KAAK,CAAC,EAAE;gBACZ,WAAW,GAAG,gBAAgB,CAAC;aAClC;iBAAM;gBACH,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1C;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACrE,CAAC;KAAA;CACJ;AAlDD,wEAkDC;AAED,MAAa,yBAEP,SAAQ,wBAA6B;IAGvC,YACI,UAAuB,EACvB,OAAgC,EAChC,OAAmC,EACnC,MAAmB,EACnB,KAA4B,EAC5B,WAAyB;QAEzB,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAEM,GAAG,CAAC,KAA4B;QACnC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACjC,CAAC;IAEM,SAAS,CAAC,QAAkB,EAAE,MAAc,EAAE,OAAmC;QACpF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC9E;QAED,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;aAC1B,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACJ;AA9BD,8DA8BC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FixedLengthArrayBufferLikeFieldDefinition = void 0;
|
|
4
|
-
const array_buffer_1 = require("./array-buffer");
|
|
5
|
-
class FixedLengthArrayBufferLikeFieldDefinition extends array_buffer_1.ArrayBufferLikeFieldDefinition {
|
|
6
|
-
getSize() {
|
|
7
|
-
return this.options.length;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.FixedLengthArrayBufferLikeFieldDefinition = FixedLengthArrayBufferLikeFieldDefinition;
|
|
11
|
-
;
|
|
12
|
-
//# sourceMappingURL=fixed-length-array-buffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-length-array-buffer.js","sourceRoot":"","sources":["../../src/types/fixed-length-array-buffer.ts"],"names":[],"mappings":";;;AAAA,iDAA0F;AAM1F,MAAa,yCAGP,SAAQ,6CAGT;IACM,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACJ;AAVD,8FAUC;AAAA,CAAC"}
|
package/cjs/types/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./array-buffer"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./fixed-length-array-buffer"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./number"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./variable-length-array-buffer"), exports);
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/cjs/types/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,sEAA4C;AAC5C,mDAAyB;AACzB,yEAA+C"}
|
package/cjs/types/number.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NumberFieldValue = exports.NumberFieldDefinition = exports.NumberFieldType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const basic_1 = require("../basic");
|
|
6
|
-
class NumberFieldType {
|
|
7
|
-
constructor(size, dataViewGetter, dataViewSetter) {
|
|
8
|
-
this.size = size;
|
|
9
|
-
this.dataViewGetter = dataViewGetter;
|
|
10
|
-
this.dataViewSetter = dataViewSetter;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
exports.NumberFieldType = NumberFieldType;
|
|
14
|
-
NumberFieldType.Int8 = new NumberFieldType(1, 'getInt8', 'setInt8');
|
|
15
|
-
NumberFieldType.Uint8 = new NumberFieldType(1, 'getUint8', 'setUint8');
|
|
16
|
-
NumberFieldType.Int16 = new NumberFieldType(2, 'getInt16', 'setInt16');
|
|
17
|
-
NumberFieldType.Uint16 = new NumberFieldType(2, 'getUint16', 'setUint16');
|
|
18
|
-
NumberFieldType.Int32 = new NumberFieldType(4, 'getInt32', 'setInt32');
|
|
19
|
-
NumberFieldType.Uint32 = new NumberFieldType(4, 'getUint32', 'setUint32');
|
|
20
|
-
NumberFieldType.Int64 = new NumberFieldType(8, 'getBigInt64', 'setBigInt64');
|
|
21
|
-
NumberFieldType.Uint64 = new NumberFieldType(8, 'getBigUint64', 'setBigUint64');
|
|
22
|
-
class NumberFieldDefinition extends basic_1.StructFieldDefinition {
|
|
23
|
-
constructor(type, _typescriptType) {
|
|
24
|
-
super();
|
|
25
|
-
this.type = type;
|
|
26
|
-
}
|
|
27
|
-
getSize() {
|
|
28
|
-
return this.type.size;
|
|
29
|
-
}
|
|
30
|
-
create(options, context, struct, value) {
|
|
31
|
-
return new NumberFieldValue(this, options, context, struct, value);
|
|
32
|
-
}
|
|
33
|
-
deserialize(options, context, struct) {
|
|
34
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const buffer = yield context.read(this.getSize());
|
|
36
|
-
const view = new DataView(buffer);
|
|
37
|
-
const value = view[this.type.dataViewGetter](0, options.littleEndian);
|
|
38
|
-
return this.create(options, context, struct, value);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.NumberFieldDefinition = NumberFieldDefinition;
|
|
43
|
-
class NumberFieldValue extends basic_1.StructFieldValue {
|
|
44
|
-
serialize(dataView, offset) {
|
|
45
|
-
// `setBigInt64` requires a `bigint` while others require `number`
|
|
46
|
-
// So `dataView[DataViewSetters]` requires `bigint & number`
|
|
47
|
-
// and that is, `never`
|
|
48
|
-
dataView[this.definition.type.dataViewSetter](offset, this.value, this.options.littleEndian);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
exports.NumberFieldValue = NumberFieldValue;
|
|
52
|
-
//# sourceMappingURL=number.js.map
|
package/cjs/types/number.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/types/number.ts"],"names":[],"mappings":";;;;AAAA,oCAAyJ;AAQzJ,MAAa,eAAe;IASxB,YACI,IAAY,EACZ,cAA+B,EAC/B,cAA+B;QAE/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;;AAjBL,0CAkCC;AAf0B,oBAAI,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAE5D,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE/D,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE/D,sBAAM,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAElE,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE/D,sBAAM,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAElE,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AAErE,sBAAM,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;AAGnG,MAAa,qBAGP,SAAQ,6BAGT;IAGD,YAAmB,IAAW,EAAE,eAAiC;QAC7D,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,OAAmC,EACnC,MAAmB,EACnB,KAAsB;QAEtB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAEY,WAAW,CACpB,OAAgC,EAChC,OAAqC,EACrC,MAAmB;;YAEnB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CACxC,CAAC,EACD,OAAO,CAAC,YAAY,CAChB,CAAC;YACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;KAAA;CACJ;AAxCD,sDAwCC;AAED,MAAa,gBAEP,SAAQ,wBAA6B;IAChC,SAAS,CAAC,QAAkB,EAAE,MAAc;QAC/C,kEAAkE;QAClE,4DAA4D;QAC5D,uBAAuB;QACtB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAS,CAClD,MAAM,EACN,IAAI,CAAC,KAAM,EACX,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5B,CAAC;IACN,CAAC;CACJ;AAbD,4CAaC"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VariableLengthArrayBufferLikeFieldLengthValue = exports.VariableLengthArrayBufferLikeStructFieldValue = exports.VariableLengthArrayBufferLikeFieldDefinition = void 0;
|
|
4
|
-
const basic_1 = require("../basic");
|
|
5
|
-
const array_buffer_1 = require("./array-buffer");
|
|
6
|
-
class VariableLengthArrayBufferLikeFieldDefinition extends array_buffer_1.ArrayBufferLikeFieldDefinition {
|
|
7
|
-
getSize() {
|
|
8
|
-
return 0;
|
|
9
|
-
}
|
|
10
|
-
getDeserializeSize(struct) {
|
|
11
|
-
var _a;
|
|
12
|
-
let value = struct.value[this.options.lengthField];
|
|
13
|
-
if (typeof value === 'string') {
|
|
14
|
-
value = Number.parseInt(value, (_a = this.options.lengthFieldBase) !== null && _a !== void 0 ? _a : 10);
|
|
15
|
-
}
|
|
16
|
-
return value;
|
|
17
|
-
}
|
|
18
|
-
create(options, context, struct, value, arrayBuffer) {
|
|
19
|
-
return new VariableLengthArrayBufferLikeStructFieldValue(this, options, context, struct, value, arrayBuffer);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.VariableLengthArrayBufferLikeFieldDefinition = VariableLengthArrayBufferLikeFieldDefinition;
|
|
23
|
-
class VariableLengthArrayBufferLikeStructFieldValue extends array_buffer_1.ArrayBufferLikeFieldValue {
|
|
24
|
-
constructor(definition, options, context, struct, value, arrayBuffer) {
|
|
25
|
-
super(definition, options, context, struct, value, arrayBuffer);
|
|
26
|
-
if (arrayBuffer) {
|
|
27
|
-
this.length = arrayBuffer.byteLength;
|
|
28
|
-
}
|
|
29
|
-
// Patch the associated length field.
|
|
30
|
-
const lengthField = this.definition.options.lengthField;
|
|
31
|
-
const originalValue = struct.get(lengthField);
|
|
32
|
-
this.lengthFieldValue = new VariableLengthArrayBufferLikeFieldLengthValue(originalValue, this);
|
|
33
|
-
struct.set(lengthField, this.lengthFieldValue);
|
|
34
|
-
}
|
|
35
|
-
getSize() {
|
|
36
|
-
if (this.length === undefined) {
|
|
37
|
-
this.length = this.definition.type.getSize(this.value);
|
|
38
|
-
if (this.length === -1) {
|
|
39
|
-
this.arrayBuffer = this.definition.type.toArrayBuffer(this.value, this.context);
|
|
40
|
-
this.length = this.arrayBuffer.byteLength;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return this.length;
|
|
44
|
-
}
|
|
45
|
-
set(value) {
|
|
46
|
-
super.set(value);
|
|
47
|
-
this.arrayBuffer = undefined;
|
|
48
|
-
this.length = undefined;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
exports.VariableLengthArrayBufferLikeStructFieldValue = VariableLengthArrayBufferLikeStructFieldValue;
|
|
52
|
-
class VariableLengthArrayBufferLikeFieldLengthValue extends basic_1.StructFieldValue {
|
|
53
|
-
constructor(originalField, arrayBufferField) {
|
|
54
|
-
super(originalField.definition, originalField.options, originalField.context, originalField.struct, 0);
|
|
55
|
-
this.originalField = originalField;
|
|
56
|
-
this.arrayBufferField = arrayBufferField;
|
|
57
|
-
}
|
|
58
|
-
getSize() {
|
|
59
|
-
return this.originalField.getSize();
|
|
60
|
-
}
|
|
61
|
-
get() {
|
|
62
|
-
var _a;
|
|
63
|
-
let value = this.arrayBufferField.getSize();
|
|
64
|
-
const originalValue = this.originalField.get();
|
|
65
|
-
if (typeof originalValue === 'string') {
|
|
66
|
-
value = value.toString((_a = this.arrayBufferField.definition.options.lengthFieldBase) !== null && _a !== void 0 ? _a : 10);
|
|
67
|
-
}
|
|
68
|
-
return value;
|
|
69
|
-
}
|
|
70
|
-
set() { }
|
|
71
|
-
serialize(dataView, offset, context) {
|
|
72
|
-
this.originalField.set(this.get());
|
|
73
|
-
this.originalField.serialize(dataView, offset, context);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.VariableLengthArrayBufferLikeFieldLengthValue = VariableLengthArrayBufferLikeFieldLengthValue;
|
|
77
|
-
//# sourceMappingURL=variable-length-array-buffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"variable-length-array-buffer.js","sourceRoot":"","sources":["../../src/types/variable-length-array-buffer.ts"],"names":[],"mappings":"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"}
|
package/cjs/utils.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.placeholder = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Returns a (fake) value of the given type.
|
|
6
|
-
*/
|
|
7
|
-
function placeholder() {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
exports.placeholder = placeholder;
|
|
11
|
-
//# sourceMappingURL=utils.js.map
|
package/cjs/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AA6CA;;GAEG;AACH,SAAgB,WAAW;IACvB,OAAO,SAAyB,CAAC;AACrC,CAAC;AAFD,kCAEC"}
|
package/dts/basic/context.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { ValueOrPromise } from '../utils';
|
|
2
|
-
/**
|
|
3
|
-
* Context with enough methods to serialize a struct
|
|
4
|
-
*/
|
|
5
|
-
export interface StructSerializationContext {
|
|
6
|
-
/**
|
|
7
|
-
* Encode the specified string into an ArrayBuffer using UTF-8 encoding
|
|
8
|
-
*/
|
|
9
|
-
encodeUtf8(input: string): ArrayBuffer;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Context with enough methods to deserialize a struct
|
|
13
|
-
*/
|
|
14
|
-
export interface StructDeserializationContext extends StructSerializationContext {
|
|
15
|
-
/**
|
|
16
|
-
* Decode the specified `ArrayBuffer` using UTF-8 encoding
|
|
17
|
-
*/
|
|
18
|
-
decodeUtf8(buffer: ArrayBuffer): string;
|
|
19
|
-
/**
|
|
20
|
-
* Read data from the underlying data source.
|
|
21
|
-
*
|
|
22
|
-
* Context should return exactly `length` bytes or data. If that's not possible
|
|
23
|
-
* (due to end of file or other error condition), it should throw an error.
|
|
24
|
-
*/
|
|
25
|
-
read(length: number): ValueOrPromise<ArrayBuffer>;
|
|
26
|
-
}
|
|
27
|
-
export interface StructOptions {
|
|
28
|
-
/**
|
|
29
|
-
* Whether all multi-byte fields in this struct are little-endian encoded.
|
|
30
|
-
*
|
|
31
|
-
* Default to `false`
|
|
32
|
-
*/
|
|
33
|
-
littleEndian: boolean;
|
|
34
|
-
}
|
|
35
|
-
export declare const StructDefaultOptions: Readonly<StructOptions>;
|
|
36
|
-
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/basic/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,0BAA0B;IAC5E;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IAExC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAExD,CAAC"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { ValueOrPromise } from '../utils';
|
|
2
|
-
import type { StructDeserializationContext, StructOptions, StructSerializationContext } from './context';
|
|
3
|
-
import type { StructFieldValue } from './field-value';
|
|
4
|
-
import type { StructValue } from './struct-value';
|
|
5
|
-
/**
|
|
6
|
-
* A field definition is a bridge between its type and its runtime value.
|
|
7
|
-
*
|
|
8
|
-
* `Struct` record fields in a list of `StructFieldDefinition`s.
|
|
9
|
-
*
|
|
10
|
-
* When `Struct#create` or `Struct#deserialize` are called, each field's definition
|
|
11
|
-
* crates its own type of `StructFieldValue` to manage the field value in that `Struct` instance.
|
|
12
|
-
*
|
|
13
|
-
* One `StructFieldDefinition` can represents multiple similar types, just returns the corresponding
|
|
14
|
-
* `StructFieldValue` when `createValue` was called.
|
|
15
|
-
*
|
|
16
|
-
* @template TOptions TypeScript type of this definition's `options`.
|
|
17
|
-
* @template TValue TypeScript type of this field.
|
|
18
|
-
* @template TOmitInitKey Optionally remove some fields from the init type. Should be a union of string literal types.
|
|
19
|
-
*/
|
|
20
|
-
export declare abstract class StructFieldDefinition<TOptions = void, TValue = unknown, TOmitInitKey extends PropertyKey = never> {
|
|
21
|
-
/**
|
|
22
|
-
* When `T` is a type initiated `StructFieldDefinition`,
|
|
23
|
-
* use `T['TValue']` to retrieve its `TValue` type parameter.
|
|
24
|
-
*/
|
|
25
|
-
readonly TValue: TValue;
|
|
26
|
-
/**
|
|
27
|
-
* When `T` is a type initiated `StructFieldDefinition`,
|
|
28
|
-
* use `T['TOmitInitKey']` to retrieve its `TOmitInitKey` type parameter.
|
|
29
|
-
*/
|
|
30
|
-
readonly TOmitInitKey: TOmitInitKey;
|
|
31
|
-
readonly options: TOptions;
|
|
32
|
-
constructor(options: TOptions);
|
|
33
|
-
/**
|
|
34
|
-
* When implemented in derived classes, returns the size (or minimal size if it's dynamic) of this field.
|
|
35
|
-
*
|
|
36
|
-
* Actual size can be retrieved from `StructFieldValue#getSize`
|
|
37
|
-
*/
|
|
38
|
-
abstract getSize(): number;
|
|
39
|
-
/**
|
|
40
|
-
* When implemented in derived classes, creates a `StructFieldValue` from a given `value`.
|
|
41
|
-
*/
|
|
42
|
-
abstract create(options: Readonly<StructOptions>, context: StructSerializationContext, struct: StructValue, value: TValue): StructFieldValue<this>;
|
|
43
|
-
/**
|
|
44
|
-
* When implemented in derived classes, creates a `StructFieldValue` by parsing `context`.
|
|
45
|
-
*/
|
|
46
|
-
abstract deserialize(options: Readonly<StructOptions>, context: StructDeserializationContext, struct: StructValue): ValueOrPromise<StructFieldValue<this>>;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACzG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;;;;;;;;;GAcG;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,OAAO,EAAE,0BAA0B,EACnC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACd,gBAAgB,CAAC,IAAI,CAAC;IAEzB;;OAEG;aACa,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,OAAO,EAAE,4BAA4B,EACrC,MAAM,EAAE,WAAW,GACpB,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAC5C"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { StructOptions, StructSerializationContext } from './context';
|
|
2
|
-
import type { StructFieldDefinition } from './definition';
|
|
3
|
-
import type { StructValue } from './struct-value';
|
|
4
|
-
/**
|
|
5
|
-
* Field runtime value manages one field of one `Struct` instance.
|
|
6
|
-
*
|
|
7
|
-
* If one `StructFieldDefinition` needs to change other field's semantics
|
|
8
|
-
* It can override other fields' `StructFieldValue` in its own `StructFieldValue`'s constructor
|
|
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 serialization context of the associated `Struct` instance */
|
|
16
|
-
readonly context: StructSerializationContext;
|
|
17
|
-
/** Gets the associated `Struct` instance */
|
|
18
|
-
readonly struct: StructValue;
|
|
19
|
-
protected value: TDefinition['TValue'];
|
|
20
|
-
constructor(definition: TDefinition, options: Readonly<StructOptions>, context: StructSerializationContext, struct: StructValue, value: TDefinition['TValue']);
|
|
21
|
-
/**
|
|
22
|
-
* Gets size of this field. By default, it returns its `definition`'s size.
|
|
23
|
-
*
|
|
24
|
-
* When overridden in derived classes, can have custom logic to calculate the actual size.
|
|
25
|
-
*/
|
|
26
|
-
getSize(): number;
|
|
27
|
-
/**
|
|
28
|
-
* When implemented in derived classes, returns the current value of this field
|
|
29
|
-
*/
|
|
30
|
-
get(): TDefinition['TValue'];
|
|
31
|
-
/**
|
|
32
|
-
* When implemented in derived classes, update the current value of this field
|
|
33
|
-
*/
|
|
34
|
-
set(value: TDefinition['TValue']): void;
|
|
35
|
-
/**
|
|
36
|
-
* When implemented in derived classes, serializes this field into `dataView` at `offset`
|
|
37
|
-
*/
|
|
38
|
-
abstract serialize(dataView: DataView, offset: number, context: StructSerializationContext): void;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=field-value.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;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,yEAAyE;IACzE,SAAgB,OAAO,EAAE,0BAA0B,CAAC;IAEpD,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,OAAO,EAAE,0BAA0B,EACnC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC;IAShC;;;;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,EACd,OAAO,EAAE,0BAA0B,GACpC,IAAI;CACV"}
|
package/dts/basic/index.d.ts
DELETED
package/dts/basic/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|