@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.
@@ -1,4 +1,4 @@
1
- /* @fileverse-dev/formulajs v4.4.11-mod-15-patch-2 */
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) && typeof A[0] === "number") {
6590
- if (A.length !== B.length) throw new Error("1D arrays must match in length");
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 < A.length; i++) {
6598
- if (A[i].length !== B[i].length) throw new Error("Row ".concat(i, " length mismatch"));
6599
- for (var j = 0; j < A[i].length; j++) {
6600
- total += A[i][j] - B[i][j];
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
- for (var _i5 = 0; _i5 < A.length; _i5++) {
6608
- for (var _j = 0; _j < A[_i5].length; _j++) {
6609
- for (var k = 0; k < A[_i5][_j].length; k++) {
6610
- _total += A[_i5][_j][k] - B[_i5][_j][k];
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 _i6 = 0; _i6 < holidays.length; _i6++) {
8087
- var h = parseDate(holidays[_i6]);
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[_i6] = h;
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 _i7 = 0; _i7 < days; _i7++) {
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 _i8 = 1; _i8 < criterias.length; ++_i8) {
9494
- if (criterias[_i8].length > maxCriteriaLength) {
9495
- maxCriteriaLength = criterias[_i8].length;
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 _i9 = 1; _i9 < cashFlows.length; _i9++) {
10167
+ for (var _i0 = 1; _i0 < cashFlows.length; _i0++) {
10145
10168
  factor *= r;
10146
- result += cashFlows[_i9] / factor;
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 _i0 = 0; _i0 < maxIterations; _i0++) {
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 CHAIN_API_BASE = {
10749
- ethereum: "https://api.etherscan.io/api",
10750
- gnosis: "https://api.gnosisscan.io/api",
10751
- base: "https://api.basescan.org/api"
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 baseUrl, url, res, json;
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
- baseUrl = CHAIN_API_BASE[chain];
10760
- if (baseUrl) {
10761
- _context.next = 3;
10780
+ if (!(!timestamp || !chain || !apiKey)) {
10781
+ _context.next = 2;
10762
10782
  break;
10763
10783
  }
10764
- throw new Error("Unsupported Chain");
10784
+ return _context.abrupt("return");
10765
10785
 
10766
- case 3:
10767
- _context.prev = 3;
10768
- url = "".concat(baseUrl, "?module=block&action=getblocknobytime&timestamp=").concat(timestamp, "&closest=before&apikey=").concat(apiKey);
10769
- _context.next = 7;
10786
+ case 2:
10787
+ chainId = CHAIN_ID_MAP[chain];
10788
+ url = "https://api.etherscan.io/v2/api?module=block&action=getblocknobytime&timestamp=".concat(timestamp, "&closest=before&apikey=").concat(apiKey, "&chainId=").concat(chainId);
10789
+ _context.next = 6;
10770
10790
  return fetch(url);
10771
10791
 
10772
- case 7:
10792
+ case 6:
10773
10793
  res = _context.sent;
10774
- _context.next = 10;
10794
+ _context.next = 9;
10775
10795
  return res.json();
10776
10796
 
10777
- case 10:
10797
+ case 9:
10778
10798
  json = _context.sent;
10779
10799
  return _context.abrupt("return", parseInt(json.result));
10780
10800
 
10781
- case 14:
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, null, [ [ 3, 14 ] ]);
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, _i1, _Object$entries, _Object$entries$_i, coin, prices, _i10, _Object$entries2, _Object$entries2$_i, currency, _value5, key;
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 (_i1 = 0, _Object$entries = Object.entries(jsonResponse); _i1 < _Object$entries.length; _i1++) {
10894
- _Object$entries$_i = _slicedToArray(_Object$entries[_i1], 2), coin = _Object$entries$_i[0],
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 (_i10 = 0, _Object$entries2 = Object.entries(prices); _i10 < _Object$entries2.length; _i10++) {
10897
- _Object$entries2$_i = _slicedToArray(_Object$entries2[_i10], 2), currency = _Object$entries2$_i[0],
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, baseUrl, startBlock, endBlock, action, url, _json$result, _json$result$includes, response, json;
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
- baseUrl = CHAIN_API_BASE[chain];
10934
- _context4.next = 5;
10935
- return fromTimeStampToBlock(startTime, chain, apiKey);
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 = 8;
10940
- return fromTimeStampToBlock(endTime);
10970
+ _context4.next = 14;
10971
+ return fromTimeStampToBlock(endTime, chain, apiKey);
10941
10972
 
10942
- case 8:
10973
+ case 14:
10943
10974
  endBlock = _context4.sent;
10944
- action = "";
10945
- if (categories === "txns") action = "txlist"; else if (categories === "balances") action = "balance"; else if (categories === "portfolio") action = "tokentx";
10946
- url = "".concat(baseUrl, "?module=account&action=").concat(action, "&address=").concat(address, "&startblock=").concat(startBlock, "&endblock=").concat(endBlock, "&sort=asc&apikey=").concat(apiKey);
10947
- _context4.prev = 12;
10948
- _context4.next = 15;
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 15:
10997
+ case 27:
10952
10998
  response = _context4.sent;
10953
10999
  if (response.ok) {
10954
- _context4.next = 18;
11000
+ _context4.next = 30;
10955
11001
  break;
10956
11002
  }
10957
11003
  throw new Error("HTTP error! Status: ".concat(response.status));
10958
11004
 
10959
- case 18:
10960
- _context4.next = 20;
11005
+ case 30:
11006
+ _context4.next = 32;
10961
11007
  return response.json();
10962
11008
 
10963
- case 20:
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 = 23;
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 23:
11017
+ case 35:
10972
11018
  return _context4.abrupt("return", json.result);
10973
11019
 
10974
- case 26:
10975
- _context4.prev = 26;
10976
- _context4.t0 = _context4["catch"](12);
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 30:
11026
+ case 42:
10981
11027
  case "end":
10982
11028
  return _context4.stop();
10983
11029
  }
10984
- }), _callee4, null, [ [ 12, 26 ] ]);
11030
+ }), _callee4, null, [ [ 24, 38 ] ]);
10985
11031
  })));
10986
11032
  return _OX.apply(this, arguments);
10987
11033
  }