@polkadot/types-codec 9.14.2 → 10.1.1

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 (229) hide show
  1. package/abstract/Array.d.ts +1 -1
  2. package/abstract/Array.js +136 -155
  3. package/abstract/Base.d.ts +1 -1
  4. package/abstract/Base.js +95 -113
  5. package/abstract/Int.d.ts +1 -1
  6. package/abstract/Int.js +209 -220
  7. package/abstract/Object.d.ts +1 -1
  8. package/abstract/Object.js +29 -45
  9. package/abstract/index.d.ts +3 -3
  10. package/abstract/index.js +3 -6
  11. package/base/Compact.d.ts +1 -1
  12. package/base/Compact.js +149 -166
  13. package/base/DoNotConstruct.d.ts +1 -1
  14. package/base/DoNotConstruct.js +62 -65
  15. package/base/Enum.d.ts +1 -1
  16. package/base/Enum.js +347 -383
  17. package/base/Int.d.ts +2 -2
  18. package/base/Int.js +14 -18
  19. package/base/Null.d.ts +1 -1
  20. package/base/Null.js +68 -82
  21. package/base/Option.d.ts +1 -1
  22. package/base/Option.js +217 -227
  23. package/base/Result.d.ts +2 -2
  24. package/base/Result.js +54 -67
  25. package/base/Tuple.d.ts +2 -2
  26. package/base/Tuple.js +100 -102
  27. package/base/UInt.d.ts +2 -2
  28. package/base/UInt.js +11 -15
  29. package/base/Vec.d.ts +2 -2
  30. package/base/Vec.js +88 -90
  31. package/base/VecAny.d.ts +2 -2
  32. package/base/VecAny.js +8 -12
  33. package/base/VecFixed.d.ts +2 -2
  34. package/base/VecFixed.js +63 -71
  35. package/base/index.d.ts +12 -12
  36. package/base/index.js +12 -15
  37. package/bundle.d.ts +7 -7
  38. package/bundle.js +7 -10
  39. package/cjs/abstract/Array.js +138 -159
  40. package/cjs/abstract/Base.js +96 -117
  41. package/cjs/abstract/Int.js +215 -238
  42. package/cjs/abstract/Object.js +30 -49
  43. package/cjs/abstract/index.js +8 -25
  44. package/cjs/base/Compact.js +151 -173
  45. package/cjs/base/DoNotConstruct.js +63 -70
  46. package/cjs/base/Enum.js +350 -396
  47. package/cjs/base/Int.js +16 -24
  48. package/cjs/base/Null.js +70 -86
  49. package/cjs/base/Option.js +220 -234
  50. package/cjs/base/Result.js +56 -71
  51. package/cjs/base/Tuple.js +103 -109
  52. package/cjs/base/UInt.js +13 -19
  53. package/cjs/base/Vec.js +94 -101
  54. package/cjs/base/VecAny.js +10 -16
  55. package/cjs/base/VecFixed.js +66 -79
  56. package/cjs/base/index.js +26 -88
  57. package/cjs/bundle.js +11 -86
  58. package/cjs/detectOther.js +2 -10
  59. package/cjs/detectPackage.js +6 -11
  60. package/cjs/extended/BTreeMap.js +10 -16
  61. package/cjs/extended/BTreeSet.js +162 -178
  62. package/cjs/extended/BitVec.js +70 -77
  63. package/cjs/extended/Bytes.js +59 -62
  64. package/cjs/extended/HashMap.js +10 -16
  65. package/cjs/extended/Linkage.js +50 -60
  66. package/cjs/extended/Map.js +176 -181
  67. package/cjs/extended/OptionBool.js +65 -68
  68. package/cjs/extended/Range.js +37 -46
  69. package/cjs/extended/RangeInclusive.js +13 -21
  70. package/cjs/extended/Type.js +14 -22
  71. package/cjs/extended/U8aFixed.js +33 -43
  72. package/cjs/extended/WrapperKeepOpaque.js +99 -99
  73. package/cjs/extended/WrapperOpaque.js +19 -28
  74. package/cjs/extended/index.js +31 -108
  75. package/cjs/index.js +4 -16
  76. package/cjs/native/Bool.js +101 -116
  77. package/cjs/native/Date.js +125 -151
  78. package/cjs/native/Float.js +95 -114
  79. package/cjs/native/Json.js +102 -124
  80. package/cjs/native/Raw.js +128 -150
  81. package/cjs/native/Set.js +200 -220
  82. package/cjs/native/Struct.data.js +2 -9
  83. package/cjs/native/Struct.js +238 -251
  84. package/cjs/native/Text.js +137 -149
  85. package/cjs/native/index.js +21 -78
  86. package/cjs/packageInfo.js +2 -16
  87. package/cjs/primitive/F32.js +8 -11
  88. package/cjs/primitive/F64.js +8 -11
  89. package/cjs/primitive/I128.js +8 -11
  90. package/cjs/primitive/I16.js +8 -11
  91. package/cjs/primitive/I256.js +8 -11
  92. package/cjs/primitive/I32.js +8 -11
  93. package/cjs/primitive/I64.js +8 -11
  94. package/cjs/primitive/I8.js +8 -11
  95. package/cjs/primitive/U128.js +8 -11
  96. package/cjs/primitive/U16.js +8 -11
  97. package/cjs/primitive/U256.js +8 -11
  98. package/cjs/primitive/U32.js +8 -11
  99. package/cjs/primitive/U64.js +8 -11
  100. package/cjs/primitive/U8.js +8 -11
  101. package/cjs/primitive/USize.js +7 -13
  102. package/cjs/primitive/index.js +47 -199
  103. package/cjs/types/codec.js +2 -1
  104. package/cjs/types/helpers.js +2 -1
  105. package/cjs/types/index.js +6 -48
  106. package/cjs/types/interfaces.js +2 -1
  107. package/cjs/types/registry.js +2 -1
  108. package/cjs/utils/compareArray.js +12 -17
  109. package/cjs/utils/compareMap.js +23 -26
  110. package/cjs/utils/compareSet.js +17 -23
  111. package/cjs/utils/decodeU8a.js +63 -74
  112. package/cjs/utils/index.js +24 -91
  113. package/cjs/utils/mapToTypeMap.js +13 -18
  114. package/cjs/utils/sanitize.js +198 -204
  115. package/cjs/utils/sortValues.js +39 -49
  116. package/cjs/utils/typeToConstructor.js +8 -11
  117. package/cjs/utils/typesToMap.js +10 -16
  118. package/cjs/utils/util.js +6 -11
  119. package/detectOther.js +0 -5
  120. package/detectPackage.js +2 -7
  121. package/extended/BTreeMap.d.ts +2 -2
  122. package/extended/BTreeMap.js +8 -11
  123. package/extended/BTreeSet.d.ts +1 -1
  124. package/extended/BTreeSet.js +159 -172
  125. package/extended/BitVec.d.ts +2 -2
  126. package/extended/BitVec.js +67 -71
  127. package/extended/Bytes.d.ts +2 -2
  128. package/extended/Bytes.js +56 -57
  129. package/extended/HashMap.d.ts +2 -2
  130. package/extended/HashMap.js +8 -11
  131. package/extended/Linkage.d.ts +4 -4
  132. package/extended/Linkage.js +46 -51
  133. package/extended/Map.d.ts +1 -1
  134. package/extended/Map.js +173 -174
  135. package/extended/OptionBool.d.ts +3 -3
  136. package/extended/OptionBool.js +62 -62
  137. package/extended/Range.d.ts +2 -2
  138. package/extended/Range.js +35 -40
  139. package/extended/RangeInclusive.d.ts +2 -2
  140. package/extended/RangeInclusive.js +11 -16
  141. package/extended/Type.d.ts +2 -2
  142. package/extended/Type.js +12 -17
  143. package/extended/U8aFixed.d.ts +2 -2
  144. package/extended/U8aFixed.js +30 -36
  145. package/extended/WrapperKeepOpaque.d.ts +2 -2
  146. package/extended/WrapperKeepOpaque.js +96 -92
  147. package/extended/WrapperOpaque.d.ts +2 -2
  148. package/extended/WrapperOpaque.js +17 -23
  149. package/extended/index.d.ts +14 -14
  150. package/extended/index.js +14 -17
  151. package/index.d.ts +2 -2
  152. package/index.js +2 -5
  153. package/native/Bool.d.ts +1 -1
  154. package/native/Bool.js +99 -111
  155. package/native/Date.d.ts +1 -1
  156. package/native/Date.js +123 -144
  157. package/native/Float.d.ts +1 -1
  158. package/native/Float.js +93 -108
  159. package/native/Json.d.ts +1 -1
  160. package/native/Json.js +100 -114
  161. package/native/Raw.d.ts +1 -1
  162. package/native/Raw.js +126 -146
  163. package/native/Set.d.ts +1 -1
  164. package/native/Set.js +197 -211
  165. package/native/Struct.d.ts +1 -1
  166. package/native/Struct.data.js +0 -3
  167. package/native/Struct.js +235 -242
  168. package/native/Text.d.ts +1 -1
  169. package/native/Text.js +135 -144
  170. package/native/index.d.ts +8 -8
  171. package/native/index.js +8 -11
  172. package/package.json +8 -5
  173. package/packageInfo.js +1 -11
  174. package/primitive/F32.d.ts +2 -2
  175. package/primitive/F32.js +6 -7
  176. package/primitive/F64.d.ts +2 -2
  177. package/primitive/F64.js +6 -7
  178. package/primitive/I128.d.ts +2 -2
  179. package/primitive/I128.js +6 -7
  180. package/primitive/I16.d.ts +2 -2
  181. package/primitive/I16.js +6 -7
  182. package/primitive/I256.d.ts +2 -2
  183. package/primitive/I256.js +6 -7
  184. package/primitive/I32.d.ts +2 -2
  185. package/primitive/I32.js +6 -7
  186. package/primitive/I64.d.ts +2 -2
  187. package/primitive/I64.js +6 -7
  188. package/primitive/I8.d.ts +2 -2
  189. package/primitive/I8.js +6 -7
  190. package/primitive/U128.d.ts +2 -2
  191. package/primitive/U128.js +6 -7
  192. package/primitive/U16.d.ts +2 -2
  193. package/primitive/U16.js +6 -7
  194. package/primitive/U256.d.ts +2 -2
  195. package/primitive/U256.js +6 -7
  196. package/primitive/U32.d.ts +2 -2
  197. package/primitive/U32.js +6 -7
  198. package/primitive/U64.d.ts +2 -2
  199. package/primitive/U64.js +6 -7
  200. package/primitive/U8.d.ts +2 -2
  201. package/primitive/U8.js +6 -7
  202. package/primitive/USize.d.ts +2 -2
  203. package/primitive/USize.js +5 -9
  204. package/primitive/index.d.ts +15 -15
  205. package/primitive/index.js +15 -18
  206. package/types/codec.d.ts +3 -3
  207. package/types/helpers.d.ts +1 -1
  208. package/types/index.d.ts +4 -4
  209. package/types/index.js +4 -7
  210. package/types/interfaces.d.ts +2 -2
  211. package/types/registry.d.ts +3 -3
  212. package/utils/compareArray.js +7 -11
  213. package/utils/compareMap.js +18 -19
  214. package/utils/compareSet.js +12 -16
  215. package/utils/decodeU8a.d.ts +1 -1
  216. package/utils/decodeU8a.js +54 -61
  217. package/utils/index.d.ts +9 -9
  218. package/utils/index.js +9 -12
  219. package/utils/mapToTypeMap.d.ts +1 -1
  220. package/utils/mapToTypeMap.js +9 -13
  221. package/utils/sanitize.d.ts +1 -1
  222. package/utils/sanitize.js +182 -185
  223. package/utils/sortValues.d.ts +1 -1
  224. package/utils/sortValues.js +32 -36
  225. package/utils/typeToConstructor.d.ts +1 -1
  226. package/utils/typeToConstructor.js +3 -4
  227. package/utils/typesToMap.d.ts +1 -1
  228. package/utils/typesToMap.js +5 -8
  229. package/utils/util.js +1 -4
