@polkadot/types-codec 9.14.1 → 10.0.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 (157) hide show
  1. package/abstract/Array.js +140 -155
  2. package/abstract/Base.js +95 -112
  3. package/abstract/Int.js +212 -220
  4. package/abstract/Object.js +34 -45
  5. package/abstract/index.js +3 -6
  6. package/base/Compact.js +149 -165
  7. package/base/DoNotConstruct.js +61 -64
  8. package/base/Enum.js +345 -382
  9. package/base/Int.js +14 -18
  10. package/base/Null.js +71 -82
  11. package/base/Option.js +217 -226
  12. package/base/Result.js +54 -67
  13. package/base/Tuple.js +96 -101
  14. package/base/UInt.js +11 -15
  15. package/base/Vec.js +84 -89
  16. package/base/VecAny.js +8 -12
  17. package/base/VecFixed.js +59 -70
  18. package/base/index.js +12 -15
  19. package/bundle.js +7 -10
  20. package/cjs/abstract/Array.js +138 -159
  21. package/cjs/abstract/Base.js +96 -117
  22. package/cjs/abstract/Int.js +215 -238
  23. package/cjs/abstract/Object.js +30 -49
  24. package/cjs/abstract/index.js +8 -25
  25. package/cjs/base/Compact.js +151 -173
  26. package/cjs/base/DoNotConstruct.js +63 -70
  27. package/cjs/base/Enum.js +350 -396
  28. package/cjs/base/Int.js +16 -24
  29. package/cjs/base/Null.js +70 -86
  30. package/cjs/base/Option.js +220 -234
  31. package/cjs/base/Result.js +56 -71
  32. package/cjs/base/Tuple.js +103 -109
  33. package/cjs/base/UInt.js +13 -19
  34. package/cjs/base/Vec.js +94 -101
  35. package/cjs/base/VecAny.js +10 -16
  36. package/cjs/base/VecFixed.js +66 -79
  37. package/cjs/base/index.js +26 -88
  38. package/cjs/bundle.js +11 -86
  39. package/cjs/detectOther.js +2 -10
  40. package/cjs/detectPackage.js +6 -11
  41. package/cjs/extended/BTreeMap.js +10 -16
  42. package/cjs/extended/BTreeSet.js +162 -178
  43. package/cjs/extended/BitVec.js +70 -77
  44. package/cjs/extended/Bytes.js +59 -62
  45. package/cjs/extended/HashMap.js +10 -16
  46. package/cjs/extended/Linkage.js +50 -60
  47. package/cjs/extended/Map.js +176 -181
  48. package/cjs/extended/OptionBool.js +65 -68
  49. package/cjs/extended/Range.js +37 -46
  50. package/cjs/extended/RangeInclusive.js +13 -21
  51. package/cjs/extended/Type.js +14 -22
  52. package/cjs/extended/U8aFixed.js +33 -43
  53. package/cjs/extended/WrapperKeepOpaque.js +99 -99
  54. package/cjs/extended/WrapperOpaque.js +19 -28
  55. package/cjs/extended/index.js +31 -108
  56. package/cjs/index.js +3 -15
  57. package/cjs/native/Bool.js +101 -116
  58. package/cjs/native/Date.js +125 -151
  59. package/cjs/native/Float.js +95 -114
  60. package/cjs/native/Json.js +102 -124
  61. package/cjs/native/Raw.js +128 -150
  62. package/cjs/native/Set.js +200 -220
  63. package/cjs/native/Struct.data.js +2 -9
  64. package/cjs/native/Struct.js +238 -251
  65. package/cjs/native/Text.js +137 -149
  66. package/cjs/native/index.js +21 -78
  67. package/cjs/packageInfo.js +2 -16
  68. package/cjs/primitive/F32.js +8 -11
  69. package/cjs/primitive/F64.js +8 -11
  70. package/cjs/primitive/I128.js +8 -11
  71. package/cjs/primitive/I16.js +8 -11
  72. package/cjs/primitive/I256.js +8 -11
  73. package/cjs/primitive/I32.js +8 -11
  74. package/cjs/primitive/I64.js +8 -11
  75. package/cjs/primitive/I8.js +8 -11
  76. package/cjs/primitive/U128.js +8 -11
  77. package/cjs/primitive/U16.js +8 -11
  78. package/cjs/primitive/U256.js +8 -11
  79. package/cjs/primitive/U32.js +8 -11
  80. package/cjs/primitive/U64.js +8 -11
  81. package/cjs/primitive/U8.js +8 -11
  82. package/cjs/primitive/USize.js +7 -13
  83. package/cjs/primitive/index.js +47 -199
  84. package/cjs/types/codec.js +2 -1
  85. package/cjs/types/helpers.js +2 -1
  86. package/cjs/types/index.js +6 -48
  87. package/cjs/types/interfaces.js +2 -1
  88. package/cjs/types/registry.js +2 -1
  89. package/cjs/utils/compareArray.js +12 -17
  90. package/cjs/utils/compareMap.js +23 -26
  91. package/cjs/utils/compareSet.js +17 -23
  92. package/cjs/utils/decodeU8a.js +63 -74
  93. package/cjs/utils/index.js +24 -91
  94. package/cjs/utils/mapToTypeMap.js +13 -18
  95. package/cjs/utils/sanitize.js +198 -204
  96. package/cjs/utils/sortValues.js +39 -49
  97. package/cjs/utils/typeToConstructor.js +8 -11
  98. package/cjs/utils/typesToMap.js +10 -16
  99. package/cjs/utils/util.js +6 -11
  100. package/detectOther.js +0 -5
  101. package/detectPackage.js +2 -7
  102. package/extended/BTreeMap.js +8 -11
  103. package/extended/BTreeSet.js +159 -171
  104. package/extended/BitVec.js +63 -70
  105. package/extended/Bytes.js +56 -57
  106. package/extended/HashMap.js +8 -11
  107. package/extended/Linkage.js +46 -51
  108. package/extended/Map.js +173 -173
  109. package/extended/OptionBool.js +62 -62
  110. package/extended/Range.js +31 -39
  111. package/extended/RangeInclusive.js +11 -16
  112. package/extended/Type.js +12 -17
  113. package/extended/U8aFixed.js +30 -36
  114. package/extended/WrapperKeepOpaque.js +92 -91
  115. package/extended/WrapperOpaque.js +17 -23
  116. package/extended/index.js +14 -17
  117. package/index.js +2 -5
  118. package/native/Bool.js +102 -111
  119. package/native/Date.js +126 -144
  120. package/native/Float.js +94 -107
  121. package/native/Json.js +104 -114
  122. package/native/Raw.js +130 -146
  123. package/native/Set.js +194 -209
  124. package/native/Struct.data.js +0 -3
  125. package/native/Struct.js +233 -241
  126. package/native/Text.js +135 -143
  127. package/native/index.js +8 -11
  128. package/package.json +8 -5
  129. package/packageInfo.js +1 -11
  130. package/primitive/F32.js +3 -7
  131. package/primitive/F64.js +3 -7
  132. package/primitive/I128.js +3 -7
  133. package/primitive/I16.js +3 -7
  134. package/primitive/I256.js +3 -7
  135. package/primitive/I32.js +3 -7
  136. package/primitive/I64.js +3 -7
  137. package/primitive/I8.js +3 -7
  138. package/primitive/U128.js +3 -7
  139. package/primitive/U16.js +3 -7
  140. package/primitive/U256.js +3 -7
  141. package/primitive/U32.js +3 -7
  142. package/primitive/U64.js +3 -7
  143. package/primitive/U8.js +3 -7
  144. package/primitive/USize.js +5 -9
  145. package/primitive/index.js +15 -18
  146. package/types/index.js +4 -7
  147. package/utils/compareArray.js +7 -11
  148. package/utils/compareMap.js +18 -19
  149. package/utils/compareSet.js +12 -16
  150. package/utils/decodeU8a.js +54 -61
  151. package/utils/index.js +9 -12
  152. package/utils/mapToTypeMap.js +9 -13
  153. package/utils/sanitize.js +182 -185
  154. package/utils/sortValues.js +32 -36
  155. package/utils/typeToConstructor.js +3 -4
  156. package/utils/typesToMap.js +5 -8
  157. package/utils/util.js +1 -4
