@lightsparkdev/core 1.0.5 → 1.0.6
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.
- package/CHANGELOG.md +8 -0
- package/dist/chunk-W5XKQOE6.js +903 -0
- package/dist/index.cjs +597 -25
- package/dist/index.d.ts +1 -1
- package/dist/index.js +35 -1
- package/dist/utils/index.cjs +597 -25
- package/dist/utils/index.d.ts +146 -21
- package/dist/utils/index.js +35 -1
- package/package.json +3 -2
- package/src/utils/currency.ts +393 -50
- package/src/utils/index.ts +3 -0
- package/src/utils/locale.ts +3 -0
- package/src/utils/localeToCurrencyCodes.ts +272 -0
- package/src/utils/numbers.ts +32 -0
- package/src/utils/tests/currency.test.ts +190 -0
- package/dist/chunk-5P2KZ44N.js +0 -348
|
@@ -0,0 +1,903 @@
|
|
|
1
|
+
// src/utils/base64.ts
|
|
2
|
+
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
|
3
|
+
var Base64 = {
|
|
4
|
+
btoa: (input = "") => {
|
|
5
|
+
const str = input;
|
|
6
|
+
let output = "";
|
|
7
|
+
for (let block = 0, charCode, i = 0, map = chars; str.charAt(i | 0) || (map = "=", i % 1); output += map.charAt(63 & block >> 8 - i % 1 * 8)) {
|
|
8
|
+
charCode = str.charCodeAt(i += 3 / 4);
|
|
9
|
+
if (charCode > 255) {
|
|
10
|
+
throw new Error(
|
|
11
|
+
"'btoa' failed: The string to be encoded contains characters outside of the Latin1 range."
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
block = block << 8 | charCode;
|
|
15
|
+
}
|
|
16
|
+
return output;
|
|
17
|
+
},
|
|
18
|
+
atob: (input = "") => {
|
|
19
|
+
const str = input.replace(/=+$/, "");
|
|
20
|
+
let output = "";
|
|
21
|
+
if (str.length % 4 == 1) {
|
|
22
|
+
throw new Error(
|
|
23
|
+
"'atob' failed: The string to be decoded is not correctly encoded."
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
for (let bc = 0, bs = 0, buffer, i = 0; buffer = str.charAt(i++); ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {
|
|
27
|
+
buffer = chars.indexOf(buffer);
|
|
28
|
+
}
|
|
29
|
+
return output;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var b64decode = (encoded) => {
|
|
33
|
+
return Uint8Array.from(Base64.atob(encoded), (c) => c.charCodeAt(0));
|
|
34
|
+
};
|
|
35
|
+
var urlsafe_b64decode = (encoded) => {
|
|
36
|
+
return b64decode(encoded.replace(/_/g, "/").replace(/-/g, "+"));
|
|
37
|
+
};
|
|
38
|
+
var b64encode = (data) => {
|
|
39
|
+
return Base64.btoa(
|
|
40
|
+
String.fromCharCode.apply(null, Array.from(new Uint8Array(data)))
|
|
41
|
+
);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// src/utils/environment.ts
|
|
45
|
+
var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
|
|
46
|
+
var isNode = typeof process !== "undefined" && process.versions != null && process.versions.node != null;
|
|
47
|
+
var isTest = isNode && process.env.NODE_ENV === "test";
|
|
48
|
+
|
|
49
|
+
// src/utils/hex.ts
|
|
50
|
+
var bytesToHex = (bytes) => {
|
|
51
|
+
return bytes.reduce((acc, byte) => {
|
|
52
|
+
return acc += ("0" + byte.toString(16)).slice(-2);
|
|
53
|
+
}, "");
|
|
54
|
+
};
|
|
55
|
+
var hexToBytes = (hex) => {
|
|
56
|
+
const bytes = [];
|
|
57
|
+
for (let c = 0; c < hex.length; c += 2) {
|
|
58
|
+
bytes.push(parseInt(hex.substr(c, 2), 16));
|
|
59
|
+
}
|
|
60
|
+
return Uint8Array.from(bytes);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// src/utils/createHash.ts
|
|
64
|
+
async function createSha256Hash(data, asHex) {
|
|
65
|
+
if (isBrowser) {
|
|
66
|
+
const source = typeof data === "string" ? new TextEncoder().encode(data) : data;
|
|
67
|
+
const buffer = await window.crypto.subtle.digest("SHA-256", source);
|
|
68
|
+
const arr = new Uint8Array(buffer);
|
|
69
|
+
if (asHex) {
|
|
70
|
+
return bytesToHex(arr);
|
|
71
|
+
}
|
|
72
|
+
return arr;
|
|
73
|
+
} else {
|
|
74
|
+
const { createHash } = await import("crypto");
|
|
75
|
+
if (asHex) {
|
|
76
|
+
const hexStr = createHash("sha256").update(data).digest("hex");
|
|
77
|
+
return hexStr;
|
|
78
|
+
}
|
|
79
|
+
const buffer = createHash("sha256").update(data).digest();
|
|
80
|
+
return new Uint8Array(buffer);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// src/LightsparkException.ts
|
|
85
|
+
var LightsparkException = class extends Error {
|
|
86
|
+
code;
|
|
87
|
+
message;
|
|
88
|
+
extraInfo;
|
|
89
|
+
constructor(code, message, extraInfo) {
|
|
90
|
+
super(message);
|
|
91
|
+
this.code = code;
|
|
92
|
+
this.message = message;
|
|
93
|
+
this.extraInfo = extraInfo;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
var LightsparkException_default = LightsparkException;
|
|
97
|
+
|
|
98
|
+
// src/utils/locale.ts
|
|
99
|
+
function getCurrentLocale() {
|
|
100
|
+
return Intl.NumberFormat().resolvedOptions().locale;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// src/utils/localeToCurrencyCodes.ts
|
|
104
|
+
var countryCodesToCurrencyCodes = {
|
|
105
|
+
AD: "EUR",
|
|
106
|
+
// AE: "AED",
|
|
107
|
+
// AF: "AFN",
|
|
108
|
+
// AG: "XCD",
|
|
109
|
+
// AI: "XCD",
|
|
110
|
+
// AL: "ALL",
|
|
111
|
+
// AM: "AMD",
|
|
112
|
+
// AO: "AOA",
|
|
113
|
+
AR: "ARS",
|
|
114
|
+
AS: "USD",
|
|
115
|
+
AT: "EUR",
|
|
116
|
+
AU: "AUD",
|
|
117
|
+
// AW: "AWG",
|
|
118
|
+
AX: "EUR",
|
|
119
|
+
// AZ: "AZN",
|
|
120
|
+
// BA: "BAM",
|
|
121
|
+
// BB: "BBD",
|
|
122
|
+
// BD: "BDT",
|
|
123
|
+
BE: "EUR",
|
|
124
|
+
// BF: "XOF",
|
|
125
|
+
// BG: "BGN",
|
|
126
|
+
// BH: "BHD",
|
|
127
|
+
// BI: "BIF",
|
|
128
|
+
// BJ: "XOF",
|
|
129
|
+
BL: "EUR",
|
|
130
|
+
// BM: "BMD",
|
|
131
|
+
// BN: "BND",
|
|
132
|
+
// BO: "BOB",
|
|
133
|
+
BQ: "USD",
|
|
134
|
+
BR: "BRL",
|
|
135
|
+
// BS: "BSD",
|
|
136
|
+
// BT: "BTN",
|
|
137
|
+
// BV: "NOK",
|
|
138
|
+
// BW: "BWP",
|
|
139
|
+
// BY: "BYN",
|
|
140
|
+
// BZ: "BZD",
|
|
141
|
+
CA: "CAD",
|
|
142
|
+
// CC: "AUD",
|
|
143
|
+
// CD: "CDF",
|
|
144
|
+
// CF: "XAF",
|
|
145
|
+
// CG: "XAF",
|
|
146
|
+
// CH: "CHF",
|
|
147
|
+
// CI: "XOF",
|
|
148
|
+
// CK: "NZD",
|
|
149
|
+
// CL: "CLP",
|
|
150
|
+
// CM: "XAF",
|
|
151
|
+
// CN: "CNY",
|
|
152
|
+
CO: "COP",
|
|
153
|
+
// CR: "CRC",
|
|
154
|
+
// CU: "CUP",
|
|
155
|
+
// CV: "CVE",
|
|
156
|
+
// CW: "ANG",
|
|
157
|
+
// CX: "AUD",
|
|
158
|
+
CY: "EUR",
|
|
159
|
+
// CZ: "CZK",
|
|
160
|
+
DE: "EUR",
|
|
161
|
+
// DJ: "DJF",
|
|
162
|
+
// DK: "DKK",
|
|
163
|
+
// DM: "XCD",
|
|
164
|
+
// DO: "DOP",
|
|
165
|
+
// DZ: "DZD",
|
|
166
|
+
EC: "USD",
|
|
167
|
+
EE: "EUR",
|
|
168
|
+
// EG: "EGP",
|
|
169
|
+
// EH: "MAD",
|
|
170
|
+
// ER: "ERN",
|
|
171
|
+
ES: "EUR",
|
|
172
|
+
// ET: "ETB",
|
|
173
|
+
FI: "EUR",
|
|
174
|
+
// FJ: "FJD",
|
|
175
|
+
// FK: "FKP",
|
|
176
|
+
FM: "USD",
|
|
177
|
+
// FO: "DKK",
|
|
178
|
+
FR: "EUR",
|
|
179
|
+
// GA: "XAF",
|
|
180
|
+
GB: "GBP",
|
|
181
|
+
// GD: "XCD",
|
|
182
|
+
// GE: "GEL",
|
|
183
|
+
GF: "EUR",
|
|
184
|
+
GG: "GBP",
|
|
185
|
+
// GH: "GHS",
|
|
186
|
+
// GI: "GIP",
|
|
187
|
+
// GL: "DKK",
|
|
188
|
+
// GM: "GMD",
|
|
189
|
+
// GN: "GNF",
|
|
190
|
+
GP: "EUR",
|
|
191
|
+
// GQ: "XAF",
|
|
192
|
+
GR: "EUR",
|
|
193
|
+
GS: "GBP",
|
|
194
|
+
// GT: "GTQ",
|
|
195
|
+
GU: "USD",
|
|
196
|
+
// GW: "XOF",
|
|
197
|
+
// GY: "GYD",
|
|
198
|
+
// HK: "HKD",
|
|
199
|
+
// HM: "AUD",
|
|
200
|
+
// HN: "HNL",
|
|
201
|
+
// HR: "HRK",
|
|
202
|
+
// HT: "HTG",
|
|
203
|
+
// HU: "HUF",
|
|
204
|
+
// ID: "IDR",
|
|
205
|
+
IE: "EUR",
|
|
206
|
+
// IL: "ILS",
|
|
207
|
+
IM: "GBP",
|
|
208
|
+
IN: "INR",
|
|
209
|
+
IO: "USD",
|
|
210
|
+
// IQ: "IQD",
|
|
211
|
+
// IR: "IRR",
|
|
212
|
+
// IS: "ISK",
|
|
213
|
+
IT: "EUR",
|
|
214
|
+
JE: "GBP",
|
|
215
|
+
// JM: "JMD",
|
|
216
|
+
// JO: "JOD",
|
|
217
|
+
// JP: "JPY",
|
|
218
|
+
// KE: "KES",
|
|
219
|
+
// KG: "KGS",
|
|
220
|
+
// KH: "KHR",
|
|
221
|
+
// KI: "AUD",
|
|
222
|
+
// KM: "KMF",
|
|
223
|
+
// KN: "XCD",
|
|
224
|
+
// KP: "KPW",
|
|
225
|
+
// KR: "KRW",
|
|
226
|
+
// KW: "KWD",
|
|
227
|
+
// KY: "KYD",
|
|
228
|
+
// KZ: "KZT",
|
|
229
|
+
// LA: "LAK",
|
|
230
|
+
// LB: "LBP",
|
|
231
|
+
// LC: "XCD",
|
|
232
|
+
// LI: "CHF",
|
|
233
|
+
// LK: "LKR",
|
|
234
|
+
// LR: "LRD",
|
|
235
|
+
// LS: "LSL",
|
|
236
|
+
LT: "EUR",
|
|
237
|
+
LU: "EUR",
|
|
238
|
+
LV: "EUR",
|
|
239
|
+
// LY: "LYD",
|
|
240
|
+
// MA: "MAD",
|
|
241
|
+
MC: "EUR",
|
|
242
|
+
// MD: "MDL",
|
|
243
|
+
ME: "EUR",
|
|
244
|
+
MF: "EUR",
|
|
245
|
+
// MG: "MGA",
|
|
246
|
+
MH: "USD",
|
|
247
|
+
// MK: "MKD",
|
|
248
|
+
// ML: "XOF",
|
|
249
|
+
// MM: "MMK",
|
|
250
|
+
// MN: "MNT",
|
|
251
|
+
// MO: "MOP",
|
|
252
|
+
MP: "USD",
|
|
253
|
+
MQ: "EUR",
|
|
254
|
+
// MR: "MRO",
|
|
255
|
+
// MS: "XCD",
|
|
256
|
+
MT: "EUR",
|
|
257
|
+
// MU: "MUR",
|
|
258
|
+
// MV: "MVR",
|
|
259
|
+
// MW: "MWK",
|
|
260
|
+
MX: "MXN",
|
|
261
|
+
// MY: "MYR",
|
|
262
|
+
// MZ: "MZN",
|
|
263
|
+
// NA: "NAD",
|
|
264
|
+
// NC: "XPF",
|
|
265
|
+
// NE: "XOF",
|
|
266
|
+
NF: "AUD",
|
|
267
|
+
// NG: "NGN",
|
|
268
|
+
// NI: "NIO",
|
|
269
|
+
NL: "EUR",
|
|
270
|
+
// NO: "NOK",
|
|
271
|
+
// NP: "NPR",
|
|
272
|
+
NR: "AUD",
|
|
273
|
+
// NU: "NZD",
|
|
274
|
+
// NZ: "NZD",
|
|
275
|
+
// OM: "OMR",
|
|
276
|
+
// PA: "PAB",
|
|
277
|
+
// PE: "PEN",
|
|
278
|
+
// PF: "XPF",
|
|
279
|
+
// PG: "PGK",
|
|
280
|
+
// PH: "PHP",
|
|
281
|
+
// PK: "PKR",
|
|
282
|
+
// PL: "PLN",
|
|
283
|
+
PM: "EUR",
|
|
284
|
+
// PN: "NZD",
|
|
285
|
+
PR: "USD",
|
|
286
|
+
// PS: "ILS",
|
|
287
|
+
PT: "EUR",
|
|
288
|
+
PW: "USD",
|
|
289
|
+
// PY: "PYG",
|
|
290
|
+
// QA: "QAR",
|
|
291
|
+
RE: "EUR",
|
|
292
|
+
// RO: "RON",
|
|
293
|
+
// RS: "RSD",
|
|
294
|
+
// RU: "RUB",
|
|
295
|
+
// RW: "RWF",
|
|
296
|
+
// SA: "SAR",
|
|
297
|
+
// SB: "SBD",
|
|
298
|
+
// SC: "SCR",
|
|
299
|
+
// SD: "SDG",
|
|
300
|
+
// SE: "SEK",
|
|
301
|
+
// SG: "SGD",
|
|
302
|
+
// SH: "SHP",
|
|
303
|
+
SI: "EUR",
|
|
304
|
+
// SJ: "NOK",
|
|
305
|
+
SK: "EUR",
|
|
306
|
+
// SL: "SLL",
|
|
307
|
+
SM: "EUR",
|
|
308
|
+
// SN: "XOF",
|
|
309
|
+
// SO: "SOS",
|
|
310
|
+
// SR: "SRD",
|
|
311
|
+
// ST: "STD",
|
|
312
|
+
// SV: "SVC",
|
|
313
|
+
// SX: "ANG",
|
|
314
|
+
// SY: "SYP",
|
|
315
|
+
// SZ: "SZL",
|
|
316
|
+
TC: "USD",
|
|
317
|
+
// TD: "XAF",
|
|
318
|
+
TF: "EUR",
|
|
319
|
+
// TG: "XOF",
|
|
320
|
+
// TH: "THB",
|
|
321
|
+
// TJ: "TJS",
|
|
322
|
+
// TK: "NZD",
|
|
323
|
+
TL: "USD",
|
|
324
|
+
// TM: "TMT",
|
|
325
|
+
// TN: "TND",
|
|
326
|
+
// TO: "TOP",
|
|
327
|
+
// TR: "TRY",
|
|
328
|
+
// TT: "TTD",
|
|
329
|
+
TV: "AUD",
|
|
330
|
+
// TW: "TWD",
|
|
331
|
+
// TZ: "TZS",
|
|
332
|
+
// UA: "UAH",
|
|
333
|
+
// UG: "UGX",
|
|
334
|
+
UM: "USD",
|
|
335
|
+
US: "USD",
|
|
336
|
+
// UY: "UYU",
|
|
337
|
+
// UZ: "UZS",
|
|
338
|
+
VA: "EUR",
|
|
339
|
+
// VC: "XCD",
|
|
340
|
+
// VE: "VEF",
|
|
341
|
+
VG: "USD",
|
|
342
|
+
VI: "USD",
|
|
343
|
+
// VN: "VND",
|
|
344
|
+
// VU: "VUV",
|
|
345
|
+
// WF: "XPF",
|
|
346
|
+
// WS: "WST",
|
|
347
|
+
// YE: "YER",
|
|
348
|
+
YT: "EUR"
|
|
349
|
+
// ZA: "ZAR",
|
|
350
|
+
// ZM: "ZMW",
|
|
351
|
+
// ZW: "ZWL",
|
|
352
|
+
};
|
|
353
|
+
function getCountryCode(localeString) {
|
|
354
|
+
let components = localeString.split("_");
|
|
355
|
+
if (components.length === 2) {
|
|
356
|
+
return components.pop();
|
|
357
|
+
}
|
|
358
|
+
components = localeString.split("-");
|
|
359
|
+
if (components.length === 2) {
|
|
360
|
+
return components.pop();
|
|
361
|
+
}
|
|
362
|
+
return localeString;
|
|
363
|
+
}
|
|
364
|
+
function localeToCurrencyCode(locale) {
|
|
365
|
+
const countryCode = getCountryCode(locale);
|
|
366
|
+
return countryCodesToCurrencyCodes[countryCode];
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
// src/utils/numbers.ts
|
|
370
|
+
function clamp(val, min, max) {
|
|
371
|
+
return val > max ? max : val < min ? min : val;
|
|
372
|
+
}
|
|
373
|
+
function linearInterpolate(value, fromRangeStart, fromRangeEnd, toRangeStart, toRangeEnd) {
|
|
374
|
+
const fromRangeMax = fromRangeEnd - fromRangeStart;
|
|
375
|
+
const fromRangeVal = value - fromRangeStart;
|
|
376
|
+
const toRangeMax = toRangeEnd - toRangeStart;
|
|
377
|
+
const val = fromRangeVal / fromRangeMax * toRangeMax + toRangeStart;
|
|
378
|
+
return clamp(
|
|
379
|
+
val,
|
|
380
|
+
Math.min(toRangeStart, toRangeEnd),
|
|
381
|
+
Math.max(toRangeStart, toRangeEnd)
|
|
382
|
+
);
|
|
383
|
+
}
|
|
384
|
+
function round(num, decimalPlaces = 0) {
|
|
385
|
+
const p = Math.pow(10, decimalPlaces);
|
|
386
|
+
const n = num * p * (1 + Number.EPSILON);
|
|
387
|
+
return Math.round(n) / p;
|
|
388
|
+
}
|
|
389
|
+
function isNumber(value) {
|
|
390
|
+
return typeof value === "number";
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
// src/utils/currency.ts
|
|
394
|
+
var defaultCurrencyCode = "USD";
|
|
395
|
+
var CurrencyUnit = /* @__PURE__ */ ((CurrencyUnit2) => {
|
|
396
|
+
CurrencyUnit2["FUTURE_VALUE"] = "FUTURE_VALUE";
|
|
397
|
+
CurrencyUnit2["BITCOIN"] = "BITCOIN";
|
|
398
|
+
CurrencyUnit2["SATOSHI"] = "SATOSHI";
|
|
399
|
+
CurrencyUnit2["MILLISATOSHI"] = "MILLISATOSHI";
|
|
400
|
+
CurrencyUnit2["USD"] = "USD";
|
|
401
|
+
CurrencyUnit2["NANOBITCOIN"] = "NANOBITCOIN";
|
|
402
|
+
CurrencyUnit2["MICROBITCOIN"] = "MICROBITCOIN";
|
|
403
|
+
CurrencyUnit2["MILLIBITCOIN"] = "MILLIBITCOIN";
|
|
404
|
+
return CurrencyUnit2;
|
|
405
|
+
})(CurrencyUnit || {});
|
|
406
|
+
var CONVERSION_MAP = {
|
|
407
|
+
["BITCOIN" /* BITCOIN */]: {
|
|
408
|
+
["BITCOIN" /* BITCOIN */]: (v) => v,
|
|
409
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: (v) => v * 1e6,
|
|
410
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: (v) => v * 1e3,
|
|
411
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: (v) => v * 1e11,
|
|
412
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: (v) => v * 1e9,
|
|
413
|
+
["SATOSHI" /* SATOSHI */]: (v) => v * 1e8,
|
|
414
|
+
["USD" /* USD */]: (v, centsPerBtc = 1) => (
|
|
415
|
+
/* Round without decimals since we're returning cents: */
|
|
416
|
+
round(v * centsPerBtc, 2)
|
|
417
|
+
)
|
|
418
|
+
},
|
|
419
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: {
|
|
420
|
+
["BITCOIN" /* BITCOIN */]: (v) => v / 1e6,
|
|
421
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: (v) => v,
|
|
422
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: (v) => v / 1e3,
|
|
423
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: (v) => v * 1e5,
|
|
424
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: (v) => v * 1e3,
|
|
425
|
+
["SATOSHI" /* SATOSHI */]: (v) => v * 100,
|
|
426
|
+
["USD" /* USD */]: (v, centsPerBtc = 1) => (
|
|
427
|
+
/* Round without decimals since we're returning cents: */
|
|
428
|
+
round(v / 1e6 * centsPerBtc)
|
|
429
|
+
)
|
|
430
|
+
},
|
|
431
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: {
|
|
432
|
+
["BITCOIN" /* BITCOIN */]: (v) => v / 1e3,
|
|
433
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: (v) => v * 1e3,
|
|
434
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: (v) => v,
|
|
435
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: (v) => v * 1e8,
|
|
436
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: (v) => v * 1e6,
|
|
437
|
+
["SATOSHI" /* SATOSHI */]: (v) => v * 1e5,
|
|
438
|
+
["USD" /* USD */]: (v, centsPerBtc = 1) => (
|
|
439
|
+
/* Round without decimals since we're returning cents: */
|
|
440
|
+
round(v / 1e3 * centsPerBtc)
|
|
441
|
+
)
|
|
442
|
+
},
|
|
443
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: {
|
|
444
|
+
["BITCOIN" /* BITCOIN */]: (v) => v / 1e11,
|
|
445
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: (v) => v / 1e5,
|
|
446
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: (v) => v / 1e8,
|
|
447
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: (v) => v,
|
|
448
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: (v) => v / 100,
|
|
449
|
+
["SATOSHI" /* SATOSHI */]: (v) => v / 1e3,
|
|
450
|
+
["USD" /* USD */]: (v, centsPerBtc = 1) => (
|
|
451
|
+
/* Round without decimals since we're returning cents: */
|
|
452
|
+
round(v / 1e11 * centsPerBtc)
|
|
453
|
+
)
|
|
454
|
+
},
|
|
455
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: {
|
|
456
|
+
["BITCOIN" /* BITCOIN */]: (v) => v / 1e9,
|
|
457
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: (v) => v / 1e3,
|
|
458
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: (v) => v / 1e6,
|
|
459
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: (v) => v * 100,
|
|
460
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: (v) => v,
|
|
461
|
+
["SATOSHI" /* SATOSHI */]: (v) => v / 10,
|
|
462
|
+
["USD" /* USD */]: (v, centsPerBtc = 1) => (
|
|
463
|
+
/* Round without decimals since we're returning cents: */
|
|
464
|
+
round(v / 1e9 * centsPerBtc)
|
|
465
|
+
)
|
|
466
|
+
},
|
|
467
|
+
["SATOSHI" /* SATOSHI */]: {
|
|
468
|
+
["BITCOIN" /* BITCOIN */]: (v) => v / 1e8,
|
|
469
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: (v) => v / 100,
|
|
470
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: (v) => v / 1e5,
|
|
471
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: (v) => v * 1e3,
|
|
472
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: (v) => v * 10,
|
|
473
|
+
["SATOSHI" /* SATOSHI */]: (v) => v,
|
|
474
|
+
["USD" /* USD */]: (v, centsPerBtc = 1) => (
|
|
475
|
+
/* Round without decimals since we're returning cents: */
|
|
476
|
+
round(v / 1e8 * centsPerBtc)
|
|
477
|
+
)
|
|
478
|
+
},
|
|
479
|
+
["USD" /* USD */]: {
|
|
480
|
+
["BITCOIN" /* BITCOIN */]: (v, centsPerBtc = 1) => v / centsPerBtc,
|
|
481
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: (v, centsPerBtc = 1) => v / centsPerBtc * 1e6,
|
|
482
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: (v, centsPerBtc = 1) => v / centsPerBtc * 1e3,
|
|
483
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: (v, centsPerBtc = 1) => v / centsPerBtc * 1e11,
|
|
484
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: (v, centsPerBtc = 1) => v / centsPerBtc * 1e9,
|
|
485
|
+
["SATOSHI" /* SATOSHI */]: (v, centsPerBtc = 1) => v / centsPerBtc * 1e8,
|
|
486
|
+
["USD" /* USD */]: (v) => v
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
function convertCurrencyAmountValue(fromUnit, toUnit, amount, centsPerBtc = 1) {
|
|
490
|
+
if (fromUnit === "FUTURE_VALUE" /* FUTURE_VALUE */ || toUnit === "FUTURE_VALUE" /* FUTURE_VALUE */) {
|
|
491
|
+
throw new LightsparkException_default("CurrencyError", `Unsupported CurrencyUnit.`);
|
|
492
|
+
}
|
|
493
|
+
if (fromUnit === toUnit) {
|
|
494
|
+
return amount;
|
|
495
|
+
}
|
|
496
|
+
const conversionFn = CONVERSION_MAP[fromUnit][toUnit];
|
|
497
|
+
if (!conversionFn) {
|
|
498
|
+
throw new LightsparkException_default(
|
|
499
|
+
"CurrencyError",
|
|
500
|
+
`Cannot convert from ${fromUnit} to ${toUnit}`
|
|
501
|
+
);
|
|
502
|
+
}
|
|
503
|
+
return conversionFn(amount, centsPerBtc);
|
|
504
|
+
}
|
|
505
|
+
var convertCurrencyAmount = (from, toUnit) => {
|
|
506
|
+
const value = convertCurrencyAmountValue(
|
|
507
|
+
from.originalUnit,
|
|
508
|
+
toUnit,
|
|
509
|
+
from.originalValue
|
|
510
|
+
);
|
|
511
|
+
return {
|
|
512
|
+
...from,
|
|
513
|
+
preferredCurrencyUnit: toUnit,
|
|
514
|
+
preferredCurrencyValueApprox: value,
|
|
515
|
+
preferredCurrencyValueRounded: value
|
|
516
|
+
};
|
|
517
|
+
};
|
|
518
|
+
function isCurrencyAmountObj(arg) {
|
|
519
|
+
return typeof arg === "object" && arg !== null && "value" in arg && "unit" in arg;
|
|
520
|
+
}
|
|
521
|
+
function isCurrencyAmount(arg) {
|
|
522
|
+
return typeof arg === "object" && arg !== null && "originalValue" in arg && "originalUnit" in arg && "preferredCurrencyUnit" in arg && "preferredCurrencyValueRounded" in arg && "preferredCurrencyValueApprox" in arg;
|
|
523
|
+
}
|
|
524
|
+
function asNumber(value) {
|
|
525
|
+
if (typeof value === "string") {
|
|
526
|
+
return Number(value);
|
|
527
|
+
}
|
|
528
|
+
return value || 0;
|
|
529
|
+
}
|
|
530
|
+
function getCurrencyAmount(currencyAmountArg) {
|
|
531
|
+
let value = 0;
|
|
532
|
+
let unit = void 0;
|
|
533
|
+
if (isCurrencyAmountObj(currencyAmountArg)) {
|
|
534
|
+
value = asNumber(currencyAmountArg.value);
|
|
535
|
+
unit = currencyAmountArg.unit;
|
|
536
|
+
} else if (isCurrencyAmount(currencyAmountArg)) {
|
|
537
|
+
value = currencyAmountArg.originalValue;
|
|
538
|
+
unit = currencyAmountArg.originalUnit;
|
|
539
|
+
}
|
|
540
|
+
return {
|
|
541
|
+
value: asNumber(value),
|
|
542
|
+
unit: unit || "SATOSHI" /* SATOSHI */
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
function mapCurrencyAmount(currencyAmountArg, centsPerBtc = 1) {
|
|
546
|
+
const { value, unit } = getCurrencyAmount(currencyAmountArg);
|
|
547
|
+
const convert = convertCurrencyAmountValue;
|
|
548
|
+
const sats = convert(unit, "SATOSHI" /* SATOSHI */, value, centsPerBtc);
|
|
549
|
+
const btc = convert(unit, "BITCOIN" /* BITCOIN */, value, centsPerBtc);
|
|
550
|
+
const msats = convert(unit, "MILLISATOSHI" /* MILLISATOSHI */, value, centsPerBtc);
|
|
551
|
+
const usd = convert(unit, "USD" /* USD */, value, centsPerBtc);
|
|
552
|
+
const mibtc = convert(unit, "MICROBITCOIN" /* MICROBITCOIN */, value, centsPerBtc);
|
|
553
|
+
const mlbtc = convert(unit, "MILLIBITCOIN" /* MILLIBITCOIN */, value, centsPerBtc);
|
|
554
|
+
const nbtc = convert(unit, "NANOBITCOIN" /* NANOBITCOIN */, value, centsPerBtc);
|
|
555
|
+
const mapWithCurrencyUnits = {
|
|
556
|
+
["BITCOIN" /* BITCOIN */]: btc,
|
|
557
|
+
["SATOSHI" /* SATOSHI */]: sats,
|
|
558
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: msats,
|
|
559
|
+
["USD" /* USD */]: usd,
|
|
560
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: mibtc,
|
|
561
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: mlbtc,
|
|
562
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: nbtc,
|
|
563
|
+
["FUTURE_VALUE" /* FUTURE_VALUE */]: NaN,
|
|
564
|
+
formatted: {
|
|
565
|
+
["BITCOIN" /* BITCOIN */]: formatCurrencyStr({
|
|
566
|
+
value: btc,
|
|
567
|
+
unit: "BITCOIN" /* BITCOIN */
|
|
568
|
+
}),
|
|
569
|
+
["SATOSHI" /* SATOSHI */]: formatCurrencyStr({
|
|
570
|
+
value: sats,
|
|
571
|
+
unit: "SATOSHI" /* SATOSHI */
|
|
572
|
+
}),
|
|
573
|
+
["MILLISATOSHI" /* MILLISATOSHI */]: formatCurrencyStr({
|
|
574
|
+
value: msats,
|
|
575
|
+
unit: "MILLISATOSHI" /* MILLISATOSHI */
|
|
576
|
+
}),
|
|
577
|
+
["MICROBITCOIN" /* MICROBITCOIN */]: formatCurrencyStr({
|
|
578
|
+
value: mibtc,
|
|
579
|
+
unit: "MICROBITCOIN" /* MICROBITCOIN */
|
|
580
|
+
}),
|
|
581
|
+
["MILLIBITCOIN" /* MILLIBITCOIN */]: formatCurrencyStr({
|
|
582
|
+
value: mlbtc,
|
|
583
|
+
unit: "MILLIBITCOIN" /* MILLIBITCOIN */
|
|
584
|
+
}),
|
|
585
|
+
["NANOBITCOIN" /* NANOBITCOIN */]: formatCurrencyStr({
|
|
586
|
+
value: nbtc,
|
|
587
|
+
unit: "NANOBITCOIN" /* NANOBITCOIN */
|
|
588
|
+
}),
|
|
589
|
+
["USD" /* USD */]: formatCurrencyStr({
|
|
590
|
+
value: usd,
|
|
591
|
+
unit: "USD" /* USD */
|
|
592
|
+
}),
|
|
593
|
+
["FUTURE_VALUE" /* FUTURE_VALUE */]: "-"
|
|
594
|
+
}
|
|
595
|
+
};
|
|
596
|
+
return {
|
|
597
|
+
...mapWithCurrencyUnits,
|
|
598
|
+
btc,
|
|
599
|
+
sats,
|
|
600
|
+
msats,
|
|
601
|
+
isZero: msats === 0,
|
|
602
|
+
isLessThan: (other) => {
|
|
603
|
+
if (isNumber(other)) {
|
|
604
|
+
return msats < other;
|
|
605
|
+
}
|
|
606
|
+
if (isCurrencyAmountObj(other)) {
|
|
607
|
+
other = mapCurrencyAmount(other);
|
|
608
|
+
}
|
|
609
|
+
return msats < other.msats;
|
|
610
|
+
},
|
|
611
|
+
isGreaterThan: (other) => {
|
|
612
|
+
if (isNumber(other)) {
|
|
613
|
+
return msats > other;
|
|
614
|
+
}
|
|
615
|
+
if (isCurrencyAmountObj(other)) {
|
|
616
|
+
other = mapCurrencyAmount(other);
|
|
617
|
+
}
|
|
618
|
+
return msats > other.msats;
|
|
619
|
+
},
|
|
620
|
+
isEqualTo: (other) => {
|
|
621
|
+
if (isNumber(other)) {
|
|
622
|
+
return msats === other;
|
|
623
|
+
}
|
|
624
|
+
if (isCurrencyAmountObj(other)) {
|
|
625
|
+
other = mapCurrencyAmount(other);
|
|
626
|
+
}
|
|
627
|
+
return msats === other.msats;
|
|
628
|
+
},
|
|
629
|
+
formatted: {
|
|
630
|
+
...mapWithCurrencyUnits.formatted,
|
|
631
|
+
btc: mapWithCurrencyUnits.formatted["BITCOIN" /* BITCOIN */],
|
|
632
|
+
sats: mapWithCurrencyUnits.formatted["SATOSHI" /* SATOSHI */],
|
|
633
|
+
msats: mapWithCurrencyUnits.formatted["MILLISATOSHI" /* MILLISATOSHI */]
|
|
634
|
+
},
|
|
635
|
+
type: "CurrencyMap"
|
|
636
|
+
};
|
|
637
|
+
}
|
|
638
|
+
var isCurrencyMap = (currencyMap) => typeof currencyMap === "object" && currencyMap !== null && "type" in currencyMap && typeof currencyMap.type === "string" && currencyMap.type === "CurrencyMap";
|
|
639
|
+
var abbrCurrencyUnit = (unit) => {
|
|
640
|
+
switch (unit) {
|
|
641
|
+
case "BITCOIN" /* BITCOIN */:
|
|
642
|
+
return "BTC";
|
|
643
|
+
case "SATOSHI" /* SATOSHI */:
|
|
644
|
+
return "SAT";
|
|
645
|
+
case "MILLISATOSHI" /* MILLISATOSHI */:
|
|
646
|
+
return "MSAT";
|
|
647
|
+
case "USD" /* USD */:
|
|
648
|
+
return "USD";
|
|
649
|
+
}
|
|
650
|
+
return "Unsupported CurrencyUnit";
|
|
651
|
+
};
|
|
652
|
+
function formatCurrencyStr(amount, maxFractionDigits, compact, showBtcSymbol = false, options = {}) {
|
|
653
|
+
const currencyAmount = getCurrencyAmount(amount);
|
|
654
|
+
let { value: num } = currencyAmount;
|
|
655
|
+
const { unit } = currencyAmount;
|
|
656
|
+
if (unit === "USD" /* USD */) {
|
|
657
|
+
num = num / 100;
|
|
658
|
+
}
|
|
659
|
+
function getDefaultMaxFractionDigits(defaultDigits) {
|
|
660
|
+
return typeof maxFractionDigits === "undefined" ? compact ? 1 : defaultDigits : maxFractionDigits;
|
|
661
|
+
}
|
|
662
|
+
const symbol = !showBtcSymbol ? "" : unit === "BITCOIN" /* BITCOIN */ ? "\uE903" : unit === "SATOSHI" /* SATOSHI */ ? "\uE902" : "";
|
|
663
|
+
const currentLocale = getCurrentLocale();
|
|
664
|
+
switch (unit) {
|
|
665
|
+
case "BITCOIN" /* BITCOIN */:
|
|
666
|
+
return `${symbol}${num.toLocaleString(currentLocale, {
|
|
667
|
+
notation: compact ? "compact" : void 0,
|
|
668
|
+
maximumFractionDigits: getDefaultMaxFractionDigits(4),
|
|
669
|
+
...options
|
|
670
|
+
})}`;
|
|
671
|
+
case "MILLISATOSHI" /* MILLISATOSHI */:
|
|
672
|
+
case "SATOSHI" /* SATOSHI */:
|
|
673
|
+
case "MICROBITCOIN" /* MICROBITCOIN */:
|
|
674
|
+
case "MILLIBITCOIN" /* MILLIBITCOIN */:
|
|
675
|
+
case "NANOBITCOIN" /* NANOBITCOIN */:
|
|
676
|
+
default:
|
|
677
|
+
return `${symbol}${num.toLocaleString(currentLocale, {
|
|
678
|
+
notation: compact ? "compact" : void 0,
|
|
679
|
+
maximumFractionDigits: getDefaultMaxFractionDigits(0),
|
|
680
|
+
...options
|
|
681
|
+
})}`;
|
|
682
|
+
case "USD" /* USD */:
|
|
683
|
+
return num.toLocaleString(currentLocale, {
|
|
684
|
+
style: "currency",
|
|
685
|
+
currency: defaultCurrencyCode,
|
|
686
|
+
notation: compact ? "compact" : void 0,
|
|
687
|
+
maximumFractionDigits: getDefaultMaxFractionDigits(2),
|
|
688
|
+
...options
|
|
689
|
+
});
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
function localeToCurrencySymbol(locale) {
|
|
693
|
+
const currencyCode = localeToCurrencyCode(locale);
|
|
694
|
+
const formatted = new Intl.NumberFormat(locale, {
|
|
695
|
+
style: "currency",
|
|
696
|
+
currency: currencyCode,
|
|
697
|
+
useGrouping: false,
|
|
698
|
+
// to avoid thousands separators
|
|
699
|
+
minimumFractionDigits: 0,
|
|
700
|
+
maximumFractionDigits: 0
|
|
701
|
+
}).format(0);
|
|
702
|
+
const symbol = formatted.replace(/[0-9\s\u00a0]/g, "");
|
|
703
|
+
return symbol;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
// src/utils/errors.ts
|
|
707
|
+
var isError = (e) => {
|
|
708
|
+
return Boolean(
|
|
709
|
+
typeof e === "object" && e !== null && "name" in e && typeof e.name === "string" && "message" in e && typeof e.message === "string" && "stack" in e && (!e.stack || typeof e.stack === "string")
|
|
710
|
+
);
|
|
711
|
+
};
|
|
712
|
+
var isErrorWithMessage = (e) => {
|
|
713
|
+
return Boolean(
|
|
714
|
+
typeof e === "object" && e !== null && "message" in e && typeof e.message === "string"
|
|
715
|
+
);
|
|
716
|
+
};
|
|
717
|
+
var getErrorMsg = (e) => {
|
|
718
|
+
return isErrorWithMessage(e) ? e.message : "Unknown error";
|
|
719
|
+
};
|
|
720
|
+
var isErrorMsg = (e, msg) => {
|
|
721
|
+
if (isError(e)) {
|
|
722
|
+
return e.message === msg;
|
|
723
|
+
}
|
|
724
|
+
return false;
|
|
725
|
+
};
|
|
726
|
+
|
|
727
|
+
// ../../node_modules/lodash-es/_freeGlobal.js
|
|
728
|
+
var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
|
|
729
|
+
var freeGlobal_default = freeGlobal;
|
|
730
|
+
|
|
731
|
+
// ../../node_modules/lodash-es/_root.js
|
|
732
|
+
var freeSelf = typeof self == "object" && self && self.Object === Object && self;
|
|
733
|
+
var root = freeGlobal_default || freeSelf || Function("return this")();
|
|
734
|
+
var root_default = root;
|
|
735
|
+
|
|
736
|
+
// ../../node_modules/lodash-es/_Symbol.js
|
|
737
|
+
var Symbol = root_default.Symbol;
|
|
738
|
+
var Symbol_default = Symbol;
|
|
739
|
+
|
|
740
|
+
// ../../node_modules/lodash-es/_getRawTag.js
|
|
741
|
+
var objectProto = Object.prototype;
|
|
742
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
|
743
|
+
var nativeObjectToString = objectProto.toString;
|
|
744
|
+
var symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0;
|
|
745
|
+
function getRawTag(value) {
|
|
746
|
+
var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
|
|
747
|
+
try {
|
|
748
|
+
value[symToStringTag] = void 0;
|
|
749
|
+
var unmasked = true;
|
|
750
|
+
} catch (e) {
|
|
751
|
+
}
|
|
752
|
+
var result = nativeObjectToString.call(value);
|
|
753
|
+
if (unmasked) {
|
|
754
|
+
if (isOwn) {
|
|
755
|
+
value[symToStringTag] = tag;
|
|
756
|
+
} else {
|
|
757
|
+
delete value[symToStringTag];
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
return result;
|
|
761
|
+
}
|
|
762
|
+
var getRawTag_default = getRawTag;
|
|
763
|
+
|
|
764
|
+
// ../../node_modules/lodash-es/_objectToString.js
|
|
765
|
+
var objectProto2 = Object.prototype;
|
|
766
|
+
var nativeObjectToString2 = objectProto2.toString;
|
|
767
|
+
function objectToString(value) {
|
|
768
|
+
return nativeObjectToString2.call(value);
|
|
769
|
+
}
|
|
770
|
+
var objectToString_default = objectToString;
|
|
771
|
+
|
|
772
|
+
// ../../node_modules/lodash-es/_baseGetTag.js
|
|
773
|
+
var nullTag = "[object Null]";
|
|
774
|
+
var undefinedTag = "[object Undefined]";
|
|
775
|
+
var symToStringTag2 = Symbol_default ? Symbol_default.toStringTag : void 0;
|
|
776
|
+
function baseGetTag(value) {
|
|
777
|
+
if (value == null) {
|
|
778
|
+
return value === void 0 ? undefinedTag : nullTag;
|
|
779
|
+
}
|
|
780
|
+
return symToStringTag2 && symToStringTag2 in Object(value) ? getRawTag_default(value) : objectToString_default(value);
|
|
781
|
+
}
|
|
782
|
+
var baseGetTag_default = baseGetTag;
|
|
783
|
+
|
|
784
|
+
// ../../node_modules/lodash-es/isObject.js
|
|
785
|
+
function isObject(value) {
|
|
786
|
+
var type = typeof value;
|
|
787
|
+
return value != null && (type == "object" || type == "function");
|
|
788
|
+
}
|
|
789
|
+
var isObject_default = isObject;
|
|
790
|
+
|
|
791
|
+
// ../../node_modules/lodash-es/isFunction.js
|
|
792
|
+
var asyncTag = "[object AsyncFunction]";
|
|
793
|
+
var funcTag = "[object Function]";
|
|
794
|
+
var genTag = "[object GeneratorFunction]";
|
|
795
|
+
var proxyTag = "[object Proxy]";
|
|
796
|
+
function isFunction(value) {
|
|
797
|
+
if (!isObject_default(value)) {
|
|
798
|
+
return false;
|
|
799
|
+
}
|
|
800
|
+
var tag = baseGetTag_default(value);
|
|
801
|
+
return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
|
|
802
|
+
}
|
|
803
|
+
var isFunction_default = isFunction;
|
|
804
|
+
|
|
805
|
+
// src/utils/sleep.ts
|
|
806
|
+
function sleep(ms) {
|
|
807
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
// src/utils/pollUntil.ts
|
|
811
|
+
function getDefaultMaxPollsError() {
|
|
812
|
+
return new Error("pollUntil: Max polls reached");
|
|
813
|
+
}
|
|
814
|
+
function pollUntil(asyncFn, getValue, maxPolls = 60, pollIntervalMs = 500, ignoreErrors = false, getMaxPollsError = getDefaultMaxPollsError) {
|
|
815
|
+
return new Promise((resolve, reject) => {
|
|
816
|
+
let polls = 0;
|
|
817
|
+
let stopPolling = false;
|
|
818
|
+
(async function() {
|
|
819
|
+
while (!stopPolling) {
|
|
820
|
+
polls += 1;
|
|
821
|
+
if (polls > maxPolls) {
|
|
822
|
+
stopPolling = true;
|
|
823
|
+
const maxPollsError = getMaxPollsError(maxPolls);
|
|
824
|
+
reject(maxPollsError);
|
|
825
|
+
break;
|
|
826
|
+
}
|
|
827
|
+
try {
|
|
828
|
+
const asyncResult = await asyncFn();
|
|
829
|
+
const result = getValue(asyncResult, {
|
|
830
|
+
stopPolling: false,
|
|
831
|
+
value: null
|
|
832
|
+
});
|
|
833
|
+
if (result.stopPolling) {
|
|
834
|
+
stopPolling = true;
|
|
835
|
+
resolve(result.value);
|
|
836
|
+
}
|
|
837
|
+
} catch (e) {
|
|
838
|
+
if (!ignoreErrors || isFunction_default(ignoreErrors) && !ignoreErrors(e)) {
|
|
839
|
+
stopPolling = true;
|
|
840
|
+
reject(e);
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
await sleep(pollIntervalMs);
|
|
844
|
+
}
|
|
845
|
+
})();
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
// src/utils/types.ts
|
|
850
|
+
var isType = (typename) => (node) => {
|
|
851
|
+
return node?.__typename === typename;
|
|
852
|
+
};
|
|
853
|
+
|
|
854
|
+
export {
|
|
855
|
+
LightsparkException_default,
|
|
856
|
+
b64decode,
|
|
857
|
+
urlsafe_b64decode,
|
|
858
|
+
b64encode,
|
|
859
|
+
isBrowser,
|
|
860
|
+
isNode,
|
|
861
|
+
isTest,
|
|
862
|
+
bytesToHex,
|
|
863
|
+
hexToBytes,
|
|
864
|
+
createSha256Hash,
|
|
865
|
+
getCurrentLocale,
|
|
866
|
+
countryCodesToCurrencyCodes,
|
|
867
|
+
localeToCurrencyCode,
|
|
868
|
+
clamp,
|
|
869
|
+
linearInterpolate,
|
|
870
|
+
round,
|
|
871
|
+
isNumber,
|
|
872
|
+
defaultCurrencyCode,
|
|
873
|
+
CurrencyUnit,
|
|
874
|
+
convertCurrencyAmountValue,
|
|
875
|
+
convertCurrencyAmount,
|
|
876
|
+
isCurrencyAmountObj,
|
|
877
|
+
isCurrencyAmount,
|
|
878
|
+
mapCurrencyAmount,
|
|
879
|
+
isCurrencyMap,
|
|
880
|
+
abbrCurrencyUnit,
|
|
881
|
+
formatCurrencyStr,
|
|
882
|
+
localeToCurrencySymbol,
|
|
883
|
+
isError,
|
|
884
|
+
isErrorWithMessage,
|
|
885
|
+
getErrorMsg,
|
|
886
|
+
isErrorMsg,
|
|
887
|
+
sleep,
|
|
888
|
+
pollUntil,
|
|
889
|
+
isType
|
|
890
|
+
};
|
|
891
|
+
/*! Bundled license information:
|
|
892
|
+
|
|
893
|
+
lodash-es/lodash.js:
|
|
894
|
+
(**
|
|
895
|
+
* @license
|
|
896
|
+
* Lodash (Custom Build) <https://lodash.com/>
|
|
897
|
+
* Build: `lodash modularize exports="es" -o ./`
|
|
898
|
+
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
899
|
+
* Released under MIT license <https://lodash.com/license>
|
|
900
|
+
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
901
|
+
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
902
|
+
*)
|
|
903
|
+
*/
|