@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/native/Raw.js CHANGED
@@ -1,8 +1,4 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
1
  import { isAscii, isUndefined, isUtf8, u8aToHex, u8aToString, u8aToU8a } from '@polkadot/util';
5
-
6
2
  /**
7
3
  * @name Raw
8
4
  * @description
@@ -13,146 +9,134 @@ import { isAscii, isUndefined, isUtf8, u8aToHex, u8aToString, u8aToU8a } from '@
13
9
  * @noInheritDoc
14
10
  */
15
11
  export class Raw extends Uint8Array {
16
- /**
17
- * @description This ensures that operators such as clice, filter, map, etc. return
18
- * new Array instances (without this we need to apply overrides)
19
- */
20
- static get [Symbol.species]() {
21
- return Uint8Array;
22
- }
23
- constructor(registry, value, initialU8aLength) {
24
- super(u8aToU8a(value));
25
- this.registry = registry;
26
- this.initialU8aLength = initialU8aLength;
27
- }
28
-
29
- /**
30
- * @description The length of the value when encoded as a Uint8Array
31
- */
32
- get encodedLength() {
33
- return this.length;
34
- }
35
-
36
- /**
37
- * @description returns a hash of the contents
38
- */
39
- get hash() {
40
- return this.registry.hash(this.toU8a());
41
- }
42
-
43
- /**
44
- * @description Returns true if the wrapped value contains only ASCII printable characters
45
- */
46
- get isAscii() {
47
- return isAscii(this);
48
- }
49
-
50
- /**
51
- * @description Returns true if the type wraps an empty/default all-0 value
52
- */
53
- get isEmpty() {
54
- return !this.length || isUndefined(this.find(b => !!b));
55
- }
56
-
57
- /**
58
- * @description Returns true if the wrapped value contains only utf8 characters
59
- */
60
- get isUtf8() {
61
- return isUtf8(this);
62
- }
63
-
64
- /**
65
- * @description Returns the number of bits in the value
66
- */
67
- bitLength() {
68
- return this.length * 8;
69
- }
70
-
71
- /**
72
- * @description Compares the value of the input to see if there is a match
73
- */
74
- eq(other) {
75
- if (other instanceof Uint8Array) {
76
- return this.length === other.length && !this.some((b, index) => b !== other[index]);
77
- }
78
- return this.eq(u8aToU8a(other));
79
- }
80
-
81
- /**
82
- * @description Returns a breakdown of the hex encoding for this Codec
83
- */
84
- inspect() {
85
- return {
86
- outer: [this.toU8a()]
87
- };
88
- }
89
-
90
- /**
91
- * @description Returns a hex string representation of the value
92
- */
93
- toHex() {
94
- return u8aToHex(this);
95
- }
96
-
97
- /**
98
- * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
99
- */
100
- toHuman() {
101
- return this.toPrimitive();
102
- }
103
-
104
- /**
105
- * @description Converts the Object to JSON, typically used for RPC transfers
106
- */
107
- toJSON() {
108
- return this.toHex();
109
- }
110
-
111
- /**
112
- * @description Converts the value in a best-fit primitive form
113
- */
114
- toPrimitive() {
115
- if (this.isAscii) {
116
- const text = this.toUtf8();
117
-
118
- // ensure we didn't end up with multibyte codepoints
119
- if (isAscii(text)) {
120
- return text;
121
- }
122
- }
123
- return this.toJSON();
124
- }
125
-
126
- /**
127
- * @description Returns the base runtime type name for this instance
128
- */
129
- toRawType() {
130
- return 'Raw';
131
- }
132
-
133
- /**
134
- * @description Returns the string representation of the value
135
- */
136
- toString() {
137
- return this.toHex();
138
- }
139
-
140
- /**
141
- * @description Encodes the value as a Uint8Array as per the SCALE specifications
142
- * @param isBare true when the value has none of the type-specific prefixes (internal)
143
- */
144
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
145
- toU8a(isBare) {
146
- return Uint8Array.from(this);
147
- }
148
-
149
- /**
150
- * @description Returns the wrapped data as a UTF-8 string
151
- */
152
- toUtf8() {
153
- if (!this.isUtf8) {
154
- throw new Error('The character sequence is not a valid Utf8 string');
155
- }
156
- return u8aToString(this);
157
- }
12
+ registry;
13
+ createdAtHash;
14
+ initialU8aLength;
15
+ isStorageFallback;
16
+ /**
17
+ * @description This ensures that operators such as clice, filter, map, etc. return
18
+ * new Array instances (without this we need to apply overrides)
19
+ */
20
+ static get [Symbol.species]() {
21
+ return Uint8Array;
22
+ }
23
+ constructor(registry, value, initialU8aLength) {
24
+ super(u8aToU8a(value));
25
+ this.registry = registry;
26
+ this.initialU8aLength = initialU8aLength;
27
+ }
28
+ /**
29
+ * @description The length of the value when encoded as a Uint8Array
30
+ */
31
+ get encodedLength() {
32
+ return this.length;
33
+ }
34
+ /**
35
+ * @description returns a hash of the contents
36
+ */
37
+ get hash() {
38
+ return this.registry.hash(this.toU8a());
39
+ }
40
+ /**
41
+ * @description Returns true if the wrapped value contains only ASCII printable characters
42
+ */
43
+ get isAscii() {
44
+ return isAscii(this);
45
+ }
46
+ /**
47
+ * @description Returns true if the type wraps an empty/default all-0 value
48
+ */
49
+ get isEmpty() {
50
+ return !this.length || isUndefined(this.find((b) => !!b));
51
+ }
52
+ /**
53
+ * @description Returns true if the wrapped value contains only utf8 characters
54
+ */
55
+ get isUtf8() {
56
+ return isUtf8(this);
57
+ }
58
+ /**
59
+ * @description Returns the number of bits in the value
60
+ */
61
+ bitLength() {
62
+ return this.length * 8;
63
+ }
64
+ /**
65
+ * @description Compares the value of the input to see if there is a match
66
+ */
67
+ eq(other) {
68
+ if (other instanceof Uint8Array) {
69
+ return (this.length === other.length) &&
70
+ !this.some((b, index) => b !== other[index]);
71
+ }
72
+ return this.eq(u8aToU8a(other));
73
+ }
74
+ /**
75
+ * @description Returns a breakdown of the hex encoding for this Codec
76
+ */
77
+ inspect() {
78
+ return {
79
+ outer: [this.toU8a()]
80
+ };
81
+ }
82
+ /**
83
+ * @description Returns a hex string representation of the value
84
+ */
85
+ toHex() {
86
+ return u8aToHex(this);
87
+ }
88
+ /**
89
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
90
+ */
91
+ toHuman() {
92
+ return this.toPrimitive();
93
+ }
94
+ /**
95
+ * @description Converts the Object to JSON, typically used for RPC transfers
96
+ */
97
+ toJSON() {
98
+ return this.toHex();
99
+ }
100
+ /**
101
+ * @description Converts the value in a best-fit primitive form
102
+ */
103
+ toPrimitive() {
104
+ if (this.isAscii) {
105
+ const text = this.toUtf8();
106
+ // ensure we didn't end up with multibyte codepoints
107
+ if (isAscii(text)) {
108
+ return text;
109
+ }
110
+ }
111
+ return this.toJSON();
112
+ }
113
+ /**
114
+ * @description Returns the base runtime type name for this instance
115
+ */
116
+ toRawType() {
117
+ return 'Raw';
118
+ }
119
+ /**
120
+ * @description Returns the string representation of the value
121
+ */
122
+ toString() {
123
+ return this.toHex();
124
+ }
125
+ /**
126
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
127
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
128
+ */
129
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
130
+ toU8a(isBare) {
131
+ return Uint8Array.from(this);
132
+ }
133
+ /**
134
+ * @description Returns the wrapped data as a UTF-8 string
135
+ */
136
+ toUtf8() {
137
+ if (!this.isUtf8) {
138
+ throw new Error('The character sequence is not a valid Utf8 string');
139
+ }
140
+ return u8aToString(this);
141
+ }
158
142
  }