package/cjs/native/Set.js CHANGED
@@ -1,74 +1,68 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ var _CodecSet_allowed, _CodecSet_byteLength;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
6
4
  exports.CodecSet = void 0;
7
- var _util = require("@polkadot/util");
8
- var _utils = require("../utils");
9
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
10
- // SPDX-License-Identifier: Apache-2.0
11
-
5
+ const tslib_1 = require("tslib");
6
+ const util_1 = require("@polkadot/util");
7
+ const utils_1 = require("../utils");
12
8
  function encodeSet(setValues, values) {
13
- const encoded = new _util.BN(0);
14
- for (let i = 0; i < values.length; i++) {
15
- encoded.ior((0, _util.bnToBn)(setValues[values[i]] || 0));
16
- }
17
- return encoded;
9
+ const encoded = new util_1.BN(0);
10
+ for (let i = 0; i < values.length; i++) {
11
+ encoded.ior((0, util_1.bnToBn)(setValues[values[i]] || 0));
12
+ }
13
+ return encoded;
18
14
  }
19
-
20
15
  /** @internal */
21
16
  function decodeSetArray(setValues, values) {
22
- const result = new Array(values.length);
23
- for (let i = 0; i < values.length; i++) {
24
- const key = values[i];
25
- if ((0, _util.isUndefined)(setValues[key])) {
26
- throw new Error(`Set: Invalid key '${key}' passed to Set, allowed ${Object.keys(setValues).join(', ')}`);
27
- }
28
- result[i] = key;
29
- }
30
- return result;
17
+ const result = new Array(values.length);
18
+ for (let i = 0; i < values.length; i++) {
19
+ const key = values[i];
20
+ if ((0, util_1.isUndefined)(setValues[key])) {
21
+ throw new Error(`Set: Invalid key '${key}' passed to Set, allowed ${Object.keys(setValues).join(', ')}`);
22
+ }
23
+ result[i] = key;
24
+ }
25
+ return result;
31
26
  }
