@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/extended/Map.js CHANGED
@@ -1,44 +1,47 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
1
+ var _CodecMap_KeyClass, _CodecMap_ValClass, _CodecMap_type;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
4
3
  import { compactFromU8aLim, compactToU8a, isHex, isObject, isU8a, logger, stringify, u8aConcatStrict, u8aToHex, u8aToU8a } from '@polkadot/util';
5
- import { AbstractArray } from "../abstract/Array.js";
6
- import { Enum } from "../base/Enum.js";
7
- import { Raw } from "../native/Raw.js";
8
- import { Struct } from "../native/Struct.js";
9
- import { compareMap, decodeU8a, sortMap, typeToConstructor } from "../utils/index.js";
4
+ import { AbstractArray } from '../abstract/Array.js';
5
+ import { Enum } from '../base/Enum.js';
6
+ import { Raw } from '../native/Raw.js';
7
+ import { Struct } from '../native/Struct.js';
8
+ import { compareMap, decodeU8a, sortMap, typeToConstructor } from '../utils/index.js';
10
9
  const l = logger('Map');
11
-
12
10
  /** @internal */
13
11
  function decodeMapFromU8a(registry, KeyClass, ValClass, u8a) {
14
- const output = new Map();
15
- const [offset, count] = compactFromU8aLim(u8a);
16
- const types = [];
17
- for (let i = 0; i < count; i++) {
18
- types.push(KeyClass, ValClass);
19
- }
20
- const [values, decodedLength] = decodeU8a(registry, new Array(types.length), u8a.subarray(offset), [types, []]);
21
- for (let i = 0; i < values.length; i += 2) {
22
- output.set(values[i], values[i + 1]);
23
- }
24
- return [KeyClass, ValClass, output, offset + decodedLength];
12
+ const output = new Map();
13
+ const [offset, count] = compactFromU8aLim(u8a);
14
+ const types = [];
15
+ for (let i = 0; i < count; i++) {
16
+ types.push(KeyClass, ValClass);
17
+ }
18
+ const [values, decodedLength] = decodeU8a(registry, new Array(types.length), u8a.subarray(offset), [types, []]);
19
+ for (let i = 0; i < values.length; i += 2) {
20
+ output.set(values[i], values[i + 1]);
21
+ }
22
+ return [KeyClass, ValClass, output, offset + decodedLength];
25
23
  }
26
-
27
24
  /** @internal */
28
25
  function decodeMapFromMap(registry, KeyClass, ValClass, value) {
29
- const output = new Map();
30
- for (const [key, val] of value.entries()) {
31
- const isComplex = KeyClass.prototype instanceof AbstractArray || KeyClass.prototype instanceof Struct || KeyClass.prototype instanceof Enum;
32
- try {
33
- output.set(key instanceof KeyClass ? key : new KeyClass(registry, isComplex && typeof key === 'string' ? JSON.parse(key) : key), val instanceof ValClass ? val : new ValClass(registry, val));
34
- } catch (error) {
35
- l.error('Failed to decode key or value:', error.message);
36
- throw error;
37
- }
38
- }
39
- return [KeyClass, ValClass, output, 0];
26
+ const output = new Map();
27
+ for (const [key, val] of value.entries()) {
28
+ const isComplex = KeyClass.prototype instanceof AbstractArray ||
29
+ KeyClass.prototype instanceof Struct ||
30
+ KeyClass.prototype instanceof Enum;
31
+ try {
32
+ output.set(key instanceof KeyClass
33
+ ? key
34
+ : new KeyClass(registry, isComplex && typeof key === 'string' ? JSON.parse(key) : key), val instanceof ValClass
35
+ ? val
36
+ : new ValClass(registry, val));
37
+ }
38
+ catch (error) {
39
+ l.error('Failed to decode key or value:', error.message);
40
+ throw error;
41
+ }
42
+ }
43
+ return [KeyClass, ValClass, output, 0];
40
44
  }
