@jiangzhx/adcli 0.1.2 → 0.1.3

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/dist/cli.js CHANGED
@@ -1,16 +1,1901 @@
1
1
  #!/usr/bin/env node
2
2
  // @bun
3
+ var __create = Object.create;
4
+ var __getProtoOf = Object.getPrototypeOf;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ function __accessProp(key) {
9
+ return this[key];
10
+ }
11
+ var __toESMCache_node;
12
+ var __toESMCache_esm;
13
+ var __toESM = (mod, isNodeMode, target) => {
14
+ var canCache = mod != null && typeof mod === "object";
15
+ if (canCache) {
16
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
17
+ var cached = cache.get(mod);
18
+ if (cached)
19
+ return cached;
20
+ }
21
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
22
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
23
+ for (let key of __getOwnPropNames(mod))
24
+ if (!__hasOwnProp.call(to, key))
25
+ __defProp(to, key, {
26
+ get: __accessProp.bind(mod, key),
27
+ enumerable: true
28
+ });
29
+ if (canCache)
30
+ cache.set(mod, to);
31
+ return to;
32
+ };
33
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
34
+
35
+ // node_modules/.bun/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.js
36
+ var require_bignumber = __commonJS((exports, module) => {
37
+ (function(globalObject) {
38
+ var BigNumber, isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, mathceil = Math.ceil, mathfloor = Math.floor, bignumberError = "[BigNumber Error] ", tooManyDigits = bignumberError + "Number primitive has more than 15 significant digits: ", BASE = 100000000000000, LOG_BASE = 14, MAX_SAFE_INTEGER = 9007199254740991, POWS_TEN = [1, 10, 100, 1000, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 10000000000, 100000000000, 1000000000000, 10000000000000], SQRT_BASE = 1e7, MAX = 1e9;
39
+ function clone(configObject) {
40
+ var div, convertBase, parseNumeric, P = BigNumber2.prototype = { constructor: BigNumber2, toString: null, valueOf: null }, ONE = new BigNumber2(1), DECIMAL_PLACES = 20, ROUNDING_MODE = 4, TO_EXP_NEG = -7, TO_EXP_POS = 21, MIN_EXP = -1e7, MAX_EXP = 1e7, CRYPTO = false, MODULO_MODE = 1, POW_PRECISION = 0, FORMAT = {
41
+ prefix: "",
42
+ groupSize: 3,
43
+ secondaryGroupSize: 0,
44
+ groupSeparator: ",",
45
+ decimalSeparator: ".",
46
+ fractionGroupSize: 0,
47
+ fractionGroupSeparator: " ",
48
+ suffix: ""
49
+ }, ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", alphabetHasNormalDecimalDigits = true;
50
+ function BigNumber2(v, b) {
51
+ var alphabet, c, caseChanged, e, i, isNum, len, str, x = this;
52
+ if (!(x instanceof BigNumber2))
53
+ return new BigNumber2(v, b);
54
+ if (b == null) {
55
+ if (v && v._isBigNumber === true) {
56
+ x.s = v.s;
57
+ if (!v.c || v.e > MAX_EXP) {
58
+ x.c = x.e = null;
59
+ } else if (v.e < MIN_EXP) {
60
+ x.c = [x.e = 0];
61
+ } else {
62
+ x.e = v.e;
63
+ x.c = v.c.slice();
64
+ }
65
+ return;
66
+ }
67
+ if ((isNum = typeof v == "number") && v * 0 == 0) {
68
+ x.s = 1 / v < 0 ? (v = -v, -1) : 1;
69
+ if (v === ~~v) {
70
+ for (e = 0, i = v;i >= 10; i /= 10, e++)
71
+ ;
72
+ if (e > MAX_EXP) {
73
+ x.c = x.e = null;
74
+ } else {
75
+ x.e = e;
76
+ x.c = [v];
77
+ }
78
+ return;
79
+ }
80
+ str = String(v);
81
+ } else {
82
+ if (!isNumeric.test(str = String(v)))
83
+ return parseNumeric(x, str, isNum);
84
+ x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;
85
+ }
86
+ if ((e = str.indexOf(".")) > -1)
87
+ str = str.replace(".", "");
88
+ if ((i = str.search(/e/i)) > 0) {
89
+ if (e < 0)
90
+ e = i;
91
+ e += +str.slice(i + 1);
92
+ str = str.substring(0, i);
93
+ } else if (e < 0) {
94
+ e = str.length;
95
+ }
96
+ } else {
97
+ intCheck(b, 2, ALPHABET.length, "Base");
98
+ if (b == 10 && alphabetHasNormalDecimalDigits) {
99
+ x = new BigNumber2(v);
100
+ return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);
101
+ }
102
+ str = String(v);
103
+ if (isNum = typeof v == "number") {
104
+ if (v * 0 != 0)
105
+ return parseNumeric(x, str, isNum, b);
106
+ x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;
107
+ if (BigNumber2.DEBUG && str.replace(/^0\.0*|\./, "").length > 15) {
108
+ throw Error(tooManyDigits + v);
109
+ }
110
+ } else {
111
+ x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;
112
+ }
113
+ alphabet = ALPHABET.slice(0, b);
114
+ e = i = 0;
115
+ for (len = str.length;i < len; i++) {
116
+ if (alphabet.indexOf(c = str.charAt(i)) < 0) {
117
+ if (c == ".") {
118
+ if (i > e) {
119
+ e = len;
120
+ continue;
121
+ }
122
+ } else if (!caseChanged) {
123
+ if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) {
124
+ caseChanged = true;
125
+ i = -1;
126
+ e = 0;
127
+ continue;
128
+ }
129
+ }
130
+ return parseNumeric(x, String(v), isNum, b);
131
+ }
132
+ }
133
+ isNum = false;
134
+ str = convertBase(str, b, 10, x.s);
135
+ if ((e = str.indexOf(".")) > -1)
136
+ str = str.replace(".", "");
137
+ else
138
+ e = str.length;
139
+ }
140
+ for (i = 0;str.charCodeAt(i) === 48; i++)
141
+ ;
142
+ for (len = str.length;str.charCodeAt(--len) === 48; )
143
+ ;
144
+ if (str = str.slice(i, ++len)) {
145
+ len -= i;
146
+ if (isNum && BigNumber2.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {
147
+ throw Error(tooManyDigits + x.s * v);
148
+ }
149
+ if ((e = e - i - 1) > MAX_EXP) {
150
+ x.c = x.e = null;
151
+ } else if (e < MIN_EXP) {
152
+ x.c = [x.e = 0];
153
+ } else {
154
+ x.e = e;
155
+ x.c = [];
156
+ i = (e + 1) % LOG_BASE;
157
+ if (e < 0)
158
+ i += LOG_BASE;
159
+ if (i < len) {
160
+ if (i)
161
+ x.c.push(+str.slice(0, i));
162
+ for (len -= LOG_BASE;i < len; ) {
163
+ x.c.push(+str.slice(i, i += LOG_BASE));
164
+ }
165
+ i = LOG_BASE - (str = str.slice(i)).length;
166
+ } else {
167
+ i -= len;
168
+ }
169
+ for (;i--; str += "0")
170
+ ;
171
+ x.c.push(+str);
172
+ }
173
+ } else {
174
+ x.c = [x.e = 0];
175
+ }
176
+ }
177
+ BigNumber2.clone = clone;
178
+ BigNumber2.ROUND_UP = 0;
179
+ BigNumber2.ROUND_DOWN = 1;
180
+ BigNumber2.ROUND_CEIL = 2;
181
+ BigNumber2.ROUND_FLOOR = 3;
182
+ BigNumber2.ROUND_HALF_UP = 4;
183
+ BigNumber2.ROUND_HALF_DOWN = 5;
184
+ BigNumber2.ROUND_HALF_EVEN = 6;
185
+ BigNumber2.ROUND_HALF_CEIL = 7;
186
+ BigNumber2.ROUND_HALF_FLOOR = 8;
187
+ BigNumber2.EUCLID = 9;
188
+ BigNumber2.config = BigNumber2.set = function(obj) {
189
+ var p, v;
190
+ if (obj != null) {
191
+ if (typeof obj == "object") {
192
+ if (obj.hasOwnProperty(p = "DECIMAL_PLACES")) {
193
+ v = obj[p];
194
+ intCheck(v, 0, MAX, p);
195
+ DECIMAL_PLACES = v;
196
+ }
197
+ if (obj.hasOwnProperty(p = "ROUNDING_MODE")) {
198
+ v = obj[p];
199
+ intCheck(v, 0, 8, p);
200
+ ROUNDING_MODE = v;
201
+ }
202
+ if (obj.hasOwnProperty(p = "EXPONENTIAL_AT")) {
203
+ v = obj[p];
204
+ if (v && v.pop) {
205
+ intCheck(v[0], -MAX, 0, p);
206
+ intCheck(v[1], 0, MAX, p);
207
+ TO_EXP_NEG = v[0];
208
+ TO_EXP_POS = v[1];
209
+ } else {
210
+ intCheck(v, -MAX, MAX, p);
211
+ TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);
212
+ }
213
+ }
214
+ if (obj.hasOwnProperty(p = "RANGE")) {
215
+ v = obj[p];
216
+ if (v && v.pop) {
217
+ intCheck(v[0], -MAX, -1, p);
218
+ intCheck(v[1], 1, MAX, p);
219
+ MIN_EXP = v[0];
220
+ MAX_EXP = v[1];
221
+ } else {
222
+ intCheck(v, -MAX, MAX, p);
223
+ if (v) {
224
+ MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);
225
+ } else {
226
+ throw Error(bignumberError + p + " cannot be zero: " + v);
227
+ }
228
+ }
229
+ }
230
+ if (obj.hasOwnProperty(p = "CRYPTO")) {
231
+ v = obj[p];
232
+ if (v === !!v) {
233
+ if (v) {
234
+ if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {
235
+ CRYPTO = v;
236
+ } else {
237
+ CRYPTO = !v;
238
+ throw Error(bignumberError + "crypto unavailable");
239
+ }
240
+ } else {
241
+ CRYPTO = v;
242
+ }
243
+ } else {
244
+ throw Error(bignumberError + p + " not true or false: " + v);
245
+ }
246
+ }
247
+ if (obj.hasOwnProperty(p = "MODULO_MODE")) {
248
+ v = obj[p];
249
+ intCheck(v, 0, 9, p);
250
+ MODULO_MODE = v;
251
+ }
252
+ if (obj.hasOwnProperty(p = "POW_PRECISION")) {
253
+ v = obj[p];
254
+ intCheck(v, 0, MAX, p);
255
+ POW_PRECISION = v;
256
+ }
257
+ if (obj.hasOwnProperty(p = "FORMAT")) {
258
+ v = obj[p];
259
+ if (typeof v == "object")
260
+ FORMAT = v;
261
+ else
262
+ throw Error(bignumberError + p + " not an object: " + v);
263
+ }
264
+ if (obj.hasOwnProperty(p = "ALPHABET")) {
265
+ v = obj[p];
266
+ if (typeof v == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(v)) {
267
+ alphabetHasNormalDecimalDigits = v.slice(0, 10) == "0123456789";
268
+ ALPHABET = v;
269
+ } else {
270
+ throw Error(bignumberError + p + " invalid: " + v);
271
+ }
272
+ }
273
+ } else {
274
+ throw Error(bignumberError + "Object expected: " + obj);
275
+ }
276
+ }
277
+ return {
278
+ DECIMAL_PLACES,
279
+ ROUNDING_MODE,
280
+ EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],
281
+ RANGE: [MIN_EXP, MAX_EXP],
282
+ CRYPTO,
283
+ MODULO_MODE,
284
+ POW_PRECISION,
285
+ FORMAT,
286
+ ALPHABET
287
+ };
288
+ };
289
+ BigNumber2.isBigNumber = function(v) {
290
+ if (!v || v._isBigNumber !== true)
291
+ return false;
292
+ if (!BigNumber2.DEBUG)
293
+ return true;
294
+ var i, n, c = v.c, e = v.e, s = v.s;
295
+ out:
296
+ if ({}.toString.call(c) == "[object Array]") {
297
+ if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {
298
+ if (c[0] === 0) {
299
+ if (e === 0 && c.length === 1)
300
+ return true;
301
+ break out;
302
+ }
303
+ i = (e + 1) % LOG_BASE;
304
+ if (i < 1)
305
+ i += LOG_BASE;
306
+ if (String(c[0]).length == i) {
307
+ for (i = 0;i < c.length; i++) {
308
+ n = c[i];
309
+ if (n < 0 || n >= BASE || n !== mathfloor(n))
310
+ break out;
311
+ }
312
+ if (n !== 0)
313
+ return true;
314
+ }
315
+ }
316
+ } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {
317
+ return true;
318
+ }
319
+ throw Error(bignumberError + "Invalid BigNumber: " + v);
320
+ };
321
+ BigNumber2.maximum = BigNumber2.max = function() {
322
+ return maxOrMin(arguments, -1);
323
+ };
324
+ BigNumber2.minimum = BigNumber2.min = function() {
325
+ return maxOrMin(arguments, 1);
326
+ };
327
+ BigNumber2.random = function() {
328
+ var pow2_53 = 9007199254740992;
329
+ var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() {
330
+ return mathfloor(Math.random() * pow2_53);
331
+ } : function() {
332
+ return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0);
333
+ };
334
+ return function(dp) {
335
+ var a, b, e, k, v, i = 0, c = [], rand = new BigNumber2(ONE);
336
+ if (dp == null)
337
+ dp = DECIMAL_PLACES;
338
+ else
339
+ intCheck(dp, 0, MAX);
340
+ k = mathceil(dp / LOG_BASE);
341
+ if (CRYPTO) {
342
+ if (crypto.getRandomValues) {
343
+ a = crypto.getRandomValues(new Uint32Array(k *= 2));
344
+ for (;i < k; ) {
345
+ v = a[i] * 131072 + (a[i + 1] >>> 11);
346
+ if (v >= 9000000000000000) {
347
+ b = crypto.getRandomValues(new Uint32Array(2));
348
+ a[i] = b[0];
349
+ a[i + 1] = b[1];
350
+ } else {
351
+ c.push(v % 100000000000000);
352
+ i += 2;
353
+ }
354
+ }
355
+ i = k / 2;
356
+ } else if (crypto.randomBytes) {
357
+ a = crypto.randomBytes(k *= 7);
358
+ for (;i < k; ) {
359
+ v = (a[i] & 31) * 281474976710656 + a[i + 1] * 1099511627776 + a[i + 2] * 4294967296 + a[i + 3] * 16777216 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];
360
+ if (v >= 9000000000000000) {
361
+ crypto.randomBytes(7).copy(a, i);
362
+ } else {
363
+ c.push(v % 100000000000000);
364
+ i += 7;
365
+ }
366
+ }
367
+ i = k / 7;
368
+ } else {
369
+ CRYPTO = false;
370
+ throw Error(bignumberError + "crypto unavailable");
371
+ }
372
+ }
373
+ if (!CRYPTO) {
374
+ for (;i < k; ) {
375
+ v = random53bitInt();
376
+ if (v < 9000000000000000)
377
+ c[i++] = v % 100000000000000;
378
+ }
379
+ }
380
+ k = c[--i];
381
+ dp %= LOG_BASE;
382
+ if (k && dp) {
383
+ v = POWS_TEN[LOG_BASE - dp];
384
+ c[i] = mathfloor(k / v) * v;
385
+ }
386
+ for (;c[i] === 0; c.pop(), i--)
387
+ ;
388
+ if (i < 0) {
389
+ c = [e = 0];
390
+ } else {
391
+ for (e = -1;c[0] === 0; c.splice(0, 1), e -= LOG_BASE)
392
+ ;
393
+ for (i = 1, v = c[0];v >= 10; v /= 10, i++)
394
+ ;
395
+ if (i < LOG_BASE)
396
+ e -= LOG_BASE - i;
397
+ }
398
+ rand.e = e;
399
+ rand.c = c;
400
+ return rand;
401
+ };
402
+ }();
403
+ BigNumber2.sum = function() {
404
+ var i = 1, args = arguments, sum = new BigNumber2(args[0]);
405
+ for (;i < args.length; )
406
+ sum = sum.plus(args[i++]);
407
+ return sum;
408
+ };
409
+ convertBase = function() {
410
+ var decimal = "0123456789";
411
+ function toBaseOut(str, baseIn, baseOut, alphabet) {
412
+ var j, arr = [0], arrL, i = 0, len = str.length;
413
+ for (;i < len; ) {
414
+ for (arrL = arr.length;arrL--; arr[arrL] *= baseIn)
415
+ ;
416
+ arr[0] += alphabet.indexOf(str.charAt(i++));
417
+ for (j = 0;j < arr.length; j++) {
418
+ if (arr[j] > baseOut - 1) {
419
+ if (arr[j + 1] == null)
420
+ arr[j + 1] = 0;
421
+ arr[j + 1] += arr[j] / baseOut | 0;
422
+ arr[j] %= baseOut;
423
+ }
424
+ }
425
+ }
426
+ return arr.reverse();
427
+ }
428
+ return function(str, baseIn, baseOut, sign, callerIsToString) {
429
+ var alphabet, d, e, k, r, x, xc, y, i = str.indexOf("."), dp = DECIMAL_PLACES, rm = ROUNDING_MODE;
430
+ if (i >= 0) {
431
+ k = POW_PRECISION;
432
+ POW_PRECISION = 0;
433
+ str = str.replace(".", "");
434
+ y = new BigNumber2(baseIn);
435
+ x = y.pow(str.length - i);
436
+ POW_PRECISION = k;
437
+ y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, "0"), 10, baseOut, decimal);
438
+ y.e = y.c.length;
439
+ }
440
+ xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET));
441
+ e = k = xc.length;
442
+ for (;xc[--k] == 0; xc.pop())
443
+ ;
444
+ if (!xc[0])
445
+ return alphabet.charAt(0);
446
+ if (i < 0) {
447
+ --e;
448
+ } else {
449
+ x.c = xc;
450
+ x.e = e;
451
+ x.s = sign;
452
+ x = div(x, y, dp, rm, baseOut);
453
+ xc = x.c;
454
+ r = x.r;
455
+ e = x.e;
456
+ }
457
+ d = e + dp + 1;
458
+ i = xc[d];
459
+ k = baseOut / 2;
460
+ r = r || d < 0 || xc[d + 1] != null;
461
+ r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7));
462
+ if (d < 1 || !xc[0]) {
463
+ str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);
464
+ } else {
465
+ xc.length = d;
466
+ if (r) {
467
+ for (--baseOut;++xc[--d] > baseOut; ) {
468
+ xc[d] = 0;
469
+ if (!d) {
470
+ ++e;
471
+ xc = [1].concat(xc);
472
+ }
473
+ }
474
+ }
475
+ for (k = xc.length;!xc[--k]; )
476
+ ;
477
+ for (i = 0, str = "";i <= k; str += alphabet.charAt(xc[i++]))
478
+ ;
479
+ str = toFixedPoint(str, e, alphabet.charAt(0));
480
+ }
481
+ return str;
482
+ };
483
+ }();
484
+ div = function() {
485
+ function multiply(x, k, base) {
486
+ var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE, khi = k / SQRT_BASE | 0;
487
+ for (x = x.slice();i--; ) {
488
+ xlo = x[i] % SQRT_BASE;
489
+ xhi = x[i] / SQRT_BASE | 0;
490
+ m = khi * xlo + xhi * klo;
491
+ temp = klo * xlo + m % SQRT_BASE * SQRT_BASE + carry;
492
+ carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;
493
+ x[i] = temp % base;
494
+ }
495
+ if (carry)
496
+ x = [carry].concat(x);
497
+ return x;
498
+ }
499
+ function compare2(a, b, aL, bL) {
500
+ var i, cmp;
501
+ if (aL != bL) {
502
+ cmp = aL > bL ? 1 : -1;
503
+ } else {
504
+ for (i = cmp = 0;i < aL; i++) {
505
+ if (a[i] != b[i]) {
506
+ cmp = a[i] > b[i] ? 1 : -1;
507
+ break;
508
+ }
509
+ }
510
+ }
511
+ return cmp;
512
+ }
513
+ function subtract(a, b, aL, base) {
514
+ var i = 0;
515
+ for (;aL--; ) {
516
+ a[aL] -= i;
517
+ i = a[aL] < b[aL] ? 1 : 0;
518
+ a[aL] = i * base + a[aL] - b[aL];
519
+ }
520
+ for (;!a[0] && a.length > 1; a.splice(0, 1))
521
+ ;
522
+ }
523
+ return function(x, y, dp, rm, base) {
524
+ var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c;
525
+ if (!xc || !xc[0] || !yc || !yc[0]) {
526
+ return new BigNumber2(!x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : xc && xc[0] == 0 || !yc ? s * 0 : s / 0);
527
+ }
528
+ q = new BigNumber2(s);
529
+ qc = q.c = [];
530
+ e = x.e - y.e;
531
+ s = dp + e + 1;
532
+ if (!base) {
533
+ base = BASE;
534
+ e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);
535
+ s = s / LOG_BASE | 0;
536
+ }
537
+ for (i = 0;yc[i] == (xc[i] || 0); i++)
538
+ ;
539
+ if (yc[i] > (xc[i] || 0))
540
+ e--;
541
+ if (s < 0) {
542
+ qc.push(1);
543
+ more = true;
544
+ } else {
545
+ xL = xc.length;
546
+ yL = yc.length;
547
+ i = 0;
548
+ s += 2;
549
+ n = mathfloor(base / (yc[0] + 1));
550
+ if (n > 1) {
551
+ yc = multiply(yc, n, base);
552
+ xc = multiply(xc, n, base);
553
+ yL = yc.length;
554
+ xL = xc.length;
555
+ }
556
+ xi = yL;
557
+ rem = xc.slice(0, yL);
558
+ remL = rem.length;
559
+ for (;remL < yL; rem[remL++] = 0)
560
+ ;
561
+ yz = yc.slice();
562
+ yz = [0].concat(yz);
563
+ yc0 = yc[0];
564
+ if (yc[1] >= base / 2)
565
+ yc0++;
566
+ do {
567
+ n = 0;
568
+ cmp = compare2(yc, rem, yL, remL);
569
+ if (cmp < 0) {
570
+ rem0 = rem[0];
571
+ if (yL != remL)
572
+ rem0 = rem0 * base + (rem[1] || 0);
573
+ n = mathfloor(rem0 / yc0);
574
+ if (n > 1) {
575
+ if (n >= base)
576
+ n = base - 1;
577
+ prod = multiply(yc, n, base);
578
+ prodL = prod.length;
579
+ remL = rem.length;
580
+ while (compare2(prod, rem, prodL, remL) == 1) {
581
+ n--;
582
+ subtract(prod, yL < prodL ? yz : yc, prodL, base);
583
+ prodL = prod.length;
584
+ cmp = 1;
585
+ }
586
+ } else {
587
+ if (n == 0) {
588
+ cmp = n = 1;
589
+ }
590
+ prod = yc.slice();
591
+ prodL = prod.length;
592
+ }
593
+ if (prodL < remL)
594
+ prod = [0].concat(prod);
595
+ subtract(rem, prod, remL, base);
596
+ remL = rem.length;
597
+ if (cmp == -1) {
598
+ while (compare2(yc, rem, yL, remL) < 1) {
599
+ n++;
600
+ subtract(rem, yL < remL ? yz : yc, remL, base);
601
+ remL = rem.length;
602
+ }
603
+ }
604
+ } else if (cmp === 0) {
605
+ n++;
606
+ rem = [0];
607
+ }
608
+ qc[i++] = n;
609
+ if (rem[0]) {
610
+ rem[remL++] = xc[xi] || 0;
611
+ } else {
612
+ rem = [xc[xi]];
613
+ remL = 1;
614
+ }
615
+ } while ((xi++ < xL || rem[0] != null) && s--);
616
+ more = rem[0] != null;
617
+ if (!qc[0])
618
+ qc.splice(0, 1);
619
+ }
620
+ if (base == BASE) {
621
+ for (i = 1, s = qc[0];s >= 10; s /= 10, i++)
622
+ ;
623
+ round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);
624
+ } else {
625
+ q.e = e;
626
+ q.r = +more;
627
+ }
628
+ return q;
629
+ };
630
+ }();
631
+ function format(n, i, rm, id) {
632
+ var c0, e, ne, len, str;
633
+ if (rm == null)
634
+ rm = ROUNDING_MODE;
635
+ else
636
+ intCheck(rm, 0, 8);
637
+ if (!n.c)
638
+ return n.toString();
639
+ c0 = n.c[0];
640
+ ne = n.e;
641
+ if (i == null) {
642
+ str = coeffToString(n.c);
643
+ str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, "0");
644
+ } else {
645
+ n = round(new BigNumber2(n), i, rm);
646
+ e = n.e;
647
+ str = coeffToString(n.c);
648
+ len = str.length;
649
+ if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {
650
+ for (;len < i; str += "0", len++)
651
+ ;
652
+ str = toExponential(str, e);
653
+ } else {
654
+ i -= ne + (id === 2 && e > ne);
655
+ str = toFixedPoint(str, e, "0");
656
+ if (e + 1 > len) {
657
+ if (--i > 0)
658
+ for (str += ".";i--; str += "0")
659
+ ;
660
+ } else {
661
+ i += e - len;
662
+ if (i > 0) {
663
+ if (e + 1 == len)
664
+ str += ".";
665
+ for (;i--; str += "0")
666
+ ;
667
+ }
668
+ }
669
+ }
670
+ }
671
+ return n.s < 0 && c0 ? "-" + str : str;
672
+ }
673
+ function maxOrMin(args, n) {
674
+ var k, y, i = 1, x = new BigNumber2(args[0]);
675
+ for (;i < args.length; i++) {
676
+ y = new BigNumber2(args[i]);
677
+ if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {
678
+ x = y;
679
+ }
680
+ }
681
+ return x;
682
+ }
683
+ function normalise(n, c, e) {
684
+ var i = 1, j = c.length;
685
+ for (;!c[--j]; c.pop())
686
+ ;
687
+ for (j = c[0];j >= 10; j /= 10, i++)
688
+ ;
689
+ if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {
690
+ n.c = n.e = null;
691
+ } else if (e < MIN_EXP) {
692
+ n.c = [n.e = 0];
693
+ } else {
694
+ n.e = e;
695
+ n.c = c;
696
+ }
697
+ return n;
698
+ }
699
+ parseNumeric = function() {
700
+ var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, dotAfter = /^([^.]+)\.$/, dotBefore = /^\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g;
701
+ return function(x, str, isNum, b) {
702
+ var base, s = isNum ? str : str.replace(whitespaceOrPlus, "");
703
+ if (isInfinityOrNaN.test(s)) {
704
+ x.s = isNaN(s) ? null : s < 0 ? -1 : 1;
705
+ } else {
706
+ if (!isNum) {
707
+ s = s.replace(basePrefix, function(m, p1, p2) {
708
+ base = (p2 = p2.toLowerCase()) == "x" ? 16 : p2 == "b" ? 2 : 8;
709
+ return !b || b == base ? p1 : m;
710
+ });
711
+ if (b) {
712
+ base = b;
713
+ s = s.replace(dotAfter, "$1").replace(dotBefore, "0.$1");
714
+ }
715
+ if (str != s)
716
+ return new BigNumber2(s, base);
717
+ }
718
+ if (BigNumber2.DEBUG) {
719
+ throw Error(bignumberError + "Not a" + (b ? " base " + b : "") + " number: " + str);
720
+ }
721
+ x.s = null;
722
+ }
723
+ x.c = x.e = null;
724
+ };
725
+ }();
726
+ function round(x, sd, rm, r) {
727
+ var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN;
728
+ if (xc) {
729
+ out: {
730
+ for (d = 1, k = xc[0];k >= 10; k /= 10, d++)
731
+ ;
732
+ i = sd - d;
733
+ if (i < 0) {
734
+ i += LOG_BASE;
735
+ j = sd;
736
+ n = xc[ni = 0];
737
+ rd = mathfloor(n / pows10[d - j - 1] % 10);
738
+ } else {
739
+ ni = mathceil((i + 1) / LOG_BASE);
740
+ if (ni >= xc.length) {
741
+ if (r) {
742
+ for (;xc.length <= ni; xc.push(0))
743
+ ;
744
+ n = rd = 0;
745
+ d = 1;
746
+ i %= LOG_BASE;
747
+ j = i - LOG_BASE + 1;
748
+ } else {
749
+ break out;
750
+ }
751
+ } else {
752
+ n = k = xc[ni];
753
+ for (d = 1;k >= 10; k /= 10, d++)
754
+ ;
755
+ i %= LOG_BASE;
756
+ j = i - LOG_BASE + d;
757
+ rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);
758
+ }
759
+ }
760
+ r = r || sd < 0 || xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);
761
+ r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));
762
+ if (sd < 1 || !xc[0]) {
763
+ xc.length = 0;
764
+ if (r) {
765
+ sd -= x.e + 1;
766
+ xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];
767
+ x.e = -sd || 0;
768
+ } else {
769
+ xc[0] = x.e = 0;
770
+ }
771
+ return x;
772
+ }
773
+ if (i == 0) {
774
+ xc.length = ni;
775
+ k = 1;
776
+ ni--;
777
+ } else {
778
+ xc.length = ni + 1;
779
+ k = pows10[LOG_BASE - i];
780
+ xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;
781
+ }
782
+ if (r) {
783
+ for (;; ) {
784
+ if (ni == 0) {
785
+ for (i = 1, j = xc[0];j >= 10; j /= 10, i++)
786
+ ;
787
+ j = xc[0] += k;
788
+ for (k = 1;j >= 10; j /= 10, k++)
789
+ ;
790
+ if (i != k) {
791
+ x.e++;
792
+ if (xc[0] == BASE)
793
+ xc[0] = 1;
794
+ }
795
+ break;
796
+ } else {
797
+ xc[ni] += k;
798
+ if (xc[ni] != BASE)
799
+ break;
800
+ xc[ni--] = 0;
801
+ k = 1;
802
+ }
803
+ }
804
+ }
805
+ for (i = xc.length;xc[--i] === 0; xc.pop())
806
+ ;
807
+ }
808
+ if (x.e > MAX_EXP) {
809
+ x.c = x.e = null;
810
+ } else if (x.e < MIN_EXP) {
811
+ x.c = [x.e = 0];
812
+ }
813
+ }
814
+ return x;
815
+ }
816
+ function valueOf(n) {
817
+ var str, e = n.e;
818
+ if (e === null)
819
+ return n.toString();
820
+ str = coeffToString(n.c);
821
+ str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, "0");
822
+ return n.s < 0 ? "-" + str : str;
823
+ }
824
+ P.absoluteValue = P.abs = function() {
825
+ var x = new BigNumber2(this);
826
+ if (x.s < 0)
827
+ x.s = 1;
828
+ return x;
829
+ };
830
+ P.comparedTo = function(y, b) {
831
+ return compare(this, new BigNumber2(y, b));
832
+ };
833
+ P.decimalPlaces = P.dp = function(dp, rm) {
834
+ var c, n, v, x = this;
835
+ if (dp != null) {
836
+ intCheck(dp, 0, MAX);
837
+ if (rm == null)
838
+ rm = ROUNDING_MODE;
839
+ else
840
+ intCheck(rm, 0, 8);
841
+ return round(new BigNumber2(x), dp + x.e + 1, rm);
842
+ }
843
+ if (!(c = x.c))
844
+ return null;
845
+ n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;
846
+ if (v = c[v])
847
+ for (;v % 10 == 0; v /= 10, n--)
848
+ ;
849
+ if (n < 0)
850
+ n = 0;
851
+ return n;
852
+ };
853
+ P.dividedBy = P.div = function(y, b) {
854
+ return div(this, new BigNumber2(y, b), DECIMAL_PLACES, ROUNDING_MODE);
855
+ };
856
+ P.dividedToIntegerBy = P.idiv = function(y, b) {
857
+ return div(this, new BigNumber2(y, b), 0, 1);
858
+ };
859
+ P.exponentiatedBy = P.pow = function(n, m) {
860
+ var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this;
861
+ n = new BigNumber2(n);
862
+ if (n.c && !n.isInteger()) {
863
+ throw Error(bignumberError + "Exponent not an integer: " + valueOf(n));
864
+ }
865
+ if (m != null)
866
+ m = new BigNumber2(m);
867
+ nIsBig = n.e > 14;
868
+ if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {
869
+ y = new BigNumber2(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));
870
+ return m ? y.mod(m) : y;
871
+ }
872
+ nIsNeg = n.s < 0;
873
+ if (m) {
874
+ if (m.c ? !m.c[0] : !m.s)
875
+ return new BigNumber2(NaN);
876
+ isModExp = !nIsNeg && x.isInteger() && m.isInteger();
877
+ if (isModExp)
878
+ x = x.mod(m);
879
+ } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 240000000 : x.c[0] < 80000000000000 || nIsBig && x.c[0] <= 99999750000000))) {
880
+ k = x.s < 0 && isOdd(n) ? -0 : 0;
881
+ if (x.e > -1)
882
+ k = 1 / k;
883
+ return new BigNumber2(nIsNeg ? 1 / k : k);
884
+ } else if (POW_PRECISION) {
885
+ k = mathceil(POW_PRECISION / LOG_BASE + 2);
886
+ }
887
+ if (nIsBig) {
888
+ half = new BigNumber2(0.5);
889
+ if (nIsNeg)
890
+ n.s = 1;
891
+ nIsOdd = isOdd(n);
892
+ } else {
893
+ i = Math.abs(+valueOf(n));
894
+ nIsOdd = i % 2;
895
+ }
896
+ y = new BigNumber2(ONE);
897
+ for (;; ) {
898
+ if (nIsOdd) {
899
+ y = y.times(x);
900
+ if (!y.c)
901
+ break;
902
+ if (k) {
903
+ if (y.c.length > k)
904
+ y.c.length = k;
905
+ } else if (isModExp) {
906
+ y = y.mod(m);
907
+ }
908
+ }
909
+ if (i) {
910
+ i = mathfloor(i / 2);
911
+ if (i === 0)
912
+ break;
913
+ nIsOdd = i % 2;
914
+ } else {
915
+ n = n.times(half);
916
+ round(n, n.e + 1, 1);
917
+ if (n.e > 14) {
918
+ nIsOdd = isOdd(n);
919
+ } else {
920
+ i = +valueOf(n);
921
+ if (i === 0)
922
+ break;
923
+ nIsOdd = i % 2;
924
+ }
925
+ }
926
+ x = x.times(x);
927
+ if (k) {
928
+ if (x.c && x.c.length > k)
929
+ x.c.length = k;
930
+ } else if (isModExp) {
931
+ x = x.mod(m);
932
+ }
933
+ }
934
+ if (isModExp)
935
+ return y;
936
+ if (nIsNeg)
937
+ y = ONE.div(y);
938
+ return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;
939
+ };
940
+ P.integerValue = function(rm) {
941
+ var n = new BigNumber2(this);
942
+ if (rm == null)
943
+ rm = ROUNDING_MODE;
944
+ else
945
+ intCheck(rm, 0, 8);
946
+ return round(n, n.e + 1, rm);
947
+ };
948
+ P.isEqualTo = P.eq = function(y, b) {
949
+ return compare(this, new BigNumber2(y, b)) === 0;
950
+ };
951
+ P.isFinite = function() {
952
+ return !!this.c;
953
+ };
954
+ P.isGreaterThan = P.gt = function(y, b) {
955
+ return compare(this, new BigNumber2(y, b)) > 0;
956
+ };
957
+ P.isGreaterThanOrEqualTo = P.gte = function(y, b) {
958
+ return (b = compare(this, new BigNumber2(y, b))) === 1 || b === 0;
959
+ };
960
+ P.isInteger = function() {
961
+ return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;
962
+ };
963
+ P.isLessThan = P.lt = function(y, b) {
964
+ return compare(this, new BigNumber2(y, b)) < 0;
965
+ };
966
+ P.isLessThanOrEqualTo = P.lte = function(y, b) {
967
+ return (b = compare(this, new BigNumber2(y, b))) === -1 || b === 0;
968
+ };
969
+ P.isNaN = function() {
970
+ return !this.s;
971
+ };
972
+ P.isNegative = function() {
973
+ return this.s < 0;
974
+ };
975
+ P.isPositive = function() {
976
+ return this.s > 0;
977
+ };
978
+ P.isZero = function() {
979
+ return !!this.c && this.c[0] == 0;
980
+ };
981
+ P.minus = function(y, b) {
982
+ var i, j, t, xLTy, x = this, a = x.s;
983
+ y = new BigNumber2(y, b);
984
+ b = y.s;
985
+ if (!a || !b)
986
+ return new BigNumber2(NaN);
987
+ if (a != b) {
988
+ y.s = -b;
989
+ return x.plus(y);
990
+ }
991
+ var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
992
+ if (!xe || !ye) {
993
+ if (!xc || !yc)
994
+ return xc ? (y.s = -b, y) : new BigNumber2(yc ? x : NaN);
995
+ if (!xc[0] || !yc[0]) {
996
+ return yc[0] ? (y.s = -b, y) : new BigNumber2(xc[0] ? x : ROUNDING_MODE == 3 ? -0 : 0);
997
+ }
998
+ }
999
+ xe = bitFloor(xe);
1000
+ ye = bitFloor(ye);
1001
+ xc = xc.slice();
1002
+ if (a = xe - ye) {
1003
+ if (xLTy = a < 0) {
1004
+ a = -a;
1005
+ t = xc;
1006
+ } else {
1007
+ ye = xe;
1008
+ t = yc;
1009
+ }
1010
+ t.reverse();
1011
+ for (b = a;b--; t.push(0))
1012
+ ;
1013
+ t.reverse();
1014
+ } else {
1015
+ j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;
1016
+ for (a = b = 0;b < j; b++) {
1017
+ if (xc[b] != yc[b]) {
1018
+ xLTy = xc[b] < yc[b];
1019
+ break;
1020
+ }
1021
+ }
1022
+ }
1023
+ if (xLTy) {
1024
+ t = xc;
1025
+ xc = yc;
1026
+ yc = t;
1027
+ y.s = -y.s;
1028
+ }
1029
+ b = (j = yc.length) - (i = xc.length);
1030
+ if (b > 0)
1031
+ for (;b--; xc[i++] = 0)
1032
+ ;
1033
+ b = BASE - 1;
1034
+ for (;j > a; ) {
1035
+ if (xc[--j] < yc[j]) {
1036
+ for (i = j;i && !xc[--i]; xc[i] = b)
1037
+ ;
1038
+ --xc[i];
1039
+ xc[j] += BASE;
1040
+ }
1041
+ xc[j] -= yc[j];
1042
+ }
1043
+ for (;xc[0] == 0; xc.splice(0, 1), --ye)
1044
+ ;
1045
+ if (!xc[0]) {
1046
+ y.s = ROUNDING_MODE == 3 ? -1 : 1;
1047
+ y.c = [y.e = 0];
1048
+ return y;
1049
+ }
1050
+ return normalise(y, xc, ye);
1051
+ };
1052
+ P.modulo = P.mod = function(y, b) {
1053
+ var q, s, x = this;
1054
+ y = new BigNumber2(y, b);
1055
+ if (!x.c || !y.s || y.c && !y.c[0]) {
1056
+ return new BigNumber2(NaN);
1057
+ } else if (!y.c || x.c && !x.c[0]) {
1058
+ return new BigNumber2(x);
1059
+ }
1060
+ if (MODULO_MODE == 9) {
1061
+ s = y.s;
1062
+ y.s = 1;
1063
+ q = div(x, y, 0, 3);
1064
+ y.s = s;
1065
+ q.s *= s;
1066
+ } else {
1067
+ q = div(x, y, 0, MODULO_MODE);
1068
+ }
1069
+ y = x.minus(q.times(y));
1070
+ if (!y.c[0] && MODULO_MODE == 1)
1071
+ y.s = x.s;
1072
+ return y;
1073
+ };
1074
+ P.multipliedBy = P.times = function(y, b) {
1075
+ var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber2(y, b)).c;
1076
+ if (!xc || !yc || !xc[0] || !yc[0]) {
1077
+ if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {
1078
+ y.c = y.e = y.s = null;
1079
+ } else {
1080
+ y.s *= x.s;
1081
+ if (!xc || !yc) {
1082
+ y.c = y.e = null;
1083
+ } else {
1084
+ y.c = [0];
1085
+ y.e = 0;
1086
+ }
1087
+ }
1088
+ return y;
1089
+ }
1090
+ e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);
1091
+ y.s *= x.s;
1092
+ xcL = xc.length;
1093
+ ycL = yc.length;
1094
+ if (xcL < ycL) {
1095
+ zc = xc;
1096
+ xc = yc;
1097
+ yc = zc;
1098
+ i = xcL;
1099
+ xcL = ycL;
1100
+ ycL = i;
1101
+ }
1102
+ for (i = xcL + ycL, zc = [];i--; zc.push(0))
1103
+ ;
1104
+ base = BASE;
1105
+ sqrtBase = SQRT_BASE;
1106
+ for (i = ycL;--i >= 0; ) {
1107
+ c = 0;
1108
+ ylo = yc[i] % sqrtBase;
1109
+ yhi = yc[i] / sqrtBase | 0;
1110
+ for (k = xcL, j = i + k;j > i; ) {
1111
+ xlo = xc[--k] % sqrtBase;
1112
+ xhi = xc[k] / sqrtBase | 0;
1113
+ m = yhi * xlo + xhi * ylo;
1114
+ xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c;
1115
+ c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;
1116
+ zc[j--] = xlo % base;
1117
+ }
1118
+ zc[j] = c;
1119
+ }
1120
+ if (c) {
1121
+ ++e;
1122
+ } else {
1123
+ zc.splice(0, 1);
1124
+ }
1125
+ return normalise(y, zc, e);
1126
+ };
1127
+ P.negated = function() {
1128
+ var x = new BigNumber2(this);
1129
+ x.s = -x.s || null;
1130
+ return x;
1131
+ };
1132
+ P.plus = function(y, b) {
1133
+ var t, x = this, a = x.s;
1134
+ y = new BigNumber2(y, b);
1135
+ b = y.s;
1136
+ if (!a || !b)
1137
+ return new BigNumber2(NaN);
1138
+ if (a != b) {
1139
+ y.s = -b;
1140
+ return x.minus(y);
1141
+ }
1142
+ var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
1143
+ if (!xe || !ye) {
1144
+ if (!xc || !yc)
1145
+ return new BigNumber2(a / 0);
1146
+ if (!xc[0] || !yc[0])
1147
+ return yc[0] ? y : new BigNumber2(xc[0] ? x : a * 0);
1148
+ }
1149
+ xe = bitFloor(xe);
1150
+ ye = bitFloor(ye);
1151
+ xc = xc.slice();
1152
+ if (a = xe - ye) {
1153
+ if (a > 0) {
1154
+ ye = xe;
1155
+ t = yc;
1156
+ } else {
1157
+ a = -a;
1158
+ t = xc;
1159
+ }
1160
+ t.reverse();
1161
+ for (;a--; t.push(0))
1162
+ ;
1163
+ t.reverse();
1164
+ }
1165
+ a = xc.length;
1166
+ b = yc.length;
1167
+ if (a - b < 0) {
1168
+ t = yc;
1169
+ yc = xc;
1170
+ xc = t;
1171
+ b = a;
1172
+ }
1173
+ for (a = 0;b; ) {
1174
+ a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;
1175
+ xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;
1176
+ }
1177
+ if (a) {
1178
+ xc = [a].concat(xc);
1179
+ ++ye;
1180
+ }
1181
+ return normalise(y, xc, ye);
1182
+ };
1183
+ P.precision = P.sd = function(sd, rm) {
1184
+ var c, n, v, x = this;
1185
+ if (sd != null && sd !== !!sd) {
1186
+ intCheck(sd, 1, MAX);
1187
+ if (rm == null)
1188
+ rm = ROUNDING_MODE;
1189
+ else
1190
+ intCheck(rm, 0, 8);
1191
+ return round(new BigNumber2(x), sd, rm);
1192
+ }
1193
+ if (!(c = x.c))
1194
+ return null;
1195
+ v = c.length - 1;
1196
+ n = v * LOG_BASE + 1;
1197
+ if (v = c[v]) {
1198
+ for (;v % 10 == 0; v /= 10, n--)
1199
+ ;
1200
+ for (v = c[0];v >= 10; v /= 10, n++)
1201
+ ;
1202
+ }
1203
+ if (sd && x.e + 1 > n)
1204
+ n = x.e + 1;
1205
+ return n;
1206
+ };
1207
+ P.shiftedBy = function(k) {
1208
+ intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
1209
+ return this.times("1e" + k);
1210
+ };
1211
+ P.squareRoot = P.sqrt = function() {
1212
+ var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber2("0.5");
1213
+ if (s !== 1 || !c || !c[0]) {
1214
+ return new BigNumber2(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);
1215
+ }
1216
+ s = Math.sqrt(+valueOf(x));
1217
+ if (s == 0 || s == 1 / 0) {
1218
+ n = coeffToString(c);
1219
+ if ((n.length + e) % 2 == 0)
1220
+ n += "0";
1221
+ s = Math.sqrt(+n);
1222
+ e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);
1223
+ if (s == 1 / 0) {
1224
+ n = "5e" + e;
1225
+ } else {
1226
+ n = s.toExponential();
1227
+ n = n.slice(0, n.indexOf("e") + 1) + e;
1228
+ }
1229
+ r = new BigNumber2(n);
1230
+ } else {
1231
+ r = new BigNumber2(s + "");
1232
+ }
1233
+ if (r.c[0]) {
1234
+ e = r.e;
1235
+ s = e + dp;
1236
+ if (s < 3)
1237
+ s = 0;
1238
+ for (;; ) {
1239
+ t = r;
1240
+ r = half.times(t.plus(div(x, t, dp, 1)));
1241
+ if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {
1242
+ if (r.e < e)
1243
+ --s;
1244
+ n = n.slice(s - 3, s + 1);
1245
+ if (n == "9999" || !rep && n == "4999") {
1246
+ if (!rep) {
1247
+ round(t, t.e + DECIMAL_PLACES + 2, 0);
1248
+ if (t.times(t).eq(x)) {
1249
+ r = t;
1250
+ break;
1251
+ }
1252
+ }
1253
+ dp += 4;
1254
+ s += 4;
1255
+ rep = 1;
1256
+ } else {
1257
+ if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
1258
+ round(r, r.e + DECIMAL_PLACES + 2, 1);
1259
+ m = !r.times(r).eq(x);
1260
+ }
1261
+ break;
1262
+ }
1263
+ }
1264
+ }
1265
+ }
1266
+ return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);
1267
+ };
1268
+ P.toExponential = function(dp, rm) {
1269
+ if (dp != null) {
1270
+ intCheck(dp, 0, MAX);
1271
+ dp++;
1272
+ }
1273
+ return format(this, dp, rm, 1);
1274
+ };
1275
+ P.toFixed = function(dp, rm) {
1276
+ if (dp != null) {
1277
+ intCheck(dp, 0, MAX);
1278
+ dp = dp + this.e + 1;
1279
+ }
1280
+ return format(this, dp, rm);
1281
+ };
1282
+ P.toFormat = function(dp, rm, format2) {
1283
+ var str, x = this;
1284
+ if (format2 == null) {
1285
+ if (dp != null && rm && typeof rm == "object") {
1286
+ format2 = rm;
1287
+ rm = null;
1288
+ } else if (dp && typeof dp == "object") {
1289
+ format2 = dp;
1290
+ dp = rm = null;
1291
+ } else {
1292
+ format2 = FORMAT;
1293
+ }
1294
+ } else if (typeof format2 != "object") {
1295
+ throw Error(bignumberError + "Argument not an object: " + format2);
1296
+ }
1297
+ str = x.toFixed(dp, rm);
1298
+ if (x.c) {
1299
+ var i, arr = str.split("."), g1 = +format2.groupSize, g2 = +format2.secondaryGroupSize, groupSeparator = format2.groupSeparator || "", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length;
1300
+ if (g2) {
1301
+ i = g1;
1302
+ g1 = g2;
1303
+ g2 = i;
1304
+ len -= i;
1305
+ }
1306
+ if (g1 > 0 && len > 0) {
1307
+ i = len % g1 || g1;
1308
+ intPart = intDigits.substr(0, i);
1309
+ for (;i < len; i += g1)
1310
+ intPart += groupSeparator + intDigits.substr(i, g1);
1311
+ if (g2 > 0)
1312
+ intPart += groupSeparator + intDigits.slice(i);
1313
+ if (isNeg)
1314
+ intPart = "-" + intPart;
1315
+ }
1316
+ str = fractionPart ? intPart + (format2.decimalSeparator || "") + ((g2 = +format2.fractionGroupSize) ? fractionPart.replace(new RegExp("\\d{" + g2 + "}\\B", "g"), "$&" + (format2.fractionGroupSeparator || "")) : fractionPart) : intPart;
1317
+ }
1318
+ return (format2.prefix || "") + str + (format2.suffix || "");
1319
+ };
1320
+ P.toFraction = function(md) {
1321
+ var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c;
1322
+ if (md != null) {
1323
+ n = new BigNumber2(md);
1324
+ if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {
1325
+ throw Error(bignumberError + "Argument " + (n.isInteger() ? "out of range: " : "not an integer: ") + valueOf(n));
1326
+ }
1327
+ }
1328
+ if (!xc)
1329
+ return new BigNumber2(x);
1330
+ d = new BigNumber2(ONE);
1331
+ n1 = d0 = new BigNumber2(ONE);
1332
+ d1 = n0 = new BigNumber2(ONE);
1333
+ s = coeffToString(xc);
1334
+ e = d.e = s.length - x.e - 1;
1335
+ d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];
1336
+ md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n;
1337
+ exp = MAX_EXP;
1338
+ MAX_EXP = 1 / 0;
1339
+ n = new BigNumber2(s);
1340
+ n0.c[0] = 0;
1341
+ for (;; ) {
1342
+ q = div(n, d, 0, 1);
1343
+ d2 = d0.plus(q.times(d1));
1344
+ if (d2.comparedTo(md) == 1)
1345
+ break;
1346
+ d0 = d1;
1347
+ d1 = d2;
1348
+ n1 = n0.plus(q.times(d2 = n1));
1349
+ n0 = d2;
1350
+ d = n.minus(q.times(d2 = d));
1351
+ n = d2;
1352
+ }
1353
+ d2 = div(md.minus(d0), d1, 0, 1);
1354
+ n0 = n0.plus(d2.times(n1));
1355
+ d0 = d0.plus(d2.times(d1));
1356
+ n0.s = n1.s = x.s;
1357
+ e = e * 2;
1358
+ r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];
1359
+ MAX_EXP = exp;
1360
+ return r;
1361
+ };
1362
+ P.toNumber = function() {
1363
+ return +valueOf(this);
1364
+ };
1365
+ P.toPrecision = function(sd, rm) {
1366
+ if (sd != null)
1367
+ intCheck(sd, 1, MAX);
1368
+ return format(this, sd, rm, 2);
1369
+ };
1370
+ P.toString = function(b) {
1371
+ var str, n = this, s = n.s, e = n.e;
1372
+ if (e === null) {
1373
+ if (s) {
1374
+ str = "Infinity";
1375
+ if (s < 0)
1376
+ str = "-" + str;
1377
+ } else {
1378
+ str = "NaN";
1379
+ }
1380
+ } else {
1381
+ if (b == null) {
1382
+ str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, "0");
1383
+ } else if (b === 10 && alphabetHasNormalDecimalDigits) {
1384
+ n = round(new BigNumber2(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);
1385
+ str = toFixedPoint(coeffToString(n.c), n.e, "0");
1386
+ } else {
1387
+ intCheck(b, 2, ALPHABET.length, "Base");
1388
+ str = convertBase(toFixedPoint(coeffToString(n.c), e, "0"), 10, b, s, true);
1389
+ }
1390
+ if (s < 0 && n.c[0])
1391
+ str = "-" + str;
1392
+ }
1393
+ return str;
1394
+ };
1395
+ P.valueOf = P.toJSON = function() {
1396
+ return valueOf(this);
1397
+ };
1398
+ P._isBigNumber = true;
1399
+ if (configObject != null)
1400
+ BigNumber2.set(configObject);
1401
+ return BigNumber2;
1402
+ }
1403
+ function bitFloor(n) {
1404
+ var i = n | 0;
1405
+ return n > 0 || n === i ? i : i - 1;
1406
+ }
1407
+ function coeffToString(a) {
1408
+ var s, z, i = 1, j = a.length, r = a[0] + "";
1409
+ for (;i < j; ) {
1410
+ s = a[i++] + "";
1411
+ z = LOG_BASE - s.length;
1412
+ for (;z--; s = "0" + s)
1413
+ ;
1414
+ r += s;
1415
+ }
1416
+ for (j = r.length;r.charCodeAt(--j) === 48; )
1417
+ ;
1418
+ return r.slice(0, j + 1 || 1);
1419
+ }
1420
+ function compare(x, y) {
1421
+ var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e;
1422
+ if (!i || !j)
1423
+ return null;
1424
+ a = xc && !xc[0];
1425
+ b = yc && !yc[0];
1426
+ if (a || b)
1427
+ return a ? b ? 0 : -j : i;
1428
+ if (i != j)
1429
+ return i;
1430
+ a = i < 0;
1431
+ b = k == l;
1432
+ if (!xc || !yc)
1433
+ return b ? 0 : !xc ^ a ? 1 : -1;
1434
+ if (!b)
1435
+ return k > l ^ a ? 1 : -1;
1436
+ j = (k = xc.length) < (l = yc.length) ? k : l;
1437
+ for (i = 0;i < j; i++)
1438
+ if (xc[i] != yc[i])
1439
+ return xc[i] > yc[i] ^ a ? 1 : -1;
1440
+ return k == l ? 0 : k > l ^ a ? 1 : -1;
1441
+ }
1442
+ function intCheck(n, min, max, name) {
1443
+ if (n < min || n > max || n !== mathfloor(n)) {
1444
+ throw Error(bignumberError + (name || "Argument") + (typeof n == "number" ? n < min || n > max ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(n));
1445
+ }
1446
+ }
1447
+ function isOdd(n) {
1448
+ var k = n.c.length - 1;
1449
+ return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;
1450
+ }
1451
+ function toExponential(str, e) {
1452
+ return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e < 0 ? "e" : "e+") + e;
1453
+ }
1454
+ function toFixedPoint(str, e, z) {
1455
+ var len, zs;
1456
+ if (e < 0) {
1457
+ for (zs = z + ".";++e; zs += z)
1458
+ ;
1459
+ str = zs + str;
1460
+ } else {
1461
+ len = str.length;
1462
+ if (++e > len) {
1463
+ for (zs = z, e -= len;--e; zs += z)
1464
+ ;
1465
+ str += zs;
1466
+ } else if (e < len) {
1467
+ str = str.slice(0, e) + "." + str.slice(e);
1468
+ }
1469
+ }
1470
+ return str;
1471
+ }
1472
+ BigNumber = clone();
1473
+ BigNumber["default"] = BigNumber.BigNumber = BigNumber;
1474
+ if (typeof define == "function" && define.amd) {
1475
+ define(function() {
1476
+ return BigNumber;
1477
+ });
1478
+ } else if (typeof module != "undefined" && module.exports) {
1479
+ module.exports = BigNumber;
1480
+ } else {
1481
+ if (!globalObject) {
1482
+ globalObject = typeof self != "undefined" && self ? self : window;
1483
+ }
1484
+ globalObject.BigNumber = BigNumber;
1485
+ }
1486
+ })(exports);
1487
+ });
1488
+
1489
+ // node_modules/.bun/json-bigint@1.0.0/node_modules/json-bigint/lib/stringify.js
1490
+ var require_stringify = __commonJS((exports, module) => {
1491
+ var BigNumber = require_bignumber();
1492
+ var JSON2 = exports;
1493
+ (function() {
1494
+ function f(n) {
1495
+ return n < 10 ? "0" + n : n;
1496
+ }
1497
+ var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = {
1498
+ "\b": "\\b",
1499
+ "\t": "\\t",
1500
+ "\n": "\\n",
1501
+ "\f": "\\f",
1502
+ "\r": "\\r",
1503
+ '"': "\\\"",
1504
+ "\\": "\\\\"
1505
+ }, rep;
1506
+ function quote(string) {
1507
+ escapable.lastIndex = 0;
1508
+ return escapable.test(string) ? '"' + string.replace(escapable, function(a) {
1509
+ var c = meta[a];
1510
+ return typeof c === "string" ? c : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4);
1511
+ }) + '"' : '"' + string + '"';
1512
+ }
1513
+ function str(key, holder) {
1514
+ var i, k, v, length, mind = gap, partial, value = holder[key], isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));
1515
+ if (value && typeof value === "object" && typeof value.toJSON === "function") {
1516
+ value = value.toJSON(key);
1517
+ }
1518
+ if (typeof rep === "function") {
1519
+ value = rep.call(holder, key, value);
1520
+ }
1521
+ switch (typeof value) {
1522
+ case "string":
1523
+ if (isBigNumber) {
1524
+ return value;
1525
+ } else {
1526
+ return quote(value);
1527
+ }
1528
+ case "number":
1529
+ return isFinite(value) ? String(value) : "null";
1530
+ case "boolean":
1531
+ case "null":
1532
+ case "bigint":
1533
+ return String(value);
1534
+ case "object":
1535
+ if (!value) {
1536
+ return "null";
1537
+ }
1538
+ gap += indent;
1539
+ partial = [];
1540
+ if (Object.prototype.toString.apply(value) === "[object Array]") {
1541
+ length = value.length;
1542
+ for (i = 0;i < length; i += 1) {
1543
+ partial[i] = str(i, value) || "null";
1544
+ }
1545
+ v = partial.length === 0 ? "[]" : gap ? `[
1546
+ ` + gap + partial.join(`,
1547
+ ` + gap) + `
1548
+ ` + mind + "]" : "[" + partial.join(",") + "]";
1549
+ gap = mind;
1550
+ return v;
1551
+ }
1552
+ if (rep && typeof rep === "object") {
1553
+ length = rep.length;
1554
+ for (i = 0;i < length; i += 1) {
1555
+ if (typeof rep[i] === "string") {
1556
+ k = rep[i];
1557
+ v = str(k, value);
1558
+ if (v) {
1559
+ partial.push(quote(k) + (gap ? ": " : ":") + v);
1560
+ }
1561
+ }
1562
+ }
1563
+ } else {
1564
+ Object.keys(value).forEach(function(k2) {
1565
+ var v2 = str(k2, value);
1566
+ if (v2) {
1567
+ partial.push(quote(k2) + (gap ? ": " : ":") + v2);
1568
+ }
1569
+ });
1570
+ }
1571
+ v = partial.length === 0 ? "{}" : gap ? `{
1572
+ ` + gap + partial.join(`,
1573
+ ` + gap) + `
1574
+ ` + mind + "}" : "{" + partial.join(",") + "}";
1575
+ gap = mind;
1576
+ return v;
1577
+ }
1578
+ }
1579
+ if (typeof JSON2.stringify !== "function") {
1580
+ JSON2.stringify = function(value, replacer, space) {
1581
+ var i;
1582
+ gap = "";
1583
+ indent = "";
1584
+ if (typeof space === "number") {
1585
+ for (i = 0;i < space; i += 1) {
1586
+ indent += " ";
1587
+ }
1588
+ } else if (typeof space === "string") {
1589
+ indent = space;
1590
+ }
1591
+ rep = replacer;
1592
+ if (replacer && typeof replacer !== "function" && (typeof replacer !== "object" || typeof replacer.length !== "number")) {
1593
+ throw new Error("JSON.stringify");
1594
+ }
1595
+ return str("", { "": value });
1596
+ };
1597
+ }
1598
+ })();
1599
+ });
1600
+
1601
+ // node_modules/.bun/json-bigint@1.0.0/node_modules/json-bigint/lib/parse.js
1602
+ var require_parse = __commonJS((exports, module) => {
1603
+ var BigNumber = null;
1604
+ var suspectProtoRx = /(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/;
1605
+ var suspectConstructorRx = /(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)/;
1606
+ var json_parse = function(options) {
1607
+ var _options = {
1608
+ strict: false,
1609
+ storeAsString: false,
1610
+ alwaysParseAsBig: false,
1611
+ useNativeBigInt: false,
1612
+ protoAction: "error",
1613
+ constructorAction: "error"
1614
+ };
1615
+ if (options !== undefined && options !== null) {
1616
+ if (options.strict === true) {
1617
+ _options.strict = true;
1618
+ }
1619
+ if (options.storeAsString === true) {
1620
+ _options.storeAsString = true;
1621
+ }
1622
+ _options.alwaysParseAsBig = options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;
1623
+ _options.useNativeBigInt = options.useNativeBigInt === true ? options.useNativeBigInt : false;
1624
+ if (typeof options.constructorAction !== "undefined") {
1625
+ if (options.constructorAction === "error" || options.constructorAction === "ignore" || options.constructorAction === "preserve") {
1626
+ _options.constructorAction = options.constructorAction;
1627
+ } else {
1628
+ throw new Error(`Incorrect value for constructorAction option, must be "error", "ignore" or undefined but passed ${options.constructorAction}`);
1629
+ }
1630
+ }
1631
+ if (typeof options.protoAction !== "undefined") {
1632
+ if (options.protoAction === "error" || options.protoAction === "ignore" || options.protoAction === "preserve") {
1633
+ _options.protoAction = options.protoAction;
1634
+ } else {
1635
+ throw new Error(`Incorrect value for protoAction option, must be "error", "ignore" or undefined but passed ${options.protoAction}`);
1636
+ }
1637
+ }
1638
+ }
1639
+ var at, ch, escapee = {
1640
+ '"': '"',
1641
+ "\\": "\\",
1642
+ "/": "/",
1643
+ b: "\b",
1644
+ f: "\f",
1645
+ n: `
1646
+ `,
1647
+ r: "\r",
1648
+ t: "\t"
1649
+ }, text, error = function(m) {
1650
+ throw {
1651
+ name: "SyntaxError",
1652
+ message: m,
1653
+ at,
1654
+ text
1655
+ };
1656
+ }, next = function(c) {
1657
+ if (c && c !== ch) {
1658
+ error("Expected '" + c + "' instead of '" + ch + "'");
1659
+ }
1660
+ ch = text.charAt(at);
1661
+ at += 1;
1662
+ return ch;
1663
+ }, number = function() {
1664
+ var number2, string2 = "";
1665
+ if (ch === "-") {
1666
+ string2 = "-";
1667
+ next("-");
1668
+ }
1669
+ while (ch >= "0" && ch <= "9") {
1670
+ string2 += ch;
1671
+ next();
1672
+ }
1673
+ if (ch === ".") {
1674
+ string2 += ".";
1675
+ while (next() && ch >= "0" && ch <= "9") {
1676
+ string2 += ch;
1677
+ }
1678
+ }
1679
+ if (ch === "e" || ch === "E") {
1680
+ string2 += ch;
1681
+ next();
1682
+ if (ch === "-" || ch === "+") {
1683
+ string2 += ch;
1684
+ next();
1685
+ }
1686
+ while (ch >= "0" && ch <= "9") {
1687
+ string2 += ch;
1688
+ next();
1689
+ }
1690
+ }
1691
+ number2 = +string2;
1692
+ if (!isFinite(number2)) {
1693
+ error("Bad number");
1694
+ } else {
1695
+ if (BigNumber == null)
1696
+ BigNumber = require_bignumber();
1697
+ if (string2.length > 15)
1698
+ return _options.storeAsString ? string2 : _options.useNativeBigInt ? BigInt(string2) : new BigNumber(string2);
1699
+ else
1700
+ return !_options.alwaysParseAsBig ? number2 : _options.useNativeBigInt ? BigInt(number2) : new BigNumber(number2);
1701
+ }
1702
+ }, string = function() {
1703
+ var hex, i, string2 = "", uffff;
1704
+ if (ch === '"') {
1705
+ var startAt = at;
1706
+ while (next()) {
1707
+ if (ch === '"') {
1708
+ if (at - 1 > startAt)
1709
+ string2 += text.substring(startAt, at - 1);
1710
+ next();
1711
+ return string2;
1712
+ }
1713
+ if (ch === "\\") {
1714
+ if (at - 1 > startAt)
1715
+ string2 += text.substring(startAt, at - 1);
1716
+ next();
1717
+ if (ch === "u") {
1718
+ uffff = 0;
1719
+ for (i = 0;i < 4; i += 1) {
1720
+ hex = parseInt(next(), 16);
1721
+ if (!isFinite(hex)) {
1722
+ break;
1723
+ }
1724
+ uffff = uffff * 16 + hex;
1725
+ }
1726
+ string2 += String.fromCharCode(uffff);
1727
+ } else if (typeof escapee[ch] === "string") {
1728
+ string2 += escapee[ch];
1729
+ } else {
1730
+ break;
1731
+ }
1732
+ startAt = at;
1733
+ }
1734
+ }
1735
+ }
1736
+ error("Bad string");
1737
+ }, white = function() {
1738
+ while (ch && ch <= " ") {
1739
+ next();
1740
+ }
1741
+ }, word = function() {
1742
+ switch (ch) {
1743
+ case "t":
1744
+ next("t");
1745
+ next("r");
1746
+ next("u");
1747
+ next("e");
1748
+ return true;
1749
+ case "f":
1750
+ next("f");
1751
+ next("a");
1752
+ next("l");
1753
+ next("s");
1754
+ next("e");
1755
+ return false;
1756
+ case "n":
1757
+ next("n");
1758
+ next("u");
1759
+ next("l");
1760
+ next("l");
1761
+ return null;
1762
+ }
1763
+ error("Unexpected '" + ch + "'");
1764
+ }, value, array = function() {
1765
+ var array2 = [];
1766
+ if (ch === "[") {
1767
+ next("[");
1768
+ white();
1769
+ if (ch === "]") {
1770
+ next("]");
1771
+ return array2;
1772
+ }
1773
+ while (ch) {
1774
+ array2.push(value());
1775
+ white();
1776
+ if (ch === "]") {
1777
+ next("]");
1778
+ return array2;
1779
+ }
1780
+ next(",");
1781
+ white();
1782
+ }
1783
+ }
1784
+ error("Bad array");
1785
+ }, object = function() {
1786
+ var key, object2 = Object.create(null);
1787
+ if (ch === "{") {
1788
+ next("{");
1789
+ white();
1790
+ if (ch === "}") {
1791
+ next("}");
1792
+ return object2;
1793
+ }
1794
+ while (ch) {
1795
+ key = string();
1796
+ white();
1797
+ next(":");
1798
+ if (_options.strict === true && Object.hasOwnProperty.call(object2, key)) {
1799
+ error('Duplicate key "' + key + '"');
1800
+ }
1801
+ if (suspectProtoRx.test(key) === true) {
1802
+ if (_options.protoAction === "error") {
1803
+ error("Object contains forbidden prototype property");
1804
+ } else if (_options.protoAction === "ignore") {
1805
+ value();
1806
+ } else {
1807
+ object2[key] = value();
1808
+ }
1809
+ } else if (suspectConstructorRx.test(key) === true) {
1810
+ if (_options.constructorAction === "error") {
1811
+ error("Object contains forbidden constructor property");
1812
+ } else if (_options.constructorAction === "ignore") {
1813
+ value();
1814
+ } else {
1815
+ object2[key] = value();
1816
+ }
1817
+ } else {
1818
+ object2[key] = value();
1819
+ }
1820
+ white();
1821
+ if (ch === "}") {
1822
+ next("}");
1823
+ return object2;
1824
+ }
1825
+ next(",");
1826
+ white();
1827
+ }
1828
+ }
1829
+ error("Bad object");
1830
+ };
1831
+ value = function() {
1832
+ white();
1833
+ switch (ch) {
1834
+ case "{":
1835
+ return object();
1836
+ case "[":
1837
+ return array();
1838
+ case '"':
1839
+ return string();
1840
+ case "-":
1841
+ return number();
1842
+ default:
1843
+ return ch >= "0" && ch <= "9" ? number() : word();
1844
+ }
1845
+ };
1846
+ return function(source, reviver) {
1847
+ var result;
1848
+ text = source + "";
1849
+ at = 0;
1850
+ ch = " ";
1851
+ result = value();
1852
+ white();
1853
+ if (ch) {
1854
+ error("Syntax error");
1855
+ }
1856
+ return typeof reviver === "function" ? function walk(holder, key) {
1857
+ var k, v, value2 = holder[key];
1858
+ if (value2 && typeof value2 === "object") {
1859
+ Object.keys(value2).forEach(function(k2) {
1860
+ v = walk(value2, k2);
1861
+ if (v !== undefined) {
1862
+ value2[k2] = v;
1863
+ } else {
1864
+ delete value2[k2];
1865
+ }
1866
+ });
1867
+ }
1868
+ return reviver.call(holder, key, value2);
1869
+ }({ "": result }, "") : result;
1870
+ };
1871
+ };
1872
+ module.exports = json_parse;
1873
+ });
1874
+
1875
+ // node_modules/.bun/json-bigint@1.0.0/node_modules/json-bigint/index.js
1876
+ var require_json_bigint = __commonJS((exports, module) => {
1877
+ var json_stringify = require_stringify().stringify;
1878
+ var json_parse = require_parse();
1879
+ module.exports = function(options) {
1880
+ return {
1881
+ parse: json_parse(options),
1882
+ stringify: json_stringify
1883
+ };
1884
+ };
1885
+ module.exports.parse = json_parse();
1886
+ module.exports.stringify = json_stringify;
1887
+ });
3
1888
 
4
1889
  // src/lib/search/cache.ts
5
1890
  import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
6
1891
  import path2 from "node:path";
7
1892
 
8
- // node_modules/env-paths/index.js
1893
+ // node_modules/.bun/env-paths@4.0.0/node_modules/env-paths/index.js
9
1894
  import path from "node:path";
10
1895
  import os from "node:os";
11
1896
  import process2 from "node:process";
12
1897
 
13
- // node_modules/is-safe-filename/index.js
1898
+ // node_modules/.bun/is-safe-filename@0.1.1/node_modules/is-safe-filename/index.js
14
1899
  var unsafeFilenameFixtures = Object.freeze([
15
1900
  "",
16
1901
  " ",
@@ -43,7 +1928,7 @@ function assertSafeFilename(filename) {
43
1928
  }
44
1929
  }
45
1930
 
46
- // node_modules/env-paths/index.js
1931
+ // node_modules/.bun/env-paths@4.0.0/node_modules/env-paths/index.js
47
1932
  var homedir = os.homedir();
48
1933
  var tmpdir = os.tmpdir();
49
1934
  var { env } = process2;
@@ -155,7 +2040,7 @@ function isNotFoundError(error) {
155
2040
  return error instanceof Error && "code" in error && error.code === "ENOENT";
156
2041
  }
157
2042
 
158
- // node_modules/minisearch/dist/es/index.js
2043
+ // node_modules/.bun/minisearch@7.2.0/node_modules/minisearch/dist/es/index.js
159
2044
  var ENTRIES = "ENTRIES";
160
2045
  var KEYS = "KEYS";
161
2046
  var VALUES = "VALUES";
@@ -1423,18 +3308,544 @@ function compact(value) {
1423
3308
  return value.toLowerCase().replace(/\s+/g, "");
1424
3309
  }
1425
3310
 
3311
+ // packages/oceanengine-ad-open-sdk/dist/runtime/ApiException.js
3312
+ class ApiException extends Error {
3313
+ statusCode;
3314
+ responseBody;
3315
+ headers;
3316
+ constructor(message, options = {}) {
3317
+ super(message);
3318
+ this.name = "ApiException";
3319
+ this.statusCode = options.statusCode;
3320
+ this.responseBody = options.responseBody;
3321
+ this.headers = options.headers;
3322
+ }
3323
+ }
3324
+
3325
+ // packages/oceanengine-ad-open-sdk/dist/runtime/json.js
3326
+ var import_json_bigint = __toESM(require_json_bigint(), 1);
3327
+ var JSONBigStringParser = import_json_bigint.default({ storeAsString: true });
3328
+ function parseJsonPreservingLargeIntegers(text) {
3329
+ return JSONBigStringParser.parse(text);
3330
+ }
3331
+
3332
+ // packages/oceanengine-ad-open-sdk/dist/runtime/sdk-version.js
3333
+ var SDK_VERSION = "1.1.87";
3334
+
3335
+ // packages/oceanengine-ad-open-sdk/dist/runtime/ApiClient.js
3336
+ class ApiClient {
3337
+ basePath = "https://api.oceanengine.com";
3338
+ fetchImpl;
3339
+ defaultHeaders = new Headers;
3340
+ constructor(options = {}) {
3341
+ this.fetchImpl = options.fetch ?? fetch;
3342
+ if (options.basePath) {
3343
+ this.basePath = options.basePath;
3344
+ }
3345
+ this.setUserAgent("Bytedance Ads Openapi SDK");
3346
+ this.addDefaultHeader("X-Sdk-Language", "node");
3347
+ this.addDefaultHeader("X-Sdk-Version", SDK_VERSION);
3348
+ }
3349
+ getBasePath() {
3350
+ return this.basePath;
3351
+ }
3352
+ setBasePath(basePath) {
3353
+ this.basePath = basePath;
3354
+ return this;
3355
+ }
3356
+ setUserAgent(userAgent) {
3357
+ this.addDefaultHeader("User-Agent", userAgent);
3358
+ return this;
3359
+ }
3360
+ addDefaultHeader(name, value) {
3361
+ this.defaultHeaders.set(name, value);
3362
+ return this;
3363
+ }
3364
+ setAccessToken(token) {
3365
+ this.addDefaultHeader("Access-Token", token);
3366
+ return this;
3367
+ }
3368
+ buildUrl(path3, queryParams = []) {
3369
+ const url = new URL(path3, this.basePath);
3370
+ for (const param of queryParams) {
3371
+ if (param.value == null) {
3372
+ continue;
3373
+ }
3374
+ if (Array.isArray(param.value)) {
3375
+ if (param.collectionFormat === "multi") {
3376
+ for (const value of param.value) {
3377
+ url.searchParams.append(param.name, this.parameterToString(value));
3378
+ }
3379
+ continue;
3380
+ }
3381
+ if (param.collectionFormat !== "csv") {
3382
+ throw new ApiException(`Unsupported collection format for query parameter '${param.name}'`);
3383
+ }
3384
+ url.searchParams.append(param.name, param.value.map((value) => this.parameterToString(value)).join(","));
3385
+ continue;
3386
+ }
3387
+ url.searchParams.append(param.name, this.parameterToString(param.value));
3388
+ }
3389
+ return url;
3390
+ }
3391
+ async request(options) {
3392
+ const response = await this.requestWithHttpInfo(options);
3393
+ return response.data;
3394
+ }
3395
+ async requestWithHttpInfo(options) {
3396
+ const request = this.buildRequest(options);
3397
+ const response = await this.fetchImpl(request);
3398
+ const data = await this.readResponseBody(response, options.responseType);
3399
+ if (!response.ok) {
3400
+ throw new ApiException(`HTTP ${response.status}`, {
3401
+ statusCode: response.status,
3402
+ responseBody: data,
3403
+ headers: response.headers
3404
+ });
3405
+ }
3406
+ return {
3407
+ data,
3408
+ statusCode: response.status,
3409
+ headers: response.headers
3410
+ };
3411
+ }
3412
+ buildRequest(options) {
3413
+ const headers = new Headers(this.defaultHeaders);
3414
+ for (const [name, value] of Object.entries(options.headers ?? {})) {
3415
+ headers.set(name, value);
3416
+ }
3417
+ let body;
3418
+ if (options.method !== "GET" && (options.formParams || options.files)) {
3419
+ const contentType = options.contentType ?? "application/x-www-form-urlencoded";
3420
+ if (contentType === "multipart/form-data") {
3421
+ body = this.buildMultipartFormBody(options.formParams, options.files);
3422
+ } else if (contentType === "application/x-www-form-urlencoded") {
3423
+ headers.set("Content-Type", contentType);
3424
+ const formBody = new URLSearchParams;
3425
+ for (const [name, value] of Object.entries(options.formParams ?? {})) {
3426
+ if (value != null) {
3427
+ formBody.append(name, this.parameterToString(value));
3428
+ }
3429
+ }
3430
+ body = formBody;
3431
+ } else {
3432
+ throw new ApiException(`Unsupported form content type '${contentType}'`);
3433
+ }
3434
+ } else if (options.method !== "GET" && options.body != null) {
3435
+ const contentType = options.contentType ?? "application/json";
3436
+ headers.set("Content-Type", contentType);
3437
+ body = contentType === "application/json" ? JSON.stringify(options.body) : String(options.body);
3438
+ }
3439
+ return new Request(this.buildUrl(options.path, options.queryParams), {
3440
+ method: options.method,
3441
+ headers,
3442
+ body
3443
+ });
3444
+ }
3445
+ buildMultipartFormBody(formParams = {}, files = {}) {
3446
+ const formBody = new FormData;
3447
+ for (const [name, value] of Object.entries(formParams)) {
3448
+ if (value != null) {
3449
+ formBody.append(name, this.parameterToString(value));
3450
+ }
3451
+ }
3452
+ for (const [name, value] of Object.entries(files)) {
3453
+ if (value != null) {
3454
+ formBody.append(name, value);
3455
+ }
3456
+ }
3457
+ return formBody;
3458
+ }
3459
+ async readResponseBody(response, responseType = "json") {
3460
+ if (responseType === "arrayBuffer") {
3461
+ return response.arrayBuffer();
3462
+ }
3463
+ const text = await response.text();
3464
+ if (!text) {
3465
+ return;
3466
+ }
3467
+ if (responseType === "text") {
3468
+ return text;
3469
+ }
3470
+ const contentType = response.headers.get("Content-Type") ?? "";
3471
+ if (contentType.includes("application/json")) {
3472
+ return parseJsonPreservingLargeIntegers(text);
3473
+ }
3474
+ return text;
3475
+ }
3476
+ parameterToString(value) {
3477
+ if (value instanceof Date) {
3478
+ return value.toISOString();
3479
+ }
3480
+ if (typeof value === "object" && value !== null) {
3481
+ return JSON.stringify(value);
3482
+ }
3483
+ return String(value);
3484
+ }
3485
+ }
3486
+ // packages/oceanengine-ad-open-sdk/dist/apis/Oauth2AdvertiserGetApi.js
3487
+ class Oauth2AdvertiserGetApi {
3488
+ apiClient;
3489
+ constructor(apiClient = new ApiClient) {
3490
+ this.apiClient = apiClient;
3491
+ }
3492
+ getApiClient() {
3493
+ return this.apiClient;
3494
+ }
3495
+ setApiClient(apiClient) {
3496
+ this.apiClient = apiClient;
3497
+ }
3498
+ async openApiOauth2AdvertiserGetGet(request) {
3499
+ const response = await this.openApiOauth2AdvertiserGetGetWithHttpInfo(request);
3500
+ return response.data;
3501
+ }
3502
+ async openApiOauth2AdvertiserGetGetWithHttpInfo(request) {
3503
+ return this.apiClient.requestWithHttpInfo({
3504
+ method: "GET",
3505
+ path: "/open_api/oauth2/advertiser/get/",
3506
+ queryParams: [
3507
+ { name: "access_token", value: request.accessToken }
3508
+ ]
3509
+ });
3510
+ }
3511
+ }
3512
+
3513
+ // packages/oceanengine-ad-open-sdk/dist/apis/ProjectListV30Api.js
3514
+ class ProjectListV30Api {
3515
+ apiClient;
3516
+ constructor(apiClient = new ApiClient) {
3517
+ this.apiClient = apiClient;
3518
+ }
3519
+ getApiClient() {
3520
+ return this.apiClient;
3521
+ }
3522
+ setApiClient(apiClient) {
3523
+ this.apiClient = apiClient;
3524
+ }
3525
+ async openApiV30ProjectListGet(request) {
3526
+ const response = await this.openApiV30ProjectListGetWithHttpInfo(request);
3527
+ return response.data;
3528
+ }
3529
+ async openApiV30ProjectListGetWithHttpInfo(request) {
3530
+ if (request.advertiserId == null) {
3531
+ throw new ApiException("Missing the required parameter 'advertiserId' when calling openApiV30ProjectListGet");
3532
+ }
3533
+ return this.apiClient.requestWithHttpInfo({
3534
+ method: "GET",
3535
+ path: "/open_api/v3.0/project/list/",
3536
+ queryParams: [
3537
+ { name: "fields", value: request.fields, collectionFormat: "csv" },
3538
+ { name: "filtering", value: request.filtering },
3539
+ { name: "advertiser_id", value: request.advertiserId },
3540
+ { name: "page", value: request.page },
3541
+ { name: "page_size", value: request.pageSize }
3542
+ ]
3543
+ });
3544
+ }
3545
+ }
3546
+
3547
+ // packages/oceanengine-ad-open-sdk/dist/apis/PromotionListV30Api.js
3548
+ class PromotionListV30Api {
3549
+ apiClient;
3550
+ constructor(apiClient = new ApiClient) {
3551
+ this.apiClient = apiClient;
3552
+ }
3553
+ getApiClient() {
3554
+ return this.apiClient;
3555
+ }
3556
+ setApiClient(apiClient) {
3557
+ this.apiClient = apiClient;
3558
+ }
3559
+ async openApiV30PromotionListGet(request) {
3560
+ const response = await this.openApiV30PromotionListGetWithHttpInfo(request);
3561
+ return response.data;
3562
+ }
3563
+ async openApiV30PromotionListGetWithHttpInfo(request) {
3564
+ if (request.advertiserId == null) {
3565
+ throw new ApiException("Missing the required parameter 'advertiserId' when calling openApiV30PromotionListGet");
3566
+ }
3567
+ return this.apiClient.requestWithHttpInfo({
3568
+ method: "GET",
3569
+ path: "/open_api/v3.0/promotion/list/",
3570
+ queryParams: [
3571
+ { name: "advertiser_id", value: request.advertiserId },
3572
+ { name: "filtering", value: request.filtering },
3573
+ { name: "fields", value: request.fields, collectionFormat: "csv" },
3574
+ { name: "including_material_atrributes", value: request.includingMaterialAtrributes },
3575
+ { name: "page", value: request.page },
3576
+ { name: "page_size", value: request.pageSize },
3577
+ { name: "cursor", value: request.cursor },
3578
+ { name: "count", value: request.count }
3579
+ ]
3580
+ });
3581
+ }
3582
+ }
3583
+ // src/commands/oceanengine/config.ts
3584
+ import { chmod, mkdir as mkdir2, readFile as readFile2, rename as rename2, writeFile as writeFile2 } from "node:fs/promises";
3585
+ import path3 from "node:path";
3586
+ function getOceanEngineConfigInfo(options = {}) {
3587
+ const configDir = options.configDir ?? envPaths("adcli", { suffix: "" }).cache;
3588
+ return {
3589
+ configPath: path3.join(configDir, "oceanengine.json")
3590
+ };
3591
+ }
3592
+ async function saveOceanEngineAccessToken(token, options = {}) {
3593
+ const trimmed = token.trim();
3594
+ if (!trimmed) {
3595
+ throw new Error("missing OceanEngine token");
3596
+ }
3597
+ const configInfo = getOceanEngineConfigInfo(options);
3598
+ await mkdir2(path3.dirname(configInfo.configPath), { recursive: true });
3599
+ const tempPath = `${configInfo.configPath}.${process.pid}.tmp`;
3600
+ await writeFile2(tempPath, `${JSON.stringify({ access_token: trimmed })}
3601
+ `, {
3602
+ encoding: "utf8",
3603
+ mode: 384
3604
+ });
3605
+ await rename2(tempPath, configInfo.configPath);
3606
+ await chmod(configInfo.configPath, 384);
3607
+ return configInfo;
3608
+ }
3609
+ async function loadOceanEngineAccessToken(options = {}) {
3610
+ const configInfo = getOceanEngineConfigInfo(options);
3611
+ let config;
3612
+ try {
3613
+ config = JSON.parse(await readFile2(configInfo.configPath, "utf8"));
3614
+ } catch (error) {
3615
+ if (isNotFoundError2(error)) {
3616
+ return;
3617
+ }
3618
+ throw error;
3619
+ }
3620
+ if (typeof config.access_token !== "string" || !config.access_token.trim()) {
3621
+ return;
3622
+ }
3623
+ return config.access_token.trim();
3624
+ }
3625
+ function isNotFoundError2(error) {
3626
+ return error instanceof Error && "code" in error && error.code === "ENOENT";
3627
+ }
3628
+
3629
+ // src/commands/oceanengine/commands.ts
3630
+ async function runOceanEngineCommand(argv, options = {}) {
3631
+ const args = parseOceanEngineArgs(argv);
3632
+ if (args.resource === "auth") {
3633
+ const token2 = args.action;
3634
+ if (!token2) {
3635
+ throw new Error("missing OceanEngine token");
3636
+ }
3637
+ const configInfo = await saveOceanEngineAccessToken(token2, { configDir: options.configDir });
3638
+ return {
3639
+ ok: true,
3640
+ config_path: configInfo.configPath
3641
+ };
3642
+ }
3643
+ const token = await resolveAccessToken(args, options);
3644
+ const apiClient = new ApiClient({ fetch: options.fetch }).setAccessToken(token);
3645
+ if (args.resource === "advertiser" && args.action === "list") {
3646
+ return new Oauth2AdvertiserGetApi(apiClient).openApiOauth2AdvertiserGetGet({ accessToken: token });
3647
+ }
3648
+ if (isProjectListCommand(args)) {
3649
+ const advertiserId = getRequiredId(args, "advertiser-id");
3650
+ return new ProjectListV30Api(apiClient).openApiV30ProjectListGet({
3651
+ advertiserId,
3652
+ fields: parseCsv(args.flags.fields),
3653
+ filtering: parseJsonFlag(args.flags.filtering),
3654
+ page: parseNumberFlag(args.flags.page),
3655
+ pageSize: parseNumberFlag(args.flags["page-size"])
3656
+ });
3657
+ }
3658
+ if (args.resource === "promotion" && args.action === "list") {
3659
+ const advertiserId = getRequiredId(args, "advertiser-id");
3660
+ const filtering = {
3661
+ ...parseJsonFlag(args.flags.filtering),
3662
+ ...parseProjectFilter(args.flags["project-id"])
3663
+ };
3664
+ return new PromotionListV30Api(apiClient).openApiV30PromotionListGet({
3665
+ advertiserId,
3666
+ filtering: Object.keys(filtering).length > 0 ? filtering : undefined,
3667
+ fields: parseCsv(args.flags.fields),
3668
+ includingMaterialAtrributes: args.flags["including-material-attributes"],
3669
+ page: parseNumberFlag(args.flags.page),
3670
+ pageSize: parseNumberFlag(args.flags["page-size"]),
3671
+ cursor: parseNumberFlag(args.flags.cursor),
3672
+ count: parseNumberFlag(args.flags.count)
3673
+ });
3674
+ }
3675
+ throw new Error(`unknown oceanengine command: ${[args.resource, args.action].filter(Boolean).join(" ")}`);
3676
+ }
3677
+ function formatOceanEngineOutput(payload, json, argv = []) {
3678
+ if (json) {
3679
+ return JSON.stringify(payload, null, 2);
3680
+ }
3681
+ if (isOceanEngineErrorPayload(payload)) {
3682
+ return JSON.stringify(payload, null, 2);
3683
+ }
3684
+ if (argv[0] === "project" && argv[1] === "list") {
3685
+ return formatEntityList(payload, "project_id", ["project_id", "id"], ["name", "project_name"]);
3686
+ }
3687
+ if (argv[0] === "promotion" && argv[1] === "list") {
3688
+ return formatEntityList(payload, "promotion_id", ["promotion_id", "id"], ["name", "promotion_name"]);
3689
+ }
3690
+ return JSON.stringify(payload, null, 2);
3691
+ }
3692
+ function formatOceanEngineError(error) {
3693
+ if (!isRecord(error) || !("responseBody" in error)) {
3694
+ return;
3695
+ }
3696
+ const responseBody = error.responseBody;
3697
+ if (responseBody == null) {
3698
+ return;
3699
+ }
3700
+ if (typeof responseBody === "string") {
3701
+ return responseBody;
3702
+ }
3703
+ return JSON.stringify(responseBody, null, 2);
3704
+ }
3705
+ function parseOceanEngineArgs(argv) {
3706
+ const args = {
3707
+ resource: argv[0],
3708
+ action: argv[1],
3709
+ flags: {}
3710
+ };
3711
+ for (let index = 2;index < argv.length; index += 1) {
3712
+ const value = argv[index];
3713
+ if (!value?.startsWith("--")) {
3714
+ continue;
3715
+ }
3716
+ const name = value.slice(2);
3717
+ const next = argv[index + 1];
3718
+ if (!next || next.startsWith("--")) {
3719
+ args.flags[name] = true;
3720
+ continue;
3721
+ }
3722
+ args.flags[name] = next;
3723
+ index += 1;
3724
+ }
3725
+ return args;
3726
+ }
3727
+ async function resolveAccessToken(args, options) {
3728
+ const explicitToken = getOptionalString(args.flags["access-token"]);
3729
+ if (explicitToken) {
3730
+ return explicitToken;
3731
+ }
3732
+ const env2 = options.env ?? process.env;
3733
+ const envToken = getOptionalString(env2.OCEANENGINE_ACCESS_TOKEN);
3734
+ if (envToken) {
3735
+ return envToken;
3736
+ }
3737
+ const savedToken = await loadOceanEngineAccessToken({ configDir: options.configDir });
3738
+ if (savedToken) {
3739
+ return savedToken;
3740
+ }
3741
+ throw new Error("missing --access-token; run adcli oceanengine auth <token> or set OCEANENGINE_ACCESS_TOKEN");
3742
+ }
3743
+ function getRequiredString(args, flag) {
3744
+ const value = getOptionalString(args.flags[flag]);
3745
+ if (!value) {
3746
+ throw new Error(`missing --${flag}`);
3747
+ }
3748
+ return value;
3749
+ }
3750
+ function getOptionalString(value) {
3751
+ if (typeof value !== "string" || !value) {
3752
+ return;
3753
+ }
3754
+ return value;
3755
+ }
3756
+ function getRequiredId(args, flag) {
3757
+ const value = getRequiredString(args, flag);
3758
+ if (!/^\d+$/.test(value)) {
3759
+ throw new Error(`--${flag} must be an integer id`);
3760
+ }
3761
+ return value;
3762
+ }
3763
+ function parseNumberFlag(value) {
3764
+ if (value == null || value === true) {
3765
+ return;
3766
+ }
3767
+ const parsed = Number(value);
3768
+ if (!Number.isFinite(parsed)) {
3769
+ throw new Error(`numeric flag must be a number: ${value}`);
3770
+ }
3771
+ return parsed;
3772
+ }
3773
+ function parseCsv(value) {
3774
+ if (typeof value !== "string" || !value) {
3775
+ return;
3776
+ }
3777
+ return value.split(",").map((item) => item.trim()).filter(Boolean);
3778
+ }
3779
+ function parseJsonFlag(value) {
3780
+ if (typeof value !== "string" || !value) {
3781
+ return;
3782
+ }
3783
+ return parseJsonPreservingLargeIntegers(value);
3784
+ }
3785
+ function parseProjectFilter(value) {
3786
+ if (typeof value !== "string" || !value) {
3787
+ return {};
3788
+ }
3789
+ if (!/^\d+$/.test(value)) {
3790
+ throw new Error("--project-id must be an integer id");
3791
+ }
3792
+ return { project_id: value };
3793
+ }
3794
+ function isProjectListCommand(args) {
3795
+ return args.resource === "project" && args.action === "list";
3796
+ }
3797
+ function formatEntityList(payload, idHeader, idKeys, nameKeys) {
3798
+ const list = getPayloadList(payload);
3799
+ const header = `${idHeader} name`;
3800
+ if (list.length === 0) {
3801
+ return header;
3802
+ }
3803
+ return [
3804
+ header,
3805
+ ...list.map((item) => {
3806
+ const id = getRecordValue(item, idKeys);
3807
+ const name = getRecordValue(item, nameKeys);
3808
+ return `${id} ${name}`;
3809
+ })
3810
+ ].join(`
3811
+ `);
3812
+ }
3813
+ function getPayloadList(payload) {
3814
+ if (!isRecord(payload) || !isRecord(payload.data) || !Array.isArray(payload.data.list)) {
3815
+ return [];
3816
+ }
3817
+ return payload.data.list.filter(isRecord);
3818
+ }
3819
+ function getRecordValue(record, keys) {
3820
+ for (const key of keys) {
3821
+ const value = record[key];
3822
+ if (typeof value === "string" || typeof value === "number") {
3823
+ return String(value);
3824
+ }
3825
+ }
3826
+ return "";
3827
+ }
3828
+ function isRecord(value) {
3829
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3830
+ }
3831
+ function isOceanEngineErrorPayload(payload) {
3832
+ return isRecord(payload) && typeof payload.code === "number" && payload.code !== 0;
3833
+ }
3834
+
1426
3835
  // src/cli.ts
1427
3836
  var help = `adcli
1428
3837
 
1429
3838
  Usage:
1430
3839
  adcli list [platform] [--json]
1431
3840
  adcli doc <command>
3841
+ adcli oceanengine <resource> <command>
1432
3842
  adcli prompt
1433
3843
  adcli llms
1434
3844
 
1435
3845
  Commands:
1436
3846
  list List supported advertising platforms and capabilities
1437
3847
  doc Search and sync published advertising API docs
3848
+ oceanengine Call OceanEngine APIs through the generated Node.js SDK
1438
3849
  prompt Print an AI/Agent instruction prompt for using the docs pack
1439
3850
  llms Print LLM-readable docs pack entry URLs
1440
3851
  `;
@@ -1448,6 +3859,18 @@ Commands:
1448
3859
  search Search published advertising API docs
1449
3860
  sync Download and cache the latest search index
1450
3861
  `;
3862
+ var oceanEngineHelp = `adcli oceanengine
3863
+
3864
+ Usage:
3865
+ adcli oceanengine auth <token>
3866
+ adcli oceanengine advertiser list [--access-token token] [--json]
3867
+ adcli oceanengine project list --advertiser-id 123 [--access-token token] [--page 1] [--page-size 20] [--filtering '{"status":"PROJECT_STATUS_ALL"}'] [--json]
3868
+ adcli oceanengine promotion list --advertiser-id 123 [--access-token token] [--project-id 456] [--fields promotion_id,name,status_first] [--filtering '{}'] [--json]
3869
+
3870
+ Environment:
3871
+ Token precedence is --access-token, OCEANENGINE_ACCESS_TOKEN, then the saved token.
3872
+ Project list does not include deleted projects by default; use filtering status PROJECT_STATUS_ALL for all projects.
3873
+ `;
1451
3874
  async function main() {
1452
3875
  const args = parseArgs(process.argv.slice(2));
1453
3876
  if (!args.domain || args.domain === "help" || args.domain === "--help" || args.domain === "-h") {
@@ -1482,6 +3905,16 @@ async function main() {
1482
3905
  printLlms(args);
1483
3906
  return;
1484
3907
  }
3908
+ if (args.domain === "oceanengine") {
3909
+ if (!args.command || args.command === "--help" || args.command === "-h" || args.command === "help") {
3910
+ console.log(oceanEngineHelp.trim());
3911
+ return;
3912
+ }
3913
+ const oceanEngineArgv = [args.command, ...args.query];
3914
+ const payload = await runOceanEngineCommand(oceanEngineArgv);
3915
+ console.log(formatOceanEngineOutput(payload, args.json, oceanEngineArgv));
3916
+ return;
3917
+ }
1485
3918
  if (args.domain !== "doc" || args.command !== "search") {
1486
3919
  throw new Error(`unknown command: ${[args.domain, args.command].filter(Boolean).join(" ")}`);
1487
3920
  }
@@ -1645,6 +4078,6 @@ function parseArgs(argv) {
1645
4078
  return args;
1646
4079
  }
1647
4080
  main().catch((error) => {
1648
- console.error(error instanceof Error ? error.message : error);
4081
+ console.error(formatOceanEngineError(error) ?? (error instanceof Error ? error.message : error));
1649
4082
  process.exit(1);
1650
4083
  });