@yume-chan/struct 0.0.5 → 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 (121) hide show
  1. package/CHANGELOG.json +23 -0
  2. package/CHANGELOG.md +16 -0
  3. package/LICENSE +21 -21
  4. package/README.md +720 -643
  5. package/dts/basic/context.d.ts +10 -17
  6. package/dts/basic/context.d.ts.map +1 -1
  7. package/dts/basic/definition.d.ts +23 -23
  8. package/dts/basic/definition.d.ts.map +1 -1
  9. package/dts/basic/field-value.d.ts +38 -0
  10. package/dts/basic/field-value.d.ts.map +1 -0
  11. package/dts/basic/index.d.ts +2 -2
  12. package/dts/basic/index.d.ts.map +1 -1
  13. package/dts/basic/struct-value.d.ts +24 -0
  14. package/dts/basic/struct-value.d.ts.map +1 -0
  15. package/dts/index.d.ts +1 -0
  16. package/dts/index.d.ts.map +1 -1
  17. package/dts/struct.d.ts +44 -47
  18. package/dts/struct.d.ts.map +1 -1
  19. package/dts/syncbird.d.ts +20 -0
  20. package/dts/syncbird.d.ts.map +1 -0
  21. package/dts/types/array-buffer.d.ts +22 -20
  22. package/dts/types/array-buffer.d.ts.map +1 -1
  23. package/dts/types/fixed-length-array-buffer.d.ts +1 -3
  24. package/dts/types/fixed-length-array-buffer.d.ts.map +1 -1
  25. package/dts/types/index.d.ts +0 -1
  26. package/dts/types/index.d.ts.map +1 -1
  27. package/dts/types/number.d.ts +11 -10
  28. package/dts/types/number.d.ts.map +1 -1
  29. package/dts/types/variable-length-array-buffer.d.ts +21 -19
  30. package/dts/types/variable-length-array-buffer.d.ts.map +1 -1
  31. package/dts/{types/utils.d.ts → utils.d.ts} +3 -0
  32. package/dts/utils.d.ts.map +1 -0
  33. package/esm/basic/context.js +1 -1
  34. package/esm/basic/context.js.map +1 -1
  35. package/esm/basic/definition.js +9 -11
  36. package/esm/basic/definition.js.map +1 -1
  37. package/esm/basic/field-value.js +35 -0
  38. package/esm/basic/field-value.js.map +1 -0
  39. package/esm/basic/index.js +2 -2
  40. package/esm/basic/index.js.map +1 -1
  41. package/esm/basic/struct-value.js +36 -0
  42. package/esm/basic/struct-value.js.map +1 -0
  43. package/esm/index.js +1 -0
  44. package/esm/index.js.map +1 -1
  45. package/esm/struct.js +103 -176
  46. package/esm/struct.js.map +1 -1
  47. package/esm/syncbird.js +25 -0
  48. package/esm/syncbird.js.map +1 -0
  49. package/esm/types/array-buffer.js +83 -107
  50. package/esm/types/array-buffer.js.map +1 -1
  51. package/esm/types/fixed-length-array-buffer.js +5 -15
  52. package/esm/types/fixed-length-array-buffer.js.map +1 -1
  53. package/esm/types/index.js +0 -1
  54. package/esm/types/index.js.map +1 -1
  55. package/esm/types/number.js +35 -53
  56. package/esm/types/number.js.map +1 -1
  57. package/esm/types/variable-length-array-buffer.js +57 -68
  58. package/esm/types/variable-length-array-buffer.js.map +1 -1
  59. package/esm/utils.js +17 -0
  60. package/esm/utils.js.map +1 -0
  61. package/package.json +47 -50
  62. package/src/basic/context.ts +32 -40
  63. package/src/basic/definition.ts +72 -69
  64. package/src/basic/{runtime-value.ts → field-value.ts} +67 -72
  65. package/src/basic/index.ts +4 -4
  66. package/src/basic/struct-value.ts +39 -0
  67. package/src/index.ts +5 -4
  68. package/src/struct.ts +595 -579
  69. package/src/syncbird.ts +53 -0
  70. package/src/types/array-buffer.ts +194 -171
  71. package/src/types/fixed-length-array-buffer.ts +17 -27
  72. package/src/types/index.ts +4 -5
  73. package/src/types/number.ts +114 -101
  74. package/src/types/variable-length-array-buffer.ts +142 -121
  75. package/src/{types/utils.ts → utils.ts} +62 -47
  76. package/cjs/basic/context.js +0 -7
  77. package/cjs/basic/context.js.map +0 -1
  78. package/cjs/basic/definition.js +0 -26
  79. package/cjs/basic/definition.js.map +0 -1
  80. package/cjs/basic/index.js +0 -8
  81. package/cjs/basic/index.js.map +0 -1
  82. package/cjs/basic/runtime-object.js +0 -34
  83. package/cjs/basic/runtime-object.js.map +0 -1
  84. package/cjs/basic/runtime-value.js +0 -41
  85. package/cjs/basic/runtime-value.js.map +0 -1
  86. package/cjs/index.js +0 -10
  87. package/cjs/index.js.map +0 -1
  88. package/cjs/struct.js +0 -259
  89. package/cjs/struct.js.map +0 -1
  90. package/cjs/types/array-buffer.js +0 -137
  91. package/cjs/types/array-buffer.js.map +0 -1
  92. package/cjs/types/fixed-length-array-buffer.js +0 -21
  93. package/cjs/types/fixed-length-array-buffer.js.map +0 -1
  94. package/cjs/types/index.js +0 -9
  95. package/cjs/types/index.js.map +0 -1
  96. package/cjs/types/number.js +0 -68
  97. package/cjs/types/number.js.map +0 -1
  98. package/cjs/types/utils.js +0 -11
  99. package/cjs/types/utils.js.map +0 -1
  100. package/cjs/types/variable-length-array-buffer.js +0 -85
  101. package/cjs/types/variable-length-array-buffer.js.map +0 -1
  102. package/dts/basic/runtime-object.d.ts +0 -17
  103. package/dts/basic/runtime-object.d.ts.map +0 -1
  104. package/dts/basic/runtime-value.d.ts +0 -39
  105. package/dts/basic/runtime-value.d.ts.map +0 -1
  106. package/dts/types/utils.d.ts.map +0 -1
  107. package/esm/basic/runtime-object.js +0 -28
  108. package/esm/basic/runtime-object.js.map +0 -1
  109. package/esm/basic/runtime-value.js +0 -38
  110. package/esm/basic/runtime-value.js.map +0 -1
  111. package/esm/types/utils.js +0 -7
  112. package/esm/types/utils.js.map +0 -1
  113. package/src/basic/context.spec.ts +0 -9
  114. package/src/basic/definition.spec.ts +0 -26
  115. package/src/basic/runtime-object.spec.ts +0 -38
  116. package/src/basic/runtime-object.ts +0 -36
  117. package/src/basic/runtime-value.spec.ts +0 -71
  118. package/src/types/array-buffer.spec.ts +0 -88
  119. package/src/types/number.spec.ts +0 -262
  120. package/tsconfig.cjs.json +0 -11
  121. package/tsconfig.esm.json +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"array-buffer.js","sourceRoot":"","sources":["../../src/types/array-buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array-buffer.js","sourceRoot":"","sources":["../../src/types/array-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,qBAAqB,EAAE,gBAAgB,EAA8B,MAAM,UAAU,CAAC;AACtJ,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAkB,MAAM,UAAU,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,OAAgB,wBAAwB;CAsB7C;AAED,+DAA+D;AAC/D,MAAM,OAAO,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;;AAhBsB,6BAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAmBjE,0FAA0F;AAC1F,MAAM,OAAO,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;;AAhBsB,mCAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAC;AAmBvE,+EAA+E;AAC/E,MAAM,OAAO,eACT,SAAQ,wBAAiD;IAGlD,aAAa,CAAC,KAAa;QAC9B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEM,eAAe,CAAC,WAAwB;QAC3C,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAEM,OAAO;QACV,wDAAwD;QACxD,qEAAqE;QACrE,4CAA4C;QAC5C,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;;AAfsB,wBAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AAkB5D,MAAM,gBAAgB,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAE5C,MAAM,OAAgB,8BAIhB,SAAQ,qBAIT;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,MAAmB,EACnB,KAA+B,EAC/B,WAAyB;QAEzB,OAAO,IAAI,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC;IAYe,WAAW,CACvB,OAAgC,EAChC,MAA8D,EAC9D,MAAmB;QAEnB,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,IAAI,KAAK,CAAC,EAAE;gBACZ,OAAO,gBAAgB,CAAC;aAC3B;iBAAM;gBACH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5B;QACL,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACJ;AAED,MAAM,OAAO,yBAEP,SAAQ,gBAA6B;IAGvC,YACI,UAAuB,EACvB,OAAgC,EAChC,MAAmB,EACnB,KAA4B,EAC5B,WAAyB;QAEzB,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAEe,GAAG,CAAC,KAA4B;QAC5C,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACjC,CAAC;IAEM,SAAS,CAAC,QAAkB,EAAE,MAAc;QAC/C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrE;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"}
@@ -1,18 +1,8 @@
1
- import { __extends } from "tslib";
2
- import { ArrayBufferLikeFieldDefinition, ArrayBufferLikeFieldRuntimeValue } from './array-buffer';
3
- var FixedLengthArrayBufferLikeFieldDefinition = /** @class */ (function (_super) {
4
- __extends(FixedLengthArrayBufferLikeFieldDefinition, _super);
5
- function FixedLengthArrayBufferLikeFieldDefinition() {
6
- return _super !== null && _super.apply(this, arguments) || this;
7
- }
8
- FixedLengthArrayBufferLikeFieldDefinition.prototype.getSize = function () {
1
+ import { ArrayBufferLikeFieldDefinition } from './array-buffer';
2
+ export class FixedLengthArrayBufferLikeFieldDefinition extends ArrayBufferLikeFieldDefinition {
3
+ getSize() {
9
4
  return this.options.length;
10
- };
11
- FixedLengthArrayBufferLikeFieldDefinition.prototype.createValue = function (options, context, object, value) {
12
- return new ArrayBufferLikeFieldRuntimeValue(this, options, context, object, value);
13
- };
14
- return FixedLengthArrayBufferLikeFieldDefinition;
15
- }(ArrayBufferLikeFieldDefinition));
16
- export { FixedLengthArrayBufferLikeFieldDefinition };
5
+ }
6
+ }
17
7
  ;
18
8
  //# sourceMappingURL=fixed-length-array-buffer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixed-length-array-buffer.js","sourceRoot":"","sources":["../../src/types/fixed-length-array-buffer.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,8BAA8B,EAAE,gCAAgC,EAA4B,MAAM,gBAAgB,CAAC;AAM5H;IAGc,6DAGT;IANL;;IAmBA,CAAC;IAZU,2DAAO,GAAd;QACI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAEM,+DAAW,GAAlB,UACI,OAAgC,EAChC,OAAmC,EACnC,MAAW,EACX,KAAyB;QAEzB,OAAO,IAAI,gCAAgC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACvF,CAAC;IACL,gDAAC;AAAD,CAAC,AAnBD,CAGc,8BAA8B,GAgB3C;;AAAA,CAAC"}
1
+ {"version":3,"file":"fixed-length-array-buffer.js","sourceRoot":"","sources":["../../src/types/fixed-length-array-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAA4B,MAAM,gBAAgB,CAAC;AAM1F,MAAM,OAAO,yCAGP,SAAQ,8BAGT;IACM,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACJ;AAAA,CAAC"}
@@ -1,6 +1,5 @@
1
1
  export * from './array-buffer';
2
2
  export * from './fixed-length-array-buffer';
3
3
  export * from './number';
4
- export * from './utils';
5
4
  export * from './variable-length-array-buffer';
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,gCAAgC,CAAC"}
@@ -1,65 +1,47 @@
1
- import { __awaiter, __extends, __generator } from "tslib";
2
- import { FieldDefinition, FieldRuntimeValue } from '../basic';
3
- var NumberFieldType = /** @class */ (function () {
4
- function NumberFieldType(size, dataViewGetter, dataViewSetter) {
1
+ import { StructFieldDefinition, StructFieldValue } from '../basic';
2
+ import { Syncbird } from "../syncbird";
3
+ export class NumberFieldType {
4
+ constructor(size, dataViewGetter, dataViewSetter) {
5
5
  this.size = size;
6
6
  this.dataViewGetter = dataViewGetter;
7
7
  this.dataViewSetter = dataViewSetter;
8
8
  }
9
- NumberFieldType.Int8 = new NumberFieldType(1, 'getInt8', 'setInt8');
10
- NumberFieldType.Uint8 = new NumberFieldType(1, 'getUint8', 'setUint8');
11
- NumberFieldType.Int16 = new NumberFieldType(2, 'getInt16', 'setInt16');
12
- NumberFieldType.Uint16 = new NumberFieldType(2, 'getUint16', 'setUint16');
13
- NumberFieldType.Int32 = new NumberFieldType(4, 'getInt32', 'setInt32');
14
- NumberFieldType.Uint32 = new NumberFieldType(4, 'getUint32', 'setUint32');
15
- NumberFieldType.Int64 = new NumberFieldType(8, 'getBigInt64', 'setBigInt64');
16
- NumberFieldType.Uint64 = new NumberFieldType(8, 'getBigUint64', 'setBigUint64');
17
- return NumberFieldType;
18
- }());
19
- export { NumberFieldType };
20
- var NumberFieldDefinition = /** @class */ (function (_super) {
21
- __extends(NumberFieldDefinition, _super);
22
- function NumberFieldDefinition(type, _typescriptType) {
23
- var _this = _super.call(this) || this;
24
- _this.type = type;
25
- return _this;
9
+ }
10
+ NumberFieldType.Int8 = new NumberFieldType(1, 'getInt8', 'setInt8');
11
+ NumberFieldType.Uint8 = new NumberFieldType(1, 'getUint8', 'setUint8');
12
+ NumberFieldType.Int16 = new NumberFieldType(2, 'getInt16', 'setInt16');
13
+ NumberFieldType.Uint16 = new NumberFieldType(2, 'getUint16', 'setUint16');
14
+ NumberFieldType.Int32 = new NumberFieldType(4, 'getInt32', 'setInt32');
15
+ NumberFieldType.Uint32 = new NumberFieldType(4, 'getUint32', 'setUint32');
16
+ NumberFieldType.Int64 = new NumberFieldType(8, 'getBigInt64', 'setBigInt64');
17
+ NumberFieldType.Uint64 = new NumberFieldType(8, 'getBigUint64', 'setBigUint64');
18
+ export class NumberFieldDefinition extends StructFieldDefinition {
19
+ constructor(type, _typescriptType) {
20
+ super();
21
+ this.type = type;
26
22
  }
27
- NumberFieldDefinition.prototype.getSize = function () {
23
+ getSize() {
28
24
  return this.type.size;
29
- };
30
- NumberFieldDefinition.prototype.deserialize = function (options, context, object) {
31
- return __awaiter(this, void 0, void 0, function () {
32
- var buffer, view, value;
33
- return __generator(this, function (_a) {
34
- switch (_a.label) {
35
- case 0: return [4 /*yield*/, context.read(this.getSize())];
36
- case 1:
37
- buffer = _a.sent();
38
- view = new DataView(buffer);
39
- value = view[this.type.dataViewGetter](0, options.littleEndian);
40
- return [2 /*return*/, this.createValue(options, context, object, value)];
41
- }
42
- });
43
- });
44
- };
45
- NumberFieldDefinition.prototype.createValue = function (options, context, object, value) {
46
- return new NumberFieldRuntimeValue(this, options, context, object, value);
47
- };
48
- return NumberFieldDefinition;
49
- }(FieldDefinition));
50
- export { NumberFieldDefinition };
51
- var NumberFieldRuntimeValue = /** @class */ (function (_super) {
52
- __extends(NumberFieldRuntimeValue, _super);
53
- function NumberFieldRuntimeValue() {
54
- return _super !== null && _super.apply(this, arguments) || this;
55
25
  }
56
- NumberFieldRuntimeValue.prototype.serialize = function (dataView, offset) {
26
+ create(options, struct, value) {
27
+ return new NumberFieldValue(this, options, struct, value);
28
+ }
29
+ deserialize(options, stream, struct) {
30
+ return Syncbird.try(() => {
31
+ return stream.read(this.getSize());
32
+ }).then(buffer => {
33
+ const view = new DataView(buffer);
34
+ const value = view[this.type.dataViewGetter](0, options.littleEndian);
35
+ return this.create(options, struct, value);
36
+ }).valueOrPromise();
37
+ }
38
+ }
39
+ export class NumberFieldValue extends StructFieldValue {
40
+ serialize(dataView, offset) {
57
41
  // `setBigInt64` requires a `bigint` while others require `number`
58
42
  // So `dataView[DataViewSetters]` requires `bigint & number`
59
43
  // and that is, `never`
60
44
  dataView[this.definition.type.dataViewSetter](offset, this.value, this.options.littleEndian);
61
- };
62
- return NumberFieldRuntimeValue;
63
- }(FieldRuntimeValue));
64
- export { NumberFieldRuntimeValue };
45
+ }
46
+ }
65
47
  //# sourceMappingURL=number.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/types/number.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAA2E,MAAM,UAAU,CAAC;AAQvI;IAyBI,yBACI,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;IAhCsB,oBAAI,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAE5D,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE/D,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE/D,sBAAM,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAElE,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE/D,sBAAM,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAElE,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAErE,sBAAM,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IAmBnG,sBAAC;CAAA,AAlCD,IAkCC;SAlCY,eAAe;AAoC5B;IAGc,yCAGT;IAGD,+BAAmB,IAAW,EAAE,eAAiC;QAAjE,YACI,iBAAO,SAEV;QADG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;IACrB,CAAC;IAEM,uCAAO,GAAd;QACI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAEY,2CAAW,GAAxB,UACI,OAAgC,EAChC,OAAqC,EACrC,MAAW;;;;;4BAEI,qBAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAA;;wBAA3C,MAAM,GAAG,SAAkC;wBAC3C,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC5B,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CACxC,CAAC,EACD,OAAO,CAAC,YAAY,CAChB,CAAC;wBACT,sBAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAC;;;;KAC5D;IAEM,2CAAW,GAAlB,UACI,OAAgC,EAChC,OAAmC,EACnC,MAAW,EACX,KAAsB;QAEtB,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;IACL,4BAAC;AAAD,CAAC,AAxCD,CAGc,eAAe,GAqC5B;;AAED;IAGc,2CAAgE;IAH9E;;IAcA,CAAC;IAVU,2CAAS,GAAhB,UAAiB,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;IACL,8BAAC;AAAD,CAAC,AAdD,CAGc,iBAAiB,GAW9B"}
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/types/number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,qBAAqB,EAAE,gBAAgB,EAA8B,MAAM,UAAU,CAAC;AACtJ,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AASvC,MAAM,OAAO,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;;AAEsB,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,MAAM,OAAO,qBAGP,SAAQ,qBAGT;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,MAAmB,EACnB,KAAsB;QAEtB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAYe,WAAW,CACvB,OAAgC,EAChC,MAA8D,EAC9D,MAAmB;QAEnB,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;YACrB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,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,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACJ;AAED,MAAM,OAAO,gBAEP,SAAQ,gBAA6B;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"}
@@ -1,82 +1,71 @@
1
- import { __extends } from "tslib";
2
- import { FieldRuntimeValue, getRuntimeValue, setRuntimeValue } from '../basic';
3
- import { ArrayBufferLikeFieldDefinition, ArrayBufferLikeFieldRuntimeValue } from './array-buffer';
4
- var VariableLengthArrayBufferLikeFieldDefinition = /** @class */ (function (_super) {
5
- __extends(VariableLengthArrayBufferLikeFieldDefinition, _super);
6
- function VariableLengthArrayBufferLikeFieldDefinition() {
7
- return _super !== null && _super.apply(this, arguments) || this;
8
- }
9
- VariableLengthArrayBufferLikeFieldDefinition.prototype.getSize = function () {
1
+ import { StructFieldValue } from '../basic';
2
+ import { ArrayBufferLikeFieldDefinition, ArrayBufferLikeFieldValue } from './array-buffer';
3
+ export class VariableLengthArrayBufferLikeFieldDefinition extends ArrayBufferLikeFieldDefinition {
4
+ getSize() {
10
5
  return 0;
11
- };
12
- VariableLengthArrayBufferLikeFieldDefinition.prototype.getDeserializeSize = function (object) {
13
- var value = object[this.options.lengthField];
6
+ }
7
+ getDeserializeSize(struct) {
8
+ var _a;
9
+ let value = struct.value[this.options.lengthField];
14
10
  if (typeof value === 'string') {
15
- value = Number.parseInt(value, 10);
11
+ value = Number.parseInt(value, (_a = this.options.lengthFieldBase) !== null && _a !== void 0 ? _a : 10);
16
12
  }
17
13
  return value;
18
- };
19
- VariableLengthArrayBufferLikeFieldDefinition.prototype.createValue = function (options, context, object, value) {
20
- return new VariableLengthArrayBufferLikeFieldRuntimeValue(this, options, context, object, value);
21
- };
22
- return VariableLengthArrayBufferLikeFieldDefinition;
23
- }(ArrayBufferLikeFieldDefinition));
24
- export { VariableLengthArrayBufferLikeFieldDefinition };
25
- var VariableLengthArrayBufferLikeLengthFieldRuntimeValue = /** @class */ (function (_super) {
26
- __extends(VariableLengthArrayBufferLikeLengthFieldRuntimeValue, _super);
27
- function VariableLengthArrayBufferLikeLengthFieldRuntimeValue(originalValue, arrayBufferValue) {
28
- var _this = _super.call(this, originalValue.definition, originalValue.options, originalValue.context, originalValue.object, 0) || this;
29
- _this.originalValue = originalValue;
30
- _this.arrayBufferValue = arrayBufferValue;
31
- return _this;
32
14
  }
33
- VariableLengthArrayBufferLikeLengthFieldRuntimeValue.prototype.getSize = function () {
34
- return this.originalValue.getSize();
35
- };
36
- VariableLengthArrayBufferLikeLengthFieldRuntimeValue.prototype.get = function () {
37
- // TODO: originalValue might be a `string` type, now it always returns `number`.
38
- return this.arrayBufferValue.getSize();
39
- };
40
- VariableLengthArrayBufferLikeLengthFieldRuntimeValue.prototype.set = function () { };
41
- VariableLengthArrayBufferLikeLengthFieldRuntimeValue.prototype.serialize = function (dataView, offset, context) {
42
- this.originalValue.set(this.get());
43
- this.originalValue.serialize(dataView, offset, context);
44
- };
45
- return VariableLengthArrayBufferLikeLengthFieldRuntimeValue;
46
- }(FieldRuntimeValue));
47
- var VariableLengthArrayBufferLikeFieldRuntimeValue = /** @class */ (function (_super) {
48
- __extends(VariableLengthArrayBufferLikeFieldRuntimeValue, _super);
49
- function VariableLengthArrayBufferLikeFieldRuntimeValue(definition, options, context, object, value) {
50
- var _this = _super.call(this, definition, options, context, object, value) || this;
15
+ create(options, struct, value, arrayBuffer) {
16
+ return new VariableLengthArrayBufferLikeStructFieldValue(this, options, struct, value, arrayBuffer);
17
+ }
18
+ }
19
+ export class VariableLengthArrayBufferLikeStructFieldValue extends ArrayBufferLikeFieldValue {
20
+ constructor(definition, options, struct, value, arrayBuffer) {
21
+ super(definition, options, struct, value, arrayBuffer);
22
+ if (arrayBuffer) {
23
+ this.length = arrayBuffer.byteLength;
24
+ }
51
25
  // Patch the associated length field.
52
- var lengthField = _this.definition.options.lengthField;
53
- var originalValue = getRuntimeValue(object, lengthField);
54
- _this.lengthFieldValue = new VariableLengthArrayBufferLikeLengthFieldRuntimeValue(originalValue, _this);
55
- setRuntimeValue(object, lengthField, _this.lengthFieldValue);
56
- return _this;
26
+ const lengthField = this.definition.options.lengthField;
27
+ const originalValue = struct.get(lengthField);
28
+ this.lengthFieldValue = new VariableLengthArrayBufferLikeFieldLengthValue(originalValue, this);
29
+ struct.set(lengthField, this.lengthFieldValue);
57
30
  }
58
- VariableLengthArrayBufferLikeFieldRuntimeValue.getSize = function () {
59
- return 0;
60
- };
61
- VariableLengthArrayBufferLikeFieldRuntimeValue.prototype.getSize = function () {
31
+ getSize() {
62
32
  if (this.length === undefined) {
63
- if (this.arrayBuffer !== undefined) {
33
+ this.length = this.definition.type.getSize(this.value);
34
+ if (this.length === -1) {
35
+ this.arrayBuffer = this.definition.type.toArrayBuffer(this.value);
64
36
  this.length = this.arrayBuffer.byteLength;
65
37
  }
66
- else {
67
- this.length = this.definition.type.getSize(this.value);
68
- if (this.length === -1) {
69
- this.arrayBuffer = this.definition.type.toArrayBuffer(this.value, this.context);
70
- this.length = this.arrayBuffer.byteLength;
71
- }
72
- }
73
38
  }
74
39
  return this.length;
75
- };
76
- VariableLengthArrayBufferLikeFieldRuntimeValue.prototype.set = function (value) {
77
- _super.prototype.set.call(this, value);
40
+ }
41
+ set(value) {
42
+ super.set(value);
43
+ this.arrayBuffer = undefined;
78
44
  this.length = undefined;
79
- };
80
- return VariableLengthArrayBufferLikeFieldRuntimeValue;
81
- }(ArrayBufferLikeFieldRuntimeValue));
45
+ }
46
+ }
47
+ export class VariableLengthArrayBufferLikeFieldLengthValue extends StructFieldValue {
48
+ constructor(originalField, arrayBufferField) {
49
+ super(originalField.definition, originalField.options, originalField.struct, 0);
50
+ this.originalField = originalField;
51
+ this.arrayBufferField = arrayBufferField;
52
+ }
53
+ getSize() {
54
+ return this.originalField.getSize();
55
+ }
56
+ get() {
57
+ var _a;
58
+ let value = this.arrayBufferField.getSize();
59
+ const originalValue = this.originalField.get();
60
+ if (typeof originalValue === 'string') {
61
+ value = value.toString((_a = this.arrayBufferField.definition.options.lengthFieldBase) !== null && _a !== void 0 ? _a : 10);
62
+ }
63
+ return value;
64
+ }
65
+ set() { }
66
+ serialize(dataView, offset) {
67
+ this.originalField.set(this.get());
68
+ this.originalField.serialize(dataView, offset);
69
+ }
70
+ }
82
71
  //# sourceMappingURL=variable-length-array-buffer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"variable-length-array-buffer.js","sourceRoot":"","sources":["../../src/types/variable-length-array-buffer.ts"],"names":[],"mappings":"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"}
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/esm/utils.js ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Returns a (fake) value of the given type.
3
+ */
4
+ export function placeholder() {
5
+ return undefined;
6
+ }
7
+ // @ts-expect-error @types/node missing `TextEncoder`
8
+ const Utf8Encoder = new TextEncoder();
9
+ // @ts-expect-error @types/node missing `TextDecoder`
10
+ const Utf8Decoder = new TextDecoder();
11
+ export function encodeUtf8(input) {
12
+ return Utf8Encoder.encode(input).buffer;
13
+ }
14
+ export function decodeUtf8(buffer) {
15
+ return Utf8Decoder.decode(buffer);
16
+ }
17
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AA2CA;;GAEG;AACH,MAAM,UAAU,WAAW;IACvB,OAAO,SAAyB,CAAC;AACrC,CAAC;AAED,qDAAqD;AACrD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,qDAAqD;AACrD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC1C,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,50 +1,47 @@
1
- {
2
- "name": "@yume-chan/struct",
3
- "version": "0.0.5",
4
- "description": "C-style structure serializer and deserializer.",
5
- "keywords": [
6
- "structure",
7
- "serialization",
8
- "deserialization",
9
- "typescript"
10
- ],
11
- "license": "MIT",
12
- "author": {
13
- "name": "Simon Chan",
14
- "email": "cnsimonchan@live.com",
15
- "url": "https://chensi.moe/blog"
16
- },
17
- "homepage": "https://github.com/yume-chan/ya-webadb/tree/master/packages/struct#readme",
18
- "repository": {
19
- "type": "git",
20
- "url": "git+https://github.com/yume-chan/ya-webadb.git",
21
- "directory": "packages/struct"
22
- },
23
- "bugs": {
24
- "url": "https://github.com/yume-chan/ya-webadb/issues"
25
- },
26
- "main": "cjs/index.js",
27
- "module": "esm/index.js",
28
- "types": "dts/index.d.ts",
29
- "scripts": {
30
- "build": "rimraf {cjs,esm,dts,*.tsbuildinfo} && tsc -b tsconfig.esm.json tsconfig.cjs.json",
31
- "build:watch": "tsc -b -w tsconfig.esm.json tsconfig.cjs.json",
32
- "test": "jest",
33
- "coverage": "jest --coverage",
34
- "prepublishOnly": "npm run build"
35
- },
36
- "dependencies": {
37
- "tslib": "2.1.0"
38
- },
39
- "devDependencies": {
40
- "@types/jest": "26.0.19",
41
- "jest": "26.6.3",
42
- "rimraf": "3.0.2",
43
- "ts-jest": "26.4.4",
44
- "typescript": "4.1.3"
45
- },
46
- "publishConfig": {
47
- "access": "public"
48
- },
49
- "gitHead": "90a1b1b331b6fc9ff24f9b54667879393450d27e"
50
- }
1
+ {
2
+ "name": "@yume-chan/struct",
3
+ "version": "0.0.10",
4
+ "description": "C-style structure serializer and deserializer.",
5
+ "keywords": [
6
+ "structure",
7
+ "serialization",
8
+ "deserialization",
9
+ "typescript"
10
+ ],
11
+ "license": "MIT",
12
+ "author": {
13
+ "name": "Simon Chan",
14
+ "email": "cnsimonchan@live.com",
15
+ "url": "https://chensi.moe/blog"
16
+ },
17
+ "homepage": "https://github.com/yume-chan/ya-webadb/tree/master/packages/struct#readme",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/yume-chan/ya-webadb.git",
21
+ "directory": "packages/struct"
22
+ },
23
+ "bugs": {
24
+ "url": "https://github.com/yume-chan/ya-webadb/issues"
25
+ },
26
+ "type": "module",
27
+ "module": "esm/index.js",
28
+ "types": "dts/index.d.ts",
29
+ "scripts": {
30
+ "build": "build-ts-package",
31
+ "build:watch": "build-ts-package --incremental",
32
+ "test": "jest --coverage",
33
+ "prepublishOnly": "npm run build"
34
+ },
35
+ "dependencies": {
36
+ "bluebird": "^3.7.2",
37
+ "tslib": "^2.3.1"
38
+ },
39
+ "devDependencies": {
40
+ "jest": "^26.6.3",
41
+ "typescript": "^4.5.4",
42
+ "@yume-chan/ts-package-builder": "^1.0.0",
43
+ "@types/jest": "^27.4.0",
44
+ "@types/node": "^16.11.19",
45
+ "@types/bluebird": "^3.5.36"
46
+ }
47
+ }
@@ -1,40 +1,32 @@
1
- /**
2
- * Context with enough methods to serialize a struct
3
- */
4
- export interface StructSerializationContext {
5
- /**
6
- * Encode the specified string into an ArrayBuffer using UTF-8 encoding
7
- */
8
- encodeUtf8(input: string): ArrayBuffer;
9
- }
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
- /**
21
- * Read data from the underlying data source.
22
- *
23
- * Context should return exactly `length` bytes or data. If that's not possible
24
- * (due to end of file or other error condition), it should throw an error.
25
- */
26
- read(length: number): ArrayBuffer | Promise<ArrayBuffer>;
27
- }
28
-
29
- export interface StructOptions {
30
- /**
31
- * Whether all multi-byte fields in this struct are little-endian encoded.
32
- *
33
- * Default to `false`
34
- */
35
- littleEndian: boolean;
36
- }
37
-
38
- export const StructDefaultOptions: Readonly<StructOptions> = {
39
- littleEndian: false,
40
- };
1
+ export interface StructDeserializeStream {
2
+ /**
3
+ * Read data from the underlying data source.
4
+ *
5
+ * 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): ArrayBuffer;
9
+ }
10
+
11
+ export interface StructAsyncDeserializeStream {
12
+ /**
13
+ * Read data from the underlying data source.
14
+ *
15
+ * Context must return exactly `length` bytes or data. If that's not possible
16
+ * (due to end of file or other error condition), it must throw an error.
17
+ */
18
+ read(length: number): Promise<ArrayBuffer>;
19
+ }
20
+
21
+ export interface StructOptions {
22
+ /**
23
+ * Whether all multi-byte fields in this struct are little-endian encoded.
24
+ *
25
+ * Default to `false`
26
+ */
27
+ littleEndian: boolean;
28
+ }
29
+
30
+ export const StructDefaultOptions: Readonly<StructOptions> = {
31
+ littleEndian: false,
32
+ };