41
-
42
45
  /**
43
46
  * Decode input to pass into constructor.
44
47
  *
@@ -55,146 +58,142 @@ function decodeMapFromMap(registry, KeyClass, ValClass, value) {
55
58
  * @internal
56
59
  */
57
60
  function decodeMap(registry, keyType, valType, value) {
58
- const KeyClass = typeToConstructor(registry, keyType);
59
- const ValClass = typeToConstructor(registry, valType);
60
- if (!value) {
61
- return [KeyClass, ValClass, new Map(), 0];
62
- } else if (isU8a(value) || isHex(value)) {
63
- return decodeMapFromU8a(registry, KeyClass, ValClass, u8aToU8a(value));
64
- } else if (value instanceof Map) {
65
- return decodeMapFromMap(registry, KeyClass, ValClass, value);
66
- } else if (isObject(value)) {
67
- return decodeMapFromMap(registry, KeyClass, ValClass, new Map(Object.entries(value)));
68
- }
69
- throw new Error('Map: cannot decode type');
61
+ const KeyClass = typeToConstructor(registry, keyType);
62
+ const ValClass = typeToConstructor(registry, valType);
63
+ if (!value) {
64
+ return [KeyClass, ValClass, new Map(), 0];
65
+ }
66
+ else if (isU8a(value) || isHex(value)) {
67
+ return decodeMapFromU8a(registry, KeyClass, ValClass, u8aToU8a(value));
68
+ }
69
+ else if (value instanceof Map) {
70
+ return decodeMapFromMap(registry, KeyClass, ValClass, value);
71
+ }
72
+ else if (isObject(value)) {
73
+ return decodeMapFromMap(registry, KeyClass, ValClass, new Map(Object.entries(value)));
74
+ }
75
+ throw new Error('Map: cannot decode type');
70
76
  }
