@vibe-lark/larkpal 0.1.86 → 0.1.87
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/account-id-BM1T6029-BzQ_cMoi.mjs +1 -0
- package/dist/activation-context--5yu1dPF-XV0Y0pTy.mjs +1 -0
- package/dist/anthropic-CFZUCb1w.mjs +39 -0
- package/dist/assistant-visible-text-DuFWokAt-BOJV_zwc.mjs +9 -0
- package/dist/azure-openai-responses-BEuiMaF-.mjs +1 -0
- package/dist/boundary-file-read-BSd9MXPy-gnNVhPKT.mjs +1 -0
- package/dist/browser-lifecycle-cleanup-BdNsMhMD-BM97qA_M.mjs +1 -0
- package/dist/build-Bkj0hOS2.mjs +3 -0
- package/dist/bundled-compat-BpaDaAAu-DJtrIX6i.mjs +27 -0
- package/dist/bundled-dir-U738ay4K-BxbzrJOo.mjs +1 -0
- package/dist/call-DimWbpgJ-B4pv55RH.mjs +20 -0
- package/dist/channel-bootstrap.runtime-BVclcGv1-CEZ0-JP9.mjs +1 -0
- package/dist/channel-bootstrap.runtime-Cwcr38m2-Dt6QlQkX.mjs +1 -0
- package/dist/chunk-DHbaKqs-.mjs +1 -0
- package/dist/cli.mjs +7 -92
- package/dist/command-format-LSnUCVVF-Dn4h9IOh.mjs +16 -0
- package/dist/config-Bim2pi8a-03N-28sw.mjs +1 -0
- package/dist/delivery-context.shared-j5hC5qb1-BSLQG47q.mjs +1 -0
- package/dist/diagnostic-ClMwNnUA-BMKvPQJT.mjs +1 -0
- package/dist/dist-J5UB83Ws.mjs +601 -0
- package/dist/dist-coestTs9.mjs +5 -0
- package/dist/env-api-keys-Cuz5irWW.mjs +1 -0
- package/dist/event-stream-B7Ei41Bu.mjs +1 -0
- package/dist/facade-loader-DFzIYYt_-4bzFvy-b.mjs +1 -0
- package/dist/from-Ba69_5cR.mjs +14 -0
- package/dist/gateway-method-policy-C7rf0SeV-CTJcMQCE.mjs +1 -0
- package/dist/github-copilot-headers-BfhryVuU.mjs +1 -0
- package/dist/google-ABo-1guT.mjs +1 -0
- package/dist/google-gemini-cli-CGlN1zUA.mjs +2 -0
- package/dist/google-shared-C60sNhwd.mjs +301 -0
- package/dist/google-vertex-De0nAItu.mjs +1 -0
- package/dist/hash-Dw-N8Y9l.mjs +1 -0
- package/dist/headers-Bpsp70B9.mjs +1 -0
- package/dist/home-dir-C44RaPME-B5iLWwCq.mjs +1 -0
- package/dist/ids-BPsM98Uu-CJBJAeVC.mjs +1 -0
- package/dist/image-2w3cApg7-CrpUMCvm.mjs +3 -0
- package/dist/interactive-init-C5MFL5MW.mjs +8 -0
- package/dist/io-CH2g3vsv-JJtUIa_U.mjs +10 -0
- package/dist/jiti-loader-cache-Bat69wam-DNIteTtO.mjs +9 -0
- package/dist/json-file-BQRNuxmK-hRjIgOXI.mjs +1 -0
- package/dist/json-parse-BESd8UAM.mjs +3 -0
- package/dist/jws-YaZ38F_i.mjs +12 -0
- package/dist/lark-cli-provider-BLMxH6CN.mjs +4 -0
- package/dist/lark-logger-xpMKNNtY.mjs +1 -0
- package/dist/live-smoke-DpURW676.mjs +33 -0
- package/dist/load-context-mb7uvLSn-3xYwSnOZ.mjs +1 -0
- package/dist/loader-708jrx4Y-BbJRXNlQ.mjs +4 -0
- package/dist/main.mjs +153 -74571
- package/dist/manifest-registry-_hxKCS2K-OL8KK_o4.mjs +15 -0
- package/dist/mcp-server.mjs +4 -527
- package/dist/message-channel-Bk_YHfQg-n2Hw2Y0L.mjs +1 -0
- package/dist/message-channel-core-DTA--Gjh-CIh10vfo.mjs +1 -0
- package/dist/message.config.runtime-K-k4XOyq-F_h0Cgkl.mjs +1 -0
- package/dist/message.gateway.runtime-DqHOHRTQ-ge4c5p4s.mjs +1 -0
- package/dist/mistral-DyL3Zo1b.mjs +7 -0
- package/dist/model-auth-env-oyg2Hexc-DJbt9J3o.mjs +1 -0
- package/dist/models-config-BmpSQJQF-BL6S5qAo.mjs +1 -0
- package/dist/models-config.runtime-SOhLEw-f.mjs +1 -0
- package/dist/multipart-parser-B9dwXBqu.mjs +2 -0
- package/dist/oauth-25y2wc7K.mjs +75 -0
- package/dist/openai-C-rgGb7X.mjs +16 -0
- package/dist/openai-codex-responses-BbyAPsP1.mjs +7 -0
- package/dist/openai-completions-Bu5qvQzb.mjs +5 -0
- package/dist/openai-responses-pIdwQBc4.mjs +1 -0
- package/dist/openai-responses-shared-DqW1JSux.mjs +10 -0
- package/dist/paths-D6msg0S1-BO4XgM1u.mjs +1 -0
- package/dist/paths-D92DjaZ--DdtJ-zYp.mjs +1 -0
- package/dist/pi-model-discovery-Bd0TWzo8-DvSM0eWu.mjs +1 -0
- package/dist/pi-model-discovery-runtime-PrjWOmsV.mjs +1 -0
- package/dist/pi-tools.before-tool-call.runtime-Bn7uqKie-WPxU5oNX.mjs +2 -0
- package/dist/plugin-auto-enable-DdH3n9V8-Dr_bUXkG.mjs +1 -0
- package/dist/process-scoped-map-B2cWkYET-Co-i-MXA.mjs +1 -0
- package/dist/provider-discovery.runtime-DY0VWQ81.mjs +1 -0
- package/dist/provider-model-compat-CFqcq0it-BUwZENrz.mjs +1 -0
- package/dist/provider-runtime-C8rljsNs-BDvu6FW3.mjs +1 -0
- package/dist/provider-runtime-CT50mNIX-DImw7ZZu.mjs +79 -0
- package/dist/provider-stream-COLujAAo-Dpq1DSIk.mjs +248 -0
- package/dist/providers.runtime-Ba7tOlq7-B4t6ywCr.mjs +1 -0
- package/dist/public-surface-loader-BVl0NQAE-TfJ3izj1.mjs +1 -0
- package/dist/resolve-C33B7eeu-DZM_z6Wr.mjs +1 -0
- package/dist/runtime-Cym-fqI8-1GOIuRRQ.mjs +1 -0
- package/dist/runtime-channel-state-CohMybAh-BBzhl07Q.mjs +1 -0
- package/dist/runtime-snapshot-C54O1-gI-DxusscPf.mjs +1 -0
- package/dist/runtime-state-IBOIXKOx-Cw1GA1td.mjs +1 -0
- package/dist/runtime-web-tools-fallback.runtime-Ca-qn1mj-BsYE2gOd.mjs +1 -0
- package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-P6MKP9gQ.mjs +1 -0
- package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-5VoyjouO.mjs +1 -0
- package/dist/session-archive.runtime-B52_5vs4-cU2tYbBz.mjs +1 -0
- package/dist/session-key-Cn2QoOyX-QZeYmbxd.mjs +1 -0
- package/dist/session-transcript-files.fs-DEeFXruQ-CXIAFSsr.mjs +1 -0
- package/dist/src-CCDx_C-U.mjs +3 -0
- package/dist/src-DACmA9V6.mjs +5 -0
- package/dist/subagent-announce-L5WsQatW--rMn240x.mjs +2 -0
- package/dist/subagent-announce.registry.runtime-DiqZyeTs-DNfNHsls.mjs +1 -0
- package/dist/subagent-registry-steer-runtime-DFgZFC0j-XYS1_qwl.mjs +1 -0
- package/dist/subagent-system-prompt-C1qnN--K-CsU4f97T.mjs +23 -0
- package/dist/target-parsing-loaded-DKkb6jJY-B830OA1a.mjs +12 -0
- package/dist/task-registry-delivery-runtime-Dd1CUkZF-B2Hj2k8C.mjs +16 -0
- package/dist/task-registry-delivery-runtime-ragbeVx5-Bdvo2Q5u.mjs +1 -0
- package/dist/thinking-Bh-7MqXz-uApNUe6g.mjs +1 -0
- package/dist/transcript-E_-ISOkD-VTwb782D.mjs +5 -0
- package/dist/transcript.runtime-BqhvZZdl-B4E0TiX5.mjs +1 -0
- package/dist/transform-messages-BTA3xbAI.mjs +1 -0
- package/dist/web-provider-public-artifacts-BlpRwIUS-DbVhDOrY.mjs +1 -0
- package/dist/web-search-providers.runtime--0aUtC3b-Bjh4Bmrz.mjs +1 -0
- package/package.json +2 -3
- package/dist/account-id-BM1T6029-DYjVxojW.mjs +0 -46
- package/dist/activation-context--5yu1dPF-Bwsn3moT.mjs +0 -172
- package/dist/anthropic-TH8ERTXK.mjs +0 -5962
- package/dist/assistant-visible-text-DuFWokAt-CsbII5KS.mjs +0 -596
- package/dist/azure-openai-responses-Bt_Ag9Er.mjs +0 -166
- package/dist/boundary-file-read-BSd9MXPy--KThL5e6.mjs +0 -594
- package/dist/browser-lifecycle-cleanup-BdNsMhMD-O3tnAM4i.mjs +0 -60
- package/dist/build-DgTrEpge.mjs +0 -3333
- package/dist/bundled-compat-BpaDaAAu-D7oazKjD.mjs +0 -5216
- package/dist/bundled-dir-U738ay4K-DXK0q_TV.mjs +0 -258
- package/dist/call-DimWbpgJ-ColD4W-y.mjs +0 -9993
- package/dist/channel-bootstrap.runtime-BVclcGv1-DJv_Z-Kr.mjs +0 -2
- package/dist/channel-bootstrap.runtime-Cwcr38m2-VRfVCR-i.mjs +0 -33
- package/dist/chunk-D6SyT4dJ.mjs +0 -36
- package/dist/command-format-LSnUCVVF-BQ2SMKka.mjs +0 -685
- package/dist/config-Bim2pi8a-BQUdfiEi.mjs +0 -9
- package/dist/delivery-context.shared-j5hC5qb1-CI83RXXZ.mjs +0 -72
- package/dist/diagnostic-ClMwNnUA-D6nUtLnb.mjs +0 -140
- package/dist/dist-CEGw8-2W.mjs +0 -429
- package/dist/dist-DD2aJ2UL.mjs +0 -125135
- package/dist/env-api-keys-BVvSg7T2.mjs +0 -68
- package/dist/event-stream-xaQWmyas.mjs +0 -15226
- package/dist/facade-loader-DFzIYYt_-CIr4HKtE.mjs +0 -194
- package/dist/from-DF7cl2wz.mjs +0 -3842
- package/dist/gateway-method-policy-C7rf0SeV-CJQMEYIE.mjs +0 -28
- package/dist/github-copilot-headers-DjqWtUoP.mjs +0 -22
- package/dist/google-C2pVrgBZ.mjs +0 -336
- package/dist/google-gemini-cli-BBxgS5Ho.mjs +0 -623
- package/dist/google-shared-BsWgwEk1.mjs +0 -22791
- package/dist/google-vertex-BsVLJrrC.mjs +0 -358
- package/dist/hash-DAFtW_W7.mjs +0 -16
- package/dist/headers-R3HdCbAE.mjs +0 -8
- package/dist/home-dir-C44RaPME-CBRS4HLP.mjs +0 -93
- package/dist/ids-BPsM98Uu-CwuxvUai.mjs +0 -77
- package/dist/image-2w3cApg7-CxpHvoB5.mjs +0 -207
- package/dist/interactive-init-BXQBalNr.mjs +0 -450
- package/dist/io-CH2g3vsv-BOGlLlB8.mjs +0 -26218
- package/dist/jiti-loader-cache-Bat69wam-D6hCxboy.mjs +0 -5049
- package/dist/json-file-BQRNuxmK-DhJM5NsG.mjs +0 -108
- package/dist/json-parse-v_HIJjjI.mjs +0 -381
- package/dist/jws-GFcTvvVT.mjs +0 -2291
- package/dist/lark-cli-provider-BARgbbmo.mjs +0 -554
- package/dist/lark-logger-D7_pEVQc.mjs +0 -143
- package/dist/live-smoke-BhkBOcH9.mjs +0 -7135
- package/dist/load-context-mb7uvLSn-B10MAi3I.mjs +0 -29
- package/dist/loader-708jrx4Y-BOswuvpe.mjs +0 -5053
- package/dist/manifest-registry-_hxKCS2K-CZdeyN0f.mjs +0 -3512
- package/dist/message-channel-Bk_YHfQg-AeNrPPpp.mjs +0 -50
- package/dist/message-channel-core-DTA--Gjh-CY4Tkb7N.mjs +0 -29
- package/dist/message.config.runtime-K-k4XOyq-DZTmXomP.mjs +0 -2
- package/dist/message.gateway.runtime-DqHOHRTQ-DH4ml0YF.mjs +0 -2
- package/dist/mistral-CaR4DiLu.mjs +0 -28657
- package/dist/model-auth-env-oyg2Hexc-DU_rOUU5.mjs +0 -1306
- package/dist/models-config-BmpSQJQF-Gfvh1n3A.mjs +0 -1282
- package/dist/models-config.runtime-BsU_22xk.mjs +0 -2
- package/dist/multipart-parser-DedmaB5g.mjs +0 -294
- package/dist/oauth-DOJeGfcE.mjs +0 -6392
- package/dist/openai-BDtIh3Ja.mjs +0 -6693
- package/dist/openai-codex-responses-C5EORu31.mjs +0 -664
- package/dist/openai-completions-CR_cS6gX.mjs +0 -669
- package/dist/openai-responses-oGxwZyuC.mjs +0 -184
- package/dist/openai-responses-shared-BixMSDZE.mjs +0 -398
- package/dist/paths-D6msg0S1-C2lYuisN.mjs +0 -189
- package/dist/paths-D92DjaZ--CTOESW2b.mjs +0 -192
- package/dist/pi-model-discovery-Bd0TWzo8-BFsJmeMb.mjs +0 -227
- package/dist/pi-model-discovery-runtime-CCCZxkd8.mjs +0 -2
- package/dist/pi-tools.before-tool-call.runtime-Bn7uqKie-C5ewk8kK.mjs +0 -399
- package/dist/plugin-auto-enable-DdH3n9V8-DsA1isaF.mjs +0 -1456
- package/dist/process-scoped-map-B2cWkYET-CXwUZ8CZ.mjs +0 -61
- package/dist/provider-discovery.runtime-BPzz1PFj.mjs +0 -58
- package/dist/provider-model-compat-CFqcq0it-BDDuBI3A.mjs +0 -118
- package/dist/provider-runtime-C8rljsNs-CIT93zoy.mjs +0 -2
- package/dist/provider-runtime-CT50mNIX-BwEV6GyO.mjs +0 -573
- package/dist/provider-stream-COLujAAo-CbJPDngm.mjs +0 -35449
- package/dist/providers.runtime-Ba7tOlq7-CXkhkzU9.mjs +0 -219
- package/dist/public-surface-loader-BVl0NQAE-C0piXtsT.mjs +0 -117
- package/dist/resolve-C33B7eeu-BNvYTl6k.mjs +0 -1041
- package/dist/runtime-Cym-fqI8-DaSDMH-a.mjs +0 -120
- package/dist/runtime-channel-state-CohMybAh-hXR6y5Gx.mjs +0 -19
- package/dist/runtime-snapshot-C54O1-gI-40cbyi7P.mjs +0 -677
- package/dist/runtime-state-IBOIXKOx-Bf9tcLvc.mjs +0 -10
- package/dist/runtime-web-tools-fallback.runtime-Ca-qn1mj-BCVImm7a.mjs +0 -39
- package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-Cb4nJkRT.mjs +0 -2
- package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-BrQdXzOQ.mjs +0 -2
- package/dist/session-archive.runtime-B52_5vs4-BG-_IwNJ.mjs +0 -2
- package/dist/session-key-Cn2QoOyX-CuHbJMgR.mjs +0 -82
- package/dist/session-transcript-files.fs-DEeFXruQ-B1PF6nLy.mjs +0 -147
- package/dist/src-BgCX0MLG.mjs +0 -813
- package/dist/src-DYbqlAqf.mjs +0 -1177
- package/dist/subagent-announce-L5WsQatW-CQWI9GMd.mjs +0 -344
- package/dist/subagent-announce.registry.runtime-DiqZyeTs-BKuniyi3.mjs +0 -28
- package/dist/subagent-registry-steer-runtime-DFgZFC0j-BhBz0roy.mjs +0 -211
- package/dist/subagent-system-prompt-C1qnN--K-DpnTFP47.mjs +0 -3061
- package/dist/target-parsing-loaded-DKkb6jJY-BMD4CkpS.mjs +0 -1002
- package/dist/task-registry-delivery-runtime-Dd1CUkZF-C8U40a3O.mjs +0 -2950
- package/dist/task-registry-delivery-runtime-ragbeVx5-CNbFAkjD.mjs +0 -2
- package/dist/thinking-Bh-7MqXz-D3woGbO7.mjs +0 -2
- package/dist/transcript-E_-ISOkD-DWCfZP2p.mjs +0 -2019
- package/dist/transcript.runtime-BqhvZZdl-BPy42vBP.mjs +0 -2
- package/dist/transform-messages-DbhIzTxq.mjs +0 -207
- package/dist/web-provider-public-artifacts-BlpRwIUS-CGPSV4W2.mjs +0 -295
- package/dist/web-search-providers.runtime--0aUtC3b-DyuhC95V.mjs +0 -200
package/dist/jws-GFcTvvVT.mjs
DELETED
|
@@ -1,2291 +0,0 @@
|
|
|
1
|
-
import { i as __require, t as __commonJSMin } from "./chunk-D6SyT4dJ.mjs";
|
|
2
|
-
//#region node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js
|
|
3
|
-
var require_extend = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
4
|
-
var hasOwn = Object.prototype.hasOwnProperty;
|
|
5
|
-
var toStr = Object.prototype.toString;
|
|
6
|
-
var defineProperty = Object.defineProperty;
|
|
7
|
-
var gOPD = Object.getOwnPropertyDescriptor;
|
|
8
|
-
var isArray = function isArray(arr) {
|
|
9
|
-
if (typeof Array.isArray === "function") return Array.isArray(arr);
|
|
10
|
-
return toStr.call(arr) === "[object Array]";
|
|
11
|
-
};
|
|
12
|
-
var isPlainObject = function isPlainObject(obj) {
|
|
13
|
-
if (!obj || toStr.call(obj) !== "[object Object]") return false;
|
|
14
|
-
var hasOwnConstructor = hasOwn.call(obj, "constructor");
|
|
15
|
-
var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, "isPrototypeOf");
|
|
16
|
-
if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) return false;
|
|
17
|
-
var key;
|
|
18
|
-
for (key in obj);
|
|
19
|
-
return typeof key === "undefined" || hasOwn.call(obj, key);
|
|
20
|
-
};
|
|
21
|
-
var setProperty = function setProperty(target, options) {
|
|
22
|
-
if (defineProperty && options.name === "__proto__") defineProperty(target, options.name, {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
configurable: true,
|
|
25
|
-
value: options.newValue,
|
|
26
|
-
writable: true
|
|
27
|
-
});
|
|
28
|
-
else target[options.name] = options.newValue;
|
|
29
|
-
};
|
|
30
|
-
var getProperty = function getProperty(obj, name) {
|
|
31
|
-
if (name === "__proto__") {
|
|
32
|
-
if (!hasOwn.call(obj, name)) return;
|
|
33
|
-
else if (gOPD) return gOPD(obj, name).value;
|
|
34
|
-
}
|
|
35
|
-
return obj[name];
|
|
36
|
-
};
|
|
37
|
-
module.exports = function extend() {
|
|
38
|
-
var options, name, src, copy, copyIsArray, clone;
|
|
39
|
-
var target = arguments[0];
|
|
40
|
-
var i = 1;
|
|
41
|
-
var length = arguments.length;
|
|
42
|
-
var deep = false;
|
|
43
|
-
if (typeof target === "boolean") {
|
|
44
|
-
deep = target;
|
|
45
|
-
target = arguments[1] || {};
|
|
46
|
-
i = 2;
|
|
47
|
-
}
|
|
48
|
-
if (target == null || typeof target !== "object" && typeof target !== "function") target = {};
|
|
49
|
-
for (; i < length; ++i) {
|
|
50
|
-
options = arguments[i];
|
|
51
|
-
if (options != null) for (name in options) {
|
|
52
|
-
src = getProperty(target, name);
|
|
53
|
-
copy = getProperty(options, name);
|
|
54
|
-
if (target !== copy) {
|
|
55
|
-
if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
|
|
56
|
-
if (copyIsArray) {
|
|
57
|
-
copyIsArray = false;
|
|
58
|
-
clone = src && isArray(src) ? src : [];
|
|
59
|
-
} else clone = src && isPlainObject(src) ? src : {};
|
|
60
|
-
setProperty(target, {
|
|
61
|
-
name,
|
|
62
|
-
newValue: extend(deep, clone, copy)
|
|
63
|
-
});
|
|
64
|
-
} else if (typeof copy !== "undefined") setProperty(target, {
|
|
65
|
-
name,
|
|
66
|
-
newValue: copy
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return target;
|
|
72
|
-
};
|
|
73
|
-
}));
|
|
74
|
-
//#endregion
|
|
75
|
-
//#region node_modules/.pnpm/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.js
|
|
76
|
-
var require_bignumber = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
77
|
-
(function(globalObject) {
|
|
78
|
-
"use strict";
|
|
79
|
-
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 = 0x5af3107a4000, LOG_BASE = 14, MAX_SAFE_INTEGER = 9007199254740991, POWS_TEN = [
|
|
80
|
-
1,
|
|
81
|
-
10,
|
|
82
|
-
100,
|
|
83
|
-
1e3,
|
|
84
|
-
1e4,
|
|
85
|
-
1e5,
|
|
86
|
-
1e6,
|
|
87
|
-
1e7,
|
|
88
|
-
1e8,
|
|
89
|
-
1e9,
|
|
90
|
-
1e10,
|
|
91
|
-
1e11,
|
|
92
|
-
0xe8d4a51000,
|
|
93
|
-
0x9184e72a000
|
|
94
|
-
], SQRT_BASE = 1e7, MAX = 1e9;
|
|
95
|
-
function clone(configObject) {
|
|
96
|
-
var div, convertBase, parseNumeric, P = BigNumber.prototype = {
|
|
97
|
-
constructor: BigNumber,
|
|
98
|
-
toString: null,
|
|
99
|
-
valueOf: null
|
|
100
|
-
}, ONE = new BigNumber(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 = {
|
|
101
|
-
prefix: "",
|
|
102
|
-
groupSize: 3,
|
|
103
|
-
secondaryGroupSize: 0,
|
|
104
|
-
groupSeparator: ",",
|
|
105
|
-
decimalSeparator: ".",
|
|
106
|
-
fractionGroupSize: 0,
|
|
107
|
-
fractionGroupSeparator: "\xA0",
|
|
108
|
-
suffix: ""
|
|
109
|
-
}, ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", alphabetHasNormalDecimalDigits = true;
|
|
110
|
-
function BigNumber(v, b) {
|
|
111
|
-
var alphabet, c, caseChanged, e, i, isNum, len, str, x = this;
|
|
112
|
-
if (!(x instanceof BigNumber)) return new BigNumber(v, b);
|
|
113
|
-
if (b == null) {
|
|
114
|
-
if (v && v._isBigNumber === true) {
|
|
115
|
-
x.s = v.s;
|
|
116
|
-
if (!v.c || v.e > MAX_EXP) x.c = x.e = null;
|
|
117
|
-
else if (v.e < MIN_EXP) x.c = [x.e = 0];
|
|
118
|
-
else {
|
|
119
|
-
x.e = v.e;
|
|
120
|
-
x.c = v.c.slice();
|
|
121
|
-
}
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
if ((isNum = typeof v == "number") && v * 0 == 0) {
|
|
125
|
-
x.s = 1 / v < 0 ? (v = -v, -1) : 1;
|
|
126
|
-
if (v === ~~v) {
|
|
127
|
-
for (e = 0, i = v; i >= 10; i /= 10, e++);
|
|
128
|
-
if (e > MAX_EXP) x.c = x.e = null;
|
|
129
|
-
else {
|
|
130
|
-
x.e = e;
|
|
131
|
-
x.c = [v];
|
|
132
|
-
}
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
str = String(v);
|
|
136
|
-
} else {
|
|
137
|
-
if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);
|
|
138
|
-
x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;
|
|
139
|
-
}
|
|
140
|
-
if ((e = str.indexOf(".")) > -1) str = str.replace(".", "");
|
|
141
|
-
if ((i = str.search(/e/i)) > 0) {
|
|
142
|
-
if (e < 0) e = i;
|
|
143
|
-
e += +str.slice(i + 1);
|
|
144
|
-
str = str.substring(0, i);
|
|
145
|
-
} else if (e < 0) e = str.length;
|
|
146
|
-
} else {
|
|
147
|
-
intCheck(b, 2, ALPHABET.length, "Base");
|
|
148
|
-
if (b == 10 && alphabetHasNormalDecimalDigits) {
|
|
149
|
-
x = new BigNumber(v);
|
|
150
|
-
return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);
|
|
151
|
-
}
|
|
152
|
-
str = String(v);
|
|
153
|
-
if (isNum = typeof v == "number") {
|
|
154
|
-
if (v * 0 != 0) return parseNumeric(x, str, isNum, b);
|
|
155
|
-
x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;
|
|
156
|
-
if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, "").length > 15) throw Error(tooManyDigits + v);
|
|
157
|
-
} else x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;
|
|
158
|
-
alphabet = ALPHABET.slice(0, b);
|
|
159
|
-
e = i = 0;
|
|
160
|
-
for (len = str.length; i < len; i++) if (alphabet.indexOf(c = str.charAt(i)) < 0) {
|
|
161
|
-
if (c == ".") {
|
|
162
|
-
if (i > e) {
|
|
163
|
-
e = len;
|
|
164
|
-
continue;
|
|
165
|
-
}
|
|
166
|
-
} else if (!caseChanged) {
|
|
167
|
-
if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) {
|
|
168
|
-
caseChanged = true;
|
|
169
|
-
i = -1;
|
|
170
|
-
e = 0;
|
|
171
|
-
continue;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
return parseNumeric(x, String(v), isNum, b);
|
|
175
|
-
}
|
|
176
|
-
isNum = false;
|
|
177
|
-
str = convertBase(str, b, 10, x.s);
|
|
178
|
-
if ((e = str.indexOf(".")) > -1) str = str.replace(".", "");
|
|
179
|
-
else e = str.length;
|
|
180
|
-
}
|
|
181
|
-
for (i = 0; str.charCodeAt(i) === 48; i++);
|
|
182
|
-
for (len = str.length; str.charCodeAt(--len) === 48;);
|
|
183
|
-
if (str = str.slice(i, ++len)) {
|
|
184
|
-
len -= i;
|
|
185
|
-
if (isNum && BigNumber.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) throw Error(tooManyDigits + x.s * v);
|
|
186
|
-
if ((e = e - i - 1) > MAX_EXP) x.c = x.e = null;
|
|
187
|
-
else if (e < MIN_EXP) x.c = [x.e = 0];
|
|
188
|
-
else {
|
|
189
|
-
x.e = e;
|
|
190
|
-
x.c = [];
|
|
191
|
-
i = (e + 1) % LOG_BASE;
|
|
192
|
-
if (e < 0) i += LOG_BASE;
|
|
193
|
-
if (i < len) {
|
|
194
|
-
if (i) x.c.push(+str.slice(0, i));
|
|
195
|
-
for (len -= LOG_BASE; i < len;) x.c.push(+str.slice(i, i += LOG_BASE));
|
|
196
|
-
i = LOG_BASE - (str = str.slice(i)).length;
|
|
197
|
-
} else i -= len;
|
|
198
|
-
for (; i--; str += "0");
|
|
199
|
-
x.c.push(+str);
|
|
200
|
-
}
|
|
201
|
-
} else x.c = [x.e = 0];
|
|
202
|
-
}
|
|
203
|
-
BigNumber.clone = clone;
|
|
204
|
-
BigNumber.ROUND_UP = 0;
|
|
205
|
-
BigNumber.ROUND_DOWN = 1;
|
|
206
|
-
BigNumber.ROUND_CEIL = 2;
|
|
207
|
-
BigNumber.ROUND_FLOOR = 3;
|
|
208
|
-
BigNumber.ROUND_HALF_UP = 4;
|
|
209
|
-
BigNumber.ROUND_HALF_DOWN = 5;
|
|
210
|
-
BigNumber.ROUND_HALF_EVEN = 6;
|
|
211
|
-
BigNumber.ROUND_HALF_CEIL = 7;
|
|
212
|
-
BigNumber.ROUND_HALF_FLOOR = 8;
|
|
213
|
-
BigNumber.EUCLID = 9;
|
|
214
|
-
BigNumber.config = BigNumber.set = function(obj) {
|
|
215
|
-
var p, v;
|
|
216
|
-
if (obj != null) if (typeof obj == "object") {
|
|
217
|
-
if (obj.hasOwnProperty(p = "DECIMAL_PLACES")) {
|
|
218
|
-
v = obj[p];
|
|
219
|
-
intCheck(v, 0, MAX, p);
|
|
220
|
-
DECIMAL_PLACES = v;
|
|
221
|
-
}
|
|
222
|
-
if (obj.hasOwnProperty(p = "ROUNDING_MODE")) {
|
|
223
|
-
v = obj[p];
|
|
224
|
-
intCheck(v, 0, 8, p);
|
|
225
|
-
ROUNDING_MODE = v;
|
|
226
|
-
}
|
|
227
|
-
if (obj.hasOwnProperty(p = "EXPONENTIAL_AT")) {
|
|
228
|
-
v = obj[p];
|
|
229
|
-
if (v && v.pop) {
|
|
230
|
-
intCheck(v[0], -MAX, 0, p);
|
|
231
|
-
intCheck(v[1], 0, MAX, p);
|
|
232
|
-
TO_EXP_NEG = v[0];
|
|
233
|
-
TO_EXP_POS = v[1];
|
|
234
|
-
} else {
|
|
235
|
-
intCheck(v, -MAX, MAX, p);
|
|
236
|
-
TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
if (obj.hasOwnProperty(p = "RANGE")) {
|
|
240
|
-
v = obj[p];
|
|
241
|
-
if (v && v.pop) {
|
|
242
|
-
intCheck(v[0], -MAX, -1, p);
|
|
243
|
-
intCheck(v[1], 1, MAX, p);
|
|
244
|
-
MIN_EXP = v[0];
|
|
245
|
-
MAX_EXP = v[1];
|
|
246
|
-
} else {
|
|
247
|
-
intCheck(v, -MAX, MAX, p);
|
|
248
|
-
if (v) MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);
|
|
249
|
-
else throw Error(bignumberError + p + " cannot be zero: " + v);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
if (obj.hasOwnProperty(p = "CRYPTO")) {
|
|
253
|
-
v = obj[p];
|
|
254
|
-
if (v === !!v) if (v) if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) CRYPTO = v;
|
|
255
|
-
else {
|
|
256
|
-
CRYPTO = !v;
|
|
257
|
-
throw Error(bignumberError + "crypto unavailable");
|
|
258
|
-
}
|
|
259
|
-
else CRYPTO = v;
|
|
260
|
-
else throw Error(bignumberError + p + " not true or false: " + v);
|
|
261
|
-
}
|
|
262
|
-
if (obj.hasOwnProperty(p = "MODULO_MODE")) {
|
|
263
|
-
v = obj[p];
|
|
264
|
-
intCheck(v, 0, 9, p);
|
|
265
|
-
MODULO_MODE = v;
|
|
266
|
-
}
|
|
267
|
-
if (obj.hasOwnProperty(p = "POW_PRECISION")) {
|
|
268
|
-
v = obj[p];
|
|
269
|
-
intCheck(v, 0, MAX, p);
|
|
270
|
-
POW_PRECISION = v;
|
|
271
|
-
}
|
|
272
|
-
if (obj.hasOwnProperty(p = "FORMAT")) {
|
|
273
|
-
v = obj[p];
|
|
274
|
-
if (typeof v == "object") FORMAT = v;
|
|
275
|
-
else throw Error(bignumberError + p + " not an object: " + v);
|
|
276
|
-
}
|
|
277
|
-
if (obj.hasOwnProperty(p = "ALPHABET")) {
|
|
278
|
-
v = obj[p];
|
|
279
|
-
if (typeof v == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(v)) {
|
|
280
|
-
alphabetHasNormalDecimalDigits = v.slice(0, 10) == "0123456789";
|
|
281
|
-
ALPHABET = v;
|
|
282
|
-
} else throw Error(bignumberError + p + " invalid: " + v);
|
|
283
|
-
}
|
|
284
|
-
} else throw Error(bignumberError + "Object expected: " + obj);
|
|
285
|
-
return {
|
|
286
|
-
DECIMAL_PLACES,
|
|
287
|
-
ROUNDING_MODE,
|
|
288
|
-
EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],
|
|
289
|
-
RANGE: [MIN_EXP, MAX_EXP],
|
|
290
|
-
CRYPTO,
|
|
291
|
-
MODULO_MODE,
|
|
292
|
-
POW_PRECISION,
|
|
293
|
-
FORMAT,
|
|
294
|
-
ALPHABET
|
|
295
|
-
};
|
|
296
|
-
};
|
|
297
|
-
BigNumber.isBigNumber = function(v) {
|
|
298
|
-
if (!v || v._isBigNumber !== true) return false;
|
|
299
|
-
if (!BigNumber.DEBUG) return true;
|
|
300
|
-
var i, n, c = v.c, e = v.e, s = v.s;
|
|
301
|
-
out: if ({}.toString.call(c) == "[object Array]") {
|
|
302
|
-
if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {
|
|
303
|
-
if (c[0] === 0) {
|
|
304
|
-
if (e === 0 && c.length === 1) return true;
|
|
305
|
-
break out;
|
|
306
|
-
}
|
|
307
|
-
i = (e + 1) % LOG_BASE;
|
|
308
|
-
if (i < 1) i += LOG_BASE;
|
|
309
|
-
if (String(c[0]).length == i) {
|
|
310
|
-
for (i = 0; i < c.length; i++) {
|
|
311
|
-
n = c[i];
|
|
312
|
-
if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;
|
|
313
|
-
}
|
|
314
|
-
if (n !== 0) return true;
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
} else if (c === null && e === null && (s === null || s === 1 || s === -1)) return true;
|
|
318
|
-
throw Error(bignumberError + "Invalid BigNumber: " + v);
|
|
319
|
-
};
|
|
320
|
-
BigNumber.maximum = BigNumber.max = function() {
|
|
321
|
-
return maxOrMin(arguments, -1);
|
|
322
|
-
};
|
|
323
|
-
BigNumber.minimum = BigNumber.min = function() {
|
|
324
|
-
return maxOrMin(arguments, 1);
|
|
325
|
-
};
|
|
326
|
-
BigNumber.random = (function() {
|
|
327
|
-
var pow2_53 = 9007199254740992;
|
|
328
|
-
var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() {
|
|
329
|
-
return mathfloor(Math.random() * pow2_53);
|
|
330
|
-
} : function() {
|
|
331
|
-
return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0);
|
|
332
|
-
};
|
|
333
|
-
return function(dp) {
|
|
334
|
-
var a, b, e, k, v, i = 0, c = [], rand = new BigNumber(ONE);
|
|
335
|
-
if (dp == null) dp = DECIMAL_PLACES;
|
|
336
|
-
else intCheck(dp, 0, MAX);
|
|
337
|
-
k = mathceil(dp / LOG_BASE);
|
|
338
|
-
if (CRYPTO) if (crypto.getRandomValues) {
|
|
339
|
-
a = crypto.getRandomValues(new Uint32Array(k *= 2));
|
|
340
|
-
for (; i < k;) {
|
|
341
|
-
v = a[i] * 131072 + (a[i + 1] >>> 11);
|
|
342
|
-
if (v >= 9e15) {
|
|
343
|
-
b = crypto.getRandomValues(new Uint32Array(2));
|
|
344
|
-
a[i] = b[0];
|
|
345
|
-
a[i + 1] = b[1];
|
|
346
|
-
} else {
|
|
347
|
-
c.push(v % 0x5af3107a4000);
|
|
348
|
-
i += 2;
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
i = k / 2;
|
|
352
|
-
} else if (crypto.randomBytes) {
|
|
353
|
-
a = crypto.randomBytes(k *= 7);
|
|
354
|
-
for (; i < k;) {
|
|
355
|
-
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];
|
|
356
|
-
if (v >= 9e15) crypto.randomBytes(7).copy(a, i);
|
|
357
|
-
else {
|
|
358
|
-
c.push(v % 0x5af3107a4000);
|
|
359
|
-
i += 7;
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
i = k / 7;
|
|
363
|
-
} else {
|
|
364
|
-
CRYPTO = false;
|
|
365
|
-
throw Error(bignumberError + "crypto unavailable");
|
|
366
|
-
}
|
|
367
|
-
if (!CRYPTO) for (; i < k;) {
|
|
368
|
-
v = random53bitInt();
|
|
369
|
-
if (v < 9e15) c[i++] = v % 0x5af3107a4000;
|
|
370
|
-
}
|
|
371
|
-
k = c[--i];
|
|
372
|
-
dp %= LOG_BASE;
|
|
373
|
-
if (k && dp) {
|
|
374
|
-
v = POWS_TEN[LOG_BASE - dp];
|
|
375
|
-
c[i] = mathfloor(k / v) * v;
|
|
376
|
-
}
|
|
377
|
-
for (; c[i] === 0; c.pop(), i--);
|
|
378
|
-
if (i < 0) c = [e = 0];
|
|
379
|
-
else {
|
|
380
|
-
for (e = -1; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);
|
|
381
|
-
for (i = 1, v = c[0]; v >= 10; v /= 10, i++);
|
|
382
|
-
if (i < LOG_BASE) e -= LOG_BASE - i;
|
|
383
|
-
}
|
|
384
|
-
rand.e = e;
|
|
385
|
-
rand.c = c;
|
|
386
|
-
return rand;
|
|
387
|
-
};
|
|
388
|
-
})();
|
|
389
|
-
BigNumber.sum = function() {
|
|
390
|
-
var i = 1, args = arguments, sum = new BigNumber(args[0]);
|
|
391
|
-
for (; i < args.length;) sum = sum.plus(args[i++]);
|
|
392
|
-
return sum;
|
|
393
|
-
};
|
|
394
|
-
convertBase = (function() {
|
|
395
|
-
var decimal = "0123456789";
|
|
396
|
-
function toBaseOut(str, baseIn, baseOut, alphabet) {
|
|
397
|
-
var j, arr = [0], arrL, i = 0, len = str.length;
|
|
398
|
-
for (; i < len;) {
|
|
399
|
-
for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);
|
|
400
|
-
arr[0] += alphabet.indexOf(str.charAt(i++));
|
|
401
|
-
for (j = 0; j < arr.length; j++) if (arr[j] > baseOut - 1) {
|
|
402
|
-
if (arr[j + 1] == null) arr[j + 1] = 0;
|
|
403
|
-
arr[j + 1] += arr[j] / baseOut | 0;
|
|
404
|
-
arr[j] %= baseOut;
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
return arr.reverse();
|
|
408
|
-
}
|
|
409
|
-
return function(str, baseIn, baseOut, sign, callerIsToString) {
|
|
410
|
-
var alphabet, d, e, k, r, x, xc, y, i = str.indexOf("."), dp = DECIMAL_PLACES, rm = ROUNDING_MODE;
|
|
411
|
-
if (i >= 0) {
|
|
412
|
-
k = POW_PRECISION;
|
|
413
|
-
POW_PRECISION = 0;
|
|
414
|
-
str = str.replace(".", "");
|
|
415
|
-
y = new BigNumber(baseIn);
|
|
416
|
-
x = y.pow(str.length - i);
|
|
417
|
-
POW_PRECISION = k;
|
|
418
|
-
y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, "0"), 10, baseOut, decimal);
|
|
419
|
-
y.e = y.c.length;
|
|
420
|
-
}
|
|
421
|
-
xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET));
|
|
422
|
-
e = k = xc.length;
|
|
423
|
-
for (; xc[--k] == 0; xc.pop());
|
|
424
|
-
if (!xc[0]) return alphabet.charAt(0);
|
|
425
|
-
if (i < 0) --e;
|
|
426
|
-
else {
|
|
427
|
-
x.c = xc;
|
|
428
|
-
x.e = e;
|
|
429
|
-
x.s = sign;
|
|
430
|
-
x = div(x, y, dp, rm, baseOut);
|
|
431
|
-
xc = x.c;
|
|
432
|
-
r = x.r;
|
|
433
|
-
e = x.e;
|
|
434
|
-
}
|
|
435
|
-
d = e + dp + 1;
|
|
436
|
-
i = xc[d];
|
|
437
|
-
k = baseOut / 2;
|
|
438
|
-
r = r || d < 0 || xc[d + 1] != null;
|
|
439
|
-
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));
|
|
440
|
-
if (d < 1 || !xc[0]) str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);
|
|
441
|
-
else {
|
|
442
|
-
xc.length = d;
|
|
443
|
-
if (r) for (--baseOut; ++xc[--d] > baseOut;) {
|
|
444
|
-
xc[d] = 0;
|
|
445
|
-
if (!d) {
|
|
446
|
-
++e;
|
|
447
|
-
xc = [1].concat(xc);
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
for (k = xc.length; !xc[--k];);
|
|
451
|
-
for (i = 0, str = ""; i <= k; str += alphabet.charAt(xc[i++]));
|
|
452
|
-
str = toFixedPoint(str, e, alphabet.charAt(0));
|
|
453
|
-
}
|
|
454
|
-
return str;
|
|
455
|
-
};
|
|
456
|
-
})();
|
|
457
|
-
div = (function() {
|
|
458
|
-
function multiply(x, k, base) {
|
|
459
|
-
var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE, khi = k / SQRT_BASE | 0;
|
|
460
|
-
for (x = x.slice(); i--;) {
|
|
461
|
-
xlo = x[i] % SQRT_BASE;
|
|
462
|
-
xhi = x[i] / SQRT_BASE | 0;
|
|
463
|
-
m = khi * xlo + xhi * klo;
|
|
464
|
-
temp = klo * xlo + m % SQRT_BASE * SQRT_BASE + carry;
|
|
465
|
-
carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;
|
|
466
|
-
x[i] = temp % base;
|
|
467
|
-
}
|
|
468
|
-
if (carry) x = [carry].concat(x);
|
|
469
|
-
return x;
|
|
470
|
-
}
|
|
471
|
-
function compare(a, b, aL, bL) {
|
|
472
|
-
var i, cmp;
|
|
473
|
-
if (aL != bL) cmp = aL > bL ? 1 : -1;
|
|
474
|
-
else for (i = cmp = 0; i < aL; i++) if (a[i] != b[i]) {
|
|
475
|
-
cmp = a[i] > b[i] ? 1 : -1;
|
|
476
|
-
break;
|
|
477
|
-
}
|
|
478
|
-
return cmp;
|
|
479
|
-
}
|
|
480
|
-
function subtract(a, b, aL, base) {
|
|
481
|
-
var i = 0;
|
|
482
|
-
for (; aL--;) {
|
|
483
|
-
a[aL] -= i;
|
|
484
|
-
i = a[aL] < b[aL] ? 1 : 0;
|
|
485
|
-
a[aL] = i * base + a[aL] - b[aL];
|
|
486
|
-
}
|
|
487
|
-
for (; !a[0] && a.length > 1; a.splice(0, 1));
|
|
488
|
-
}
|
|
489
|
-
return function(x, y, dp, rm, base) {
|
|
490
|
-
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;
|
|
491
|
-
if (!xc || !xc[0] || !yc || !yc[0]) return new BigNumber(!x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : xc && xc[0] == 0 || !yc ? s * 0 : s / 0);
|
|
492
|
-
q = new BigNumber(s);
|
|
493
|
-
qc = q.c = [];
|
|
494
|
-
e = x.e - y.e;
|
|
495
|
-
s = dp + e + 1;
|
|
496
|
-
if (!base) {
|
|
497
|
-
base = BASE;
|
|
498
|
-
e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);
|
|
499
|
-
s = s / LOG_BASE | 0;
|
|
500
|
-
}
|
|
501
|
-
for (i = 0; yc[i] == (xc[i] || 0); i++);
|
|
502
|
-
if (yc[i] > (xc[i] || 0)) e--;
|
|
503
|
-
if (s < 0) {
|
|
504
|
-
qc.push(1);
|
|
505
|
-
more = true;
|
|
506
|
-
} else {
|
|
507
|
-
xL = xc.length;
|
|
508
|
-
yL = yc.length;
|
|
509
|
-
i = 0;
|
|
510
|
-
s += 2;
|
|
511
|
-
n = mathfloor(base / (yc[0] + 1));
|
|
512
|
-
if (n > 1) {
|
|
513
|
-
yc = multiply(yc, n, base);
|
|
514
|
-
xc = multiply(xc, n, base);
|
|
515
|
-
yL = yc.length;
|
|
516
|
-
xL = xc.length;
|
|
517
|
-
}
|
|
518
|
-
xi = yL;
|
|
519
|
-
rem = xc.slice(0, yL);
|
|
520
|
-
remL = rem.length;
|
|
521
|
-
for (; remL < yL; rem[remL++] = 0);
|
|
522
|
-
yz = yc.slice();
|
|
523
|
-
yz = [0].concat(yz);
|
|
524
|
-
yc0 = yc[0];
|
|
525
|
-
if (yc[1] >= base / 2) yc0++;
|
|
526
|
-
do {
|
|
527
|
-
n = 0;
|
|
528
|
-
cmp = compare(yc, rem, yL, remL);
|
|
529
|
-
if (cmp < 0) {
|
|
530
|
-
rem0 = rem[0];
|
|
531
|
-
if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);
|
|
532
|
-
n = mathfloor(rem0 / yc0);
|
|
533
|
-
if (n > 1) {
|
|
534
|
-
if (n >= base) n = base - 1;
|
|
535
|
-
prod = multiply(yc, n, base);
|
|
536
|
-
prodL = prod.length;
|
|
537
|
-
remL = rem.length;
|
|
538
|
-
while (compare(prod, rem, prodL, remL) == 1) {
|
|
539
|
-
n--;
|
|
540
|
-
subtract(prod, yL < prodL ? yz : yc, prodL, base);
|
|
541
|
-
prodL = prod.length;
|
|
542
|
-
cmp = 1;
|
|
543
|
-
}
|
|
544
|
-
} else {
|
|
545
|
-
if (n == 0) cmp = n = 1;
|
|
546
|
-
prod = yc.slice();
|
|
547
|
-
prodL = prod.length;
|
|
548
|
-
}
|
|
549
|
-
if (prodL < remL) prod = [0].concat(prod);
|
|
550
|
-
subtract(rem, prod, remL, base);
|
|
551
|
-
remL = rem.length;
|
|
552
|
-
if (cmp == -1) while (compare(yc, rem, yL, remL) < 1) {
|
|
553
|
-
n++;
|
|
554
|
-
subtract(rem, yL < remL ? yz : yc, remL, base);
|
|
555
|
-
remL = rem.length;
|
|
556
|
-
}
|
|
557
|
-
} else if (cmp === 0) {
|
|
558
|
-
n++;
|
|
559
|
-
rem = [0];
|
|
560
|
-
}
|
|
561
|
-
qc[i++] = n;
|
|
562
|
-
if (rem[0]) rem[remL++] = xc[xi] || 0;
|
|
563
|
-
else {
|
|
564
|
-
rem = [xc[xi]];
|
|
565
|
-
remL = 1;
|
|
566
|
-
}
|
|
567
|
-
} while ((xi++ < xL || rem[0] != null) && s--);
|
|
568
|
-
more = rem[0] != null;
|
|
569
|
-
if (!qc[0]) qc.splice(0, 1);
|
|
570
|
-
}
|
|
571
|
-
if (base == BASE) {
|
|
572
|
-
for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);
|
|
573
|
-
round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);
|
|
574
|
-
} else {
|
|
575
|
-
q.e = e;
|
|
576
|
-
q.r = +more;
|
|
577
|
-
}
|
|
578
|
-
return q;
|
|
579
|
-
};
|
|
580
|
-
})();
|
|
581
|
-
function format(n, i, rm, id) {
|
|
582
|
-
var c0, e, ne, len, str;
|
|
583
|
-
if (rm == null) rm = ROUNDING_MODE;
|
|
584
|
-
else intCheck(rm, 0, 8);
|
|
585
|
-
if (!n.c) return n.toString();
|
|
586
|
-
c0 = n.c[0];
|
|
587
|
-
ne = n.e;
|
|
588
|
-
if (i == null) {
|
|
589
|
-
str = coeffToString(n.c);
|
|
590
|
-
str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, "0");
|
|
591
|
-
} else {
|
|
592
|
-
n = round(new BigNumber(n), i, rm);
|
|
593
|
-
e = n.e;
|
|
594
|
-
str = coeffToString(n.c);
|
|
595
|
-
len = str.length;
|
|
596
|
-
if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {
|
|
597
|
-
for (; len < i; str += "0", len++);
|
|
598
|
-
str = toExponential(str, e);
|
|
599
|
-
} else {
|
|
600
|
-
i -= ne + (id === 2 && e > ne);
|
|
601
|
-
str = toFixedPoint(str, e, "0");
|
|
602
|
-
if (e + 1 > len) {
|
|
603
|
-
if (--i > 0) for (str += "."; i--; str += "0");
|
|
604
|
-
} else {
|
|
605
|
-
i += e - len;
|
|
606
|
-
if (i > 0) {
|
|
607
|
-
if (e + 1 == len) str += ".";
|
|
608
|
-
for (; i--; str += "0");
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
|
-
return n.s < 0 && c0 ? "-" + str : str;
|
|
614
|
-
}
|
|
615
|
-
function maxOrMin(args, n) {
|
|
616
|
-
var k, y, i = 1, x = new BigNumber(args[0]);
|
|
617
|
-
for (; i < args.length; i++) {
|
|
618
|
-
y = new BigNumber(args[i]);
|
|
619
|
-
if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) x = y;
|
|
620
|
-
}
|
|
621
|
-
return x;
|
|
622
|
-
}
|
|
623
|
-
function normalise(n, c, e) {
|
|
624
|
-
var i = 1, j = c.length;
|
|
625
|
-
for (; !c[--j]; c.pop());
|
|
626
|
-
for (j = c[0]; j >= 10; j /= 10, i++);
|
|
627
|
-
if ((e = i + e * LOG_BASE - 1) > MAX_EXP) n.c = n.e = null;
|
|
628
|
-
else if (e < MIN_EXP) n.c = [n.e = 0];
|
|
629
|
-
else {
|
|
630
|
-
n.e = e;
|
|
631
|
-
n.c = c;
|
|
632
|
-
}
|
|
633
|
-
return n;
|
|
634
|
-
}
|
|
635
|
-
parseNumeric = (function() {
|
|
636
|
-
var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, dotAfter = /^([^.]+)\.$/, dotBefore = /^\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g;
|
|
637
|
-
return function(x, str, isNum, b) {
|
|
638
|
-
var base, s = isNum ? str : str.replace(whitespaceOrPlus, "");
|
|
639
|
-
if (isInfinityOrNaN.test(s)) x.s = isNaN(s) ? null : s < 0 ? -1 : 1;
|
|
640
|
-
else {
|
|
641
|
-
if (!isNum) {
|
|
642
|
-
s = s.replace(basePrefix, function(m, p1, p2) {
|
|
643
|
-
base = (p2 = p2.toLowerCase()) == "x" ? 16 : p2 == "b" ? 2 : 8;
|
|
644
|
-
return !b || b == base ? p1 : m;
|
|
645
|
-
});
|
|
646
|
-
if (b) {
|
|
647
|
-
base = b;
|
|
648
|
-
s = s.replace(dotAfter, "$1").replace(dotBefore, "0.$1");
|
|
649
|
-
}
|
|
650
|
-
if (str != s) return new BigNumber(s, base);
|
|
651
|
-
}
|
|
652
|
-
if (BigNumber.DEBUG) throw Error(bignumberError + "Not a" + (b ? " base " + b : "") + " number: " + str);
|
|
653
|
-
x.s = null;
|
|
654
|
-
}
|
|
655
|
-
x.c = x.e = null;
|
|
656
|
-
};
|
|
657
|
-
})();
|
|
658
|
-
function round(x, sd, rm, r) {
|
|
659
|
-
var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN;
|
|
660
|
-
if (xc) {
|
|
661
|
-
out: {
|
|
662
|
-
for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);
|
|
663
|
-
i = sd - d;
|
|
664
|
-
if (i < 0) {
|
|
665
|
-
i += LOG_BASE;
|
|
666
|
-
j = sd;
|
|
667
|
-
n = xc[ni = 0];
|
|
668
|
-
rd = mathfloor(n / pows10[d - j - 1] % 10);
|
|
669
|
-
} else {
|
|
670
|
-
ni = mathceil((i + 1) / LOG_BASE);
|
|
671
|
-
if (ni >= xc.length) if (r) {
|
|
672
|
-
for (; xc.length <= ni; xc.push(0));
|
|
673
|
-
n = rd = 0;
|
|
674
|
-
d = 1;
|
|
675
|
-
i %= LOG_BASE;
|
|
676
|
-
j = i - LOG_BASE + 1;
|
|
677
|
-
} else break out;
|
|
678
|
-
else {
|
|
679
|
-
n = k = xc[ni];
|
|
680
|
-
for (d = 1; k >= 10; k /= 10, d++);
|
|
681
|
-
i %= LOG_BASE;
|
|
682
|
-
j = i - LOG_BASE + d;
|
|
683
|
-
rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);
|
|
684
|
-
}
|
|
685
|
-
}
|
|
686
|
-
r = r || sd < 0 || xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);
|
|
687
|
-
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));
|
|
688
|
-
if (sd < 1 || !xc[0]) {
|
|
689
|
-
xc.length = 0;
|
|
690
|
-
if (r) {
|
|
691
|
-
sd -= x.e + 1;
|
|
692
|
-
xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];
|
|
693
|
-
x.e = -sd || 0;
|
|
694
|
-
} else xc[0] = x.e = 0;
|
|
695
|
-
return x;
|
|
696
|
-
}
|
|
697
|
-
if (i == 0) {
|
|
698
|
-
xc.length = ni;
|
|
699
|
-
k = 1;
|
|
700
|
-
ni--;
|
|
701
|
-
} else {
|
|
702
|
-
xc.length = ni + 1;
|
|
703
|
-
k = pows10[LOG_BASE - i];
|
|
704
|
-
xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;
|
|
705
|
-
}
|
|
706
|
-
if (r) for (;;) if (ni == 0) {
|
|
707
|
-
for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);
|
|
708
|
-
j = xc[0] += k;
|
|
709
|
-
for (k = 1; j >= 10; j /= 10, k++);
|
|
710
|
-
if (i != k) {
|
|
711
|
-
x.e++;
|
|
712
|
-
if (xc[0] == BASE) xc[0] = 1;
|
|
713
|
-
}
|
|
714
|
-
break;
|
|
715
|
-
} else {
|
|
716
|
-
xc[ni] += k;
|
|
717
|
-
if (xc[ni] != BASE) break;
|
|
718
|
-
xc[ni--] = 0;
|
|
719
|
-
k = 1;
|
|
720
|
-
}
|
|
721
|
-
for (i = xc.length; xc[--i] === 0; xc.pop());
|
|
722
|
-
}
|
|
723
|
-
if (x.e > MAX_EXP) x.c = x.e = null;
|
|
724
|
-
else if (x.e < MIN_EXP) x.c = [x.e = 0];
|
|
725
|
-
}
|
|
726
|
-
return x;
|
|
727
|
-
}
|
|
728
|
-
function valueOf(n) {
|
|
729
|
-
var str, e = n.e;
|
|
730
|
-
if (e === null) return n.toString();
|
|
731
|
-
str = coeffToString(n.c);
|
|
732
|
-
str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, "0");
|
|
733
|
-
return n.s < 0 ? "-" + str : str;
|
|
734
|
-
}
|
|
735
|
-
P.absoluteValue = P.abs = function() {
|
|
736
|
-
var x = new BigNumber(this);
|
|
737
|
-
if (x.s < 0) x.s = 1;
|
|
738
|
-
return x;
|
|
739
|
-
};
|
|
740
|
-
P.comparedTo = function(y, b) {
|
|
741
|
-
return compare(this, new BigNumber(y, b));
|
|
742
|
-
};
|
|
743
|
-
P.decimalPlaces = P.dp = function(dp, rm) {
|
|
744
|
-
var c, n, v, x = this;
|
|
745
|
-
if (dp != null) {
|
|
746
|
-
intCheck(dp, 0, MAX);
|
|
747
|
-
if (rm == null) rm = ROUNDING_MODE;
|
|
748
|
-
else intCheck(rm, 0, 8);
|
|
749
|
-
return round(new BigNumber(x), dp + x.e + 1, rm);
|
|
750
|
-
}
|
|
751
|
-
if (!(c = x.c)) return null;
|
|
752
|
-
n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;
|
|
753
|
-
if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);
|
|
754
|
-
if (n < 0) n = 0;
|
|
755
|
-
return n;
|
|
756
|
-
};
|
|
757
|
-
P.dividedBy = P.div = function(y, b) {
|
|
758
|
-
return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);
|
|
759
|
-
};
|
|
760
|
-
P.dividedToIntegerBy = P.idiv = function(y, b) {
|
|
761
|
-
return div(this, new BigNumber(y, b), 0, 1);
|
|
762
|
-
};
|
|
763
|
-
P.exponentiatedBy = P.pow = function(n, m) {
|
|
764
|
-
var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this;
|
|
765
|
-
n = new BigNumber(n);
|
|
766
|
-
if (n.c && !n.isInteger()) throw Error(bignumberError + "Exponent not an integer: " + valueOf(n));
|
|
767
|
-
if (m != null) m = new BigNumber(m);
|
|
768
|
-
nIsBig = n.e > 14;
|
|
769
|
-
if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {
|
|
770
|
-
y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));
|
|
771
|
-
return m ? y.mod(m) : y;
|
|
772
|
-
}
|
|
773
|
-
nIsNeg = n.s < 0;
|
|
774
|
-
if (m) {
|
|
775
|
-
if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);
|
|
776
|
-
isModExp = !nIsNeg && x.isInteger() && m.isInteger();
|
|
777
|
-
if (isModExp) x = x.mod(m);
|
|
778
|
-
} else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {
|
|
779
|
-
k = x.s < 0 && isOdd(n) ? -0 : 0;
|
|
780
|
-
if (x.e > -1) k = 1 / k;
|
|
781
|
-
return new BigNumber(nIsNeg ? 1 / k : k);
|
|
782
|
-
} else if (POW_PRECISION) k = mathceil(POW_PRECISION / LOG_BASE + 2);
|
|
783
|
-
if (nIsBig) {
|
|
784
|
-
half = new BigNumber(.5);
|
|
785
|
-
if (nIsNeg) n.s = 1;
|
|
786
|
-
nIsOdd = isOdd(n);
|
|
787
|
-
} else {
|
|
788
|
-
i = Math.abs(+valueOf(n));
|
|
789
|
-
nIsOdd = i % 2;
|
|
790
|
-
}
|
|
791
|
-
y = new BigNumber(ONE);
|
|
792
|
-
for (;;) {
|
|
793
|
-
if (nIsOdd) {
|
|
794
|
-
y = y.times(x);
|
|
795
|
-
if (!y.c) break;
|
|
796
|
-
if (k) {
|
|
797
|
-
if (y.c.length > k) y.c.length = k;
|
|
798
|
-
} else if (isModExp) y = y.mod(m);
|
|
799
|
-
}
|
|
800
|
-
if (i) {
|
|
801
|
-
i = mathfloor(i / 2);
|
|
802
|
-
if (i === 0) break;
|
|
803
|
-
nIsOdd = i % 2;
|
|
804
|
-
} else {
|
|
805
|
-
n = n.times(half);
|
|
806
|
-
round(n, n.e + 1, 1);
|
|
807
|
-
if (n.e > 14) nIsOdd = isOdd(n);
|
|
808
|
-
else {
|
|
809
|
-
i = +valueOf(n);
|
|
810
|
-
if (i === 0) break;
|
|
811
|
-
nIsOdd = i % 2;
|
|
812
|
-
}
|
|
813
|
-
}
|
|
814
|
-
x = x.times(x);
|
|
815
|
-
if (k) {
|
|
816
|
-
if (x.c && x.c.length > k) x.c.length = k;
|
|
817
|
-
} else if (isModExp) x = x.mod(m);
|
|
818
|
-
}
|
|
819
|
-
if (isModExp) return y;
|
|
820
|
-
if (nIsNeg) y = ONE.div(y);
|
|
821
|
-
return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;
|
|
822
|
-
};
|
|
823
|
-
P.integerValue = function(rm) {
|
|
824
|
-
var n = new BigNumber(this);
|
|
825
|
-
if (rm == null) rm = ROUNDING_MODE;
|
|
826
|
-
else intCheck(rm, 0, 8);
|
|
827
|
-
return round(n, n.e + 1, rm);
|
|
828
|
-
};
|
|
829
|
-
P.isEqualTo = P.eq = function(y, b) {
|
|
830
|
-
return compare(this, new BigNumber(y, b)) === 0;
|
|
831
|
-
};
|
|
832
|
-
P.isFinite = function() {
|
|
833
|
-
return !!this.c;
|
|
834
|
-
};
|
|
835
|
-
P.isGreaterThan = P.gt = function(y, b) {
|
|
836
|
-
return compare(this, new BigNumber(y, b)) > 0;
|
|
837
|
-
};
|
|
838
|
-
P.isGreaterThanOrEqualTo = P.gte = function(y, b) {
|
|
839
|
-
return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;
|
|
840
|
-
};
|
|
841
|
-
P.isInteger = function() {
|
|
842
|
-
return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;
|
|
843
|
-
};
|
|
844
|
-
P.isLessThan = P.lt = function(y, b) {
|
|
845
|
-
return compare(this, new BigNumber(y, b)) < 0;
|
|
846
|
-
};
|
|
847
|
-
P.isLessThanOrEqualTo = P.lte = function(y, b) {
|
|
848
|
-
return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;
|
|
849
|
-
};
|
|
850
|
-
P.isNaN = function() {
|
|
851
|
-
return !this.s;
|
|
852
|
-
};
|
|
853
|
-
P.isNegative = function() {
|
|
854
|
-
return this.s < 0;
|
|
855
|
-
};
|
|
856
|
-
P.isPositive = function() {
|
|
857
|
-
return this.s > 0;
|
|
858
|
-
};
|
|
859
|
-
P.isZero = function() {
|
|
860
|
-
return !!this.c && this.c[0] == 0;
|
|
861
|
-
};
|
|
862
|
-
P.minus = function(y, b) {
|
|
863
|
-
var i, j, t, xLTy, x = this, a = x.s;
|
|
864
|
-
y = new BigNumber(y, b);
|
|
865
|
-
b = y.s;
|
|
866
|
-
if (!a || !b) return new BigNumber(NaN);
|
|
867
|
-
if (a != b) {
|
|
868
|
-
y.s = -b;
|
|
869
|
-
return x.plus(y);
|
|
870
|
-
}
|
|
871
|
-
var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
|
|
872
|
-
if (!xe || !ye) {
|
|
873
|
-
if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);
|
|
874
|
-
if (!xc[0] || !yc[0]) return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x : ROUNDING_MODE == 3 ? -0 : 0);
|
|
875
|
-
}
|
|
876
|
-
xe = bitFloor(xe);
|
|
877
|
-
ye = bitFloor(ye);
|
|
878
|
-
xc = xc.slice();
|
|
879
|
-
if (a = xe - ye) {
|
|
880
|
-
if (xLTy = a < 0) {
|
|
881
|
-
a = -a;
|
|
882
|
-
t = xc;
|
|
883
|
-
} else {
|
|
884
|
-
ye = xe;
|
|
885
|
-
t = yc;
|
|
886
|
-
}
|
|
887
|
-
t.reverse();
|
|
888
|
-
for (b = a; b--; t.push(0));
|
|
889
|
-
t.reverse();
|
|
890
|
-
} else {
|
|
891
|
-
j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;
|
|
892
|
-
for (a = b = 0; b < j; b++) if (xc[b] != yc[b]) {
|
|
893
|
-
xLTy = xc[b] < yc[b];
|
|
894
|
-
break;
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
|
-
if (xLTy) {
|
|
898
|
-
t = xc;
|
|
899
|
-
xc = yc;
|
|
900
|
-
yc = t;
|
|
901
|
-
y.s = -y.s;
|
|
902
|
-
}
|
|
903
|
-
b = (j = yc.length) - (i = xc.length);
|
|
904
|
-
if (b > 0) for (; b--; xc[i++] = 0);
|
|
905
|
-
b = BASE - 1;
|
|
906
|
-
for (; j > a;) {
|
|
907
|
-
if (xc[--j] < yc[j]) {
|
|
908
|
-
for (i = j; i && !xc[--i]; xc[i] = b);
|
|
909
|
-
--xc[i];
|
|
910
|
-
xc[j] += BASE;
|
|
911
|
-
}
|
|
912
|
-
xc[j] -= yc[j];
|
|
913
|
-
}
|
|
914
|
-
for (; xc[0] == 0; xc.splice(0, 1), --ye);
|
|
915
|
-
if (!xc[0]) {
|
|
916
|
-
y.s = ROUNDING_MODE == 3 ? -1 : 1;
|
|
917
|
-
y.c = [y.e = 0];
|
|
918
|
-
return y;
|
|
919
|
-
}
|
|
920
|
-
return normalise(y, xc, ye);
|
|
921
|
-
};
|
|
922
|
-
P.modulo = P.mod = function(y, b) {
|
|
923
|
-
var q, s, x = this;
|
|
924
|
-
y = new BigNumber(y, b);
|
|
925
|
-
if (!x.c || !y.s || y.c && !y.c[0]) return new BigNumber(NaN);
|
|
926
|
-
else if (!y.c || x.c && !x.c[0]) return new BigNumber(x);
|
|
927
|
-
if (MODULO_MODE == 9) {
|
|
928
|
-
s = y.s;
|
|
929
|
-
y.s = 1;
|
|
930
|
-
q = div(x, y, 0, 3);
|
|
931
|
-
y.s = s;
|
|
932
|
-
q.s *= s;
|
|
933
|
-
} else q = div(x, y, 0, MODULO_MODE);
|
|
934
|
-
y = x.minus(q.times(y));
|
|
935
|
-
if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;
|
|
936
|
-
return y;
|
|
937
|
-
};
|
|
938
|
-
P.multipliedBy = P.times = function(y, b) {
|
|
939
|
-
var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber(y, b)).c;
|
|
940
|
-
if (!xc || !yc || !xc[0] || !yc[0]) {
|
|
941
|
-
if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) y.c = y.e = y.s = null;
|
|
942
|
-
else {
|
|
943
|
-
y.s *= x.s;
|
|
944
|
-
if (!xc || !yc) y.c = y.e = null;
|
|
945
|
-
else {
|
|
946
|
-
y.c = [0];
|
|
947
|
-
y.e = 0;
|
|
948
|
-
}
|
|
949
|
-
}
|
|
950
|
-
return y;
|
|
951
|
-
}
|
|
952
|
-
e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);
|
|
953
|
-
y.s *= x.s;
|
|
954
|
-
xcL = xc.length;
|
|
955
|
-
ycL = yc.length;
|
|
956
|
-
if (xcL < ycL) {
|
|
957
|
-
zc = xc;
|
|
958
|
-
xc = yc;
|
|
959
|
-
yc = zc;
|
|
960
|
-
i = xcL;
|
|
961
|
-
xcL = ycL;
|
|
962
|
-
ycL = i;
|
|
963
|
-
}
|
|
964
|
-
for (i = xcL + ycL, zc = []; i--; zc.push(0));
|
|
965
|
-
base = BASE;
|
|
966
|
-
sqrtBase = SQRT_BASE;
|
|
967
|
-
for (i = ycL; --i >= 0;) {
|
|
968
|
-
c = 0;
|
|
969
|
-
ylo = yc[i] % sqrtBase;
|
|
970
|
-
yhi = yc[i] / sqrtBase | 0;
|
|
971
|
-
for (k = xcL, j = i + k; j > i;) {
|
|
972
|
-
xlo = xc[--k] % sqrtBase;
|
|
973
|
-
xhi = xc[k] / sqrtBase | 0;
|
|
974
|
-
m = yhi * xlo + xhi * ylo;
|
|
975
|
-
xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c;
|
|
976
|
-
c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;
|
|
977
|
-
zc[j--] = xlo % base;
|
|
978
|
-
}
|
|
979
|
-
zc[j] = c;
|
|
980
|
-
}
|
|
981
|
-
if (c) ++e;
|
|
982
|
-
else zc.splice(0, 1);
|
|
983
|
-
return normalise(y, zc, e);
|
|
984
|
-
};
|
|
985
|
-
P.negated = function() {
|
|
986
|
-
var x = new BigNumber(this);
|
|
987
|
-
x.s = -x.s || null;
|
|
988
|
-
return x;
|
|
989
|
-
};
|
|
990
|
-
P.plus = function(y, b) {
|
|
991
|
-
var t, x = this, a = x.s;
|
|
992
|
-
y = new BigNumber(y, b);
|
|
993
|
-
b = y.s;
|
|
994
|
-
if (!a || !b) return new BigNumber(NaN);
|
|
995
|
-
if (a != b) {
|
|
996
|
-
y.s = -b;
|
|
997
|
-
return x.minus(y);
|
|
998
|
-
}
|
|
999
|
-
var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
|
|
1000
|
-
if (!xe || !ye) {
|
|
1001
|
-
if (!xc || !yc) return new BigNumber(a / 0);
|
|
1002
|
-
if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);
|
|
1003
|
-
}
|
|
1004
|
-
xe = bitFloor(xe);
|
|
1005
|
-
ye = bitFloor(ye);
|
|
1006
|
-
xc = xc.slice();
|
|
1007
|
-
if (a = xe - ye) {
|
|
1008
|
-
if (a > 0) {
|
|
1009
|
-
ye = xe;
|
|
1010
|
-
t = yc;
|
|
1011
|
-
} else {
|
|
1012
|
-
a = -a;
|
|
1013
|
-
t = xc;
|
|
1014
|
-
}
|
|
1015
|
-
t.reverse();
|
|
1016
|
-
for (; a--; t.push(0));
|
|
1017
|
-
t.reverse();
|
|
1018
|
-
}
|
|
1019
|
-
a = xc.length;
|
|
1020
|
-
b = yc.length;
|
|
1021
|
-
if (a - b < 0) {
|
|
1022
|
-
t = yc;
|
|
1023
|
-
yc = xc;
|
|
1024
|
-
xc = t;
|
|
1025
|
-
b = a;
|
|
1026
|
-
}
|
|
1027
|
-
for (a = 0; b;) {
|
|
1028
|
-
a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;
|
|
1029
|
-
xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;
|
|
1030
|
-
}
|
|
1031
|
-
if (a) {
|
|
1032
|
-
xc = [a].concat(xc);
|
|
1033
|
-
++ye;
|
|
1034
|
-
}
|
|
1035
|
-
return normalise(y, xc, ye);
|
|
1036
|
-
};
|
|
1037
|
-
P.precision = P.sd = function(sd, rm) {
|
|
1038
|
-
var c, n, v, x = this;
|
|
1039
|
-
if (sd != null && sd !== !!sd) {
|
|
1040
|
-
intCheck(sd, 1, MAX);
|
|
1041
|
-
if (rm == null) rm = ROUNDING_MODE;
|
|
1042
|
-
else intCheck(rm, 0, 8);
|
|
1043
|
-
return round(new BigNumber(x), sd, rm);
|
|
1044
|
-
}
|
|
1045
|
-
if (!(c = x.c)) return null;
|
|
1046
|
-
v = c.length - 1;
|
|
1047
|
-
n = v * LOG_BASE + 1;
|
|
1048
|
-
if (v = c[v]) {
|
|
1049
|
-
for (; v % 10 == 0; v /= 10, n--);
|
|
1050
|
-
for (v = c[0]; v >= 10; v /= 10, n++);
|
|
1051
|
-
}
|
|
1052
|
-
if (sd && x.e + 1 > n) n = x.e + 1;
|
|
1053
|
-
return n;
|
|
1054
|
-
};
|
|
1055
|
-
P.shiftedBy = function(k) {
|
|
1056
|
-
intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
|
|
1057
|
-
return this.times("1e" + k);
|
|
1058
|
-
};
|
|
1059
|
-
P.squareRoot = P.sqrt = function() {
|
|
1060
|
-
var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber("0.5");
|
|
1061
|
-
if (s !== 1 || !c || !c[0]) return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : Infinity);
|
|
1062
|
-
s = Math.sqrt(+valueOf(x));
|
|
1063
|
-
if (s == 0 || s == Infinity) {
|
|
1064
|
-
n = coeffToString(c);
|
|
1065
|
-
if ((n.length + e) % 2 == 0) n += "0";
|
|
1066
|
-
s = Math.sqrt(+n);
|
|
1067
|
-
e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);
|
|
1068
|
-
if (s == Infinity) n = "5e" + e;
|
|
1069
|
-
else {
|
|
1070
|
-
n = s.toExponential();
|
|
1071
|
-
n = n.slice(0, n.indexOf("e") + 1) + e;
|
|
1072
|
-
}
|
|
1073
|
-
r = new BigNumber(n);
|
|
1074
|
-
} else r = new BigNumber(s + "");
|
|
1075
|
-
if (r.c[0]) {
|
|
1076
|
-
e = r.e;
|
|
1077
|
-
s = e + dp;
|
|
1078
|
-
if (s < 3) s = 0;
|
|
1079
|
-
for (;;) {
|
|
1080
|
-
t = r;
|
|
1081
|
-
r = half.times(t.plus(div(x, t, dp, 1)));
|
|
1082
|
-
if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {
|
|
1083
|
-
if (r.e < e) --s;
|
|
1084
|
-
n = n.slice(s - 3, s + 1);
|
|
1085
|
-
if (n == "9999" || !rep && n == "4999") {
|
|
1086
|
-
if (!rep) {
|
|
1087
|
-
round(t, t.e + DECIMAL_PLACES + 2, 0);
|
|
1088
|
-
if (t.times(t).eq(x)) {
|
|
1089
|
-
r = t;
|
|
1090
|
-
break;
|
|
1091
|
-
}
|
|
1092
|
-
}
|
|
1093
|
-
dp += 4;
|
|
1094
|
-
s += 4;
|
|
1095
|
-
rep = 1;
|
|
1096
|
-
} else {
|
|
1097
|
-
if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
|
|
1098
|
-
round(r, r.e + DECIMAL_PLACES + 2, 1);
|
|
1099
|
-
m = !r.times(r).eq(x);
|
|
1100
|
-
}
|
|
1101
|
-
break;
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
}
|
|
1105
|
-
}
|
|
1106
|
-
return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);
|
|
1107
|
-
};
|
|
1108
|
-
P.toExponential = function(dp, rm) {
|
|
1109
|
-
if (dp != null) {
|
|
1110
|
-
intCheck(dp, 0, MAX);
|
|
1111
|
-
dp++;
|
|
1112
|
-
}
|
|
1113
|
-
return format(this, dp, rm, 1);
|
|
1114
|
-
};
|
|
1115
|
-
P.toFixed = function(dp, rm) {
|
|
1116
|
-
if (dp != null) {
|
|
1117
|
-
intCheck(dp, 0, MAX);
|
|
1118
|
-
dp = dp + this.e + 1;
|
|
1119
|
-
}
|
|
1120
|
-
return format(this, dp, rm);
|
|
1121
|
-
};
|
|
1122
|
-
P.toFormat = function(dp, rm, format) {
|
|
1123
|
-
var str, x = this;
|
|
1124
|
-
if (format == null) if (dp != null && rm && typeof rm == "object") {
|
|
1125
|
-
format = rm;
|
|
1126
|
-
rm = null;
|
|
1127
|
-
} else if (dp && typeof dp == "object") {
|
|
1128
|
-
format = dp;
|
|
1129
|
-
dp = rm = null;
|
|
1130
|
-
} else format = FORMAT;
|
|
1131
|
-
else if (typeof format != "object") throw Error(bignumberError + "Argument not an object: " + format);
|
|
1132
|
-
str = x.toFixed(dp, rm);
|
|
1133
|
-
if (x.c) {
|
|
1134
|
-
var i, arr = str.split("."), g1 = +format.groupSize, g2 = +format.secondaryGroupSize, groupSeparator = format.groupSeparator || "", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length;
|
|
1135
|
-
if (g2) {
|
|
1136
|
-
i = g1;
|
|
1137
|
-
g1 = g2;
|
|
1138
|
-
g2 = i;
|
|
1139
|
-
len -= i;
|
|
1140
|
-
}
|
|
1141
|
-
if (g1 > 0 && len > 0) {
|
|
1142
|
-
i = len % g1 || g1;
|
|
1143
|
-
intPart = intDigits.substr(0, i);
|
|
1144
|
-
for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);
|
|
1145
|
-
if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);
|
|
1146
|
-
if (isNeg) intPart = "-" + intPart;
|
|
1147
|
-
}
|
|
1148
|
-
str = fractionPart ? intPart + (format.decimalSeparator || "") + ((g2 = +format.fractionGroupSize) ? fractionPart.replace(new RegExp("\\d{" + g2 + "}\\B", "g"), "$&" + (format.fractionGroupSeparator || "")) : fractionPart) : intPart;
|
|
1149
|
-
}
|
|
1150
|
-
return (format.prefix || "") + str + (format.suffix || "");
|
|
1151
|
-
};
|
|
1152
|
-
P.toFraction = function(md) {
|
|
1153
|
-
var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c;
|
|
1154
|
-
if (md != null) {
|
|
1155
|
-
n = new BigNumber(md);
|
|
1156
|
-
if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) throw Error(bignumberError + "Argument " + (n.isInteger() ? "out of range: " : "not an integer: ") + valueOf(n));
|
|
1157
|
-
}
|
|
1158
|
-
if (!xc) return new BigNumber(x);
|
|
1159
|
-
d = new BigNumber(ONE);
|
|
1160
|
-
n1 = d0 = new BigNumber(ONE);
|
|
1161
|
-
d1 = n0 = new BigNumber(ONE);
|
|
1162
|
-
s = coeffToString(xc);
|
|
1163
|
-
e = d.e = s.length - x.e - 1;
|
|
1164
|
-
d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];
|
|
1165
|
-
md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n;
|
|
1166
|
-
exp = MAX_EXP;
|
|
1167
|
-
MAX_EXP = Infinity;
|
|
1168
|
-
n = new BigNumber(s);
|
|
1169
|
-
n0.c[0] = 0;
|
|
1170
|
-
for (;;) {
|
|
1171
|
-
q = div(n, d, 0, 1);
|
|
1172
|
-
d2 = d0.plus(q.times(d1));
|
|
1173
|
-
if (d2.comparedTo(md) == 1) break;
|
|
1174
|
-
d0 = d1;
|
|
1175
|
-
d1 = d2;
|
|
1176
|
-
n1 = n0.plus(q.times(d2 = n1));
|
|
1177
|
-
n0 = d2;
|
|
1178
|
-
d = n.minus(q.times(d2 = d));
|
|
1179
|
-
n = d2;
|
|
1180
|
-
}
|
|
1181
|
-
d2 = div(md.minus(d0), d1, 0, 1);
|
|
1182
|
-
n0 = n0.plus(d2.times(n1));
|
|
1183
|
-
d0 = d0.plus(d2.times(d1));
|
|
1184
|
-
n0.s = n1.s = x.s;
|
|
1185
|
-
e = e * 2;
|
|
1186
|
-
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];
|
|
1187
|
-
MAX_EXP = exp;
|
|
1188
|
-
return r;
|
|
1189
|
-
};
|
|
1190
|
-
P.toNumber = function() {
|
|
1191
|
-
return +valueOf(this);
|
|
1192
|
-
};
|
|
1193
|
-
P.toPrecision = function(sd, rm) {
|
|
1194
|
-
if (sd != null) intCheck(sd, 1, MAX);
|
|
1195
|
-
return format(this, sd, rm, 2);
|
|
1196
|
-
};
|
|
1197
|
-
P.toString = function(b) {
|
|
1198
|
-
var str, n = this, s = n.s, e = n.e;
|
|
1199
|
-
if (e === null) if (s) {
|
|
1200
|
-
str = "Infinity";
|
|
1201
|
-
if (s < 0) str = "-" + str;
|
|
1202
|
-
} else str = "NaN";
|
|
1203
|
-
else {
|
|
1204
|
-
if (b == null) str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, "0");
|
|
1205
|
-
else if (b === 10 && alphabetHasNormalDecimalDigits) {
|
|
1206
|
-
n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);
|
|
1207
|
-
str = toFixedPoint(coeffToString(n.c), n.e, "0");
|
|
1208
|
-
} else {
|
|
1209
|
-
intCheck(b, 2, ALPHABET.length, "Base");
|
|
1210
|
-
str = convertBase(toFixedPoint(coeffToString(n.c), e, "0"), 10, b, s, true);
|
|
1211
|
-
}
|
|
1212
|
-
if (s < 0 && n.c[0]) str = "-" + str;
|
|
1213
|
-
}
|
|
1214
|
-
return str;
|
|
1215
|
-
};
|
|
1216
|
-
P.valueOf = P.toJSON = function() {
|
|
1217
|
-
return valueOf(this);
|
|
1218
|
-
};
|
|
1219
|
-
P._isBigNumber = true;
|
|
1220
|
-
if (configObject != null) BigNumber.set(configObject);
|
|
1221
|
-
return BigNumber;
|
|
1222
|
-
}
|
|
1223
|
-
function bitFloor(n) {
|
|
1224
|
-
var i = n | 0;
|
|
1225
|
-
return n > 0 || n === i ? i : i - 1;
|
|
1226
|
-
}
|
|
1227
|
-
function coeffToString(a) {
|
|
1228
|
-
var s, z, i = 1, j = a.length, r = a[0] + "";
|
|
1229
|
-
for (; i < j;) {
|
|
1230
|
-
s = a[i++] + "";
|
|
1231
|
-
z = LOG_BASE - s.length;
|
|
1232
|
-
for (; z--; s = "0" + s);
|
|
1233
|
-
r += s;
|
|
1234
|
-
}
|
|
1235
|
-
for (j = r.length; r.charCodeAt(--j) === 48;);
|
|
1236
|
-
return r.slice(0, j + 1 || 1);
|
|
1237
|
-
}
|
|
1238
|
-
function compare(x, y) {
|
|
1239
|
-
var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e;
|
|
1240
|
-
if (!i || !j) return null;
|
|
1241
|
-
a = xc && !xc[0];
|
|
1242
|
-
b = yc && !yc[0];
|
|
1243
|
-
if (a || b) return a ? b ? 0 : -j : i;
|
|
1244
|
-
if (i != j) return i;
|
|
1245
|
-
a = i < 0;
|
|
1246
|
-
b = k == l;
|
|
1247
|
-
if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;
|
|
1248
|
-
if (!b) return k > l ^ a ? 1 : -1;
|
|
1249
|
-
j = (k = xc.length) < (l = yc.length) ? k : l;
|
|
1250
|
-
for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;
|
|
1251
|
-
return k == l ? 0 : k > l ^ a ? 1 : -1;
|
|
1252
|
-
}
|
|
1253
|
-
function intCheck(n, min, max, name) {
|
|
1254
|
-
if (n < min || n > max || n !== mathfloor(n)) throw Error(bignumberError + (name || "Argument") + (typeof n == "number" ? n < min || n > max ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(n));
|
|
1255
|
-
}
|
|
1256
|
-
function isOdd(n) {
|
|
1257
|
-
var k = n.c.length - 1;
|
|
1258
|
-
return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;
|
|
1259
|
-
}
|
|
1260
|
-
function toExponential(str, e) {
|
|
1261
|
-
return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e < 0 ? "e" : "e+") + e;
|
|
1262
|
-
}
|
|
1263
|
-
function toFixedPoint(str, e, z) {
|
|
1264
|
-
var len, zs;
|
|
1265
|
-
if (e < 0) {
|
|
1266
|
-
for (zs = z + "."; ++e; zs += z);
|
|
1267
|
-
str = zs + str;
|
|
1268
|
-
} else {
|
|
1269
|
-
len = str.length;
|
|
1270
|
-
if (++e > len) {
|
|
1271
|
-
for (zs = z, e -= len; --e; zs += z);
|
|
1272
|
-
str += zs;
|
|
1273
|
-
} else if (e < len) str = str.slice(0, e) + "." + str.slice(e);
|
|
1274
|
-
}
|
|
1275
|
-
return str;
|
|
1276
|
-
}
|
|
1277
|
-
BigNumber = clone();
|
|
1278
|
-
BigNumber["default"] = BigNumber.BigNumber = BigNumber;
|
|
1279
|
-
if (typeof define == "function" && define.amd) define(function() {
|
|
1280
|
-
return BigNumber;
|
|
1281
|
-
});
|
|
1282
|
-
else if (typeof module != "undefined" && module.exports) module.exports = BigNumber;
|
|
1283
|
-
else {
|
|
1284
|
-
if (!globalObject) globalObject = typeof self != "undefined" && self ? self : window;
|
|
1285
|
-
globalObject.BigNumber = BigNumber;
|
|
1286
|
-
}
|
|
1287
|
-
})(exports);
|
|
1288
|
-
}));
|
|
1289
|
-
//#endregion
|
|
1290
|
-
//#region node_modules/.pnpm/json-bigint@1.0.0/node_modules/json-bigint/lib/stringify.js
|
|
1291
|
-
var require_stringify = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1292
|
-
var BigNumber = require_bignumber();
|
|
1293
|
-
var JSON = module.exports;
|
|
1294
|
-
(function() {
|
|
1295
|
-
"use strict";
|
|
1296
|
-
var escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = {
|
|
1297
|
-
"\b": "\\b",
|
|
1298
|
-
" ": "\\t",
|
|
1299
|
-
"\n": "\\n",
|
|
1300
|
-
"\f": "\\f",
|
|
1301
|
-
"\r": "\\r",
|
|
1302
|
-
"\"": "\\\"",
|
|
1303
|
-
"\\": "\\\\"
|
|
1304
|
-
}, rep;
|
|
1305
|
-
function quote(string) {
|
|
1306
|
-
escapable.lastIndex = 0;
|
|
1307
|
-
return escapable.test(string) ? "\"" + string.replace(escapable, function(a) {
|
|
1308
|
-
var c = meta[a];
|
|
1309
|
-
return typeof c === "string" ? c : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4);
|
|
1310
|
-
}) + "\"" : "\"" + string + "\"";
|
|
1311
|
-
}
|
|
1312
|
-
function str(key, holder) {
|
|
1313
|
-
var i, k, v, length, mind = gap, partial, value = holder[key], isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));
|
|
1314
|
-
if (value && typeof value === "object" && typeof value.toJSON === "function") value = value.toJSON(key);
|
|
1315
|
-
if (typeof rep === "function") value = rep.call(holder, key, value);
|
|
1316
|
-
switch (typeof value) {
|
|
1317
|
-
case "string": if (isBigNumber) return value;
|
|
1318
|
-
else return quote(value);
|
|
1319
|
-
case "number": return isFinite(value) ? String(value) : "null";
|
|
1320
|
-
case "boolean":
|
|
1321
|
-
case "null":
|
|
1322
|
-
case "bigint": return String(value);
|
|
1323
|
-
case "object":
|
|
1324
|
-
if (!value) return "null";
|
|
1325
|
-
gap += indent;
|
|
1326
|
-
partial = [];
|
|
1327
|
-
if (Object.prototype.toString.apply(value) === "[object Array]") {
|
|
1328
|
-
length = value.length;
|
|
1329
|
-
for (i = 0; i < length; i += 1) partial[i] = str(i, value) || "null";
|
|
1330
|
-
v = partial.length === 0 ? "[]" : gap ? "[\n" + gap + partial.join(",\n" + gap) + "\n" + mind + "]" : "[" + partial.join(",") + "]";
|
|
1331
|
-
gap = mind;
|
|
1332
|
-
return v;
|
|
1333
|
-
}
|
|
1334
|
-
if (rep && typeof rep === "object") {
|
|
1335
|
-
length = rep.length;
|
|
1336
|
-
for (i = 0; i < length; i += 1) if (typeof rep[i] === "string") {
|
|
1337
|
-
k = rep[i];
|
|
1338
|
-
v = str(k, value);
|
|
1339
|
-
if (v) partial.push(quote(k) + (gap ? ": " : ":") + v);
|
|
1340
|
-
}
|
|
1341
|
-
} else Object.keys(value).forEach(function(k) {
|
|
1342
|
-
var v = str(k, value);
|
|
1343
|
-
if (v) partial.push(quote(k) + (gap ? ": " : ":") + v);
|
|
1344
|
-
});
|
|
1345
|
-
v = partial.length === 0 ? "{}" : gap ? "{\n" + gap + partial.join(",\n" + gap) + "\n" + mind + "}" : "{" + partial.join(",") + "}";
|
|
1346
|
-
gap = mind;
|
|
1347
|
-
return v;
|
|
1348
|
-
}
|
|
1349
|
-
}
|
|
1350
|
-
if (typeof JSON.stringify !== "function") JSON.stringify = function(value, replacer, space) {
|
|
1351
|
-
var i;
|
|
1352
|
-
gap = "";
|
|
1353
|
-
indent = "";
|
|
1354
|
-
if (typeof space === "number") for (i = 0; i < space; i += 1) indent += " ";
|
|
1355
|
-
else if (typeof space === "string") indent = space;
|
|
1356
|
-
rep = replacer;
|
|
1357
|
-
if (replacer && typeof replacer !== "function" && (typeof replacer !== "object" || typeof replacer.length !== "number")) throw new Error("JSON.stringify");
|
|
1358
|
-
return str("", { "": value });
|
|
1359
|
-
};
|
|
1360
|
-
})();
|
|
1361
|
-
}));
|
|
1362
|
-
//#endregion
|
|
1363
|
-
//#region node_modules/.pnpm/json-bigint@1.0.0/node_modules/json-bigint/lib/parse.js
|
|
1364
|
-
var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1365
|
-
var BigNumber = null;
|
|
1366
|
-
const suspectProtoRx = /(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/;
|
|
1367
|
-
const 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)/;
|
|
1368
|
-
var json_parse = function(options) {
|
|
1369
|
-
"use strict";
|
|
1370
|
-
var _options = {
|
|
1371
|
-
strict: false,
|
|
1372
|
-
storeAsString: false,
|
|
1373
|
-
alwaysParseAsBig: false,
|
|
1374
|
-
useNativeBigInt: false,
|
|
1375
|
-
protoAction: "error",
|
|
1376
|
-
constructorAction: "error"
|
|
1377
|
-
};
|
|
1378
|
-
if (options !== void 0 && options !== null) {
|
|
1379
|
-
if (options.strict === true) _options.strict = true;
|
|
1380
|
-
if (options.storeAsString === true) _options.storeAsString = true;
|
|
1381
|
-
_options.alwaysParseAsBig = options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;
|
|
1382
|
-
_options.useNativeBigInt = options.useNativeBigInt === true ? options.useNativeBigInt : false;
|
|
1383
|
-
if (typeof options.constructorAction !== "undefined") if (options.constructorAction === "error" || options.constructorAction === "ignore" || options.constructorAction === "preserve") _options.constructorAction = options.constructorAction;
|
|
1384
|
-
else throw new Error(`Incorrect value for constructorAction option, must be "error", "ignore" or undefined but passed ${options.constructorAction}`);
|
|
1385
|
-
if (typeof options.protoAction !== "undefined") if (options.protoAction === "error" || options.protoAction === "ignore" || options.protoAction === "preserve") _options.protoAction = options.protoAction;
|
|
1386
|
-
else throw new Error(`Incorrect value for protoAction option, must be "error", "ignore" or undefined but passed ${options.protoAction}`);
|
|
1387
|
-
}
|
|
1388
|
-
var at, ch, escapee = {
|
|
1389
|
-
"\"": "\"",
|
|
1390
|
-
"\\": "\\",
|
|
1391
|
-
"/": "/",
|
|
1392
|
-
b: "\b",
|
|
1393
|
-
f: "\f",
|
|
1394
|
-
n: "\n",
|
|
1395
|
-
r: "\r",
|
|
1396
|
-
t: " "
|
|
1397
|
-
}, text, error = function(m) {
|
|
1398
|
-
throw {
|
|
1399
|
-
name: "SyntaxError",
|
|
1400
|
-
message: m,
|
|
1401
|
-
at,
|
|
1402
|
-
text
|
|
1403
|
-
};
|
|
1404
|
-
}, next = function(c) {
|
|
1405
|
-
if (c && c !== ch) error("Expected '" + c + "' instead of '" + ch + "'");
|
|
1406
|
-
ch = text.charAt(at);
|
|
1407
|
-
at += 1;
|
|
1408
|
-
return ch;
|
|
1409
|
-
}, number = function() {
|
|
1410
|
-
var number, string = "";
|
|
1411
|
-
if (ch === "-") {
|
|
1412
|
-
string = "-";
|
|
1413
|
-
next("-");
|
|
1414
|
-
}
|
|
1415
|
-
while (ch >= "0" && ch <= "9") {
|
|
1416
|
-
string += ch;
|
|
1417
|
-
next();
|
|
1418
|
-
}
|
|
1419
|
-
if (ch === ".") {
|
|
1420
|
-
string += ".";
|
|
1421
|
-
while (next() && ch >= "0" && ch <= "9") string += ch;
|
|
1422
|
-
}
|
|
1423
|
-
if (ch === "e" || ch === "E") {
|
|
1424
|
-
string += ch;
|
|
1425
|
-
next();
|
|
1426
|
-
if (ch === "-" || ch === "+") {
|
|
1427
|
-
string += ch;
|
|
1428
|
-
next();
|
|
1429
|
-
}
|
|
1430
|
-
while (ch >= "0" && ch <= "9") {
|
|
1431
|
-
string += ch;
|
|
1432
|
-
next();
|
|
1433
|
-
}
|
|
1434
|
-
}
|
|
1435
|
-
number = +string;
|
|
1436
|
-
if (!isFinite(number)) error("Bad number");
|
|
1437
|
-
else {
|
|
1438
|
-
if (BigNumber == null) BigNumber = require_bignumber();
|
|
1439
|
-
if (string.length > 15) return _options.storeAsString ? string : _options.useNativeBigInt ? BigInt(string) : new BigNumber(string);
|
|
1440
|
-
else return !_options.alwaysParseAsBig ? number : _options.useNativeBigInt ? BigInt(number) : new BigNumber(number);
|
|
1441
|
-
}
|
|
1442
|
-
}, string = function() {
|
|
1443
|
-
var hex, i, string = "", uffff;
|
|
1444
|
-
if (ch === "\"") {
|
|
1445
|
-
var startAt = at;
|
|
1446
|
-
while (next()) {
|
|
1447
|
-
if (ch === "\"") {
|
|
1448
|
-
if (at - 1 > startAt) string += text.substring(startAt, at - 1);
|
|
1449
|
-
next();
|
|
1450
|
-
return string;
|
|
1451
|
-
}
|
|
1452
|
-
if (ch === "\\") {
|
|
1453
|
-
if (at - 1 > startAt) string += text.substring(startAt, at - 1);
|
|
1454
|
-
next();
|
|
1455
|
-
if (ch === "u") {
|
|
1456
|
-
uffff = 0;
|
|
1457
|
-
for (i = 0; i < 4; i += 1) {
|
|
1458
|
-
hex = parseInt(next(), 16);
|
|
1459
|
-
if (!isFinite(hex)) break;
|
|
1460
|
-
uffff = uffff * 16 + hex;
|
|
1461
|
-
}
|
|
1462
|
-
string += String.fromCharCode(uffff);
|
|
1463
|
-
} else if (typeof escapee[ch] === "string") string += escapee[ch];
|
|
1464
|
-
else break;
|
|
1465
|
-
startAt = at;
|
|
1466
|
-
}
|
|
1467
|
-
}
|
|
1468
|
-
}
|
|
1469
|
-
error("Bad string");
|
|
1470
|
-
}, white = function() {
|
|
1471
|
-
while (ch && ch <= " ") next();
|
|
1472
|
-
}, word = function() {
|
|
1473
|
-
switch (ch) {
|
|
1474
|
-
case "t":
|
|
1475
|
-
next("t");
|
|
1476
|
-
next("r");
|
|
1477
|
-
next("u");
|
|
1478
|
-
next("e");
|
|
1479
|
-
return true;
|
|
1480
|
-
case "f":
|
|
1481
|
-
next("f");
|
|
1482
|
-
next("a");
|
|
1483
|
-
next("l");
|
|
1484
|
-
next("s");
|
|
1485
|
-
next("e");
|
|
1486
|
-
return false;
|
|
1487
|
-
case "n":
|
|
1488
|
-
next("n");
|
|
1489
|
-
next("u");
|
|
1490
|
-
next("l");
|
|
1491
|
-
next("l");
|
|
1492
|
-
return null;
|
|
1493
|
-
}
|
|
1494
|
-
error("Unexpected '" + ch + "'");
|
|
1495
|
-
}, value, array = function() {
|
|
1496
|
-
var array = [];
|
|
1497
|
-
if (ch === "[") {
|
|
1498
|
-
next("[");
|
|
1499
|
-
white();
|
|
1500
|
-
if (ch === "]") {
|
|
1501
|
-
next("]");
|
|
1502
|
-
return array;
|
|
1503
|
-
}
|
|
1504
|
-
while (ch) {
|
|
1505
|
-
array.push(value());
|
|
1506
|
-
white();
|
|
1507
|
-
if (ch === "]") {
|
|
1508
|
-
next("]");
|
|
1509
|
-
return array;
|
|
1510
|
-
}
|
|
1511
|
-
next(",");
|
|
1512
|
-
white();
|
|
1513
|
-
}
|
|
1514
|
-
}
|
|
1515
|
-
error("Bad array");
|
|
1516
|
-
}, object = function() {
|
|
1517
|
-
var key, object = Object.create(null);
|
|
1518
|
-
if (ch === "{") {
|
|
1519
|
-
next("{");
|
|
1520
|
-
white();
|
|
1521
|
-
if (ch === "}") {
|
|
1522
|
-
next("}");
|
|
1523
|
-
return object;
|
|
1524
|
-
}
|
|
1525
|
-
while (ch) {
|
|
1526
|
-
key = string();
|
|
1527
|
-
white();
|
|
1528
|
-
next(":");
|
|
1529
|
-
if (_options.strict === true && Object.hasOwnProperty.call(object, key)) error("Duplicate key \"" + key + "\"");
|
|
1530
|
-
if (suspectProtoRx.test(key) === true) if (_options.protoAction === "error") error("Object contains forbidden prototype property");
|
|
1531
|
-
else if (_options.protoAction === "ignore") value();
|
|
1532
|
-
else object[key] = value();
|
|
1533
|
-
else if (suspectConstructorRx.test(key) === true) if (_options.constructorAction === "error") error("Object contains forbidden constructor property");
|
|
1534
|
-
else if (_options.constructorAction === "ignore") value();
|
|
1535
|
-
else object[key] = value();
|
|
1536
|
-
else object[key] = value();
|
|
1537
|
-
white();
|
|
1538
|
-
if (ch === "}") {
|
|
1539
|
-
next("}");
|
|
1540
|
-
return object;
|
|
1541
|
-
}
|
|
1542
|
-
next(",");
|
|
1543
|
-
white();
|
|
1544
|
-
}
|
|
1545
|
-
}
|
|
1546
|
-
error("Bad object");
|
|
1547
|
-
};
|
|
1548
|
-
value = function() {
|
|
1549
|
-
white();
|
|
1550
|
-
switch (ch) {
|
|
1551
|
-
case "{": return object();
|
|
1552
|
-
case "[": return array();
|
|
1553
|
-
case "\"": return string();
|
|
1554
|
-
case "-": return number();
|
|
1555
|
-
default: return ch >= "0" && ch <= "9" ? number() : word();
|
|
1556
|
-
}
|
|
1557
|
-
};
|
|
1558
|
-
return function(source, reviver) {
|
|
1559
|
-
var result;
|
|
1560
|
-
text = source + "";
|
|
1561
|
-
at = 0;
|
|
1562
|
-
ch = " ";
|
|
1563
|
-
result = value();
|
|
1564
|
-
white();
|
|
1565
|
-
if (ch) error("Syntax error");
|
|
1566
|
-
return typeof reviver === "function" ? (function walk(holder, key) {
|
|
1567
|
-
var v, value = holder[key];
|
|
1568
|
-
if (value && typeof value === "object") Object.keys(value).forEach(function(k) {
|
|
1569
|
-
v = walk(value, k);
|
|
1570
|
-
if (v !== void 0) value[k] = v;
|
|
1571
|
-
else delete value[k];
|
|
1572
|
-
});
|
|
1573
|
-
return reviver.call(holder, key, value);
|
|
1574
|
-
})({ "": result }, "") : result;
|
|
1575
|
-
};
|
|
1576
|
-
};
|
|
1577
|
-
module.exports = json_parse;
|
|
1578
|
-
}));
|
|
1579
|
-
//#endregion
|
|
1580
|
-
//#region node_modules/.pnpm/json-bigint@1.0.0/node_modules/json-bigint/index.js
|
|
1581
|
-
var require_json_bigint = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1582
|
-
var json_stringify = require_stringify().stringify;
|
|
1583
|
-
var json_parse = require_parse();
|
|
1584
|
-
module.exports = function(options) {
|
|
1585
|
-
return {
|
|
1586
|
-
parse: json_parse(options),
|
|
1587
|
-
stringify: json_stringify
|
|
1588
|
-
};
|
|
1589
|
-
};
|
|
1590
|
-
module.exports.parse = json_parse();
|
|
1591
|
-
module.exports.stringify = json_stringify;
|
|
1592
|
-
}));
|
|
1593
|
-
//#endregion
|
|
1594
|
-
//#region node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
|
|
1595
|
-
var require_base64_js = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
1596
|
-
exports.byteLength = byteLength;
|
|
1597
|
-
exports.toByteArray = toByteArray;
|
|
1598
|
-
exports.fromByteArray = fromByteArray;
|
|
1599
|
-
var lookup = [];
|
|
1600
|
-
var revLookup = [];
|
|
1601
|
-
var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;
|
|
1602
|
-
var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1603
|
-
for (var i = 0, len = code.length; i < len; ++i) {
|
|
1604
|
-
lookup[i] = code[i];
|
|
1605
|
-
revLookup[code.charCodeAt(i)] = i;
|
|
1606
|
-
}
|
|
1607
|
-
revLookup["-".charCodeAt(0)] = 62;
|
|
1608
|
-
revLookup["_".charCodeAt(0)] = 63;
|
|
1609
|
-
function getLens(b64) {
|
|
1610
|
-
var len = b64.length;
|
|
1611
|
-
if (len % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
|
|
1612
|
-
var validLen = b64.indexOf("=");
|
|
1613
|
-
if (validLen === -1) validLen = len;
|
|
1614
|
-
var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;
|
|
1615
|
-
return [validLen, placeHoldersLen];
|
|
1616
|
-
}
|
|
1617
|
-
function byteLength(b64) {
|
|
1618
|
-
var lens = getLens(b64);
|
|
1619
|
-
var validLen = lens[0];
|
|
1620
|
-
var placeHoldersLen = lens[1];
|
|
1621
|
-
return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
|
|
1622
|
-
}
|
|
1623
|
-
function _byteLength(b64, validLen, placeHoldersLen) {
|
|
1624
|
-
return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
|
|
1625
|
-
}
|
|
1626
|
-
function toByteArray(b64) {
|
|
1627
|
-
var tmp;
|
|
1628
|
-
var lens = getLens(b64);
|
|
1629
|
-
var validLen = lens[0];
|
|
1630
|
-
var placeHoldersLen = lens[1];
|
|
1631
|
-
var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));
|
|
1632
|
-
var curByte = 0;
|
|
1633
|
-
var len = placeHoldersLen > 0 ? validLen - 4 : validLen;
|
|
1634
|
-
var i;
|
|
1635
|
-
for (i = 0; i < len; i += 4) {
|
|
1636
|
-
tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];
|
|
1637
|
-
arr[curByte++] = tmp >> 16 & 255;
|
|
1638
|
-
arr[curByte++] = tmp >> 8 & 255;
|
|
1639
|
-
arr[curByte++] = tmp & 255;
|
|
1640
|
-
}
|
|
1641
|
-
if (placeHoldersLen === 2) {
|
|
1642
|
-
tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;
|
|
1643
|
-
arr[curByte++] = tmp & 255;
|
|
1644
|
-
}
|
|
1645
|
-
if (placeHoldersLen === 1) {
|
|
1646
|
-
tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;
|
|
1647
|
-
arr[curByte++] = tmp >> 8 & 255;
|
|
1648
|
-
arr[curByte++] = tmp & 255;
|
|
1649
|
-
}
|
|
1650
|
-
return arr;
|
|
1651
|
-
}
|
|
1652
|
-
function tripletToBase64(num) {
|
|
1653
|
-
return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];
|
|
1654
|
-
}
|
|
1655
|
-
function encodeChunk(uint8, start, end) {
|
|
1656
|
-
var tmp;
|
|
1657
|
-
var output = [];
|
|
1658
|
-
for (var i = start; i < end; i += 3) {
|
|
1659
|
-
tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (uint8[i + 2] & 255);
|
|
1660
|
-
output.push(tripletToBase64(tmp));
|
|
1661
|
-
}
|
|
1662
|
-
return output.join("");
|
|
1663
|
-
}
|
|
1664
|
-
function fromByteArray(uint8) {
|
|
1665
|
-
var tmp;
|
|
1666
|
-
var len = uint8.length;
|
|
1667
|
-
var extraBytes = len % 3;
|
|
1668
|
-
var parts = [];
|
|
1669
|
-
var maxChunkLength = 16383;
|
|
1670
|
-
for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));
|
|
1671
|
-
if (extraBytes === 1) {
|
|
1672
|
-
tmp = uint8[len - 1];
|
|
1673
|
-
parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");
|
|
1674
|
-
} else if (extraBytes === 2) {
|
|
1675
|
-
tmp = (uint8[len - 2] << 8) + uint8[len - 1];
|
|
1676
|
-
parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");
|
|
1677
|
-
}
|
|
1678
|
-
return parts.join("");
|
|
1679
|
-
}
|
|
1680
|
-
}));
|
|
1681
|
-
//#endregion
|
|
1682
|
-
//#region node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js
|
|
1683
|
-
var require_safe_buffer = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1684
|
-
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
1685
|
-
var buffer = __require("buffer");
|
|
1686
|
-
var Buffer = buffer.Buffer;
|
|
1687
|
-
function copyProps(src, dst) {
|
|
1688
|
-
for (var key in src) dst[key] = src[key];
|
|
1689
|
-
}
|
|
1690
|
-
if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) module.exports = buffer;
|
|
1691
|
-
else {
|
|
1692
|
-
copyProps(buffer, exports);
|
|
1693
|
-
exports.Buffer = SafeBuffer;
|
|
1694
|
-
}
|
|
1695
|
-
function SafeBuffer(arg, encodingOrOffset, length) {
|
|
1696
|
-
return Buffer(arg, encodingOrOffset, length);
|
|
1697
|
-
}
|
|
1698
|
-
SafeBuffer.prototype = Object.create(Buffer.prototype);
|
|
1699
|
-
copyProps(Buffer, SafeBuffer);
|
|
1700
|
-
SafeBuffer.from = function(arg, encodingOrOffset, length) {
|
|
1701
|
-
if (typeof arg === "number") throw new TypeError("Argument must not be a number");
|
|
1702
|
-
return Buffer(arg, encodingOrOffset, length);
|
|
1703
|
-
};
|
|
1704
|
-
SafeBuffer.alloc = function(size, fill, encoding) {
|
|
1705
|
-
if (typeof size !== "number") throw new TypeError("Argument must be a number");
|
|
1706
|
-
var buf = Buffer(size);
|
|
1707
|
-
if (fill !== void 0) if (typeof encoding === "string") buf.fill(fill, encoding);
|
|
1708
|
-
else buf.fill(fill);
|
|
1709
|
-
else buf.fill(0);
|
|
1710
|
-
return buf;
|
|
1711
|
-
};
|
|
1712
|
-
SafeBuffer.allocUnsafe = function(size) {
|
|
1713
|
-
if (typeof size !== "number") throw new TypeError("Argument must be a number");
|
|
1714
|
-
return Buffer(size);
|
|
1715
|
-
};
|
|
1716
|
-
SafeBuffer.allocUnsafeSlow = function(size) {
|
|
1717
|
-
if (typeof size !== "number") throw new TypeError("Argument must be a number");
|
|
1718
|
-
return buffer.SlowBuffer(size);
|
|
1719
|
-
};
|
|
1720
|
-
}));
|
|
1721
|
-
//#endregion
|
|
1722
|
-
//#region node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js
|
|
1723
|
-
var require_param_bytes_for_alg = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1724
|
-
function getParamSize(keySize) {
|
|
1725
|
-
return (keySize / 8 | 0) + (keySize % 8 === 0 ? 0 : 1);
|
|
1726
|
-
}
|
|
1727
|
-
var paramBytesForAlg = {
|
|
1728
|
-
ES256: getParamSize(256),
|
|
1729
|
-
ES384: getParamSize(384),
|
|
1730
|
-
ES512: getParamSize(521)
|
|
1731
|
-
};
|
|
1732
|
-
function getParamBytesForAlg(alg) {
|
|
1733
|
-
var paramBytes = paramBytesForAlg[alg];
|
|
1734
|
-
if (paramBytes) return paramBytes;
|
|
1735
|
-
throw new Error("Unknown algorithm \"" + alg + "\"");
|
|
1736
|
-
}
|
|
1737
|
-
module.exports = getParamBytesForAlg;
|
|
1738
|
-
}));
|
|
1739
|
-
//#endregion
|
|
1740
|
-
//#region node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js
|
|
1741
|
-
var require_ecdsa_sig_formatter = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1742
|
-
var Buffer = require_safe_buffer().Buffer;
|
|
1743
|
-
var getParamBytesForAlg = require_param_bytes_for_alg();
|
|
1744
|
-
var MAX_OCTET = 128, CLASS_UNIVERSAL = 0, PRIMITIVE_BIT = 32, TAG_SEQ = 16, TAG_INT = 2, ENCODED_TAG_SEQ = TAG_SEQ | PRIMITIVE_BIT | CLASS_UNIVERSAL << 6, ENCODED_TAG_INT = TAG_INT | CLASS_UNIVERSAL << 6;
|
|
1745
|
-
function base64Url(base64) {
|
|
1746
|
-
return base64.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
1747
|
-
}
|
|
1748
|
-
function signatureAsBuffer(signature) {
|
|
1749
|
-
if (Buffer.isBuffer(signature)) return signature;
|
|
1750
|
-
else if ("string" === typeof signature) return Buffer.from(signature, "base64");
|
|
1751
|
-
throw new TypeError("ECDSA signature must be a Base64 string or a Buffer");
|
|
1752
|
-
}
|
|
1753
|
-
function derToJose(signature, alg) {
|
|
1754
|
-
signature = signatureAsBuffer(signature);
|
|
1755
|
-
var paramBytes = getParamBytesForAlg(alg);
|
|
1756
|
-
var maxEncodedParamLength = paramBytes + 1;
|
|
1757
|
-
var inputLength = signature.length;
|
|
1758
|
-
var offset = 0;
|
|
1759
|
-
if (signature[offset++] !== ENCODED_TAG_SEQ) throw new Error("Could not find expected \"seq\"");
|
|
1760
|
-
var seqLength = signature[offset++];
|
|
1761
|
-
if (seqLength === (MAX_OCTET | 1)) seqLength = signature[offset++];
|
|
1762
|
-
if (inputLength - offset < seqLength) throw new Error("\"seq\" specified length of \"" + seqLength + "\", only \"" + (inputLength - offset) + "\" remaining");
|
|
1763
|
-
if (signature[offset++] !== ENCODED_TAG_INT) throw new Error("Could not find expected \"int\" for \"r\"");
|
|
1764
|
-
var rLength = signature[offset++];
|
|
1765
|
-
if (inputLength - offset - 2 < rLength) throw new Error("\"r\" specified length of \"" + rLength + "\", only \"" + (inputLength - offset - 2) + "\" available");
|
|
1766
|
-
if (maxEncodedParamLength < rLength) throw new Error("\"r\" specified length of \"" + rLength + "\", max of \"" + maxEncodedParamLength + "\" is acceptable");
|
|
1767
|
-
var rOffset = offset;
|
|
1768
|
-
offset += rLength;
|
|
1769
|
-
if (signature[offset++] !== ENCODED_TAG_INT) throw new Error("Could not find expected \"int\" for \"s\"");
|
|
1770
|
-
var sLength = signature[offset++];
|
|
1771
|
-
if (inputLength - offset !== sLength) throw new Error("\"s\" specified length of \"" + sLength + "\", expected \"" + (inputLength - offset) + "\"");
|
|
1772
|
-
if (maxEncodedParamLength < sLength) throw new Error("\"s\" specified length of \"" + sLength + "\", max of \"" + maxEncodedParamLength + "\" is acceptable");
|
|
1773
|
-
var sOffset = offset;
|
|
1774
|
-
offset += sLength;
|
|
1775
|
-
if (offset !== inputLength) throw new Error("Expected to consume entire buffer, but \"" + (inputLength - offset) + "\" bytes remain");
|
|
1776
|
-
var rPadding = paramBytes - rLength, sPadding = paramBytes - sLength;
|
|
1777
|
-
var dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength);
|
|
1778
|
-
for (offset = 0; offset < rPadding; ++offset) dst[offset] = 0;
|
|
1779
|
-
signature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength);
|
|
1780
|
-
offset = paramBytes;
|
|
1781
|
-
for (var o = offset; offset < o + sPadding; ++offset) dst[offset] = 0;
|
|
1782
|
-
signature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength);
|
|
1783
|
-
dst = dst.toString("base64");
|
|
1784
|
-
dst = base64Url(dst);
|
|
1785
|
-
return dst;
|
|
1786
|
-
}
|
|
1787
|
-
function countPadding(buf, start, stop) {
|
|
1788
|
-
var padding = 0;
|
|
1789
|
-
while (start + padding < stop && buf[start + padding] === 0) ++padding;
|
|
1790
|
-
if (buf[start + padding] >= MAX_OCTET) --padding;
|
|
1791
|
-
return padding;
|
|
1792
|
-
}
|
|
1793
|
-
function joseToDer(signature, alg) {
|
|
1794
|
-
signature = signatureAsBuffer(signature);
|
|
1795
|
-
var paramBytes = getParamBytesForAlg(alg);
|
|
1796
|
-
var signatureBytes = signature.length;
|
|
1797
|
-
if (signatureBytes !== paramBytes * 2) throw new TypeError("\"" + alg + "\" signatures must be \"" + paramBytes * 2 + "\" bytes, saw \"" + signatureBytes + "\"");
|
|
1798
|
-
var rPadding = countPadding(signature, 0, paramBytes);
|
|
1799
|
-
var sPadding = countPadding(signature, paramBytes, signature.length);
|
|
1800
|
-
var rLength = paramBytes - rPadding;
|
|
1801
|
-
var sLength = paramBytes - sPadding;
|
|
1802
|
-
var rsBytes = 2 + rLength + 1 + 1 + sLength;
|
|
1803
|
-
var shortLength = rsBytes < MAX_OCTET;
|
|
1804
|
-
var dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes);
|
|
1805
|
-
var offset = 0;
|
|
1806
|
-
dst[offset++] = ENCODED_TAG_SEQ;
|
|
1807
|
-
if (shortLength) dst[offset++] = rsBytes;
|
|
1808
|
-
else {
|
|
1809
|
-
dst[offset++] = MAX_OCTET | 1;
|
|
1810
|
-
dst[offset++] = rsBytes & 255;
|
|
1811
|
-
}
|
|
1812
|
-
dst[offset++] = ENCODED_TAG_INT;
|
|
1813
|
-
dst[offset++] = rLength;
|
|
1814
|
-
if (rPadding < 0) {
|
|
1815
|
-
dst[offset++] = 0;
|
|
1816
|
-
offset += signature.copy(dst, offset, 0, paramBytes);
|
|
1817
|
-
} else offset += signature.copy(dst, offset, rPadding, paramBytes);
|
|
1818
|
-
dst[offset++] = ENCODED_TAG_INT;
|
|
1819
|
-
dst[offset++] = sLength;
|
|
1820
|
-
if (sPadding < 0) {
|
|
1821
|
-
dst[offset++] = 0;
|
|
1822
|
-
signature.copy(dst, offset, paramBytes);
|
|
1823
|
-
} else signature.copy(dst, offset, paramBytes + sPadding);
|
|
1824
|
-
return dst;
|
|
1825
|
-
}
|
|
1826
|
-
module.exports = {
|
|
1827
|
-
derToJose,
|
|
1828
|
-
joseToDer
|
|
1829
|
-
};
|
|
1830
|
-
}));
|
|
1831
|
-
//#endregion
|
|
1832
|
-
//#region node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/data-stream.js
|
|
1833
|
-
var require_data_stream = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1834
|
-
var Buffer = require_safe_buffer().Buffer;
|
|
1835
|
-
var Stream$2 = __require("stream");
|
|
1836
|
-
var util$3 = __require("util");
|
|
1837
|
-
function DataStream(data) {
|
|
1838
|
-
this.buffer = null;
|
|
1839
|
-
this.writable = true;
|
|
1840
|
-
this.readable = true;
|
|
1841
|
-
if (!data) {
|
|
1842
|
-
this.buffer = Buffer.alloc(0);
|
|
1843
|
-
return this;
|
|
1844
|
-
}
|
|
1845
|
-
if (typeof data.pipe === "function") {
|
|
1846
|
-
this.buffer = Buffer.alloc(0);
|
|
1847
|
-
data.pipe(this);
|
|
1848
|
-
return this;
|
|
1849
|
-
}
|
|
1850
|
-
if (data.length || typeof data === "object") {
|
|
1851
|
-
this.buffer = data;
|
|
1852
|
-
this.writable = false;
|
|
1853
|
-
process.nextTick(function() {
|
|
1854
|
-
this.emit("end", data);
|
|
1855
|
-
this.readable = false;
|
|
1856
|
-
this.emit("close");
|
|
1857
|
-
}.bind(this));
|
|
1858
|
-
return this;
|
|
1859
|
-
}
|
|
1860
|
-
throw new TypeError("Unexpected data type (" + typeof data + ")");
|
|
1861
|
-
}
|
|
1862
|
-
util$3.inherits(DataStream, Stream$2);
|
|
1863
|
-
DataStream.prototype.write = function write(data) {
|
|
1864
|
-
this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]);
|
|
1865
|
-
this.emit("data", data);
|
|
1866
|
-
};
|
|
1867
|
-
DataStream.prototype.end = function end(data) {
|
|
1868
|
-
if (data) this.write(data);
|
|
1869
|
-
this.emit("end", data);
|
|
1870
|
-
this.emit("close");
|
|
1871
|
-
this.writable = false;
|
|
1872
|
-
this.readable = false;
|
|
1873
|
-
};
|
|
1874
|
-
module.exports = DataStream;
|
|
1875
|
-
}));
|
|
1876
|
-
//#endregion
|
|
1877
|
-
//#region node_modules/.pnpm/buffer-equal-constant-time@1.0.1/node_modules/buffer-equal-constant-time/index.js
|
|
1878
|
-
var require_buffer_equal_constant_time = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1879
|
-
var Buffer$1 = __require("buffer").Buffer;
|
|
1880
|
-
var SlowBuffer = __require("buffer").SlowBuffer;
|
|
1881
|
-
module.exports = bufferEq;
|
|
1882
|
-
function bufferEq(a, b) {
|
|
1883
|
-
if (!Buffer$1.isBuffer(a) || !Buffer$1.isBuffer(b)) return false;
|
|
1884
|
-
if (a.length !== b.length) return false;
|
|
1885
|
-
var c = 0;
|
|
1886
|
-
for (var i = 0; i < a.length; i++) c |= a[i] ^ b[i];
|
|
1887
|
-
return c === 0;
|
|
1888
|
-
}
|
|
1889
|
-
bufferEq.install = function() {
|
|
1890
|
-
Buffer$1.prototype.equal = SlowBuffer.prototype.equal = function equal(that) {
|
|
1891
|
-
return bufferEq(this, that);
|
|
1892
|
-
};
|
|
1893
|
-
};
|
|
1894
|
-
var origBufEqual = Buffer$1.prototype.equal;
|
|
1895
|
-
var origSlowBufEqual = SlowBuffer.prototype.equal;
|
|
1896
|
-
bufferEq.restore = function() {
|
|
1897
|
-
Buffer$1.prototype.equal = origBufEqual;
|
|
1898
|
-
SlowBuffer.prototype.equal = origSlowBufEqual;
|
|
1899
|
-
};
|
|
1900
|
-
}));
|
|
1901
|
-
//#endregion
|
|
1902
|
-
//#region node_modules/.pnpm/jwa@2.0.1/node_modules/jwa/index.js
|
|
1903
|
-
var require_jwa = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1904
|
-
var Buffer = require_safe_buffer().Buffer;
|
|
1905
|
-
var crypto$1 = __require("crypto");
|
|
1906
|
-
var formatEcdsa = require_ecdsa_sig_formatter();
|
|
1907
|
-
var util$2 = __require("util");
|
|
1908
|
-
var MSG_INVALID_ALGORITHM = "\"%s\" is not a valid algorithm.\n Supported algorithms are:\n \"HS256\", \"HS384\", \"HS512\", \"RS256\", \"RS384\", \"RS512\", \"PS256\", \"PS384\", \"PS512\", \"ES256\", \"ES384\", \"ES512\" and \"none\".";
|
|
1909
|
-
var MSG_INVALID_SECRET = "secret must be a string or buffer";
|
|
1910
|
-
var MSG_INVALID_VERIFIER_KEY = "key must be a string or a buffer";
|
|
1911
|
-
var MSG_INVALID_SIGNER_KEY = "key must be a string, a buffer or an object";
|
|
1912
|
-
var supportsKeyObjects = typeof crypto$1.createPublicKey === "function";
|
|
1913
|
-
if (supportsKeyObjects) {
|
|
1914
|
-
MSG_INVALID_VERIFIER_KEY += " or a KeyObject";
|
|
1915
|
-
MSG_INVALID_SECRET += "or a KeyObject";
|
|
1916
|
-
}
|
|
1917
|
-
function checkIsPublicKey(key) {
|
|
1918
|
-
if (Buffer.isBuffer(key)) return;
|
|
1919
|
-
if (typeof key === "string") return;
|
|
1920
|
-
if (!supportsKeyObjects) throw typeError(MSG_INVALID_VERIFIER_KEY);
|
|
1921
|
-
if (typeof key !== "object") throw typeError(MSG_INVALID_VERIFIER_KEY);
|
|
1922
|
-
if (typeof key.type !== "string") throw typeError(MSG_INVALID_VERIFIER_KEY);
|
|
1923
|
-
if (typeof key.asymmetricKeyType !== "string") throw typeError(MSG_INVALID_VERIFIER_KEY);
|
|
1924
|
-
if (typeof key.export !== "function") throw typeError(MSG_INVALID_VERIFIER_KEY);
|
|
1925
|
-
}
|
|
1926
|
-
function checkIsPrivateKey(key) {
|
|
1927
|
-
if (Buffer.isBuffer(key)) return;
|
|
1928
|
-
if (typeof key === "string") return;
|
|
1929
|
-
if (typeof key === "object") return;
|
|
1930
|
-
throw typeError(MSG_INVALID_SIGNER_KEY);
|
|
1931
|
-
}
|
|
1932
|
-
function checkIsSecretKey(key) {
|
|
1933
|
-
if (Buffer.isBuffer(key)) return;
|
|
1934
|
-
if (typeof key === "string") return key;
|
|
1935
|
-
if (!supportsKeyObjects) throw typeError(MSG_INVALID_SECRET);
|
|
1936
|
-
if (typeof key !== "object") throw typeError(MSG_INVALID_SECRET);
|
|
1937
|
-
if (key.type !== "secret") throw typeError(MSG_INVALID_SECRET);
|
|
1938
|
-
if (typeof key.export !== "function") throw typeError(MSG_INVALID_SECRET);
|
|
1939
|
-
}
|
|
1940
|
-
function fromBase64(base64) {
|
|
1941
|
-
return base64.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
1942
|
-
}
|
|
1943
|
-
function toBase64(base64url) {
|
|
1944
|
-
base64url = base64url.toString();
|
|
1945
|
-
var padding = 4 - base64url.length % 4;
|
|
1946
|
-
if (padding !== 4) for (var i = 0; i < padding; ++i) base64url += "=";
|
|
1947
|
-
return base64url.replace(/\-/g, "+").replace(/_/g, "/");
|
|
1948
|
-
}
|
|
1949
|
-
function typeError(template) {
|
|
1950
|
-
var args = [].slice.call(arguments, 1);
|
|
1951
|
-
var errMsg = util$2.format.bind(util$2, template).apply(null, args);
|
|
1952
|
-
return new TypeError(errMsg);
|
|
1953
|
-
}
|
|
1954
|
-
function bufferOrString(obj) {
|
|
1955
|
-
return Buffer.isBuffer(obj) || typeof obj === "string";
|
|
1956
|
-
}
|
|
1957
|
-
function normalizeInput(thing) {
|
|
1958
|
-
if (!bufferOrString(thing)) thing = JSON.stringify(thing);
|
|
1959
|
-
return thing;
|
|
1960
|
-
}
|
|
1961
|
-
function createHmacSigner(bits) {
|
|
1962
|
-
return function sign(thing, secret) {
|
|
1963
|
-
checkIsSecretKey(secret);
|
|
1964
|
-
thing = normalizeInput(thing);
|
|
1965
|
-
var hmac = crypto$1.createHmac("sha" + bits, secret);
|
|
1966
|
-
return fromBase64((hmac.update(thing), hmac.digest("base64")));
|
|
1967
|
-
};
|
|
1968
|
-
}
|
|
1969
|
-
var bufferEqual;
|
|
1970
|
-
var timingSafeEqual = "timingSafeEqual" in crypto$1 ? function timingSafeEqual(a, b) {
|
|
1971
|
-
if (a.byteLength !== b.byteLength) return false;
|
|
1972
|
-
return crypto$1.timingSafeEqual(a, b);
|
|
1973
|
-
} : function timingSafeEqual(a, b) {
|
|
1974
|
-
if (!bufferEqual) bufferEqual = require_buffer_equal_constant_time();
|
|
1975
|
-
return bufferEqual(a, b);
|
|
1976
|
-
};
|
|
1977
|
-
function createHmacVerifier(bits) {
|
|
1978
|
-
return function verify(thing, signature, secret) {
|
|
1979
|
-
var computedSig = createHmacSigner(bits)(thing, secret);
|
|
1980
|
-
return timingSafeEqual(Buffer.from(signature), Buffer.from(computedSig));
|
|
1981
|
-
};
|
|
1982
|
-
}
|
|
1983
|
-
function createKeySigner(bits) {
|
|
1984
|
-
return function sign(thing, privateKey) {
|
|
1985
|
-
checkIsPrivateKey(privateKey);
|
|
1986
|
-
thing = normalizeInput(thing);
|
|
1987
|
-
var signer = crypto$1.createSign("RSA-SHA" + bits);
|
|
1988
|
-
return fromBase64((signer.update(thing), signer.sign(privateKey, "base64")));
|
|
1989
|
-
};
|
|
1990
|
-
}
|
|
1991
|
-
function createKeyVerifier(bits) {
|
|
1992
|
-
return function verify(thing, signature, publicKey) {
|
|
1993
|
-
checkIsPublicKey(publicKey);
|
|
1994
|
-
thing = normalizeInput(thing);
|
|
1995
|
-
signature = toBase64(signature);
|
|
1996
|
-
var verifier = crypto$1.createVerify("RSA-SHA" + bits);
|
|
1997
|
-
verifier.update(thing);
|
|
1998
|
-
return verifier.verify(publicKey, signature, "base64");
|
|
1999
|
-
};
|
|
2000
|
-
}
|
|
2001
|
-
function createPSSKeySigner(bits) {
|
|
2002
|
-
return function sign(thing, privateKey) {
|
|
2003
|
-
checkIsPrivateKey(privateKey);
|
|
2004
|
-
thing = normalizeInput(thing);
|
|
2005
|
-
var signer = crypto$1.createSign("RSA-SHA" + bits);
|
|
2006
|
-
return fromBase64((signer.update(thing), signer.sign({
|
|
2007
|
-
key: privateKey,
|
|
2008
|
-
padding: crypto$1.constants.RSA_PKCS1_PSS_PADDING,
|
|
2009
|
-
saltLength: crypto$1.constants.RSA_PSS_SALTLEN_DIGEST
|
|
2010
|
-
}, "base64")));
|
|
2011
|
-
};
|
|
2012
|
-
}
|
|
2013
|
-
function createPSSKeyVerifier(bits) {
|
|
2014
|
-
return function verify(thing, signature, publicKey) {
|
|
2015
|
-
checkIsPublicKey(publicKey);
|
|
2016
|
-
thing = normalizeInput(thing);
|
|
2017
|
-
signature = toBase64(signature);
|
|
2018
|
-
var verifier = crypto$1.createVerify("RSA-SHA" + bits);
|
|
2019
|
-
verifier.update(thing);
|
|
2020
|
-
return verifier.verify({
|
|
2021
|
-
key: publicKey,
|
|
2022
|
-
padding: crypto$1.constants.RSA_PKCS1_PSS_PADDING,
|
|
2023
|
-
saltLength: crypto$1.constants.RSA_PSS_SALTLEN_DIGEST
|
|
2024
|
-
}, signature, "base64");
|
|
2025
|
-
};
|
|
2026
|
-
}
|
|
2027
|
-
function createECDSASigner(bits) {
|
|
2028
|
-
var inner = createKeySigner(bits);
|
|
2029
|
-
return function sign() {
|
|
2030
|
-
var signature = inner.apply(null, arguments);
|
|
2031
|
-
signature = formatEcdsa.derToJose(signature, "ES" + bits);
|
|
2032
|
-
return signature;
|
|
2033
|
-
};
|
|
2034
|
-
}
|
|
2035
|
-
function createECDSAVerifer(bits) {
|
|
2036
|
-
var inner = createKeyVerifier(bits);
|
|
2037
|
-
return function verify(thing, signature, publicKey) {
|
|
2038
|
-
signature = formatEcdsa.joseToDer(signature, "ES" + bits).toString("base64");
|
|
2039
|
-
return inner(thing, signature, publicKey);
|
|
2040
|
-
};
|
|
2041
|
-
}
|
|
2042
|
-
function createNoneSigner() {
|
|
2043
|
-
return function sign() {
|
|
2044
|
-
return "";
|
|
2045
|
-
};
|
|
2046
|
-
}
|
|
2047
|
-
function createNoneVerifier() {
|
|
2048
|
-
return function verify(thing, signature) {
|
|
2049
|
-
return signature === "";
|
|
2050
|
-
};
|
|
2051
|
-
}
|
|
2052
|
-
module.exports = function jwa(algorithm) {
|
|
2053
|
-
var signerFactories = {
|
|
2054
|
-
hs: createHmacSigner,
|
|
2055
|
-
rs: createKeySigner,
|
|
2056
|
-
ps: createPSSKeySigner,
|
|
2057
|
-
es: createECDSASigner,
|
|
2058
|
-
none: createNoneSigner
|
|
2059
|
-
};
|
|
2060
|
-
var verifierFactories = {
|
|
2061
|
-
hs: createHmacVerifier,
|
|
2062
|
-
rs: createKeyVerifier,
|
|
2063
|
-
ps: createPSSKeyVerifier,
|
|
2064
|
-
es: createECDSAVerifer,
|
|
2065
|
-
none: createNoneVerifier
|
|
2066
|
-
};
|
|
2067
|
-
var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);
|
|
2068
|
-
if (!match) throw typeError(MSG_INVALID_ALGORITHM, algorithm);
|
|
2069
|
-
var algo = (match[1] || match[3]).toLowerCase();
|
|
2070
|
-
var bits = match[2];
|
|
2071
|
-
return {
|
|
2072
|
-
sign: signerFactories[algo](bits),
|
|
2073
|
-
verify: verifierFactories[algo](bits)
|
|
2074
|
-
};
|
|
2075
|
-
};
|
|
2076
|
-
}));
|
|
2077
|
-
//#endregion
|
|
2078
|
-
//#region node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/tostring.js
|
|
2079
|
-
var require_tostring = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
2080
|
-
var Buffer = __require("buffer").Buffer;
|
|
2081
|
-
module.exports = function toString(obj) {
|
|
2082
|
-
if (typeof obj === "string") return obj;
|
|
2083
|
-
if (typeof obj === "number" || Buffer.isBuffer(obj)) return obj.toString();
|
|
2084
|
-
return JSON.stringify(obj);
|
|
2085
|
-
};
|
|
2086
|
-
}));
|
|
2087
|
-
//#endregion
|
|
2088
|
-
//#region node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/sign-stream.js
|
|
2089
|
-
var require_sign_stream = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
2090
|
-
var Buffer = require_safe_buffer().Buffer;
|
|
2091
|
-
var DataStream = require_data_stream();
|
|
2092
|
-
var jwa = require_jwa();
|
|
2093
|
-
var Stream$1 = __require("stream");
|
|
2094
|
-
var toString = require_tostring();
|
|
2095
|
-
var util$1 = __require("util");
|
|
2096
|
-
function base64url(string, encoding) {
|
|
2097
|
-
return Buffer.from(string, encoding).toString("base64").replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
2098
|
-
}
|
|
2099
|
-
function jwsSecuredInput(header, payload, encoding) {
|
|
2100
|
-
encoding = encoding || "utf8";
|
|
2101
|
-
var encodedHeader = base64url(toString(header), "binary");
|
|
2102
|
-
var encodedPayload = base64url(toString(payload), encoding);
|
|
2103
|
-
return util$1.format("%s.%s", encodedHeader, encodedPayload);
|
|
2104
|
-
}
|
|
2105
|
-
function jwsSign(opts) {
|
|
2106
|
-
var header = opts.header;
|
|
2107
|
-
var payload = opts.payload;
|
|
2108
|
-
var secretOrKey = opts.secret || opts.privateKey;
|
|
2109
|
-
var encoding = opts.encoding;
|
|
2110
|
-
var algo = jwa(header.alg);
|
|
2111
|
-
var securedInput = jwsSecuredInput(header, payload, encoding);
|
|
2112
|
-
var signature = algo.sign(securedInput, secretOrKey);
|
|
2113
|
-
return util$1.format("%s.%s", securedInput, signature);
|
|
2114
|
-
}
|
|
2115
|
-
function SignStream(opts) {
|
|
2116
|
-
var secret = opts.secret;
|
|
2117
|
-
secret = secret == null ? opts.privateKey : secret;
|
|
2118
|
-
secret = secret == null ? opts.key : secret;
|
|
2119
|
-
if (/^hs/i.test(opts.header.alg) === true && secret == null) throw new TypeError("secret must be a string or buffer or a KeyObject");
|
|
2120
|
-
var secretStream = new DataStream(secret);
|
|
2121
|
-
this.readable = true;
|
|
2122
|
-
this.header = opts.header;
|
|
2123
|
-
this.encoding = opts.encoding;
|
|
2124
|
-
this.secret = this.privateKey = this.key = secretStream;
|
|
2125
|
-
this.payload = new DataStream(opts.payload);
|
|
2126
|
-
this.secret.once("close", function() {
|
|
2127
|
-
if (!this.payload.writable && this.readable) this.sign();
|
|
2128
|
-
}.bind(this));
|
|
2129
|
-
this.payload.once("close", function() {
|
|
2130
|
-
if (!this.secret.writable && this.readable) this.sign();
|
|
2131
|
-
}.bind(this));
|
|
2132
|
-
}
|
|
2133
|
-
util$1.inherits(SignStream, Stream$1);
|
|
2134
|
-
SignStream.prototype.sign = function sign() {
|
|
2135
|
-
try {
|
|
2136
|
-
var signature = jwsSign({
|
|
2137
|
-
header: this.header,
|
|
2138
|
-
payload: this.payload.buffer,
|
|
2139
|
-
secret: this.secret.buffer,
|
|
2140
|
-
encoding: this.encoding
|
|
2141
|
-
});
|
|
2142
|
-
this.emit("done", signature);
|
|
2143
|
-
this.emit("data", signature);
|
|
2144
|
-
this.emit("end");
|
|
2145
|
-
this.readable = false;
|
|
2146
|
-
return signature;
|
|
2147
|
-
} catch (e) {
|
|
2148
|
-
this.readable = false;
|
|
2149
|
-
this.emit("error", e);
|
|
2150
|
-
this.emit("close");
|
|
2151
|
-
}
|
|
2152
|
-
};
|
|
2153
|
-
SignStream.sign = jwsSign;
|
|
2154
|
-
module.exports = SignStream;
|
|
2155
|
-
}));
|
|
2156
|
-
//#endregion
|
|
2157
|
-
//#region node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/verify-stream.js
|
|
2158
|
-
var require_verify_stream = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
2159
|
-
var Buffer = require_safe_buffer().Buffer;
|
|
2160
|
-
var DataStream = require_data_stream();
|
|
2161
|
-
var jwa = require_jwa();
|
|
2162
|
-
var Stream = __require("stream");
|
|
2163
|
-
var toString = require_tostring();
|
|
2164
|
-
var util = __require("util");
|
|
2165
|
-
var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;
|
|
2166
|
-
function isObject(thing) {
|
|
2167
|
-
return Object.prototype.toString.call(thing) === "[object Object]";
|
|
2168
|
-
}
|
|
2169
|
-
function safeJsonParse(thing) {
|
|
2170
|
-
if (isObject(thing)) return thing;
|
|
2171
|
-
try {
|
|
2172
|
-
return JSON.parse(thing);
|
|
2173
|
-
} catch (e) {
|
|
2174
|
-
return;
|
|
2175
|
-
}
|
|
2176
|
-
}
|
|
2177
|
-
function headerFromJWS(jwsSig) {
|
|
2178
|
-
var encodedHeader = jwsSig.split(".", 1)[0];
|
|
2179
|
-
return safeJsonParse(Buffer.from(encodedHeader, "base64").toString("binary"));
|
|
2180
|
-
}
|
|
2181
|
-
function securedInputFromJWS(jwsSig) {
|
|
2182
|
-
return jwsSig.split(".", 2).join(".");
|
|
2183
|
-
}
|
|
2184
|
-
function signatureFromJWS(jwsSig) {
|
|
2185
|
-
return jwsSig.split(".")[2];
|
|
2186
|
-
}
|
|
2187
|
-
function payloadFromJWS(jwsSig, encoding) {
|
|
2188
|
-
encoding = encoding || "utf8";
|
|
2189
|
-
var payload = jwsSig.split(".")[1];
|
|
2190
|
-
return Buffer.from(payload, "base64").toString(encoding);
|
|
2191
|
-
}
|
|
2192
|
-
function isValidJws(string) {
|
|
2193
|
-
return JWS_REGEX.test(string) && !!headerFromJWS(string);
|
|
2194
|
-
}
|
|
2195
|
-
function jwsVerify(jwsSig, algorithm, secretOrKey) {
|
|
2196
|
-
if (!algorithm) {
|
|
2197
|
-
var err = /* @__PURE__ */ new Error("Missing algorithm parameter for jws.verify");
|
|
2198
|
-
err.code = "MISSING_ALGORITHM";
|
|
2199
|
-
throw err;
|
|
2200
|
-
}
|
|
2201
|
-
jwsSig = toString(jwsSig);
|
|
2202
|
-
var signature = signatureFromJWS(jwsSig);
|
|
2203
|
-
var securedInput = securedInputFromJWS(jwsSig);
|
|
2204
|
-
return jwa(algorithm).verify(securedInput, signature, secretOrKey);
|
|
2205
|
-
}
|
|
2206
|
-
function jwsDecode(jwsSig, opts) {
|
|
2207
|
-
opts = opts || {};
|
|
2208
|
-
jwsSig = toString(jwsSig);
|
|
2209
|
-
if (!isValidJws(jwsSig)) return null;
|
|
2210
|
-
var header = headerFromJWS(jwsSig);
|
|
2211
|
-
if (!header) return null;
|
|
2212
|
-
var payload = payloadFromJWS(jwsSig);
|
|
2213
|
-
if (header.typ === "JWT" || opts.json) payload = JSON.parse(payload, opts.encoding);
|
|
2214
|
-
return {
|
|
2215
|
-
header,
|
|
2216
|
-
payload,
|
|
2217
|
-
signature: signatureFromJWS(jwsSig)
|
|
2218
|
-
};
|
|
2219
|
-
}
|
|
2220
|
-
function VerifyStream(opts) {
|
|
2221
|
-
opts = opts || {};
|
|
2222
|
-
var secretOrKey = opts.secret;
|
|
2223
|
-
secretOrKey = secretOrKey == null ? opts.publicKey : secretOrKey;
|
|
2224
|
-
secretOrKey = secretOrKey == null ? opts.key : secretOrKey;
|
|
2225
|
-
if (/^hs/i.test(opts.algorithm) === true && secretOrKey == null) throw new TypeError("secret must be a string or buffer or a KeyObject");
|
|
2226
|
-
var secretStream = new DataStream(secretOrKey);
|
|
2227
|
-
this.readable = true;
|
|
2228
|
-
this.algorithm = opts.algorithm;
|
|
2229
|
-
this.encoding = opts.encoding;
|
|
2230
|
-
this.secret = this.publicKey = this.key = secretStream;
|
|
2231
|
-
this.signature = new DataStream(opts.signature);
|
|
2232
|
-
this.secret.once("close", function() {
|
|
2233
|
-
if (!this.signature.writable && this.readable) this.verify();
|
|
2234
|
-
}.bind(this));
|
|
2235
|
-
this.signature.once("close", function() {
|
|
2236
|
-
if (!this.secret.writable && this.readable) this.verify();
|
|
2237
|
-
}.bind(this));
|
|
2238
|
-
}
|
|
2239
|
-
util.inherits(VerifyStream, Stream);
|
|
2240
|
-
VerifyStream.prototype.verify = function verify() {
|
|
2241
|
-
try {
|
|
2242
|
-
var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer);
|
|
2243
|
-
var obj = jwsDecode(this.signature.buffer, this.encoding);
|
|
2244
|
-
this.emit("done", valid, obj);
|
|
2245
|
-
this.emit("data", valid);
|
|
2246
|
-
this.emit("end");
|
|
2247
|
-
this.readable = false;
|
|
2248
|
-
return valid;
|
|
2249
|
-
} catch (e) {
|
|
2250
|
-
this.readable = false;
|
|
2251
|
-
this.emit("error", e);
|
|
2252
|
-
this.emit("close");
|
|
2253
|
-
}
|
|
2254
|
-
};
|
|
2255
|
-
VerifyStream.decode = jwsDecode;
|
|
2256
|
-
VerifyStream.isValid = isValidJws;
|
|
2257
|
-
VerifyStream.verify = jwsVerify;
|
|
2258
|
-
module.exports = VerifyStream;
|
|
2259
|
-
}));
|
|
2260
|
-
//#endregion
|
|
2261
|
-
//#region node_modules/.pnpm/jws@4.0.1/node_modules/jws/index.js
|
|
2262
|
-
var require_jws = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
2263
|
-
var SignStream = require_sign_stream();
|
|
2264
|
-
var VerifyStream = require_verify_stream();
|
|
2265
|
-
exports.ALGORITHMS = [
|
|
2266
|
-
"HS256",
|
|
2267
|
-
"HS384",
|
|
2268
|
-
"HS512",
|
|
2269
|
-
"RS256",
|
|
2270
|
-
"RS384",
|
|
2271
|
-
"RS512",
|
|
2272
|
-
"PS256",
|
|
2273
|
-
"PS384",
|
|
2274
|
-
"PS512",
|
|
2275
|
-
"ES256",
|
|
2276
|
-
"ES384",
|
|
2277
|
-
"ES512"
|
|
2278
|
-
];
|
|
2279
|
-
exports.sign = SignStream.sign;
|
|
2280
|
-
exports.verify = VerifyStream.verify;
|
|
2281
|
-
exports.decode = VerifyStream.decode;
|
|
2282
|
-
exports.isValid = VerifyStream.isValid;
|
|
2283
|
-
exports.createSign = function createSign(opts) {
|
|
2284
|
-
return new SignStream(opts);
|
|
2285
|
-
};
|
|
2286
|
-
exports.createVerify = function createVerify(opts) {
|
|
2287
|
-
return new VerifyStream(opts);
|
|
2288
|
-
};
|
|
2289
|
-
}));
|
|
2290
|
-
//#endregion
|
|
2291
|
-
export { require_extend as a, require_json_bigint as i, require_ecdsa_sig_formatter as n, require_base64_js as r, require_jws as t };
|