ns-auth-sdk 1.14.0 → 1.14.2

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 (153) hide show
  1. package/dist/{cjs-CSUAVztq.cjs → browser-index.cjs} +5476 -296
  2. package/dist/browser-index.cjs.map +1 -0
  3. package/dist/browser-index.d.cts +1998 -0
  4. package/dist/browser-index.d.cts.map +1 -0
  5. package/dist/browser-index.d.mts +1998 -0
  6. package/dist/browser-index.d.mts.map +1 -0
  7. package/dist/{cjs-sm5h7qxv.mjs → browser-index.mjs} +5169 -69
  8. package/dist/browser-index.mjs.map +1 -0
  9. package/dist/{group-coordination-BlFpBVpn.mjs → group-coordination-BV6PKlKp.mjs} +1 -1
  10. package/dist/{group-coordination-BlFpBVpn.mjs.map → group-coordination-BV6PKlKp.mjs.map} +1 -1
  11. package/dist/{group-coordination-ImuoJEoy.mjs → group-coordination-BytkmY9j.mjs} +1 -1
  12. package/dist/{group-coordination-LGIyipaX.cjs → group-coordination-DL39hJ3R.cjs} +1 -1
  13. package/dist/{group-coordination-LGIyipaX.cjs.map → group-coordination-DL39hJ3R.cjs.map} +1 -1
  14. package/dist/{group-coordination-Cf18OjZt.cjs → group-coordination-DLban6a7.cjs} +1 -1
  15. package/dist/index.cjs +8899 -41
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts.map +1 -1
  18. package/dist/index.mjs +9072 -213
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/{prf-handler-D3EqUNWe.cjs → prf-handler-BNd7gmXJ.cjs} +1 -1
  21. package/dist/{prf-handler-D3EqUNWe.cjs.map → prf-handler-BNd7gmXJ.cjs.map} +1 -1
  22. package/dist/prf-handler-CRMgzJG2.cjs +3 -0
  23. package/dist/{prf-handler-Dly_WZGn.mjs → prf-handler-DG99ZkS2.mjs} +1 -1
  24. package/dist/{prf-handler-Db8CsoIP.mjs → prf-handler-Dj2WTO9i.mjs} +1 -1
  25. package/dist/{prf-handler-Db8CsoIP.mjs.map → prf-handler-Dj2WTO9i.mjs.map} +1 -1
  26. package/dist/zkm.service-Bv88tVS5.mjs +3 -0
  27. package/dist/zkm.service-D2BZ_aqA.cjs +3 -0
  28. package/dist/{zkm.service-DfSPbuOl.cjs → zkm.service-DX06sSfB.cjs} +1 -1
  29. package/dist/{zkm.service-DfSPbuOl.cjs.map → zkm.service-DX06sSfB.cjs.map} +1 -1
  30. package/dist/{zkm.service-B24N_0FB.mjs → zkm.service-j0HlN7Oq.mjs} +1 -1
  31. package/dist/{zkm.service-B24N_0FB.mjs.map → zkm.service-j0HlN7Oq.mjs.map} +1 -1
  32. package/package.json +19 -6
  33. package/dist/_esm-C7FRLTj2.cjs +0 -9030
  34. package/dist/_esm-C7FRLTj2.cjs.map +0 -1
  35. package/dist/_esm-D_oMW5T5.mjs +0 -9028
  36. package/dist/_esm-D_oMW5T5.mjs.map +0 -1
  37. package/dist/base64-js-B8y7dH5k.mjs +0 -93
  38. package/dist/base64-js-B8y7dH5k.mjs.map +0 -1
  39. package/dist/base64-js-Tm-kCeud.cjs +0 -98
  40. package/dist/base64-js-Tm-kCeud.cjs.map +0 -1
  41. package/dist/ccip-157tdxqP.cjs +0 -7947
  42. package/dist/ccip-157tdxqP.cjs.map +0 -1
  43. package/dist/ccip-BEMMdVyd.cjs +0 -4
  44. package/dist/ccip-BSmCdJ3K.mjs +0 -3
  45. package/dist/ccip-okqXkslP.mjs +0 -6567
  46. package/dist/ccip-okqXkslP.mjs.map +0 -1
  47. package/dist/chains-CTeD2UcS.mjs +0 -33
  48. package/dist/chains-CTeD2UcS.mjs.map +0 -1
  49. package/dist/chains-Du-lv_5i.cjs +0 -33
  50. package/dist/chains-Du-lv_5i.cjs.map +0 -1
  51. package/dist/chunk-Bnu9O96Y.cjs +0 -60
  52. package/dist/chunk-CVYhg9ik.mjs +0 -45
  53. package/dist/cjs-CSUAVztq.cjs.map +0 -1
  54. package/dist/cjs-sm5h7qxv.mjs.map +0 -1
  55. package/dist/defineChain-7QG67hYU.cjs +0 -30
  56. package/dist/defineChain-7QG67hYU.cjs.map +0 -1
  57. package/dist/defineChain-DBem8ZQY.mjs +0 -24
  58. package/dist/defineChain-DBem8ZQY.mjs.map +0 -1
  59. package/dist/dist-BPmSxkxc.cjs +0 -10676
  60. package/dist/dist-BPmSxkxc.cjs.map +0 -1
  61. package/dist/dist-BSjH4t6s.cjs +0 -12932
  62. package/dist/dist-BSjH4t6s.cjs.map +0 -1
  63. package/dist/dist-C-KjTK4Q.cjs +0 -447
  64. package/dist/dist-C-KjTK4Q.cjs.map +0 -1
  65. package/dist/dist-C2h97xM-.mjs +0 -355
  66. package/dist/dist-C2h97xM-.mjs.map +0 -1
  67. package/dist/dist-CT7grDWb.mjs +0 -12920
  68. package/dist/dist-CT7grDWb.mjs.map +0 -1
  69. package/dist/dist-D7fRmK6G.mjs +0 -10632
  70. package/dist/dist-D7fRmK6G.mjs.map +0 -1
  71. package/dist/dist-DlmcyFmM.mjs +0 -16951
  72. package/dist/dist-DlmcyFmM.mjs.map +0 -1
  73. package/dist/dist-O0uZr5OF.cjs +0 -17122
  74. package/dist/dist-O0uZr5OF.cjs.map +0 -1
  75. package/dist/echo-BB-JgAYZ.cjs +0 -339
  76. package/dist/echo-BB-JgAYZ.cjs.map +0 -1
  77. package/dist/echo-Bwy4_Cvh.mjs +0 -316
  78. package/dist/echo-Bwy4_Cvh.mjs.map +0 -1
  79. package/dist/echo-D6X2IuNW.cjs +0 -9
  80. package/dist/echo-DvfG_heb.mjs +0 -8
  81. package/dist/esm-BcHKCX5i.mjs +0 -569
  82. package/dist/esm-BcHKCX5i.mjs.map +0 -1
  83. package/dist/esm-Bh_YwFIz.cjs +0 -599
  84. package/dist/esm-Bh_YwFIz.cjs.map +0 -1
  85. package/dist/esm-C0XO9TQm.cjs +0 -30449
  86. package/dist/esm-C0XO9TQm.cjs.map +0 -1
  87. package/dist/esm-vMUVj9k4.mjs +0 -30440
  88. package/dist/esm-vMUVj9k4.mjs.map +0 -1
  89. package/dist/keyset-CKMQXvsb.mjs +0 -172
  90. package/dist/keyset-CKMQXvsb.mjs.map +0 -1
  91. package/dist/keyset-Cxdgu110.cjs +0 -237
  92. package/dist/keyset-Cxdgu110.cjs.map +0 -1
  93. package/dist/keyset-DLxpGhdu.cjs +0 -6
  94. package/dist/keyset-IKjlhvqF.mjs +0 -4
  95. package/dist/node-3EUJ4ga9.cjs +0 -9
  96. package/dist/node-C2UpE11T.cjs +0 -444
  97. package/dist/node-C2UpE11T.cjs.map +0 -1
  98. package/dist/node-CHdpTQdN.mjs +0 -8679
  99. package/dist/node-CHdpTQdN.mjs.map +0 -1
  100. package/dist/node-DQt1CVGl.mjs +0 -6
  101. package/dist/node-Dy8ww1LG.cjs +0 -8680
  102. package/dist/node-Dy8ww1LG.cjs.map +0 -1
  103. package/dist/node-IX55IH6z.mjs +0 -397
  104. package/dist/node-IX55IH6z.mjs.map +0 -1
  105. package/dist/nostr-BTOpBN_5.cjs +0 -11
  106. package/dist/nostr-D4E52XRU.mjs +0 -224
  107. package/dist/nostr-D4E52XRU.mjs.map +0 -1
  108. package/dist/nostr-Hv2tsnuI.cjs +0 -272
  109. package/dist/nostr-Hv2tsnuI.cjs.map +0 -1
  110. package/dist/nostr-ZwJe_DlZ.mjs +0 -4
  111. package/dist/pako.esm-DTVnlCJh.cjs +0 -3856
  112. package/dist/pako.esm-DTVnlCJh.cjs.map +0 -1
  113. package/dist/pako.esm-ORhkEHM2.mjs +0 -3838
  114. package/dist/pako.esm-ORhkEHM2.mjs.map +0 -1
  115. package/dist/peer-B9g3OQ5D.cjs +0 -18
  116. package/dist/peer-CptDj7zu.mjs +0 -745
  117. package/dist/peer-CptDj7zu.mjs.map +0 -1
  118. package/dist/peer-CtqL0yiE.mjs +0 -9
  119. package/dist/peer-XrPL0O6z.cjs +0 -822
  120. package/dist/peer-XrPL0O6z.cjs.map +0 -1
  121. package/dist/ping-BXKREIdI.mjs +0 -7
  122. package/dist/ping-BtVhKocl.cjs +0 -379
  123. package/dist/ping-BtVhKocl.cjs.map +0 -1
  124. package/dist/ping-D5fpMhGC.cjs +0 -11
  125. package/dist/ping-DOD50kW_.mjs +0 -332
  126. package/dist/ping-DOD50kW_.mjs.map +0 -1
  127. package/dist/policy-8HcjulLD.cjs +0 -293
  128. package/dist/policy-8HcjulLD.cjs.map +0 -1
  129. package/dist/policy-BA6MEOBY.mjs +0 -5
  130. package/dist/policy-BFNdXvmM.cjs +0 -11
  131. package/dist/policy-D_nFHHjo.mjs +0 -228
  132. package/dist/policy-D_nFHHjo.mjs.map +0 -1
  133. package/dist/prf-handler-BNiyCQMt.cjs +0 -3
  134. package/dist/src-CVfTUJQl.mjs +0 -822
  135. package/dist/src-CVfTUJQl.mjs.map +0 -1
  136. package/dist/src-D5S86Xpf.cjs +0 -827
  137. package/dist/src-D5S86Xpf.cjs.map +0 -1
  138. package/dist/types-B-TLIS13.cjs +0 -212
  139. package/dist/types-B-TLIS13.cjs.map +0 -1
  140. package/dist/types-CTm_FHYD.mjs +0 -111
  141. package/dist/types-CTm_FHYD.mjs.map +0 -1
  142. package/dist/validation-1xwWVXqE.mjs +0 -3
  143. package/dist/validation-DnpurN79.cjs +0 -405
  144. package/dist/validation-DnpurN79.cjs.map +0 -1
  145. package/dist/validation-IsAUvsvy.mjs +0 -334
  146. package/dist/validation-IsAUvsvy.mjs.map +0 -1
  147. package/dist/validation-yCvZCqIs.cjs +0 -6
  148. package/dist/wrapper-C5NpyacC.cjs +0 -3552
  149. package/dist/wrapper-C5NpyacC.cjs.map +0 -1
  150. package/dist/wrapper-CHq_CV4J.mjs +0 -3552
  151. package/dist/wrapper-CHq_CV4J.mjs.map +0 -1
  152. package/dist/zkm.service-BrXyI4BS.mjs +0 -3
  153. package/dist/zkm.service-BvQ01wSH.cjs +0 -3