71
77
  export class CodecMap extends Map {
72
- #KeyClass;
73
- #ValClass;
74
- #type;
75
- constructor(registry, keyType, valType, rawValue, type = 'HashMap') {
76
- const [KeyClass, ValClass, decoded, decodedLength] = decodeMap(registry, keyType, valType, rawValue);
77
- super(type === 'BTreeMap' ? sortMap(decoded) : decoded);
78
- this.registry = registry;
79
- this.initialU8aLength = decodedLength;
80
- this.#KeyClass = KeyClass;
81
- this.#ValClass = ValClass;
82
- this.#type = type;
83
- }
84
-
85
- /**
86
- * @description The length of the value when encoded as a Uint8Array
87
- */
88
- get encodedLength() {
89
- let len = compactToU8a(this.size).length;
90
- for (const [k, v] of this.entries()) {
91
- len += k.encodedLength + v.encodedLength;
92
- }
93
- return len;
94
- }
95
-
96
- /**
97
- * @description Returns a hash of the value
98
- */
99
- get hash() {
100
- return this.registry.hash(this.toU8a());
101
- }
102
-
103
- /**
104
- * @description Checks if the value is an empty value
105
- */
106
- get isEmpty() {
107
- return this.size === 0;
108
- }
109
-
110
- /**
111
- * @description Compares the value of the input to see if there is a match
112
- */
113
- eq(other) {
114
- return compareMap(this, other);
115
- }
116
-
117
- /**
118
- * @description Returns a breakdown of the hex encoding for this Codec
119
- */
120
- inspect() {
121
- const inner = new Array();
122
- for (const [k, v] of this.entries()) {
123
- inner.push(k.inspect());
124
- inner.push(v.inspect());
125
- }
126
- return {
127
- inner,
128
- outer: [compactToU8a(this.size)]
129
- };
130
- }
131
-
132
- /**
133
- * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation
134
- */
135
- toHex() {
136
- return u8aToHex(this.toU8a());
137
- }
138
-
139
- /**
140
- * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
141
- */
142
- toHuman(isExtended) {
143
- const json = {};
144
- for (const [k, v] of this.entries()) {
145
- json[k instanceof Raw && k.isAscii ? k.toUtf8() : k.toString()] = v.toHuman(isExtended);
146
- }
147
- return json;
148
- }
149
-
150
- /**
151
- * @description Converts the Object to JSON, typically used for RPC transfers
152
- */
153
- toJSON() {
154
- const json = {};
155
- for (const [k, v] of this.entries()) {
156
- json[k.toString()] = v.toJSON();
157
- }
158
- return json;
159
- }
160
-
161
- /**
162
- * @description Converts the value in a best-fit primitive form
163
- */
164
- toPrimitive() {
165
- const json = {};
166
- for (const [k, v] of this.entries()) {
167
- json[k instanceof Raw && k.isAscii ? k.toUtf8() : k.toString()] = v.toPrimitive();
168
- }
169
- return json;
170
- }
171
-
172
- /**
173
- * @description Returns the base runtime type name for this instance
174
- */
175
- toRawType() {
176
- return `${this.#type}<${this.registry.getClassName(this.#KeyClass) || new this.#KeyClass(this.registry).toRawType()},${this.registry.getClassName(this.#ValClass) || new this.#ValClass(this.registry).toRawType()}>`;
177
- }
178
-
179
- /**
180
- * @description Returns the string representation of the value
181
- */
182
- toString() {
183
- return stringify(this.toJSON());
184
- }
185
-
186
- /**
187
- * @description Encodes the value as a Uint8Array as per the SCALE specifications
188
- * @param isBare true when the value has none of the type-specific prefixes (internal)
189
- */
190
- toU8a(isBare) {
191
- const encoded = new Array();
192
- if (!isBare) {
193
- encoded.push(compactToU8a(this.size));
194
- }
195
- for (const [k, v] of this.entries()) {
196
- encoded.push(k.toU8a(isBare), v.toU8a(isBare));
197
- }
198
- return u8aConcatStrict(encoded);
199
- }
200
- }
78
+ constructor(registry, keyType, valType, rawValue, type = 'HashMap') {
79
+ const [KeyClass, ValClass, decoded, decodedLength] = decodeMap(registry, keyType, valType, rawValue);
80
+ super(type === 'BTreeMap' ? sortMap(decoded) : decoded);
81
+ _CodecMap_KeyClass.set(this, void 0);
82
+ _CodecMap_ValClass.set(this, void 0);
83
+ _CodecMap_type.set(this, void 0);
84
+ this.registry = registry;
85
+ this.initialU8aLength = decodedLength;
86
+ __classPrivateFieldSet(this, _CodecMap_KeyClass, KeyClass, "f");
87
+ __classPrivateFieldSet(this, _CodecMap_ValClass, ValClass, "f");
88
+ __classPrivateFieldSet(this, _CodecMap_type, type, "f");
89
+ }
90
+ /**
91
+ * @description The length of the value when encoded as a Uint8Array
92
+ */
93
+ get encodedLength() {
94
+ let len = compactToU8a(this.size).length;
95
+ for (const [k, v] of this.entries()) {
96
+ len += k.encodedLength + v.encodedLength;
97
+ }
98
+ return len;
99
+ }
100
+ /**
101
+ * @description Returns a hash of the value
102
+ */
103
+ get hash() {
104
+ return this.registry.hash(this.toU8a());
105
+ }
106
+ /**
107
+ * @description Checks if the value is an empty value
108
+ */
109
+ get isEmpty() {
110
+ return this.size === 0;
111
+ }
112
+ /**
113
+ * @description Compares the value of the input to see if there is a match
114
+ */
115
+ eq(other) {
116
+ return compareMap(this, other);
117
+ }
118
+ /**
119
+ * @description Returns a breakdown of the hex encoding for this Codec
120
+ */
121
+ inspect() {
122
+ const inner = new Array();
123
+ for (const [k, v] of this.entries()) {
124
+ inner.push(k.inspect());
125
+ inner.push(v.inspect());
126
+ }
127
+ return {
128
+ inner,
129
+ outer: [compactToU8a(this.size)]
130
+ };
131
+ }
132
+ /**
133
+ * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation
134
+ */
135
+ toHex() {
136
+ return u8aToHex(this.toU8a());
137
+ }
138
+ /**
139
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
140
+ */
141
+ toHuman(isExtended) {
142
+ const json = {};
143
+ for (const [k, v] of this.entries()) {
144
+ json[k instanceof Raw && k.isAscii
145
+ ? k.toUtf8()
146
+ : k.toString()] = v.toHuman(isExtended);
147
+ }
148
+ return json;
149
+ }
150
+ /**
151
+ * @description Converts the Object to JSON, typically used for RPC transfers
152
+ */
153
+ toJSON() {
154
+ const json = {};
155
+ for (const [k, v] of this.entries()) {
156
+ json[k.toString()] = v.toJSON();
157
+ }
158
+ return json;
159
+ }
160
+ /**
161
+ * @description Converts the value in a best-fit primitive form
162
+ */
163
+ toPrimitive() {
164
+ const json = {};
165
+ for (const [k, v] of this.entries()) {
166
+ json[k instanceof Raw && k.isAscii
167
+ ? k.toUtf8()
168
+ : k.toString()] = v.toPrimitive();
169
+ }
170
+ return json;
171
+ }
172
+ /**
173
+ * @description Returns the base runtime type name for this instance
174
+ */
175
+ toRawType() {
176
+ return `${__classPrivateFieldGet(this, _CodecMap_type, "f")}<${this.registry.getClassName(__classPrivateFieldGet(this, _CodecMap_KeyClass, "f")) || new (__classPrivateFieldGet(this, _CodecMap_KeyClass, "f"))(this.registry).toRawType()},${this.registry.getClassName(__classPrivateFieldGet(this, _CodecMap_ValClass, "f")) || new (__classPrivateFieldGet(this, _CodecMap_ValClass, "f"))(this.registry).toRawType()}>`;
177
+ }
178
+ /**
179
+ * @description Returns the string representation of the value
180
+ */
181
+ toString() {
182
+ return stringify(this.toJSON());
183
+ }
184
+ /**
185
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
186
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
187
+ */
188
+ toU8a(isBare) {
189
+ const encoded = new Array();
190
+ if (!isBare) {
191
+ encoded.push(compactToU8a(this.size));
192
+ }
193
+ for (const [k, v] of this.entries()) {
194
+ encoded.push(k.toU8a(isBare), v.toU8a(isBare));
195
+ }
196
+ return u8aConcatStrict(encoded);
197
+ }
198
+ }
199
+ _CodecMap_KeyClass = new WeakMap(), _CodecMap_ValClass = new WeakMap(), _CodecMap_type = new WeakMap();
@@ -1,7 +1,7 @@
1
1
  import type { HexString } from '@polkadot/util/types';
