@fileverse-dev/formulajs 4.4.11-mod-15-patch-2 → 4.4.11-mod-17
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/lib/browser/formula.js +130 -84
- package/lib/browser/formula.min.js +2 -2
- package/lib/browser/formula.min.js.map +1 -1
- package/lib/cjs/index.cjs +69 -46
- package/lib/esm/crypto-constants.mjs +6 -8
- package/lib/esm/index.mjs +69 -46
- package/package.json +1 -1
- package/types/cjs/index.d.cts +1 -1
- package/types/esm/index.d.mts +1 -1
package/lib/browser/formula.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @fileverse-dev/formulajs v4.4.11-mod-
|
|
1
|
+
/* @fileverse-dev/formulajs v4.4.11-mod-17 */
|
|
2
2
|
function _regeneratorRuntime() {
|
|
3
3
|
"use strict";
|
|
4
4
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() {
|
|
@@ -6583,36 +6583,59 @@ function _typeof(o) {
|
|
|
6583
6583
|
};
|
|
6584
6584
|
function PNL() {
|
|
6585
6585
|
var _argsToArray = argsToArray(arguments), _argsToArray2 = _slicedToArray(_argsToArray, 2), A = _argsToArray2[0], B = _argsToArray2[1];
|
|
6586
|
+
var toNumberOrThrow = function toNumberOrThrow(val) {
|
|
6587
|
+
var num = Number(val);
|
|
6588
|
+
if (isNaN(num)) throw new Error("Invalid number value: ".concat(val));
|
|
6589
|
+
return num;
|
|
6590
|
+
};
|
|
6586
6591
|
if (typeof A === "number" && typeof B === "number") {
|
|
6587
6592
|
return A - B;
|
|
6588
6593
|
}
|
|
6589
|
-
if (Array.isArray(A) && Array.isArray(B) &&
|
|
6590
|
-
|
|
6591
|
-
return A.reduce((function(sum, val, i) {
|
|
6592
|
-
return sum + (val - B[i]);
|
|
6593
|
-
}), 0);
|
|
6594
|
-
}
|
|
6595
|
-
if (Array.isArray(A[0]) && typeof A[0][0] === "number") {
|
|
6594
|
+
if (Array.isArray(A) && Array.isArray(B) && _typeof(A[0]) !== "object") {
|
|
6595
|
+
var maxLen = Math.max(A.length, B.length);
|
|
6596
6596
|
var total = 0;
|
|
6597
|
-
for (var i = 0; i <
|
|
6598
|
-
|
|
6599
|
-
|
|
6600
|
-
|
|
6601
|
-
}
|
|
6597
|
+
for (var i = 0; i < maxLen; i++) {
|
|
6598
|
+
var aVal = i < A.length ? toNumberOrThrow(A[i]) : 0;
|
|
6599
|
+
var bVal = i < B.length ? toNumberOrThrow(B[i]) : 0;
|
|
6600
|
+
total += aVal - bVal;
|
|
6602
6601
|
}
|
|
6603
6602
|
return total;
|
|
6604
6603
|
}
|
|
6605
|
-
if (Array.isArray(A[0][0])) {
|
|
6604
|
+
if (Array.isArray(A[0]) && _typeof(A[0][0]) !== "object") {
|
|
6606
6605
|
var _total = 0;
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6611
|
-
|
|
6606
|
+
var maxRows = Math.max(A.length, B.length);
|
|
6607
|
+
for (var _i5 = 0; _i5 < maxRows; _i5++) {
|
|
6608
|
+
var rowA = A[_i5] || [];
|
|
6609
|
+
var rowB = B[_i5] || [];
|
|
6610
|
+
var maxCols = Math.max(rowA.length, rowB.length);
|
|
6611
|
+
for (var j = 0; j < maxCols; j++) {
|
|
6612
|
+
var _aVal = j < rowA.length ? toNumberOrThrow(rowA[j]) : 0;
|
|
6613
|
+
var _bVal = j < rowB.length ? toNumberOrThrow(rowB[j]) : 0;
|
|
6614
|
+
_total += _aVal - _bVal;
|
|
6612
6615
|
}
|
|
6613
6616
|
}
|
|
6614
6617
|
return _total;
|
|
6615
6618
|
}
|
|
6619
|
+
if (Array.isArray(A[0][0])) {
|
|
6620
|
+
var _total2 = 0;
|
|
6621
|
+
var maxX = Math.max(A.length, B.length);
|
|
6622
|
+
for (var _i6 = 0; _i6 < maxX; _i6++) {
|
|
6623
|
+
var matA = A[_i6] || [];
|
|
6624
|
+
var matB = B[_i6] || [];
|
|
6625
|
+
var maxY = Math.max(matA.length, matB.length);
|
|
6626
|
+
for (var _j = 0; _j < maxY; _j++) {
|
|
6627
|
+
var _rowA = matA[_j] || [];
|
|
6628
|
+
var _rowB = matB[_j] || [];
|
|
6629
|
+
var maxZ = Math.max(_rowA.length, _rowB.length);
|
|
6630
|
+
for (var k = 0; k < maxZ; k++) {
|
|
6631
|
+
var _aVal2 = k < _rowA.length ? toNumberOrThrow(_rowA[k]) : 0;
|
|
6632
|
+
var _bVal2 = k < _rowB.length ? toNumberOrThrow(_rowB[k]) : 0;
|
|
6633
|
+
_total2 += _aVal2 - _bVal2;
|
|
6634
|
+
}
|
|
6635
|
+
}
|
|
6636
|
+
}
|
|
6637
|
+
return _total2;
|
|
6638
|
+
}
|
|
6616
6639
|
throw new Error("Unsupported or mismatched structure");
|
|
6617
6640
|
}
|
|
6618
6641
|
function ABS(number) {
|
|
@@ -8083,17 +8106,17 @@ function _typeof(o) {
|
|
|
8083
8106
|
} else if (!(holidays instanceof Array)) {
|
|
8084
8107
|
holidays = [ holidays ];
|
|
8085
8108
|
}
|
|
8086
|
-
for (var
|
|
8087
|
-
var h = parseDate(holidays[
|
|
8109
|
+
for (var _i7 = 0; _i7 < holidays.length; _i7++) {
|
|
8110
|
+
var h = parseDate(holidays[_i7]);
|
|
8088
8111
|
if (h instanceof Error) {
|
|
8089
8112
|
return h;
|
|
8090
8113
|
}
|
|
8091
|
-
holidays[
|
|
8114
|
+
holidays[_i7] = h;
|
|
8092
8115
|
}
|
|
8093
8116
|
var days = Math.round((end_date - start_date) / (1e3 * 60 * 60 * 24)) + 1;
|
|
8094
8117
|
var total = days;
|
|
8095
8118
|
var day = start_date;
|
|
8096
|
-
for (var
|
|
8119
|
+
for (var _i8 = 0; _i8 < days; _i8++) {
|
|
8097
8120
|
var d = (new Date).getTimezoneOffset() > 0 ? day.getUTCDay() : day.getDay();
|
|
8098
8121
|
var dec = isMask ? maskDays.includes(d) : d === weekend[0] || d === weekend[1];
|
|
8099
8122
|
for (var j = 0; j < holidays.length; j++) {
|
|
@@ -9490,9 +9513,9 @@ function _typeof(o) {
|
|
|
9490
9513
|
matches[i] = true;
|
|
9491
9514
|
}
|
|
9492
9515
|
var maxCriteriaLength = criterias[0].length;
|
|
9493
|
-
for (var
|
|
9494
|
-
if (criterias[
|
|
9495
|
-
maxCriteriaLength = criterias[
|
|
9516
|
+
for (var _i9 = 1; _i9 < criterias.length; ++_i9) {
|
|
9517
|
+
if (criterias[_i9].length > maxCriteriaLength) {
|
|
9518
|
+
maxCriteriaLength = criterias[_i9].length;
|
|
9496
9519
|
}
|
|
9497
9520
|
}
|
|
9498
9521
|
for (var k = 1; k < database.length; ++k) {
|
|
@@ -10141,9 +10164,9 @@ function _typeof(o) {
|
|
|
10141
10164
|
var result = cashFlows[0];
|
|
10142
10165
|
var r = 1 + rate;
|
|
10143
10166
|
var factor = 1;
|
|
10144
|
-
for (var
|
|
10167
|
+
for (var _i0 = 1; _i0 < cashFlows.length; _i0++) {
|
|
10145
10168
|
factor *= r;
|
|
10146
|
-
result += cashFlows[
|
|
10169
|
+
result += cashFlows[_i0] / factor;
|
|
10147
10170
|
}
|
|
10148
10171
|
return result;
|
|
10149
10172
|
};
|
|
@@ -10209,7 +10232,7 @@ function _typeof(o) {
|
|
|
10209
10232
|
if (a <= -.99999999) return rate;
|
|
10210
10233
|
}
|
|
10211
10234
|
var c;
|
|
10212
|
-
for (var
|
|
10235
|
+
for (var _i1 = 0; _i1 < maxIterations; _i1++) {
|
|
10213
10236
|
c = (a + b) / 2;
|
|
10214
10237
|
var npvC = cachedNpv(c);
|
|
10215
10238
|
if (Math.abs(npvC) < epsMax || Math.abs(b - a) < epsMax) {
|
|
@@ -10741,53 +10764,45 @@ function _typeof(o) {
|
|
|
10741
10764
|
}
|
|
10742
10765
|
var SERVICE_API_KEY = {
|
|
10743
10766
|
Etherscan: "ETHERSCAN_API_KEY",
|
|
10744
|
-
Coingecko: "COINGECKO_API_KEY"
|
|
10745
|
-
Gnosisscan: "GNOSISSSCAN",
|
|
10746
|
-
BASESCAN: "Basescan"
|
|
10767
|
+
Coingecko: "COINGECKO_API_KEY"
|
|
10747
10768
|
};
|
|
10748
|
-
var
|
|
10749
|
-
ethereum:
|
|
10750
|
-
gnosis:
|
|
10751
|
-
base:
|
|
10769
|
+
var CHAIN_ID_MAP = {
|
|
10770
|
+
ethereum: 1,
|
|
10771
|
+
gnosis: 100,
|
|
10772
|
+
base: 8453
|
|
10752
10773
|
};
|
|
10753
10774
|
var fromTimeStampToBlock = function() {
|
|
10754
10775
|
var _ref = _asyncToGenerator(_regeneratorRuntime().mark((function _callee(timestamp, chain, apiKey) {
|
|
10755
|
-
var
|
|
10776
|
+
var chainId, url, res, json;
|
|
10756
10777
|
return _regeneratorRuntime().wrap((function _callee$(_context) {
|
|
10757
10778
|
while (1) switch (_context.prev = _context.next) {
|
|
10758
10779
|
case 0:
|
|
10759
|
-
|
|
10760
|
-
|
|
10761
|
-
_context.next = 3;
|
|
10780
|
+
if (!(!timestamp || !chain || !apiKey)) {
|
|
10781
|
+
_context.next = 2;
|
|
10762
10782
|
break;
|
|
10763
10783
|
}
|
|
10764
|
-
|
|
10784
|
+
return _context.abrupt("return");
|
|
10765
10785
|
|
|
10766
|
-
case
|
|
10767
|
-
|
|
10768
|
-
url = "
|
|
10769
|
-
_context.next =
|
|
10786
|
+
case 2:
|
|
10787
|
+
chainId = CHAIN_ID_MAP[chain];
|
|
10788
|
+
url = "https://api.etherscan.io/v2/api?module=block&action=getblocknobytime×tamp=".concat(timestamp, "&closest=before&apikey=").concat(apiKey, "&chainId=").concat(chainId);
|
|
10789
|
+
_context.next = 6;
|
|
10770
10790
|
return fetch(url);
|
|
10771
10791
|
|
|
10772
|
-
case
|
|
10792
|
+
case 6:
|
|
10773
10793
|
res = _context.sent;
|
|
10774
|
-
_context.next =
|
|
10794
|
+
_context.next = 9;
|
|
10775
10795
|
return res.json();
|
|
10776
10796
|
|
|
10777
|
-
case
|
|
10797
|
+
case 9:
|
|
10778
10798
|
json = _context.sent;
|
|
10779
10799
|
return _context.abrupt("return", parseInt(json.result));
|
|
10780
10800
|
|
|
10781
|
-
case
|
|
10782
|
-
_context.prev = 14;
|
|
10783
|
-
_context.t0 = _context["catch"](3);
|
|
10784
|
-
return _context.abrupt("return", 0);
|
|
10785
|
-
|
|
10786
|
-
case 17:
|
|
10801
|
+
case 11:
|
|
10787
10802
|
case "end":
|
|
10788
10803
|
return _context.stop();
|
|
10789
10804
|
}
|
|
10790
|
-
}), _callee
|
|
10805
|
+
}), _callee);
|
|
10791
10806
|
})));
|
|
10792
10807
|
return function fromTimeStampToBlock(_x, _x2, _x3) {
|
|
10793
10808
|
return _ref.apply(this, arguments);
|
|
@@ -10849,7 +10864,7 @@ function _typeof(o) {
|
|
|
10849
10864
|
}
|
|
10850
10865
|
function _GETPRICE() {
|
|
10851
10866
|
_GETPRICE = _asyncToGenerator(_regeneratorRuntime().mark((function _callee3(token, vs_currencies) {
|
|
10852
|
-
var API_KEY, url, options, response, json, jsonResponse, output,
|
|
10867
|
+
var API_KEY, url, options, response, json, jsonResponse, output, _i10, _Object$entries, _Object$entries$_i, coin, prices, _i11, _Object$entries2, _Object$entries2$_i, currency, _value5, key;
|
|
10853
10868
|
return _regeneratorRuntime().wrap((function _callee3$(_context3) {
|
|
10854
10869
|
while (1) switch (_context3.prev = _context3.next) {
|
|
10855
10870
|
case 0:
|
|
@@ -10890,11 +10905,11 @@ function _typeof(o) {
|
|
|
10890
10905
|
case 15:
|
|
10891
10906
|
jsonResponse = _context3.sent;
|
|
10892
10907
|
output = {};
|
|
10893
|
-
for (
|
|
10894
|
-
_Object$entries$_i = _slicedToArray(_Object$entries[
|
|
10908
|
+
for (_i10 = 0, _Object$entries = Object.entries(jsonResponse); _i10 < _Object$entries.length; _i10++) {
|
|
10909
|
+
_Object$entries$_i = _slicedToArray(_Object$entries[_i10], 2), coin = _Object$entries$_i[0],
|
|
10895
10910
|
prices = _Object$entries$_i[1];
|
|
10896
|
-
for (
|
|
10897
|
-
_Object$entries2$_i = _slicedToArray(_Object$entries2[
|
|
10911
|
+
for (_i11 = 0, _Object$entries2 = Object.entries(prices); _i11 < _Object$entries2.length; _i11++) {
|
|
10912
|
+
_Object$entries2$_i = _slicedToArray(_Object$entries2[_i11], 2), currency = _Object$entries2$_i[0],
|
|
10898
10913
|
_value5 = _Object$entries2$_i[1];
|
|
10899
10914
|
key = "".concat(coin.charAt(0).toUpperCase() + coin.slice(1), "_").concat(currency.toUpperCase());
|
|
10900
10915
|
output[key] = _value5;
|
|
@@ -10920,7 +10935,7 @@ function _typeof(o) {
|
|
|
10920
10935
|
}
|
|
10921
10936
|
function _OX() {
|
|
10922
10937
|
_OX = _asyncToGenerator(_regeneratorRuntime().mark((function _callee4(address, categories, chain, startTime, endTime) {
|
|
10923
|
-
var API_KEYS, apiKey,
|
|
10938
|
+
var API_KEYS, apiKey, chainId, action, timeQuery, startBlock, endBlock, url, _json$result, _json$result$includes, response, json;
|
|
10924
10939
|
return _regeneratorRuntime().wrap((function _callee4$(_context4) {
|
|
10925
10940
|
while (1) switch (_context4.prev = _context4.next) {
|
|
10926
10941
|
case 0:
|
|
@@ -10930,58 +10945,89 @@ function _typeof(o) {
|
|
|
10930
10945
|
base: window.localStorage.getItem(SERVICE_API_KEY.Basescan)
|
|
10931
10946
|
};
|
|
10932
10947
|
apiKey = API_KEYS[chain];
|
|
10933
|
-
|
|
10934
|
-
|
|
10935
|
-
|
|
10948
|
+
chainId = CHAIN_ID_MAP[chain];
|
|
10949
|
+
if (!(!apiKey || !chainId)) {
|
|
10950
|
+
_context4.next = 5;
|
|
10951
|
+
break;
|
|
10952
|
+
}
|
|
10953
|
+
return _context4.abrupt("return", "".concat(chain.toUpperCase(), "_MISSING"));
|
|
10936
10954
|
|
|
10937
10955
|
case 5:
|
|
10956
|
+
action = "";
|
|
10957
|
+
if (categories === "txns") action = "account.txlist"; else {
|
|
10958
|
+
action = "account.balance";
|
|
10959
|
+
}
|
|
10960
|
+
timeQuery = "";
|
|
10961
|
+
if (!(!isNaN(startTime) && !isNaN(endTime))) {
|
|
10962
|
+
_context4.next = 18;
|
|
10963
|
+
break;
|
|
10964
|
+
}
|
|
10965
|
+
_context4.next = 11;
|
|
10966
|
+
return fromTimeStampToBlock(startTime, chain, apiKey);
|
|
10967
|
+
|
|
10968
|
+
case 11:
|
|
10938
10969
|
startBlock = _context4.sent;
|
|
10939
|
-
_context4.next =
|
|
10940
|
-
return fromTimeStampToBlock(endTime);
|
|
10970
|
+
_context4.next = 14;
|
|
10971
|
+
return fromTimeStampToBlock(endTime, chain, apiKey);
|
|
10941
10972
|
|
|
10942
|
-
case
|
|
10973
|
+
case 14:
|
|
10943
10974
|
endBlock = _context4.sent;
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
|
|
10975
|
+
timeQuery = "&startblock=".concat(startBlock, "&endblock=").concat(endBlock);
|
|
10976
|
+
_context4.next = 23;
|
|
10977
|
+
break;
|
|
10978
|
+
|
|
10979
|
+
case 18:
|
|
10980
|
+
if (!(categories === "balance")) {
|
|
10981
|
+
_context4.next = 22;
|
|
10982
|
+
break;
|
|
10983
|
+
}
|
|
10984
|
+
timeQuery = "&tag=latest";
|
|
10985
|
+
_context4.next = 23;
|
|
10986
|
+
break;
|
|
10987
|
+
|
|
10988
|
+
case 22:
|
|
10989
|
+
throw new Error("Start and End Time is required for querying transaction list ");
|
|
10990
|
+
|
|
10991
|
+
case 23:
|
|
10992
|
+
url = "https://api.etherscan.io/v2/api?module=".concat(action.split(".")[0], "&action=").concat(action.split(".")[1], "&address=").concat(address, "&sort=asc&chainid=").concat(chainId, "&apikey=").concat(apiKey).concat(timeQuery);
|
|
10993
|
+
_context4.prev = 24;
|
|
10994
|
+
_context4.next = 27;
|
|
10949
10995
|
return fetch(url);
|
|
10950
10996
|
|
|
10951
|
-
case
|
|
10997
|
+
case 27:
|
|
10952
10998
|
response = _context4.sent;
|
|
10953
10999
|
if (response.ok) {
|
|
10954
|
-
_context4.next =
|
|
11000
|
+
_context4.next = 30;
|
|
10955
11001
|
break;
|
|
10956
11002
|
}
|
|
10957
11003
|
throw new Error("HTTP error! Status: ".concat(response.status));
|
|
10958
11004
|
|
|
10959
|
-
case
|
|
10960
|
-
_context4.next =
|
|
11005
|
+
case 30:
|
|
11006
|
+
_context4.next = 32;
|
|
10961
11007
|
return response.json();
|
|
10962
11008
|
|
|
10963
|
-
case
|
|
11009
|
+
case 32:
|
|
10964
11010
|
json = _context4.sent;
|
|
10965
11011
|
if (!((_json$result = json.result) !== null && _json$result !== void 0 && (_json$result$includes = _json$result.includes) !== null && _json$result$includes !== void 0 && _json$result$includes.call(_json$result, "Invalid API Key"))) {
|
|
10966
|
-
_context4.next =
|
|
11012
|
+
_context4.next = 35;
|
|
10967
11013
|
break;
|
|
10968
11014
|
}
|
|
10969
11015
|
return _context4.abrupt("return", "".concat(SERVICE_API_KEY[chain.charAt(0).toUpperCase() + chain.slice(1)], "_MISSING"));
|
|
10970
11016
|
|
|
10971
|
-
case
|
|
11017
|
+
case 35:
|
|
10972
11018
|
return _context4.abrupt("return", json.result);
|
|
10973
11019
|
|
|
10974
|
-
case
|
|
10975
|
-
_context4.prev =
|
|
10976
|
-
_context4.t0 = _context4["catch"](
|
|
11020
|
+
case 38:
|
|
11021
|
+
_context4.prev = 38;
|
|
11022
|
+
_context4.t0 = _context4["catch"](24);
|
|
10977
11023
|
console.log(_context4.t0);
|
|
10978
11024
|
return _context4.abrupt("return", "ERROR IN FETCHING");
|
|
10979
11025
|
|
|
10980
|
-
case
|
|
11026
|
+
case 42:
|
|
10981
11027
|
case "end":
|
|
10982
11028
|
return _context4.stop();
|
|
10983
11029
|
}
|
|
10984
|
-
}), _callee4, null, [ [
|
|
11030
|
+
}), _callee4, null, [ [ 24, 38 ] ]);
|
|
10985
11031
|
})));
|
|
10986
11032
|
return _OX.apply(this, arguments);
|
|
10987
11033
|
}
|