@@ -1,569 +0,0 @@
1
- //#region node_modules/@scure/base/lib/esm/index.js
2
- /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
3
- function isBytes(a) {
4
- return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
5
- }
6
- /** Asserts something is Uint8Array. */
7
- function abytes(b, ...lengths) {
8
- if (!isBytes(b)) throw new Error("Uint8Array expected");
9
- if (lengths.length > 0 && !lengths.includes(b.length)) throw new Error("Uint8Array expected of length " + lengths + ", got length=" + b.length);
10
- }
11
- function isArrayOf(isString, arr) {
12
- if (!Array.isArray(arr)) return false;
13
- if (arr.length === 0) return true;
14
- if (isString) return arr.every((item) => typeof item === "string");
15
- else return arr.every((item) => Number.isSafeInteger(item));
16
- }
17
- function afn(input) {
18
- if (typeof input !== "function") throw new Error("function expected");
19
- return true;
20
- }
21
- function astr(label, input) {
22
- if (typeof input !== "string") throw new Error(`${label}: string expected`);
23
- return true;
24
- }
25
- function anumber(n) {
26
- if (!Number.isSafeInteger(n)) throw new Error(`invalid integer: ${n}`);
27
- }
28
- function aArr(input) {
29
- if (!Array.isArray(input)) throw new Error("array expected");
30
- }
31
- function astrArr(label, input) {
32
- if (!isArrayOf(true, input)) throw new Error(`${label}: array of strings expected`);
33
- }
34
- function anumArr(label, input) {
35
- if (!isArrayOf(false, input)) throw new Error(`${label}: array of numbers expected`);
36
- }
37
- /**
38
- * @__NO_SIDE_EFFECTS__
39
- */
40
- function chain(...args) {
41
- const id = (a) => a;
42
- const wrap = (a, b) => (c) => a(b(c));
43
- return {
44
- encode: args.map((x) => x.encode).reduceRight(wrap, id),
45
- decode: args.map((x) => x.decode).reduce(wrap, id)
46
- };
47
- }
48
- /**
49
- * Encodes integer radix representation to array of strings using alphabet and back.
50
- * Could also be array of strings.
51
- * @__NO_SIDE_EFFECTS__
52
- */
53
- function alphabet(letters) {
54
- const lettersA = typeof letters === "string" ? letters.split("") : letters;
55
- const len = lettersA.length;
56
- astrArr("alphabet", lettersA);
57
- const indexes = new Map(lettersA.map((l, i) => [l, i]));
58
- return {
59
- encode: (digits) => {
60
- aArr(digits);
61
- return digits.map((i) => {
62
- if (!Number.isSafeInteger(i) || i < 0 || i >= len) throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${letters}`);
63
- return lettersA[i];
64
- });
65
- },
66
- decode: (input) => {
67
- aArr(input);
68
- return input.map((letter) => {
69
- astr("alphabet.decode", letter);
70
- const i = indexes.get(letter);
71
- if (i === void 0) throw new Error(`Unknown letter: "${letter}". Allowed: ${letters}`);
72
- return i;
73
- });
74
- }
75
- };
76
- }
77
- /**
78
- * @__NO_SIDE_EFFECTS__
79
- */
80
- function join(separator = "") {
81
- astr("join", separator);
82
- return {
83
- encode: (from) => {
84
- astrArr("join.decode", from);
85
- return from.join(separator);
86
- },
87
- decode: (to) => {
88
- astr("join.decode", to);
89
- return to.split(separator);
90
- }
91
- };
92
- }
93
- /**
94
- * Pad strings array so it has integer number of bits
95
- * @__NO_SIDE_EFFECTS__
96
- */
97
- function padding(bits, chr = "=") {
98
- anumber(bits);
99
- astr("padding", chr);
100
- return {
101
- encode(data) {
102
- astrArr("padding.encode", data);
103
- while (data.length * bits % 8) data.push(chr);
104
- return data;
105
- },
106
- decode(input) {
107
- astrArr("padding.decode", input);
108
- let end = input.length;
109
- if (end * bits % 8) throw new Error("padding: invalid, string should have whole number of bytes");
110
- for (; end > 0 && input[end - 1] === chr; end--) if ((end - 1) * bits % 8 === 0) throw new Error("padding: invalid, string has too much padding");
111
- return input.slice(0, end);
112
- }
113
- };
114
- }
115
- /**
116
- * @__NO_SIDE_EFFECTS__
117
- */
118
- function normalize(fn) {
119
- afn(fn);
120
- return {
121
- encode: (from) => from,
122
- decode: (to) => fn(to)
123
- };
124
- }
125
- /**
126
- * Slow: O(n^2) time complexity
127
- */
128
- function convertRadix(data, from, to) {
129
- if (from < 2) throw new Error(`convertRadix: invalid from=${from}, base cannot be less than 2`);
130
- if (to < 2) throw new Error(`convertRadix: invalid to=${to}, base cannot be less than 2`);
131
- aArr(data);
132
- if (!data.length) return [];
133
- let pos = 0;
134
- const res = [];
135
- const digits = Array.from(data, (d) => {
136
- anumber(d);
137
- if (d < 0 || d >= from) throw new Error(`invalid integer: ${d}`);
138
- return d;
139
- });
140
- const dlen = digits.length;
141
- while (true) {
142
- let carry = 0;
143
- let done = true;
144
- for (let i = pos; i < dlen; i++) {
145
- const digit = digits[i];
146
- const fromCarry = from * carry;
147
- const digitBase = fromCarry + digit;
148
- if (!Number.isSafeInteger(digitBase) || fromCarry / from !== carry || digitBase - digit !== fromCarry) throw new Error("convertRadix: carry overflow");
149
- const div = digitBase / to;
150
- carry = digitBase % to;
151
- const rounded = Math.floor(div);
152
- digits[i] = rounded;
153
- if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase) throw new Error("convertRadix: carry overflow");
154
- if (!done) continue;
155
- else if (!rounded) pos = i;
156
- else done = false;
157
- }
158
- res.push(carry);
159
- if (done) break;
160
- }
161
- for (let i = 0; i < data.length - 1 && data[i] === 0; i++) res.push(0);
162
- return res.reverse();
163
- }
164
- const gcd = (a, b) => b === 0 ? a : gcd(b, a % b);
165
- const radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));
166
- const powers = /* @__PURE__ */ (() => {
167
- let res = [];
168
- for (let i = 0; i < 40; i++) res.push(2 ** i);
169
- return res;
170
- })();
171
- /**
172
- * Implemented with numbers, because BigInt is 5x slower
173
- */
174
- function convertRadix2(data, from, to, padding$1) {
175
- aArr(data);
176
- if (from <= 0 || from > 32) throw new Error(`convertRadix2: wrong from=${from}`);
177
- if (to <= 0 || to > 32) throw new Error(`convertRadix2: wrong to=${to}`);
178
- if (/* @__PURE__ */ radix2carry(from, to) > 32) throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${/* @__PURE__ */ radix2carry(from, to)}`);
179
- let carry = 0;
180
- let pos = 0;
181
- const max = powers[from];
182
- const mask = powers[to] - 1;
183
- const res = [];
184
- for (const n of data) {
185
- anumber(n);
186
- if (n >= max) throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);
187
- carry = carry << from | n;
188
- if (pos + from > 32) throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);
189
- pos += from;
190
- for (; pos >= to; pos -= to) res.push((carry >> pos - to & mask) >>> 0);
191
- const pow = powers[pos];
192
- if (pow === void 0) throw new Error("invalid carry");
193
- carry &= pow - 1;
194
- }
195
- carry = carry << to - pos & mask;
196
- if (!padding$1 && pos >= from) throw new Error("Excess padding");
197
- if (!padding$1 && carry > 0) throw new Error(`Non-zero padding: ${carry}`);
198
- if (padding$1 && pos > 0) res.push(carry >>> 0);
199
- return res;
200
- }
201
- /**
202
- * @__NO_SIDE_EFFECTS__
203
- */
204
- function radix(num) {
205
- anumber(num);
206
- const _256 = 2 ** 8;
207
- return {
208
- encode: (bytes) => {
209
- if (!isBytes(bytes)) throw new Error("radix.encode input should be Uint8Array");
210
- return convertRadix(Array.from(bytes), _256, num);
211
- },
212
- decode: (digits) => {
213
- anumArr("radix.decode", digits);
214
- return Uint8Array.from(convertRadix(digits, num, _256));
215
- }
216
- };
217
- }
218
- /**
219
- * If both bases are power of same number (like `2**8 <-> 2**64`),
220
- * there is a linear algorithm. For now we have implementation for power-of-two bases only.
221
- * @__NO_SIDE_EFFECTS__
222
- */
223
- function radix2(bits, revPadding = false) {
224
- anumber(bits);
225
- if (bits <= 0 || bits > 32) throw new Error("radix2: bits should be in (0..32]");
226
- if (/* @__PURE__ */ radix2carry(8, bits) > 32 || /* @__PURE__ */ radix2carry(bits, 8) > 32) throw new Error("radix2: carry overflow");
227
- return {
228
- encode: (bytes) => {
229
- if (!isBytes(bytes)) throw new Error("radix2.encode input should be Uint8Array");
230
- return convertRadix2(Array.from(bytes), 8, bits, !revPadding);
231
- },
232
- decode: (digits) => {
233
- anumArr("radix2.decode", digits);
234
- return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));
235
- }
236
- };
237
- }
238
- function unsafeWrapper(fn) {
239
- afn(fn);
240
- return function(...args) {
241
- try {
242
- return fn.apply(null, args);
243
- } catch (e) {}
244
- };
245
- }
246
- function checksum(len, fn) {
247
- anumber(len);
248
- afn(fn);
249
- return {
250
- encode(data) {
251
- if (!isBytes(data)) throw new Error("checksum.encode: input should be Uint8Array");
252
- const sum = fn(data).slice(0, len);
253
- const res = new Uint8Array(data.length + len);
254
- res.set(data);
255
- res.set(sum, data.length);
256
- return res;
257
- },
258
- decode(data) {
259
- if (!isBytes(data)) throw new Error("checksum.decode: input should be Uint8Array");
260
- const payload = data.slice(0, -len);
261
- const oldChecksum = data.slice(-len);
262
- const newChecksum = fn(payload).slice(0, len);
263
- for (let i = 0; i < len; i++) if (newChecksum[i] !== oldChecksum[i]) throw new Error("Invalid checksum");
264
- return payload;
265
- }
266
- };
267
- }
268
- /**
269
- * base16 encoding from RFC 4648.
270
- * @example
271
- * ```js
272
- * base16.encode(Uint8Array.from([0x12, 0xab]));
273
- * // => '12AB'
274
- * ```
275
- */
276
- const base16 = chain(radix2(4), alphabet("0123456789ABCDEF"), join(""));
277
- /**
278
- * base32 encoding from RFC 4648. Has padding.
279
- * Use `base32nopad` for unpadded version.
280
- * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.
281
- * @example
282
- * ```js
283
- * base32.encode(Uint8Array.from([0x12, 0xab]));
284
- * // => 'CKVQ===='
285
- * base32.decode('CKVQ====');
286
- * // => Uint8Array.from([0x12, 0xab])
287
- * ```
288
- */
289
- const base32 = chain(radix2(5), alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"), padding(5), join(""));
290
- /**
291
- * base32 encoding from RFC 4648. No padding.
292
- * Use `base32` for padded version.
293
- * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.
294
- * @example
295
- * ```js
296
- * base32nopad.encode(Uint8Array.from([0x12, 0xab]));
297
- * // => 'CKVQ'
298
- * base32nopad.decode('CKVQ');
299
- * // => Uint8Array.from([0x12, 0xab])
300
- * ```
301
- */
302
- const base32nopad = chain(radix2(5), alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"), join(""));
303
- /**
304
- * base32 encoding from RFC 4648. Padded. Compared to ordinary `base32`, slightly different alphabet.
305
- * Use `base32hexnopad` for unpadded version.
306
- * @example
307
- * ```js
308
- * base32hex.encode(Uint8Array.from([0x12, 0xab]));
309
- * // => '2ALG===='
310
- * base32hex.decode('2ALG====');
311
- * // => Uint8Array.from([0x12, 0xab])
312
- * ```
313
- */
314
- const base32hex = chain(radix2(5), alphabet("0123456789ABCDEFGHIJKLMNOPQRSTUV"), padding(5), join(""));
315
- /**
316
- * base32 encoding from RFC 4648. No padding. Compared to ordinary `base32`, slightly different alphabet.
317
- * Use `base32hex` for padded version.
318
- * @example
319
- * ```js
320
- * base32hexnopad.encode(Uint8Array.from([0x12, 0xab]));
321
- * // => '2ALG'
322
- * base32hexnopad.decode('2ALG');
323
- * // => Uint8Array.from([0x12, 0xab])
324
- * ```
325
- */
326
- const base32hexnopad = chain(radix2(5), alphabet("0123456789ABCDEFGHIJKLMNOPQRSTUV"), join(""));
327
- /**
328
- * base32 encoding from RFC 4648. Doug Crockford's version.
329
- * https://www.crockford.com/base32.html
330
- * @example
331
- * ```js
332
- * base32crockford.encode(Uint8Array.from([0x12, 0xab]));
333
- * // => '2ANG'
334
- * base32crockford.decode('2ANG');
335
- * // => Uint8Array.from([0x12, 0xab])
336
- * ```
337
- */
338
- const base32crockford = chain(radix2(5), alphabet("0123456789ABCDEFGHJKMNPQRSTVWXYZ"), join(""), normalize((s) => s.toUpperCase().replace(/O/g, "0").replace(/[IL]/g, "1")));
339
- const hasBase64Builtin = typeof Uint8Array.from([]).toBase64 === "function" && typeof Uint8Array.fromBase64 === "function";
340
- const decodeBase64Builtin = (s, isUrl) => {
341
- astr("base64", s);
342
- const re = isUrl ? /^[A-Za-z0-9=_-]+$/ : /^[A-Za-z0-9=+/]+$/;
343
- const alphabet$1 = isUrl ? "base64url" : "base64";
344
- if (s.length > 0 && !re.test(s)) throw new Error("invalid base64");
345
- return Uint8Array.fromBase64(s, {
346
- alphabet: alphabet$1,
347
- lastChunkHandling: "strict"
348
- });
349
- };
350
- /**
351
- * base64 from RFC 4648. Padded.
352
- * Use `base64nopad` for unpadded version.
353
- * Also check out `base64url`, `base64urlnopad`.
354
- * Falls back to built-in function, when available.
355
- * @example
356
- * ```js
357
- * base64.encode(Uint8Array.from([0x12, 0xab]));
358
- * // => 'Eqs='
359
- * base64.decode('Eqs=');
360
- * // => Uint8Array.from([0x12, 0xab])
361
- * ```
362
- */
363
- const base64 = hasBase64Builtin ? {
364
- encode(b) {
365
- abytes(b);
366
- return b.toBase64();
367
- },
368
- decode(s) {
369
- return decodeBase64Builtin(s, false);
370
- }
371
- } : chain(radix2(6), alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"), padding(6), join(""));
372
- /**
373
- * base64 from RFC 4648. No padding.
374
- * Use `base64` for padded version.
375
- * @example
376
- * ```js
377
- * base64nopad.encode(Uint8Array.from([0x12, 0xab]));
378
- * // => 'Eqs'
379
- * base64nopad.decode('Eqs');
380
- * // => Uint8Array.from([0x12, 0xab])
381
- * ```
382
- */
383
- const base64nopad = chain(radix2(6), alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"), join(""));
384
- /**
385
- * base64 from RFC 4648, using URL-safe alphabet. Padded.
386
- * Use `base64urlnopad` for unpadded version.
387
- * Falls back to built-in function, when available.
388
- * @example
389
- * ```js
390
- * base64url.encode(Uint8Array.from([0x12, 0xab]));
391
- * // => 'Eqs='
392
- * base64url.decode('Eqs=');
393
- * // => Uint8Array.from([0x12, 0xab])
394
- * ```
395
- */
396
- const base64url = hasBase64Builtin ? {
397
- encode(b) {
398
- abytes(b);
399
- return b.toBase64({ alphabet: "base64url" });
400
- },
401
- decode(s) {
402
- return decodeBase64Builtin(s, true);
403
- }
404
- } : chain(radix2(6), alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"), padding(6), join(""));
405
- /**
406
- * base64 from RFC 4648, using URL-safe alphabet. No padding.
407
- * Use `base64url` for padded version.
408
- * @example
409
- * ```js
410
- * base64urlnopad.encode(Uint8Array.from([0x12, 0xab]));
411
- * // => 'Eqs'
412
- * base64urlnopad.decode('Eqs');
413
- * // => Uint8Array.from([0x12, 0xab])
414
- * ```
415
- */
416
- const base64urlnopad = chain(radix2(6), alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"), join(""));
417
- const genBase58 = /* @__NO_SIDE_EFFECTS__ */ (abc) => chain(radix(58), alphabet(abc), join(""));
418
- /**
419
- * base58: base64 without ambigous characters +, /, 0, O, I, l.
420
- * Quadratic (O(n^2)) - so, can't be used on large inputs.
421
- * @example
422
- * ```js
423
- * base58.decode('01abcdef');
424
- * // => '3UhJW'
425
- * ```
426
- */
427
- const base58 = /* @__PURE__ */ genBase58("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");
428
- /**
429
- * Method, which creates base58check encoder.
430
- * Requires function, calculating sha256.
431
- */
432
- const createBase58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);
433
- /**
434
- * Use `createBase58check` instead.
435
- * @deprecated
436
- */
437
- const base58check = createBase58check;
438
- const BECH_ALPHABET = chain(alphabet("qpzry9x8gf2tvdw0s3jn54khce6mua7l"), join(""));
439
- const POLYMOD_GENERATORS = [
440
- 996825010,
441
- 642813549,
442
- 513874426,
443
- 1027748829,
444
- 705979059
445
- ];
446
- function bech32Polymod(pre) {
447
- const b = pre >> 25;
448
- let chk = (pre & 33554431) << 5;
449
- for (let i = 0; i < POLYMOD_GENERATORS.length; i++) if ((b >> i & 1) === 1) chk ^= POLYMOD_GENERATORS[i];
450
- return chk;
451
- }
452
- function bechChecksum(prefix, words, encodingConst = 1) {
453
- const len = prefix.length;
454
- let chk = 1;
455
- for (let i = 0; i < len; i++) {
456
- const c = prefix.charCodeAt(i);
457
- if (c < 33 || c > 126) throw new Error(`Invalid prefix (${prefix})`);
458
- chk = bech32Polymod(chk) ^ c >> 5;
459
- }
460
- chk = bech32Polymod(chk);
461
- for (let i = 0; i < len; i++) chk = bech32Polymod(chk) ^ prefix.charCodeAt(i) & 31;
462
- for (let v of words) chk = bech32Polymod(chk) ^ v;
463
- for (let i = 0; i < 6; i++) chk = bech32Polymod(chk);
464
- chk ^= encodingConst;
465
- return BECH_ALPHABET.encode(convertRadix2([chk % powers[30]], 30, 5, false));
466
- }
467
- /**
468
- * @__NO_SIDE_EFFECTS__
469
- */
470
- function genBech32(encoding) {
471
- const ENCODING_CONST = encoding === "bech32" ? 1 : 734539939;
472
- const _words = radix2(5);
473
- const fromWords = _words.decode;
474
- const toWords = _words.encode;
475
- const fromWordsUnsafe = unsafeWrapper(fromWords);
476
- function encode(prefix, words, limit = 90) {
477
- astr("bech32.encode prefix", prefix);
478
- if (isBytes(words)) words = Array.from(words);
479
- anumArr("bech32.encode", words);
480
- const plen = prefix.length;
481
- if (plen === 0) throw new TypeError(`Invalid prefix length ${plen}`);
482
- const actualLength = plen + 7 + words.length;
483
- if (limit !== false && actualLength > limit) throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);
484
- const lowered = prefix.toLowerCase();
485
- const sum = bechChecksum(lowered, words, ENCODING_CONST);
486
- return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;
487
- }
488
- function decode(str, limit = 90) {
489
- astr("bech32.decode input", str);
490
- const slen = str.length;
491
- if (slen < 8 || limit !== false && slen > limit) throw new TypeError(`invalid string length: ${slen} (${str}). Expected (8..${limit})`);
492
- const lowered = str.toLowerCase();
493
- if (str !== lowered && str !== str.toUpperCase()) throw new Error(`String must be lowercase or uppercase`);
494
- const sepIndex = lowered.lastIndexOf("1");
495
- if (sepIndex === 0 || sepIndex === -1) throw new Error(`Letter "1" must be present between prefix and data only`);
496
- const prefix = lowered.slice(0, sepIndex);
497
- const data = lowered.slice(sepIndex + 1);
498
- if (data.length < 6) throw new Error("Data must be at least 6 characters long");
499
- const words = BECH_ALPHABET.decode(data).slice(0, -6);
500
- const sum = bechChecksum(prefix, words, ENCODING_CONST);
501
- if (!data.endsWith(sum)) throw new Error(`Invalid checksum in ${str}: expected "${sum}"`);
502
- return {
503
- prefix,
504
- words
505
- };
506
- }
507
- const decodeUnsafe = unsafeWrapper(decode);
508
- function decodeToBytes(str) {
509
- const { prefix, words } = decode(str, false);
510
- return {
511
- prefix,
512
- words,
513
- bytes: fromWords(words)
514
- };
515
- }
516
- function encodeFromBytes(prefix, bytes) {
517
- return encode(prefix, toWords(bytes));
518
- }
519
- return {
520
- encode,
521
- decode,
522
- encodeFromBytes,
523
- decodeToBytes,
524
- decodeUnsafe,
525
- fromWords,
526
- fromWordsUnsafe,
527
- toWords
528
- };
529
- }
530
- /**
531
- * bech32 from BIP 173. Operates on words.
532
- * For high-level, check out scure-btc-signer:
533
- * https://github.com/paulmillr/scure-btc-signer.
534
- */
535
- const bech32 = genBech32("bech32");
536
- /**
537
- * bech32m from BIP 350. Operates on words.
538
- * It was to mitigate `bech32` weaknesses.
539
- * For high-level, check out scure-btc-signer:
540
- * https://github.com/paulmillr/scure-btc-signer.
541
- */
542
- const bech32m = genBech32("bech32m");
543
- const hasHexBuiltin = typeof Uint8Array.from([]).toHex === "function" && typeof Uint8Array.fromHex === "function";
544
- const hexBuiltin = {
545
- encode(data) {
546
- abytes(data);
547
- return data.toHex();
548
- },
549
- decode(s) {
550
- astr("hex", s);
551
- return Uint8Array.fromHex(s);
552
- }
553
- };
554
- /**
555
- * hex string decoder. Uses built-in function, when available.
556
- * @example
557
- * ```js
558
- * const b = hex.decode("0102ff"); // => new Uint8Array([ 1, 2, 255 ])
559
- * const str = hex.encode(b); // "0102ff"
560
- * ```
561
- */
562
- const hex = hasHexBuiltin ? hexBuiltin : chain(radix2(4), alphabet("0123456789abcdef"), join(""), normalize((s) => {
563
- if (typeof s !== "string" || s.length % 2 !== 0) throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);
564
- return s.toLowerCase();
565
- }));
566
-
567
- //#endregion
568
- export { bech32m as a, bech32 as i, base64 as n, base64urlnopad as r, base58check as t };
569
- //# sourceMappingURL=esm-BcHKCX5i.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"esm-BcHKCX5i.mjs","names":["padding","alphabet"],"sources":["../node_modules/@scure/base/lib/esm/index.js"],"sourcesContent":["/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\nfunction isArrayOf(isString, arr) {\n if (!Array.isArray(arr))\n return false;\n if (arr.length === 0)\n return true;\n if (isString) {\n return arr.every((item) => typeof item === 'string');\n }\n else {\n return arr.every((item) => Number.isSafeInteger(item));\n }\n}\n// no abytes: seems to have 10% slowdown. Why?!\nfunction afn(input) {\n if (typeof input !== 'function')\n throw new Error('function expected');\n return true;\n}\nfunction astr(label, input) {\n if (typeof input !== 'string')\n throw new Error(`${label}: string expected`);\n return true;\n}\nfunction anumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`invalid integer: ${n}`);\n}\nfunction aArr(input) {\n if (!Array.isArray(input))\n throw new Error('array expected');\n}\nfunction astrArr(label, input) {\n if (!isArrayOf(true, input))\n throw new Error(`${label}: array of strings expected`);\n}\nfunction anumArr(label, input) {\n if (!isArrayOf(false, input))\n throw new Error(`${label}: array of numbers expected`);\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain(...args) {\n const id = (a) => a;\n // Wrap call in closure so JIT can inline calls\n const wrap = (a, b) => (c) => a(b(c));\n // Construct chain of args[-1].encode(args[-2].encode([...]))\n const encode = args.map((x) => x.encode).reduceRight(wrap, id);\n // Construct chain of args[0].decode(args[1].decode(...))\n const decode = args.map((x) => x.decode).reduce(wrap, id);\n return { encode, decode };\n}\n/**\n * Encodes integer radix representation to array of strings using alphabet and back.\n * Could also be array of strings.\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(letters) {\n // mapping 1 to \"b\"\n const lettersA = typeof letters === 'string' ? letters.split('') : letters;\n const len = lettersA.length;\n astrArr('alphabet', lettersA);\n // mapping \"b\" to 1\n const indexes = new Map(lettersA.map((l, i) => [l, i]));\n return {\n encode: (digits) => {\n aArr(digits);\n return digits.map((i) => {\n if (!Number.isSafeInteger(i) || i < 0 || i >= len)\n throw new Error(`alphabet.encode: digit index outside alphabet \"${i}\". Allowed: ${letters}`);\n return lettersA[i];\n });\n },\n decode: (input) => {\n aArr(input);\n return input.map((letter) => {\n astr('alphabet.decode', letter);\n const i = indexes.get(letter);\n if (i === undefined)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${letters}`);\n return i;\n });\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n astr('join', separator);\n return {\n encode: (from) => {\n astrArr('join.decode', from);\n return from.join(separator);\n },\n decode: (to) => {\n astr('join.decode', to);\n return to.split(separator);\n },\n };\n}\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits, chr = '=') {\n anumber(bits);\n astr('padding', chr);\n return {\n encode(data) {\n astrArr('padding.encode', data);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n astrArr('padding.decode', input);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('padding: invalid, string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n const last = end - 1;\n const byte = last * bits;\n if (byte % 8 === 0)\n throw new Error('padding: invalid, string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize(fn) {\n afn(fn);\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n */\nfunction convertRadix(data, from, to) {\n // base 1 is impossible\n if (from < 2)\n throw new Error(`convertRadix: invalid from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: invalid to=${to}, base cannot be less than 2`);\n aArr(data);\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data, (d) => {\n anumber(d);\n if (d < 0 || d >= from)\n throw new Error(`invalid integer: ${d}`);\n return d;\n });\n const dlen = digits.length;\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < dlen; i++) {\n const digit = digits[i];\n const fromCarry = from * carry;\n const digitBase = fromCarry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n fromCarry / from !== carry ||\n digitBase - digit !== fromCarry) {\n throw new Error('convertRadix: carry overflow');\n }\n const div = digitBase / to;\n carry = digitBase % to;\n const rounded = Math.floor(div);\n digits[i] = rounded;\n if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!rounded)\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\nconst radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\nconst powers = /* @__PURE__ */ (() => {\n let res = [];\n for (let i = 0; i < 40; i++)\n res.push(2 ** i);\n return res;\n})();\n/**\n * Implemented with numbers, because BigInt is 5x slower\n */\nfunction convertRadix2(data, from, to, padding) {\n aArr(data);\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0; // bitwise position in current element\n const max = powers[from];\n const mask = powers[to] - 1;\n const res = [];\n for (const n of data) {\n anumber(n);\n if (n >= max)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n const pow = powers[pos];\n if (pow === undefined)\n throw new Error('invalid carry');\n carry &= pow - 1; // clean carry, otherwise it will cause overflow\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry > 0)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num) {\n anumber(num);\n const _256 = 2 ** 8;\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), _256, num);\n },\n decode: (digits) => {\n anumArr('radix.decode', digits);\n return Uint8Array.from(convertRadix(digits, num, _256));\n },\n };\n}\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits, revPadding = false) {\n anumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n anumArr('radix2.decode', digits);\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n afn(fn);\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n anumber(len);\n afn(fn);\n return {\n encode(data) {\n if (!isBytes(data))\n throw new Error('checksum.encode: input should be Uint8Array');\n const sum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(sum, data.length);\n return res;\n },\n decode(data) {\n if (!isBytes(data))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const oldChecksum = data.slice(-len);\n const newChecksum = fn(payload).slice(0, len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\n// prettier-ignore\nexport const utils = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n// RFC 4648 aka RFC 3548\n// ---------------------\n/**\n * base16 encoding from RFC 4648.\n * @example\n * ```js\n * base16.encode(Uint8Array.from([0x12, 0xab]));\n * // => '12AB'\n * ```\n */\nexport const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\n/**\n * base32 encoding from RFC 4648. Has padding.\n * Use `base32nopad` for unpadded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ===='\n * base32.decode('CKVQ====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding.\n * Use `base32` for padded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ'\n * base32nopad.decode('CKVQ');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32nopad = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), join(''));\n/**\n * base32 encoding from RFC 4648. Padded. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hexnopad` for unpadded version.\n * @example\n * ```js\n * base32hex.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG===='\n * base32hex.decode('2ALG====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hex` for padded version.\n * @example\n * ```js\n * base32hexnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG'\n * base32hexnopad.decode('2ALG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hexnopad = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), join(''));\n/**\n * base32 encoding from RFC 4648. Doug Crockford's version.\n * https://www.crockford.com/base32.html\n * @example\n * ```js\n * base32crockford.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ANG'\n * base32crockford.decode('2ANG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\n// Built-in base64 conversion https://caniuse.com/mdn-javascript_builtins_uint8array_frombase64\n// prettier-ignore\nconst hasBase64Builtin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toBase64 === 'function' &&\n typeof Uint8Array.fromBase64 === 'function')();\nconst decodeBase64Builtin = (s, isUrl) => {\n astr('base64', s);\n const re = isUrl ? /^[A-Za-z0-9=_-]+$/ : /^[A-Za-z0-9=+/]+$/;\n const alphabet = isUrl ? 'base64url' : 'base64';\n if (s.length > 0 && !re.test(s))\n throw new Error('invalid base64');\n return Uint8Array.fromBase64(s, { alphabet, lastChunkHandling: 'strict' });\n};\n/**\n * base64 from RFC 4648. Padded.\n * Use `base64nopad` for unpadded version.\n * Also check out `base64url`, `base64urlnopad`.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64 = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64(); },\n decode(s) { return decodeBase64Builtin(s, false); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\n/**\n * base64 from RFC 4648. No padding.\n * Use `base64` for padded version.\n * @example\n * ```js\n * base64nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64nopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64nopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. Padded.\n * Use `base64urlnopad` for unpadded version.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64url.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64url.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64url = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64({ alphabet: 'base64url' }); },\n decode(s) { return decodeBase64Builtin(s, true); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. No padding.\n * Use `base64url` for padded version.\n * @example\n * ```js\n * base64urlnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64urlnopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = /* @__NO_SIDE_EFFECTS__ */ (abc) => chain(radix(58), alphabet(abc), join(''));\n/**\n * base58: base64 without ambigous characters +, /, 0, O, I, l.\n * Quadratic (O(n^2)) - so, can't be used on large inputs.\n * @example\n * ```js\n * base58.decode('01abcdef');\n * // => '3UhJW'\n * ```\n */\nexport const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\n/**\n * base58: flickr version. Check out `base58`.\n */\nexport const base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\n/**\n * base58: XRP version. Check out `base58`.\n */\nexport const base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\n/**\n * base58: XMR version. Check out `base58`.\n * Done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n * Block encoding significantly reduces quadratic complexity of base58.\n */\nexport const base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\n/**\n * Method, which creates base58check encoder.\n * Requires function, calculating sha256.\n */\nexport const createBase58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\n/**\n * Use `createBase58check` instead.\n * @deprecated\n */\nexport const base58check = createBase58check;\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % powers[30]], 30, 5, false));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n astr('bech32.encode prefix', prefix);\n if (isBytes(words))\n words = Array.from(words);\n anumArr('bech32.encode', words);\n const plen = prefix.length;\n if (plen === 0)\n throw new TypeError(`Invalid prefix length ${plen}`);\n const actualLength = plen + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n const lowered = prefix.toLowerCase();\n const sum = bechChecksum(lowered, words, ENCODING_CONST);\n return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;\n }\n function decode(str, limit = 90) {\n astr('bech32.decode input', str);\n const slen = str.length;\n if (slen < 8 || (limit !== false && slen > limit))\n throw new TypeError(`invalid string length: ${slen} (${str}). Expected (8..${limit})`);\n // don't allow mixed case\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n const sepIndex = lowered.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = lowered.slice(0, sepIndex);\n const data = lowered.slice(sepIndex + 1);\n if (data.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(data).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!data.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n function encodeFromBytes(prefix, bytes) {\n return encode(prefix, toWords(bytes));\n }\n return {\n encode,\n decode,\n encodeFromBytes,\n decodeToBytes,\n decodeUnsafe,\n fromWords,\n fromWordsUnsafe,\n toWords,\n };\n}\n/**\n * bech32 from BIP 173. Operates on words.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32 = genBech32('bech32');\n/**\n * bech32m from BIP 350. Operates on words.\n * It was to mitigate `bech32` weaknesses.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32m = genBech32('bech32m');\n/**\n * UTF-8-to-byte decoder. Uses built-in TextDecoder / TextEncoder.\n * @example\n * ```js\n * const b = utf8.decode(\"hey\"); // => new Uint8Array([ 104, 101, 121 ])\n * const str = utf8.encode(b); // \"hey\"\n * ```\n */\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\n// prettier-ignore\nconst hasHexBuiltin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toHex === 'function' &&\n typeof Uint8Array.fromHex === 'function')();\n// prettier-ignore\nconst hexBuiltin = {\n encode(data) { abytes(data); return data.toHex(); },\n decode(s) { astr('hex', s); return Uint8Array.fromHex(s); },\n};\n/**\n * hex string decoder. Uses built-in function, when available.\n * @example\n * ```js\n * const b = hex.decode(\"0102ff\"); // => new Uint8Array([ 1, 2, 255 ])\n * const str = hex.encode(b); // \"0102ff\"\n * ```\n */\nexport const hex = hasHexBuiltin\n ? hexBuiltin\n : chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2 !== 0)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n }));\n// prettier-ignore\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\n/** @deprecated */\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!isBytes(bytes))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\n/** @deprecated */\nexport const str = bytesToString; // as in python, but for bytes only\n/** @deprecated */\nexport const stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\n/** @deprecated */\nexport const bytes = stringToBytes;\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":"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"}