2
- import type { AnyBool, Inspect, Registry } from '../types';
3
- import { Option } from '../base/Option';
4
- import { bool as Bool } from '../native/Bool';
2
+ import type { AnyBool, Inspect, Registry } from '../types/index.js';
3
+ import { Option } from '../base/Option.js';
4
+ import { bool as Bool } from '../native/Bool.js';
5
5
  /**
6
6
  * @name OptionBool
7
7
  * @description A specific implementation of Option<bool> than allows for single-byte encoding
@@ -1,72 +1,72 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
1
  import { isHex, isU8a, u8aToU8a } from '@polkadot/util';
5
- import { Option } from "../base/Option.js";
6
- import { bool as Bool } from "../native/Bool.js";
2
+ import { Option } from '../base/Option.js';
3
+ import { bool as Bool } from '../native/Bool.js';
7
4
  function decodeU8a(registry, value) {
8
- // Encoded as -
9
- // - 0 = None
10
- // - 1 = True
11
- // - 2 = False
12
- return value[0] === 0 ? null : new Bool(registry, value[0] === 1);
5
+ // Encoded as -
6
+ // - 0 = None
7
+ // - 1 = True
8
+ // - 2 = False
9
+ return value[0] === 0
10
+ ? null
11
+ : new Bool(registry, value[0] === 1);
13
12
  }
14
-
15
13
  /**
16
14
  * @name OptionBool
17
15
  * @description A specific implementation of Option<bool> than allows for single-byte encoding
18
16
  */
