@yume-chan/struct 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.json +23 -0
  2. package/CHANGELOG.md +16 -0
  3. package/LICENSE +21 -21
  4. package/README.md +720 -709
  5. package/dts/basic/context.d.ts +10 -18
  6. package/dts/basic/context.d.ts.map +1 -1
  7. package/dts/basic/definition.d.ts +4 -4
  8. package/dts/basic/definition.d.ts.map +1 -1
  9. package/dts/basic/field-value.d.ts +3 -5
  10. package/dts/basic/field-value.d.ts.map +1 -1
  11. package/dts/basic/struct-value.d.ts.map +1 -1
  12. package/dts/struct.d.ts +16 -17
  13. package/dts/struct.d.ts.map +1 -1
  14. package/dts/syncbird.d.ts +20 -0
  15. package/dts/syncbird.d.ts.map +1 -0
  16. package/dts/types/array-buffer.d.ts +13 -12
  17. package/dts/types/array-buffer.d.ts.map +1 -1
  18. package/dts/types/number.d.ts +4 -3
  19. package/dts/types/number.d.ts.map +1 -1
  20. package/dts/types/variable-length-array-buffer.d.ts +4 -4
  21. package/dts/types/variable-length-array-buffer.d.ts.map +1 -1
  22. package/dts/utils.d.ts +3 -2
  23. package/dts/utils.d.ts.map +1 -1
  24. package/esm/basic/context.js.map +1 -1
  25. package/esm/basic/definition.js.map +1 -1
  26. package/esm/basic/field-value.js +1 -2
  27. package/esm/basic/field-value.js.map +1 -1
  28. package/esm/basic/struct-value.js +0 -6
  29. package/esm/basic/struct-value.js.map +1 -1
  30. package/esm/struct.js +27 -17
  31. package/esm/struct.js.map +1 -1
  32. package/esm/syncbird.js +25 -0
  33. package/esm/syncbird.js.map +1 -0
  34. package/esm/types/array-buffer.js +21 -20
  35. package/esm/types/array-buffer.js.map +1 -1
  36. package/esm/types/number.js +9 -8
  37. package/esm/types/number.js.map +1 -1
  38. package/esm/types/variable-length-array-buffer.js +8 -8
  39. package/esm/types/variable-length-array-buffer.js.map +1 -1
  40. package/esm/utils.js +10 -0
  41. package/esm/utils.js.map +1 -1
  42. package/package.json +47 -50
  43. package/src/basic/context.ts +32 -42
  44. package/src/basic/definition.ts +72 -69
  45. package/src/basic/field-value.ts +67 -73
  46. package/src/basic/index.ts +4 -4
  47. package/src/basic/struct-value.ts +39 -45
  48. package/src/index.ts +5 -5
  49. package/src/struct.ts +595 -575
  50. package/src/syncbird.ts +53 -0
  51. package/src/types/array-buffer.ts +194 -184
  52. package/src/types/fixed-length-array-buffer.ts +17 -17
  53. package/src/types/index.ts +4 -4
  54. package/src/types/number.ts +114 -100
  55. package/src/types/variable-length-array-buffer.ts +142 -145
  56. package/src/utils.ts +62 -51
  57. package/cjs/basic/context.js +0 -7
  58. package/cjs/basic/context.js.map +0 -1
  59. package/cjs/basic/definition.js +0 -25
  60. package/cjs/basic/definition.js.map +0 -1
  61. package/cjs/basic/field-value.js +0 -40
  62. package/cjs/basic/field-value.js.map +0 -1
  63. package/cjs/basic/index.js +0 -8
  64. package/cjs/basic/index.js.map +0 -1
  65. package/cjs/basic/struct-value.js +0 -46
  66. package/cjs/basic/struct-value.js.map +0 -1
  67. package/cjs/index.js +0 -11
  68. package/cjs/index.js.map +0 -1
  69. package/cjs/struct.js +0 -177
  70. package/cjs/struct.js.map +0 -1
  71. package/cjs/types/array-buffer.js +0 -118
  72. package/cjs/types/array-buffer.js.map +0 -1
  73. package/cjs/types/fixed-length-array-buffer.js +0 -12
  74. package/cjs/types/fixed-length-array-buffer.js.map +0 -1
  75. package/cjs/types/index.js +0 -8
  76. package/cjs/types/index.js.map +0 -1
  77. package/cjs/types/number.js +0 -52
  78. package/cjs/types/number.js.map +0 -1
  79. package/cjs/types/variable-length-array-buffer.js +0 -77
  80. package/cjs/types/variable-length-array-buffer.js.map +0 -1
  81. package/cjs/utils.js +0 -11
  82. package/cjs/utils.js.map +0 -1
  83. package/tsconfig.cjs.json +0 -11
  84. package/tsconfig.esm.json +0 -15
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":";;;AAKA;;;;;;;;;;;;;;GAcG;AACH,MAAsB,qBAAqB;IAmBvC,YAAmB,OAAiB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CA2BJ;AAhDD,sDAgDC"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StructFieldValue = void 0;
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
- class StructFieldValue {
11
- constructor(definition, options, context, struct, value) {
12
- this.definition = definition;
13
- this.options = options;
14
- this.context = context;
15
- this.struct = struct;
16
- this.value = value;
17
- }
18
- /**
19
- * Gets size of this field. By default, it returns its `definition`'s size.
20
- *
21
- * When overridden in derived classes, can have custom logic to calculate the actual size.
22
- */
23
- getSize() {
24
- return this.definition.getSize();
25
- }
26
- /**
27
- * When implemented in derived classes, returns the current value of this field
28
- */
29
- get() {
30
- return this.value;
31
- }
32
- /**
33
- * When implemented in derived classes, update the current value of this field
34
- */
35
- set(value) {
36
- this.value = value;
37
- }
38
- }
39
- exports.StructFieldValue = StructFieldValue;
40
- //# sourceMappingURL=field-value.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":";;;AAIA;;;;;GAKG;AACH,MAAsB,gBAAgB;IAiBlC,YACI,UAAuB,EACvB,OAAgC,EAChC,OAAmC,EACnC,MAAmB,EACnB,KAA4B;QAE5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,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;CAUJ;AA9DD,4CA8DC"}
@@ -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("./context"), exports);
5
- tslib_1.__exportStar(require("./definition"), exports);
6
- tslib_1.__exportStar(require("./field-value"), exports);
7
- tslib_1.__exportStar(require("./struct-value"), exports);
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,wDAA8B;AAC9B,yDAA+B"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StructValue = void 0;
4
- /**
5
- * Manages the initialization process of a struct value
6
- */
7
- class StructValue {
8
- constructor() {
9
- /** @internal */ this.fieldValues = {};
10
- /**
11
- * Gets the result struct value object
12
- */
13
- this.value = {};
14
- }
15
- /**
16
- * Sets a `StructFieldValue` for `key`
17
- *
18
- * @param key The field name
19
- * @param value The associated `StructFieldValue`
20
- */
21
- set(key, value) {
22
- // TODO: TypeScript 4.2 will allow this behavior
23
- // https://github.com/microsoft/TypeScript/pull/26797
24
- // @ts-expect-error Type 'symbol' cannot be used as an index type. ts(2538)
25
- this.fieldValues[key] = value;
26
- Object.defineProperty(this.value, key, {
27
- configurable: true,
28
- enumerable: true,
29
- get() { return value.get(); },
30
- set(v) { value.set(v); },
31
- });
32
- }
33
- /**
34
- * Gets a previously `StructFieldValue` for `key`
35
- *
36
- * @param key The field name
37
- */
38
- get(key) {
39
- // TODO: TypeScript 4.2 will allow this behavior
40
- // https://github.com/microsoft/TypeScript/pull/26797
41
- // @ts-expect-error Type 'symbol' cannot be used as an index type. ts(2538)
42
- return this.fieldValues[key];
43
- }
44
- }
45
- exports.StructValue = StructValue;
46
- //# sourceMappingURL=struct-value.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAW;IAAxB;QACI,gBAAgB,CAAU,gBAAW,GAA0C,EAAE,CAAC;QAElF;;WAEG;QACa,UAAK,GAAiC,EAAE,CAAC;IAiC7D,CAAC;IA/BG;;;;;OAKG;IACI,GAAG,CAAC,GAAgB,EAAE,KAAuB;QAChD,gDAAgD;QAChD,qDAAqD;QACrD,2EAA2E;QAC3E,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,gDAAgD;QAChD,qDAAqD;QACrD,2EAA2E;QAC3E,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ;AAvCD,kCAuCC"}
package/cjs/index.js DELETED
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = void 0;
4
- const tslib_1 = require("tslib");
5
- tslib_1.__exportStar(require("./basic"), exports);
6
- tslib_1.__exportStar(require("./struct"), exports);
7
- var struct_1 = require("./struct");
8
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return struct_1.Struct; } });
9
- tslib_1.__exportStar(require("./types"), exports);
10
- tslib_1.__exportStar(require("./utils"), exports);
11
- //# sourceMappingURL=index.js.map
package/cjs/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,kDAAwB;AACxB,mDAAyB;AACzB,mCAA6C;AAApC,iGAAA,MAAM,OAAW;AAC1B,kDAAwB;AACxB,kDAAwB"}
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":"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"}
@@ -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"}
@@ -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
@@ -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"}
@@ -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
@@ -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/tsconfig.cjs.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "./tsconfig.esm.json",
3
- "compilerOptions": {
4
- "composite": false,
5
- "module": "CommonJS",
6
- "outDir": "cjs",
7
- "declaration": false,
8
- "declarationDir": null,
9
- "declarationMap": false
10
- }
11
- }