package/cjs/base/Tuple.js CHANGED
@@ -1,126 +1,120 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ var _Tuple_Types;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
6
4
  exports.Tuple = void 0;
7
- var _util = require("@polkadot/util");
8
- var _Array = require("../abstract/Array");
9
- var _utils = require("../utils");
10
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
11
- // SPDX-License-Identifier: Apache-2.0
12
-
5
+ const tslib_1 = require("tslib");
6
+ const util_1 = require("@polkadot/util");
7
+ const Array_js_1 = require("../abstract/Array.js");
8
+ const index_js_1 = require("../utils/index.js");
13
9
  function noopSetDefinition(d) {
14
- return d;
10
+ return d;
15
11
  }
16
-
17
12
  /** @internal */
18
13
  function decodeTuple(registry, result, value, Classes) {
19
- if (Array.isArray(value)) {
20
- const Types = Classes[0];
21
- for (let i = 0; i < Types.length; i++) {
22
- try {
23
- const entry = value == null ? void 0 : value[i];
24
- result[i] = entry instanceof Types[i] ? entry : new Types[i](registry, entry);
25
- } catch (error) {
26
- throw new Error(`Tuple: failed on ${i}:: ${error.message}`);
27
- }
14
+ if (Array.isArray(value)) {
15
+ const Types = Classes[0];
16
+ for (let i = 0; i < Types.length; i++) {
17
+ try {
18
+ const entry = value?.[i];
19
+ result[i] = entry instanceof Types[i]
20
+ ? entry
21
+ : new Types[i](registry, entry);
22
+ }
23
+ catch (error) {
24
+ throw new Error(`Tuple: failed on ${i}:: ${error.message}`);
25
+ }
26
+ }
27
+ return [result, 0];
28
28
  }
29
- return [result, 0];
30
- } else if ((0, _util.isHex)(value)) {
31
- return (0, _utils.decodeU8a)(registry, result, (0, _util.u8aToU8a)(value), Classes);
32
- } else if (!value || !result.length) {
33
- const Types = Classes[0];
34
- for (let i = 0; i < Types.length; i++) {
35
- result[i] = new Types[i](registry);
29
+ else if ((0, util_1.isHex)(value)) {
30
+ return (0, index_js_1.decodeU8a)(registry, result, (0, util_1.u8aToU8a)(value), Classes);
36
31
  }
37
- return [result, 0];
38
- }
39
- throw new Error(`Expected array input to Tuple decoding, found ${typeof value}: ${(0, _util.stringify)(value)}`);
32
+ else if (!value || !result.length) {
33
+ const Types = Classes[0];
34
+ for (let i = 0; i < Types.length; i++) {
35
+ result[i] = new Types[i](registry);
36
+ }
37
+ return [result, 0];
38
+ }
39
+ throw new Error(`Expected array input to Tuple decoding, found ${typeof value}: ${(0, util_1.stringify)(value)}`);
40
40
  }
41
-
42
41
  /**
43
42
  * @name Tuple
44
43
  * @description
45
44
  * A Tuple defines an anonymous fixed-length array, where each element has its
46
45
  * own type. It extends the base JS `Array` object.
47
46
  */
48
- class Tuple extends _Array.AbstractArray {
49
- #Types;
50
- constructor(registry, Types, value) {
51
- let {
52
- definition,
53
- setDefinition = noopSetDefinition
54
- } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
55
- const Classes = definition || setDefinition(Array.isArray(Types) ? [Types.map(t => (0, _utils.typeToConstructor)(registry, t)), []] : (0, _util.isFunction)(Types) || (0, _util.isString)(Types) ? [[(0, _utils.typeToConstructor)(registry, Types)], []] : (0, _utils.mapToTypeMap)(registry, Types));
56
- super(registry, Classes[0].length);
57
- this.initialU8aLength = ((0, _util.isU8a)(value) ? (0, _utils.decodeU8a)(registry, this, value, Classes) : decodeTuple(registry, this, value, Classes))[1];
58
- this.#Types = Classes;
59
- }
60
- static with(Types) {
61
- let definition;
62
-
63
- // eslint-disable-next-line no-return-assign
64
- const setDefinition = d => definition = d;
65
- return class extends Tuple {
66
- constructor(registry, value) {
67
- super(registry, Types, value, {
68
- definition,
69
- setDefinition
70
- });
71
- }
72
- };
73
- }
74
-
75
- /**
76
- * @description The length of the value when encoded as a Uint8Array
77
- */
78
- get encodedLength() {
79
- let total = 0;
80
- for (let i = 0; i < this.length; i++) {
81
- total += this[i].encodedLength;
47
+ class Tuple extends Array_js_1.AbstractArray {
48
+ constructor(registry, Types, value, { definition, setDefinition = noopSetDefinition } = {}) {
49
+ const Classes = definition || setDefinition(Array.isArray(Types)
50
+ ? [Types.map((t) => (0, index_js_1.typeToConstructor)(registry, t)), []]
51
+ : (0, util_1.isFunction)(Types) || (0, util_1.isString)(Types)
52
+ ? [[(0, index_js_1.typeToConstructor)(registry, Types)], []]
53
+ : (0, index_js_1.mapToTypeMap)(registry, Types));
54
+ super(registry, Classes[0].length);
55
+ _Tuple_Types.set(this, void 0);
56
+ this.initialU8aLength = ((0, util_1.isU8a)(value)
57
+ ? (0, index_js_1.decodeU8a)(registry, this, value, Classes)
58
+ : decodeTuple(registry, this, value, Classes))[1];
59
+ tslib_1.__classPrivateFieldSet(this, _Tuple_Types, Classes, "f");
60
+ }
61
+ static with(Types) {
62
+ let definition;
63
+ // eslint-disable-next-line no-return-assign
64
+ const setDefinition = (d) => definition = d;
65
+ return class extends Tuple {
66
+ constructor(registry, value) {
67
+ super(registry, Types, value, { definition, setDefinition });
68
+ }
69
+ };
70
+ }
71
+ /**
72
+ * @description The length of the value when encoded as a Uint8Array
73
+ */
74
+ get encodedLength() {
75
+ let total = 0;
76
+ for (let i = 0; i < this.length; i++) {
77
+ total += this[i].encodedLength;
78
+ }
79
+ return total;
80
+ }
81
+ /**
82
+ * @description The types definition of the tuple
83
+ */
84
+ get Types() {
85
+ return tslib_1.__classPrivateFieldGet(this, _Tuple_Types, "f")[1].length
86
+ ? tslib_1.__classPrivateFieldGet(this, _Tuple_Types, "f")[1]
87
+ : tslib_1.__classPrivateFieldGet(this, _Tuple_Types, "f")[0].map((T) => new T(this.registry).toRawType());
88
+ }
89
+ /**
90
+ * @description Returns a breakdown of the hex encoding for this Codec
91
+ */
92
+ inspect() {
93
+ return {
94
+ inner: this.inspectInner()
95
+ };
96
+ }
97
+ /**
98
+ * @description Returns the base runtime type name for this instance
99
+ */
100
+ toRawType() {
101
+ const types = tslib_1.__classPrivateFieldGet(this, _Tuple_Types, "f")[0].map((T) => this.registry.getClassName(T) || new T(this.registry).toRawType());
102
+ return `(${types.join(',')})`;
103
+ }
104
+ /**
105
+ * @description Returns the string representation of the value
106
+ */
107
+ toString() {
108
+ // Overwrite the default toString representation of Array.
109
+ return (0, util_1.stringify)(this.toJSON());
110
+ }
111
+ /**
112
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
113
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
114
+ */
115
+ toU8a(isBare) {
116
+ return (0, util_1.u8aConcatStrict)(this.toU8aInner(isBare));
82
117
  }
83
- return total;
84
- }
85
-
86
- /**
87
- * @description The types definition of the tuple
88
- */
89
- get Types() {
90
- return this.#Types[1].length ? this.#Types[1] : this.#Types[0].map(T => new T(this.registry).toRawType());
91
- }
92
-
93
- /**
94
- * @description Returns a breakdown of the hex encoding for this Codec
95
- */
96
- inspect() {
97
- return {
98
- inner: this.inspectInner()
99
- };
100
- }
101
-
102
- /**
103
- * @description Returns the base runtime type name for this instance
104
- */
105
- toRawType() {
106
- const types = this.#Types[0].map(T => this.registry.getClassName(T) || new T(this.registry).toRawType());
107
- return `(${types.join(',')})`;
108
- }
109
-
110
- /**
111
- * @description Returns the string representation of the value
112
- */
113
- toString() {
114
- // Overwrite the default toString representation of Array.
115
- return (0, _util.stringify)(this.toJSON());
116
- }
117
-
118
- /**
119
- * @description Encodes the value as a Uint8Array as per the SCALE specifications
120
- * @param isBare true when the value has none of the type-specific prefixes (internal)
121
- */
122
- toU8a(isBare) {
123
- return (0, _util.u8aConcatStrict)(this.toU8aInner(isBare));
124
- }
125
118
  }
126
- exports.Tuple = Tuple;
119
+ exports.Tuple = Tuple;
120
+ _Tuple_Types = new WeakMap();
package/cjs/base/UInt.js CHANGED
@@ -1,13 +1,7 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.UInt = void 0;
7
- var _Int = require("../abstract/Int");
8
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
9
- // SPDX-License-Identifier: Apache-2.0
10
-
4
+ const Int_js_1 = require("../abstract/Int.js");
11
5
  /**
12
6
  * @name UInt
13
7
  * @description
@@ -18,16 +12,16 @@ var _Int = require("../abstract/Int");
18
12
  * is available here.
19
13
  * @noInheritDoc
20
14
  */
21
- class UInt extends _Int.AbstractInt {
22
- static with(bitLength, typeName) {
23
- return class extends UInt {
24
- constructor(registry, value) {
25
- super(registry, value, bitLength);
26
- }
27
- toRawType() {
28
- return typeName || super.toRawType();
29
- }
30
- };
31
- }
15
+ class UInt extends Int_js_1.AbstractInt {
16
+ static with(bitLength, typeName) {
17
+ return class extends UInt {
18
+ constructor(registry, value) {
19
+ super(registry, value, bitLength);
20
+ }
21
+ toRawType() {
22
+ return typeName || super.toRawType();
23
+ }
24
+ };
25
+ }
32
26
  }
33
27
  exports.UInt = UInt;
package/cjs/base/Vec.js CHANGED
@@ -1,59 +1,59 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Vec = void 0;
7
- exports.decodeVec = decodeVec;
8
- var _util = require("@polkadot/util");
9
- var _Array = require("../abstract/Array");
10
- var _utils = require("../utils");
11
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
12
- // SPDX-License-Identifier: Apache-2.0
13
-
2
+ var _Vec_Type;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Vec = exports.decodeVec = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const util_1 = require("@polkadot/util");
7
+ const Array_js_1 = require("../abstract/Array.js");
8
+ const index_js_1 = require("../utils/index.js");
14
9
  const MAX_LENGTH = 64 * 1024;
15
- const l = (0, _util.logger)('Vec');
10
+ const l = (0, util_1.logger)('Vec');
16
11
  function noopSetDefinition(d) {
17
- return d;
12
+ return d;
18
13
  }
19
14
  function decodeVecLength(value) {
20
- if (Array.isArray(value)) {
21
- return [value, value.length, 0];
22
- } else if ((0, _util.isU8a)(value) || (0, _util.isHex)(value)) {
23
- const u8a = (0, _util.u8aToU8a)(value);
24
- const [startAt, length] = (0, _util.compactFromU8aLim)(u8a);
25
- if (length > MAX_LENGTH) {
26
- throw new Error(`Vec length ${length.toString()} exceeds ${MAX_LENGTH}`);
15
+ if (Array.isArray(value)) {
16
+ return [value, value.length, 0];
17
+ }
18
+ else if ((0, util_1.isU8a)(value) || (0, util_1.isHex)(value)) {
19
+ const u8a = (0, util_1.u8aToU8a)(value);
20
+ const [startAt, length] = (0, util_1.compactFromU8aLim)(u8a);
21
+ if (length > MAX_LENGTH) {
22
+ throw new Error(`Vec length ${length.toString()} exceeds ${MAX_LENGTH}`);
23
+ }
24
+ return [u8a, length, startAt];
25
+ }
26
+ else if (!value) {
27
+ return [null, 0, 0];
27
28
  }
28
- return [u8a, length, startAt];
29
- } else if (!value) {
30
- return [null, 0, 0];
31
- }
32
- throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof value}: ${(0, _util.stringify)(value)}`);
29
+ throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof value}: ${(0, util_1.stringify)(value)}`);
33
30
  }
34
31
  function decodeVec(registry, result, value, startAt, Type) {
35
- if (Array.isArray(value)) {
36
- const count = result.length;
37
- for (let i = 0; i < count; i++) {
38
- // 26/08/2022 this is actually a false positive - after recent eslint upgdates
39
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
40
- const entry = value[i];
41
- try {
42
- result[i] = entry instanceof Type ? entry : new Type(registry, entry);
43
- } catch (error) {
44
- l.error(`Unable to decode on index ${i}`, error.message);
45
- throw error;
46
- }
32
+ if (Array.isArray(value)) {
33
+ const count = result.length;
34
+ for (let i = 0; i < count; i++) {
35
+ // 26/08/2022 this is actually a false positive - after recent eslint upgdates
36
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
37
+ const entry = value[i];
38
+ try {
39
+ result[i] = entry instanceof Type
40
+ ? entry
41
+ : new Type(registry, entry);
42
+ }
43
+ catch (error) {
44
+ l.error(`Unable to decode on index ${i}`, error.message);
45
+ throw error;
46
+ }
47
+ }
48
+ return [0, 0];
47
49
  }
48
- return [0, 0];
49
- } else if (!value) {
50
- return [0, 0];
51
- }
52
-
53
- // we don't need more checks, we already limited it via the length decoding
54
- return (0, _utils.decodeU8aVec)(registry, result, (0, _util.u8aToU8a)(value), startAt, Type);
50
+ else if (!value) {
51
+ return [0, 0];
52
+ }
53
+ // we don't need more checks, we already limited it via the length decoding
54
+ return (0, index_js_1.decodeU8aVec)(registry, result, (0, util_1.u8aToU8a)(value), startAt, Type);
55
55
  }
56
-
56
+ exports.decodeVec = decodeVec;
57
57
  /**
58
58
  * @name Vec
59
59
  * @description
@@ -61,60 +61,53 @@ function decodeVec(registry, result, value, startAt, Type) {
61
61
  * construction with the passed `Type` in the constructor. It is an extension to Array, providing
62
62
  * specific encoding/decoding on top of the base type.
63
63
  */
64
- class Vec extends _Array.AbstractArray {
65
- #Type;
66
- constructor(registry, Type) {
67
- let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
68
- let {
69
- definition,
70
- setDefinition = noopSetDefinition
71
- } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
72
- const [decodeFrom, length, startAt] = decodeVecLength(value);
73
- super(registry, length);
74
- this.#Type = definition || setDefinition((0, _utils.typeToConstructor)(registry, Type));
75
- this.initialU8aLength = ((0, _util.isU8a)(decodeFrom) ? (0, _utils.decodeU8aVec)(registry, this, decodeFrom, startAt, this.#Type) : decodeVec(registry, this, decodeFrom, startAt, this.#Type))[0];
76
- }
77
- static with(Type) {
78
- let definition;
79
-
80
- // eslint-disable-next-line no-return-assign
81
- const setDefinition = d => definition = d;
82
- return class extends Vec {
83
- constructor(registry, value) {
84
- super(registry, Type, value, {
85
- definition,
86
- setDefinition
87
- });
88
- }
89
- };
90
- }
91
-
92
- /**
93
- * @description The type for the items
94
- */
95
- get Type() {
96
- return this.#Type.name;
97
- }
98
-
99
- /**
100
- * @description Finds the index of the value in the array
101
- */
102
- indexOf(_other) {
103
- // convert type first, this removes overhead from the eq
104
- const other = _other instanceof this.#Type ? _other : new this.#Type(this.registry, _other);
105
- for (let i = 0; i < this.length; i++) {
106
- if (other.eq(this[i])) {
107
- return i;
108
- }
64
+ class Vec extends Array_js_1.AbstractArray {
65
+ constructor(registry, Type, value = [], { definition, setDefinition = noopSetDefinition } = {}) {
66
+ const [decodeFrom, length, startAt] = decodeVecLength(value);
67
+ super(registry, length);
68
+ _Vec_Type.set(this, void 0);
69
+ tslib_1.__classPrivateFieldSet(this, _Vec_Type, definition || setDefinition((0, index_js_1.typeToConstructor)(registry, Type)), "f");
70
+ this.initialU8aLength = ((0, util_1.isU8a)(decodeFrom)
71
+ ? (0, index_js_1.decodeU8aVec)(registry, this, decodeFrom, startAt, tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f"))
72
+ : decodeVec(registry, this, decodeFrom, startAt, tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f")))[0];
73
+ }
74
+ static with(Type) {
75
+ let definition;
76
+ // eslint-disable-next-line no-return-assign
77
+ const setDefinition = (d) => (definition = d);
78
+ return class extends Vec {
79
+ constructor(registry, value) {
80
+ super(registry, Type, value, { definition, setDefinition });
81
+ }
82
+ };
83
+ }
84
+ /**
85
+ * @description The type for the items
86
+ */
87
+ get Type() {
88
+ return tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f").name;
89
+ }
90
+ /**
91
+ * @description Finds the index of the value in the array
92
+ */
93
+ indexOf(_other) {
94
+ // convert type first, this removes overhead from the eq
95
+ const other = _other instanceof tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f")
96
+ ? _other
97
+ : new (tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f"))(this.registry, _other);
98
+ for (let i = 0; i < this.length; i++) {
99
+ if (other.eq(this[i])) {
100
+ return i;
101
+ }
102
+ }
103
+ return -1;
104
+ }
105
+ /**
106
+ * @description Returns the base runtime type name for this instance
107
+ */
108
+ toRawType() {
109
+ return `Vec<${this.registry.getClassName(tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f")) || new (tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f"))(this.registry).toRawType()}>`;
109
110
  }
110
- return -1;
111
- }
112
-
113
- /**
114
- * @description Returns the base runtime type name for this instance
115
- */
116
- toRawType() {
117
- return `Vec<${this.registry.getClassName(this.#Type) || new this.#Type(this.registry).toRawType()}>`;
118
- }
119
111
  }
120
- exports.Vec = Vec;
112
+ exports.Vec = Vec;
113
+ _Vec_Type = new WeakMap();
@@ -1,13 +1,7 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.VecAny = void 0;
7
- var _Array = require("../abstract/Array");
8
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
9
- // SPDX-License-Identifier: Apache-2.0
10
-
4
+ const Array_js_1 = require("../abstract/Array.js");
11
5
  /**
12
6
  * @name VecAny
13
7
  * @description
@@ -15,13 +9,13 @@ var _Array = require("../abstract/Array");
15
9
  * a vector, this can be used to manage array-like structures with variable arguments of
16
10
  * any types
17
11
  */
18
- class VecAny extends _Array.AbstractArray {
19
- /**
20
- * @description Returns the base runtime type name for this instance
21
- */
22
- toRawType() {
23
- // FIXME This is basically an any type, cannot instantiate via createType
24
- return 'Vec<Codec>';
25
- }
12
+ class VecAny extends Array_js_1.AbstractArray {
13
+ /**
14
+ * @description Returns the base runtime type name for this instance
15
+ */
16
+ toRawType() {
17
+ // FIXME This is basically an any type, cannot instantiate via createType
18
+ return 'Vec<Codec>';
19
+ }
26
20
  }
27
21
  exports.VecAny = VecAny;