19
17
  export class OptionBool extends Option {
20
- constructor(registry, value) {
21
- super(registry, Bool, isU8a(value) || isHex(value) ? decodeU8a(registry, u8aToU8a(value)) : value);
22
- this.initialU8aLength = 1;
23
- }
24
-
25
- /**
26
- * @description The length of the value when encoded as a Uint8Array
27
- */
28
- get encodedLength() {
29
- return 1;
30
- }
31
-
32
- /**
33
- * @description Checks if the value is an empty value (always false)
34
- */
35
- get isFalse() {
36
- return this.isSome ? !this.value.valueOf() : false;
37
- }
38
-
39
- /**
40
- * @description Checks if the value is an empty value (always false)
41
- */
42
- get isTrue() {
43
- return this.isSome ? this.value.valueOf() : false;
44
- }
45
-
46
- /**
47
- * @description Returns a breakdown of the hex encoding for this Codec
48
- */
49
- inspect() {
50
- return {
51
- outer: [this.toU8a()]
52
- };
53
- }
54
-
55
- /**
56
- * @description Returns the base runtime type name for this instance
57
- */
58
- toRawType(isBare) {
59
- return isBare ? 'bool' : 'Option<bool>';
60
- }
61
-
62
- /**
63
- * @description Encodes the value as a Uint8Array as per the SCALE specifications
64
- * @param isBare true when the value has none of the type-specific prefixes (internal)
65
- */
66
- toU8a(isBare) {
67
- if (isBare) {
68
- return super.toU8a(true);
18
+ constructor(registry, value) {
19
+ super(registry, Bool, isU8a(value) || isHex(value)
20
+ ? decodeU8a(registry, u8aToU8a(value))
21
+ : value);
22
+ this.initialU8aLength = 1;
23
+ }
24
+ /**
25
+ * @description The length of the value when encoded as a Uint8Array
26
+ */
27
+ get encodedLength() {
28
+ return 1;
29
+ }
30
+ /**
31
+ * @description Checks if the value is an empty value (always false)
32
+ */
33
+ get isFalse() {
34
+ return this.isSome
35
+ ? !this.value.valueOf()
36
+ : false;
37
+ }
38
+ /**
39
+ * @description Checks if the value is an empty value (always false)
40
+ */
41
+ get isTrue() {
42
+ return this.isSome
43
+ ? this.value.valueOf()
44
+ : false;
45
+ }
46
+ /**
47
+ * @description Returns a breakdown of the hex encoding for this Codec
48
+ */
49
+ inspect() {
50
+ return { outer: [this.toU8a()] };
51
+ }
52
+ /**
53
+ * @description Returns the base runtime type name for this instance
54
+ */
55
+ toRawType(isBare) {
56
+ return isBare
57
+ ? 'bool'
58
+ : 'Option<bool>';
59
+ }
60
+ /**
61
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
62
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
63
+ */
64
+ toU8a(isBare) {
65
+ if (isBare) {
66
+ return super.toU8a(true);
67
+ }
68
+ return this.isSome
69
+ ? new Uint8Array([this.isTrue ? 1 : 2])
70
+ : new Uint8Array([0]);
69
71
  }
70
- return this.isSome ? new Uint8Array([this.isTrue ? 1 : 2]) : new Uint8Array([0]);
71
- }
72
72
  }
@@ -1,5 +1,5 @@
1
- import type { AnyTuple, CodecClass, INumber, Registry } from '../types';
2
- import { Tuple } from '../base/Tuple';
1
+ import type { AnyTuple, CodecClass, INumber, Registry } from '../types/index.js';
2
+ import { Tuple } from '../base/Tuple.js';
3
3
  type RangeType = 'Range' | 'RangeInclusive';
4
4
  interface Options {
5
5
  rangeName?: RangeType;
package/extended/Range.js CHANGED
@@ -1,46 +1,41 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import { Tuple } from "../base/Tuple.js";
1
+ var _Range_rangeName;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { Tuple } from '../base/Tuple.js';
5
4
  /**
6
5
  * @name Range
7
6
  * @description
8
7
  * Rust `Range<T>` representation
9
8
  */
10
9
  export class Range extends Tuple {
11
- #rangeName;
12
- constructor(registry, Type, value, {
13
- rangeName = 'Range'
14
- } = {}) {
15
- super(registry, [Type, Type], value);
16
- this.#rangeName = rangeName;
17
- }
18
- static with(Type) {
19
- return class extends Range {
20
- constructor(registry, value) {
21
- super(registry, Type, value);
22
- }
23
- };
24
- }
25
-
26
- /**
27
- * @description Returns the starting range value
28
- */
29
- get start() {
30
- return this[0];
31
- }
32
-
33
- /**
34
- * @description Returns the ending range value
35
- */
36
- get end() {
37
- return this[1];
38
- }
39
-
40
- /**
41
- * @description Returns the base runtime type name for this instance
42
- */
43
- toRawType() {
44
- return `${this.#rangeName}<${this.start.toRawType()}>`;
45
- }
46
- }
10
+ constructor(registry, Type, value, { rangeName = 'Range' } = {}) {
11
+ super(registry, [Type, Type], value);
12
+ _Range_rangeName.set(this, void 0);
13
+ __classPrivateFieldSet(this, _Range_rangeName, rangeName, "f");
14
+ }
15
+ static with(Type) {
16
+ return class extends Range {
17
+ constructor(registry, value) {
18
+ super(registry, Type, value);
19
+ }
20
+ };
21
+ }
22
+ /**
23
+ * @description Returns the starting range value
24
+ */
25
+ get start() {
26
+ return this[0];
27
+ }
28
+ /**
29
+ * @description Returns the ending range value
30
+ */
31
+ get end() {
32
+ return this[1];
33
+ }
34
+ /**
35
+ * @description Returns the base runtime type name for this instance
36
+ */
37
+ toRawType() {
38
+ return `${__classPrivateFieldGet(this, _Range_rangeName, "f")}<${this.start.toRawType()}>`;
39
+ }
40
+ }
41
+ _Range_rangeName = new WeakMap();
@@ -1,5 +1,5 @@
1
- import type { AnyTuple, CodecClass, INumber, Registry } from '../types';
2
- import { Range } from './Range';
1
+ import type { AnyTuple, CodecClass, INumber, Registry } from '../types/index.js';
2
+ import { Range } from './Range.js';
3
3
  export declare class RangeInclusive<T extends INumber = INumber> extends Range<T> {
4
4
  constructor(registry: Registry, Type: CodecClass<T> | string, value?: AnyTuple);
5
5
  static with<T extends INumber>(Type: CodecClass<T> | string): CodecClass<RangeInclusive<T>>;
@@ -1,18 +1,13 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import { Range } from "./Range.js";
1
+ import { Range } from './Range.js';
5
2
  export class RangeInclusive extends Range {
6
- constructor(registry, Type, value) {
7
- super(registry, Type, value, {
8
- rangeName: 'RangeInclusive'
9
- });
10
- }
11
- static with(Type) {
12
- return class extends RangeInclusive {
13
- constructor(registry, value) {
14
- super(registry, Type, value);
15
- }
16
- };
17
- }
3
+ constructor(registry, Type, value) {
4
+ super(registry, Type, value, { rangeName: 'RangeInclusive' });
5
+ }
6
+ static with(Type) {
7
+ return class extends RangeInclusive {
8
+ constructor(registry, value) {
9
+ super(registry, Type, value);
10
+ }
11
+ };
12
+ }
18
13
  }