32
-
33
27
  /** @internal */
34
28
  function decodeSetNumber(setValues, _value) {
35
- const bn = (0, _util.bnToBn)(_value);
36
- const keys = Object.keys(setValues);
37
- const result = [];
38
- for (let i = 0; i < keys.length; i++) {
39
- const key = keys[i];
40
- if (bn.and((0, _util.bnToBn)(setValues[key])).eq((0, _util.bnToBn)(setValues[key]))) {
41
- result.push(key);
42
- }
43
- }
44
- const computed = encodeSet(setValues, result);
45
- if (!bn.eq(computed)) {
46
- throw new Error(`Set: Mismatch decoding '${bn.toString()}', computed as '${computed.toString()}' with ${result.join(', ')}`);
47
- }
48
- return result;
29
+ const bn = (0, util_1.bnToBn)(_value);
30
+ const keys = Object.keys(setValues);
31
+ const result = [];
32
+ for (let i = 0; i < keys.length; i++) {
33
+ const key = keys[i];
34
+ if (bn.and((0, util_1.bnToBn)(setValues[key])).eq((0, util_1.bnToBn)(setValues[key]))) {
35
+ result.push(key);
36
+ }
37
+ }
38
+ const computed = encodeSet(setValues, result);
39
+ if (!bn.eq(computed)) {
40
+ throw new Error(`Set: Mismatch decoding '${bn.toString()}', computed as '${computed.toString()}' with ${result.join(', ')}`);
41
+ }
42
+ return result;
49
43
  }
50
-
51
44
  /** @internal */
52
- function decodeSet(setValues) {
53
- let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
54
- let bitLength = arguments.length > 2 ? arguments[2] : undefined;
55
- if (bitLength % 8 !== 0) {
56
- throw new Error(`Expected valid bitLength, power of 8, found ${bitLength}`);
57
- }
58
- const byteLength = bitLength / 8;
59
- if ((0, _util.isU8a)(value)) {
60
- return value.length === 0 ? [] : decodeSetNumber(setValues, (0, _util.u8aToBn)(value.subarray(0, byteLength), {
61
- isLe: true
62
- }));
63
- } else if ((0, _util.isString)(value)) {
64
- return decodeSet(setValues, (0, _util.u8aToU8a)(value), byteLength);
65
- } else if (value instanceof Set || Array.isArray(value)) {
66
- const input = Array.isArray(value) ? value : [...value.values()];
67
- return decodeSetArray(setValues, input);
68
- }
69
- return decodeSetNumber(setValues, value);
45
+ function decodeSet(setValues, value = 0, bitLength) {
46
+ if (bitLength % 8 !== 0) {
47
+ throw new Error(`Expected valid bitLength, power of 8, found ${bitLength}`);
48
+ }
49
+ const byteLength = bitLength / 8;
50
+ if ((0, util_1.isU8a)(value)) {
51
+ return value.length === 0
52
+ ? []
53
+ : decodeSetNumber(setValues, (0, util_1.u8aToBn)(value.subarray(0, byteLength), { isLe: true }));
54
+ }
55
+ else if ((0, util_1.isString)(value)) {
56
+ return decodeSet(setValues, (0, util_1.u8aToU8a)(value), byteLength);
57
+ }
58
+ else if (value instanceof Set || Array.isArray(value)) {
59
+ const input = Array.isArray(value)
60
+ ? value
61
+ : [...value.values()];
62
+ return decodeSetArray(setValues, input);
63
+ }
64
+ return decodeSetNumber(setValues, value);
70
65
  }
71
-
72
66
  /**
73
67
  * @name Set
74
68
  * @description
@@ -76,165 +70,151 @@ function decodeSet(setValues) {
76
70
  * a bitwise representation of the values.
77
71
  */
78
72
  class CodecSet extends Set {
79
- #allowed;
80
- #byteLength;
81
- constructor(registry, setValues, value) {
82
- let bitLength = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;
83
- super(decodeSet(setValues, value, bitLength));
84
- this.registry = registry;
85
- this.#allowed = setValues;
86
- this.#byteLength = bitLength / 8;
87
- }
88
- static with(values, bitLength) {
89
- var _class;
90
- return _class = class extends CodecSet {
91
- constructor(registry, value) {
92
- super(registry, values, value, bitLength);
93
- }
94
- }, (() => {
95
- const keys = Object.keys(values);
96
- const isKeys = new Array(keys.length);
97
- for (let i = 0; i < keys.length; i++) {
98
- isKeys[i] = `is${(0, _util.stringPascalCase)(keys[i])}`;
99
- }
100
- (0, _util.objectProperties)(_class.prototype, isKeys, (_, i, self) => self.strings.includes(keys[i]));
101
- })(), _class;
102
- }
103
-
104
- /**
105
- * @description The length of the value when encoded as a Uint8Array
106
- */
107
- get encodedLength() {
108
- return this.#byteLength;
109
- }
110
-
111
- /**
112
- * @description returns a hash of the contents
113
- */
114
- get hash() {
115
- return this.registry.hash(this.toU8a());
116
- }
117
-
118
- /**
119
- * @description true is the Set contains no values
120
- */
121
- get isEmpty() {
122
- return this.size === 0;
123
- }
124
-
125
- /**
126
- * @description The actual set values as a string[]
127
- */
128
- get strings() {
129
- return [...super.values()];
130
- }
131
-
132
- /**
133
- * @description The encoded value for the set members
134
- */
135
- get valueEncoded() {
136
- return encodeSet(this.#allowed, this.strings);
137
- }
138
-
139
- /**
140
- * @description adds a value to the Set (extended to allow for validity checking)
141
- */
142
- add = key => {
143
- // ^^^ add = () property done to assign this instance's this, otherwise Set.add creates "some" chaos
144
- // we have the isUndefined(this._setValues) in here as well, add is used internally
145
- // in the Set constructor (so it is undefined at this point, and should allow)
146
- if (this.#allowed && (0, _util.isUndefined)(this.#allowed[key])) {
147
- throw new Error(`Set: Invalid key '${key}' on add`);
148
- }
149
- super.add(key);
150
- return this;
151
- };
152
-
153
- /**
154
- * @description Compares the value of the input to see if there is a match
155
- */
156
- eq(other) {
157
- if (Array.isArray(other)) {
158
- // we don't actually care about the order, sort the values
159
- return (0, _utils.compareArray)(this.strings.sort(), other.sort());
160
- } else if (other instanceof Set) {
161
- return this.eq([...other.values()]);
162
- } else if ((0, _util.isNumber)(other) || (0, _util.isBn)(other)) {
163
- return this.valueEncoded.eq((0, _util.bnToBn)(other));
164
- }
165
- return false;
166
- }
167
-
168
- /**
169
- * @description Returns a breakdown of the hex encoding for this Codec
170
- */
171
- inspect() {
172
- return {
173
- outer: [this.toU8a()]
174
- };
175
- }
176
-
177
- /**
178
- * @description Returns a hex string representation of the value
179
- */
180
- toHex() {
181
- return (0, _util.u8aToHex)(this.toU8a());
182
- }
183
-
184
- /**
185
- * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
186
- */
187
- toHuman() {
188
- return this.toJSON();
189
- }
190
-
191
- /**
192
- * @description Converts the Object to JSON, typically used for RPC transfers
193
- */
194
- toJSON() {
195
- return this.strings;
196
- }
197
-
198
- /**
199
- * @description The encoded value for the set members
200
- */
201
- toNumber() {
202
- return this.valueEncoded.toNumber();
203
- }
204
-
205
- /**
206
- * @description Converts the value in a best-fit primitive form
207
- */
208
- toPrimitive() {
209
- return this.toJSON();
210
- }
211
-
212
- /**
213
- * @description Returns the base runtime type name for this instance
214
- */
215
- toRawType() {
216
- return (0, _util.stringify)({
217
- _set: this.#allowed
218
- });
219
- }
220
-
221
- /**
222
- * @description Returns the string representation of the value
223
- */
224
- toString() {
225
- return `[${this.strings.join(', ')}]`;
226
- }
227
-
228
- /**
229
- * @description Encodes the value as a Uint8Array as per the SCALE specifications
230
- * @param isBare true when the value has none of the type-specific prefixes (internal)
231
- */
232
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
233
- toU8a(isBare) {
234
- return (0, _util.bnToU8a)(this.valueEncoded, {
235
- bitLength: this.#byteLength * 8,
236
- isLe: true
237
- });
238
- }
73
+ constructor(registry, setValues, value, bitLength = 8) {
74
+ super(decodeSet(setValues, value, bitLength));
75
+ _CodecSet_allowed.set(this, void 0);
76
+ _CodecSet_byteLength.set(this, void 0);
77
+ /**
78
+ * @description adds a value to the Set (extended to allow for validity checking)
79
+ */
80
+ this.add = (key) => {
81
+ // ^^^ add = () property done to assign this instance's this, otherwise Set.add creates "some" chaos
82
+ // we have the isUndefined(this._setValues) in here as well, add is used internally
83
+ // in the Set constructor (so it is undefined at this point, and should allow)
84
+ if (tslib_1.__classPrivateFieldGet(this, _CodecSet_allowed, "f") && (0, util_1.isUndefined)(tslib_1.__classPrivateFieldGet(this, _CodecSet_allowed, "f")[key])) {
85
+ throw new Error(`Set: Invalid key '${key}' on add`);
86
+ }
87
+ super.add(key);
88
+ return this;
89
+ };
90
+ this.registry = registry;
91
+ tslib_1.__classPrivateFieldSet(this, _CodecSet_allowed, setValues, "f");
92
+ tslib_1.__classPrivateFieldSet(this, _CodecSet_byteLength, bitLength / 8, "f");
93
+ }
94
+ static with(values, bitLength) {
95
+ var _a;
96
+ return _a = class extends CodecSet {
97
+ constructor(registry, value) {
98
+ super(registry, values, value, bitLength);
99
+ }
100
+ },
101
+ (() => {
102
+ const keys = Object.keys(values);
103
+ const isKeys = new Array(keys.length);
104
+ for (let i = 0; i < keys.length; i++) {
105
+ isKeys[i] = `is${(0, util_1.stringPascalCase)(keys[i])}`;
106
+ }
107
+ (0, util_1.objectProperties)(_a.prototype, isKeys, (_, i, self) => self.strings.includes(keys[i]));
108
+ })(),
109
+ _a;
110
+ }
111
+ /**
112
+ * @description The length of the value when encoded as a Uint8Array
113
+ */
114
+ get encodedLength() {
115
+ return tslib_1.__classPrivateFieldGet(this, _CodecSet_byteLength, "f");
116
+ }
117
+ /**
118
+ * @description returns a hash of the contents
119
+ */
120
+ get hash() {
121
+ return this.registry.hash(this.toU8a());
122
+ }
123
+ /**
124
+ * @description true is the Set contains no values
125
+ */
126
+ get isEmpty() {
127
+ return this.size === 0;
128
+ }
129
+ /**
130
+ * @description The actual set values as a string[]
131
+ */
132
+ get strings() {
133
+ return [...super.values()];
134
+ }
135
+ /**
136
+ * @description The encoded value for the set members
137
+ */
138
+ get valueEncoded() {
139
+ return encodeSet(tslib_1.__classPrivateFieldGet(this, _CodecSet_allowed, "f"), this.strings);
140
+ }
141
+ /**
142
+ * @description Compares the value of the input to see if there is a match
143
+ */
144
+ eq(other) {
145
+ if (Array.isArray(other)) {
146
+ // we don't actually care about the order, sort the values
147
+ return (0, utils_1.compareArray)(this.strings.sort(), other.sort());
148
+ }
149
+ else if (other instanceof Set) {
150
+ return this.eq([...other.values()]);
151
+ }
152
+ else if ((0, util_1.isNumber)(other) || (0, util_1.isBn)(other)) {
153
+ return this.valueEncoded.eq((0, util_1.bnToBn)(other));
154
+ }
155
+ return false;
156
+ }
157
+ /**
158
+ * @description Returns a breakdown of the hex encoding for this Codec
159
+ */
160
+ inspect() {
161
+ return {
162
+ outer: [this.toU8a()]
163
+ };
164
+ }
165
+ /**
166
+ * @description Returns a hex string representation of the value
167
+ */
168
+ toHex() {
169
+ return (0, util_1.u8aToHex)(this.toU8a());
170
+ }
171
+ /**
172
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
173
+ */
174
+ toHuman() {
175
+ return this.toJSON();
176
+ }
177
+ /**
178
+ * @description Converts the Object to JSON, typically used for RPC transfers
179
+ */
180
+ toJSON() {
181
+ return this.strings;
182
+ }
183
+ /**
184
+ * @description The encoded value for the set members
185
+ */
186
+ toNumber() {
187
+ return this.valueEncoded.toNumber();
188
+ }
189
+ /**
190
+ * @description Converts the value in a best-fit primitive form
191
+ */
192
+ toPrimitive() {
193
+ return this.toJSON();
194
+ }
195
+ /**
196
+ * @description Returns the base runtime type name for this instance
197
+ */
198
+ toRawType() {
199
+ return (0, util_1.stringify)({ _set: tslib_1.__classPrivateFieldGet(this, _CodecSet_allowed, "f") });
200
+ }
201
+ /**
202
+ * @description Returns the string representation of the value
203
+ */
204
+ toString() {
205
+ return `[${this.strings.join(', ')}]`;
206
+ }
207
+ /**
208
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
209
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
210
+ */
211
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
212
+ toU8a(isBare) {
213
+ return (0, util_1.bnToU8a)(this.valueEncoded, {
214
+ bitLength: tslib_1.__classPrivateFieldGet(this, _CodecSet_byteLength, "f") * 8,
215
+ isLe: true
216
+ });
217
+ }
239
218
  }
240
- exports.CodecSet = CodecSet;
219
+ exports.CodecSet = CodecSet;
220
+ _CodecSet_allowed = new WeakMap(), _CodecSet_byteLength = new WeakMap();