@fileverse-dev/formulajs 4.4.11-mod-15-patch-1 → 4.4.11-mod-16
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 +224 -163
- package/lib/browser/formula.min.js +2 -2
- package/lib/browser/formula.min.js.map +1 -1
- package/lib/cjs/index.cjs +75 -34
- package/lib/esm/crypto-constants.mjs +7 -28
- package/lib/esm/index.mjs +75 -34
- package/package.json +1 -1
- package/types/cjs/index.d.cts +1 -1
- package/types/esm/index.d.mts +1 -1
package/lib/cjs/index.cjs
CHANGED
|
@@ -5182,9 +5182,47 @@ Z.TEST = (array, x, sigma) => {
|
|
|
5182
5182
|
return 1 - NORM.S.DIST((AVERAGE(array) - x) / (sigma / Math.sqrt(n)), true)
|
|
5183
5183
|
};
|
|
5184
5184
|
|
|
5185
|
-
function
|
|
5186
|
-
|
|
5187
|
-
|
|
5185
|
+
function PNL(){
|
|
5186
|
+
const [A, B] = argsToArray(arguments);
|
|
5187
|
+
|
|
5188
|
+
// Handle single numbers
|
|
5189
|
+
if (typeof A === "number" && typeof B === "number") {
|
|
5190
|
+
return A - B;
|
|
5191
|
+
}
|
|
5192
|
+
|
|
5193
|
+
// Handle 1D arrays
|
|
5194
|
+
if (Array.isArray(A) && Array.isArray(B) && typeof A[0] === "number") {
|
|
5195
|
+
if (A.length !== B.length) throw new Error("1D arrays must match in length");
|
|
5196
|
+
return A.reduce((sum, val, i) => sum + (val - B[i]), 0);
|
|
5197
|
+
}
|
|
5198
|
+
|
|
5199
|
+
// Handle 2D arrays
|
|
5200
|
+
if (Array.isArray(A[0]) && typeof A[0][0] === "number") {
|
|
5201
|
+
let total = 0;
|
|
5202
|
+
for (let i = 0; i < A.length; i++) {
|
|
5203
|
+
if (A[i].length !== B[i].length) throw new Error(`Row ${i} length mismatch`);
|
|
5204
|
+
for (let j = 0; j < A[i].length; j++) {
|
|
5205
|
+
total += A[i][j] - B[i][j];
|
|
5206
|
+
}
|
|
5207
|
+
}
|
|
5208
|
+
return total;
|
|
5209
|
+
}
|
|
5210
|
+
|
|
5211
|
+
// Handle 3D arrays
|
|
5212
|
+
if (Array.isArray(A[0][0])) {
|
|
5213
|
+
let total = 0;
|
|
5214
|
+
for (let i = 0; i < A.length; i++) {
|
|
5215
|
+
for (let j = 0; j < A[i].length; j++) {
|
|
5216
|
+
for (let k = 0; k < A[i][j].length; k++) {
|
|
5217
|
+
total += A[i][j][k] - B[i][j][k];
|
|
5218
|
+
}
|
|
5219
|
+
}
|
|
5220
|
+
}
|
|
5221
|
+
return total;
|
|
5222
|
+
}
|
|
5223
|
+
|
|
5224
|
+
throw new Error("Unsupported or mismatched structure");
|
|
5225
|
+
|
|
5188
5226
|
}
|
|
5189
5227
|
|
|
5190
5228
|
/**
|
|
@@ -6881,6 +6919,8 @@ function SUBTOTAL(function_num, ref1) {
|
|
|
6881
6919
|
function SUM() {
|
|
6882
6920
|
let result = 0;
|
|
6883
6921
|
|
|
6922
|
+
console.log("LLLLO", argsToArray(arguments), {arguments});
|
|
6923
|
+
|
|
6884
6924
|
arrayEach(argsToArray(arguments), (value) => {
|
|
6885
6925
|
if (result instanceof Error) {
|
|
6886
6926
|
return false
|
|
@@ -12961,6 +13001,22 @@ const SERVICE_API_KEY = {
|
|
|
12961
13001
|
BASESCAN: 'Basescan'
|
|
12962
13002
|
};
|
|
12963
13003
|
|
|
13004
|
+
const CHAIN_ID_MAP = {
|
|
13005
|
+
ethereum: 1,
|
|
13006
|
+
gnosis: 100,
|
|
13007
|
+
base: 8453,
|
|
13008
|
+
};
|
|
13009
|
+
|
|
13010
|
+
const fromTimeStampToBlock = async (timestamp, chain, apiKey) => {
|
|
13011
|
+
if(!timestamp || !chain || !apiKey) return
|
|
13012
|
+
const chainId = CHAIN_ID_MAP[chain];
|
|
13013
|
+
const url = `https://api.etherscan.io/v2/api?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before&apikey=${apiKey}&chainId=${chainId}`;
|
|
13014
|
+
const res = await fetch(url);
|
|
13015
|
+
const json = await res.json();
|
|
13016
|
+
return parseInt(json.result);
|
|
13017
|
+
|
|
13018
|
+
};
|
|
13019
|
+
|
|
12964
13020
|
async function ETHERSCAN(address, page, offset) {
|
|
12965
13021
|
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Etherscan);
|
|
12966
13022
|
const url = `https://api.etherscan.io/api?module=account&action=txlist&address=${address}&startblock=0&endblock=99999999&page=${page}&offset=${offset}&sort=asc&apikey=${API_KEY}`;
|
|
@@ -13026,37 +13082,23 @@ async function OX(address, categories, chain, startTime, endTime) {
|
|
|
13026
13082
|
gnosis: window.localStorage.getItem(SERVICE_API_KEY.Gnosisscan),
|
|
13027
13083
|
base: window.localStorage.getItem(SERVICE_API_KEY.Basescan),
|
|
13028
13084
|
};
|
|
13029
|
-
|
|
13030
|
-
const CHAIN_API_BASE = {
|
|
13031
|
-
ethereum: 'https://api.etherscan.io/api',
|
|
13032
|
-
gnosis: 'https://api.gnosisscan.io/api',
|
|
13033
|
-
base: 'https://api.basescan.org/api',
|
|
13034
|
-
};
|
|
13035
|
-
|
|
13036
13085
|
const apiKey = API_KEYS[chain];
|
|
13037
|
-
const
|
|
13038
|
-
|
|
13039
|
-
const timeToBlock = async (timestamp) => {
|
|
13040
|
-
try {
|
|
13041
|
-
const url = `${baseUrl}?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before&apikey=${apiKey}`;
|
|
13042
|
-
const res = await fetch(url);
|
|
13043
|
-
const json = await res.json();
|
|
13044
|
-
return parseInt(json.result);
|
|
13045
|
-
} catch {
|
|
13046
|
-
return 0;
|
|
13047
|
-
}
|
|
13048
|
-
};
|
|
13049
|
-
|
|
13050
|
-
const startBlock = await timeToBlock(startTime);
|
|
13051
|
-
const endBlock = await timeToBlock(endTime);
|
|
13086
|
+
const chainId = CHAIN_ID_MAP[chain];
|
|
13087
|
+
if (!apiKey || !chainId) return `${chain.toUpperCase()}_MISSING`;
|
|
13052
13088
|
|
|
13053
13089
|
let action = '';
|
|
13054
|
-
if (categories === 'txns') action = 'txlist';
|
|
13055
|
-
else
|
|
13056
|
-
|
|
13057
|
-
|
|
13058
|
-
|
|
13059
|
-
|
|
13090
|
+
if (categories === 'txns') action = 'account.txlist';
|
|
13091
|
+
else {action = 'account.balance';} let timeQuery = '';
|
|
13092
|
+
if(!isNaN(startTime) && !isNaN(endTime)){
|
|
13093
|
+
const startBlock = await fromTimeStampToBlock(startTime, chain, apiKey);
|
|
13094
|
+
const endBlock = await fromTimeStampToBlock(endTime, chain, apiKey);
|
|
13095
|
+
timeQuery = `&startblock=${startBlock}&endblock=${endBlock}`;
|
|
13096
|
+
} else if(categories === 'balance') {
|
|
13097
|
+
timeQuery = `&tag=latest`;
|
|
13098
|
+
} else {
|
|
13099
|
+
throw new Error('Start and End Time is required for querying transaction list ')
|
|
13100
|
+
}
|
|
13101
|
+
const url = `https://api.etherscan.io/v2/api?module=${action.split('.')[0]}&action=${action.split('.')[1]}&address=${address}&sort=asc&chainid=${chainId}&apikey=${apiKey}${timeQuery}`;
|
|
13060
13102
|
try {
|
|
13061
13103
|
const response = await fetch(url);
|
|
13062
13104
|
if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
|
|
@@ -13064,10 +13106,9 @@ async function OX(address, categories, chain, startTime, endTime) {
|
|
|
13064
13106
|
if (json.result?.includes?.("Invalid API Key")) {
|
|
13065
13107
|
return `${SERVICE_API_KEY[chain.charAt(0).toUpperCase() + chain.slice(1)]}_MISSING`;
|
|
13066
13108
|
}
|
|
13067
|
-
|
|
13068
|
-
console.log({ANSWER: json.result });
|
|
13069
13109
|
return json.result;
|
|
13070
13110
|
} catch (e) {
|
|
13111
|
+
console.log(e);
|
|
13071
13112
|
return "ERROR IN FETCHING";
|
|
13072
13113
|
}
|
|
13073
13114
|
}
|
|
@@ -13366,6 +13407,7 @@ exports.PERMUTATIONA = PERMUTATIONA;
|
|
|
13366
13407
|
exports.PHI = PHI;
|
|
13367
13408
|
exports.PI = PI;
|
|
13368
13409
|
exports.PMT = PMT;
|
|
13410
|
+
exports.PNL = PNL;
|
|
13369
13411
|
exports.POISSON = POISSON;
|
|
13370
13412
|
exports.POISSONDIST = POISSONDIST;
|
|
13371
13413
|
exports.POWER = POWER;
|
|
@@ -13375,7 +13417,6 @@ exports.PROB = PROB;
|
|
|
13375
13417
|
exports.PRODUCT = PRODUCT;
|
|
13376
13418
|
exports.PROPER = PROPER;
|
|
13377
13419
|
exports.PV = PV;
|
|
13378
|
-
exports.PnL = PnL;
|
|
13379
13420
|
exports.QUARTILE = QUARTILE;
|
|
13380
13421
|
exports.QUARTILEEXC = QUARTILEEXC;
|
|
13381
13422
|
exports.QUARTILEINC = QUARTILEINC;
|
|
@@ -42,14 +42,13 @@ var FUNCTION_LOCALE = [
|
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
API_KEY: SERVICE_API_KEY.Etherscan,
|
|
45
|
-
LOGO: "https://raw.githubusercontent.com/mritunjayz/github-storage/refs/heads/main/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
BRAND_SECONDARY_COLOR: "#1A1A1A",
|
|
45
|
+
LOGO: "https://raw.githubusercontent.com/mritunjayz/github-storage/refs/heads/main/1689874988430.jpeg",
|
|
46
|
+
BRAND_COLOR: "#F6F7F8",
|
|
47
|
+
BRAND_SECONDARY_COLOR: "#21325B",
|
|
49
48
|
n: "Ox",
|
|
50
49
|
t: 20,
|
|
51
50
|
d: "Fetches address data like transactions, balances, or portfolio info from multiple supported chains.",
|
|
52
|
-
a: "Dynamically queries blockchain data such as transactions, balances
|
|
51
|
+
a: "Dynamically queries blockchain data such as transactions, balances by resolving time ranges to block ranges.",
|
|
53
52
|
p: [
|
|
54
53
|
{
|
|
55
54
|
name: "address",
|
|
@@ -59,7 +58,7 @@ var FUNCTION_LOCALE = [
|
|
|
59
58
|
},
|
|
60
59
|
{
|
|
61
60
|
name: "categories",
|
|
62
|
-
detail: `Type of data to fetch. Supported values: "txns", "
|
|
61
|
+
detail: `Type of data to fetch. Supported values: "txns", "balance".`,
|
|
63
62
|
example: `"txns"`,
|
|
64
63
|
require: "m"
|
|
65
64
|
},
|
|
@@ -71,14 +70,14 @@ var FUNCTION_LOCALE = [
|
|
|
71
70
|
},
|
|
72
71
|
{
|
|
73
72
|
name: "startTime",
|
|
74
|
-
detail: "Start time in UNIX timestamp (seconds). Will be converted to a starting block.",
|
|
73
|
+
detail: "Start time in UNIX timestamp (seconds). Will be converted to a starting block. Required for txns category",
|
|
75
74
|
example: "1680300000",
|
|
76
75
|
require: "m",
|
|
77
76
|
type: "rangenumber"
|
|
78
77
|
},
|
|
79
78
|
{
|
|
80
79
|
name: "endTime",
|
|
81
|
-
detail: "End time in UNIX timestamp (seconds). Will be converted to an ending block.",
|
|
80
|
+
detail: "End time in UNIX timestamp (seconds). Will be converted to an ending block. Required for txns category",
|
|
82
81
|
example: "1680900000",
|
|
83
82
|
require: "m",
|
|
84
83
|
type: "rangenumber"
|
|
@@ -125,26 +124,6 @@ var FUNCTION_LOCALE = [
|
|
|
125
124
|
require: "m"
|
|
126
125
|
}
|
|
127
126
|
]
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
n: "PnL",
|
|
131
|
-
t: 20,
|
|
132
|
-
d: "Query the prices of one or more coins by using their unique Coin API IDs, symbols, or names.",
|
|
133
|
-
a: "Query the prices of one or more coins by using their unique Coin API IDs, symbols, or names.",
|
|
134
|
-
p: [
|
|
135
|
-
{
|
|
136
|
-
name: "token",
|
|
137
|
-
detail: "coins' IDs, comma-separated if querying more than 1 coin.",
|
|
138
|
-
example: `"bitcoin"`,
|
|
139
|
-
require: "m"
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
name: "vs_currency",
|
|
143
|
-
detail: "target currency of coins, comma-separated if querying more than 1 currency",
|
|
144
|
-
example: `"usd"`,
|
|
145
|
-
require: "m"
|
|
146
|
-
}
|
|
147
|
-
]
|
|
148
127
|
}
|
|
149
128
|
];
|
|
150
129
|
export {
|
package/lib/esm/index.mjs
CHANGED
|
@@ -5180,9 +5180,47 @@ Z.TEST = (array, x, sigma) => {
|
|
|
5180
5180
|
return 1 - NORM.S.DIST((AVERAGE(array) - x) / (sigma / Math.sqrt(n)), true)
|
|
5181
5181
|
};
|
|
5182
5182
|
|
|
5183
|
-
function
|
|
5184
|
-
|
|
5185
|
-
|
|
5183
|
+
function PNL(){
|
|
5184
|
+
const [A, B] = argsToArray(arguments);
|
|
5185
|
+
|
|
5186
|
+
// Handle single numbers
|
|
5187
|
+
if (typeof A === "number" && typeof B === "number") {
|
|
5188
|
+
return A - B;
|
|
5189
|
+
}
|
|
5190
|
+
|
|
5191
|
+
// Handle 1D arrays
|
|
5192
|
+
if (Array.isArray(A) && Array.isArray(B) && typeof A[0] === "number") {
|
|
5193
|
+
if (A.length !== B.length) throw new Error("1D arrays must match in length");
|
|
5194
|
+
return A.reduce((sum, val, i) => sum + (val - B[i]), 0);
|
|
5195
|
+
}
|
|
5196
|
+
|
|
5197
|
+
// Handle 2D arrays
|
|
5198
|
+
if (Array.isArray(A[0]) && typeof A[0][0] === "number") {
|
|
5199
|
+
let total = 0;
|
|
5200
|
+
for (let i = 0; i < A.length; i++) {
|
|
5201
|
+
if (A[i].length !== B[i].length) throw new Error(`Row ${i} length mismatch`);
|
|
5202
|
+
for (let j = 0; j < A[i].length; j++) {
|
|
5203
|
+
total += A[i][j] - B[i][j];
|
|
5204
|
+
}
|
|
5205
|
+
}
|
|
5206
|
+
return total;
|
|
5207
|
+
}
|
|
5208
|
+
|
|
5209
|
+
// Handle 3D arrays
|
|
5210
|
+
if (Array.isArray(A[0][0])) {
|
|
5211
|
+
let total = 0;
|
|
5212
|
+
for (let i = 0; i < A.length; i++) {
|
|
5213
|
+
for (let j = 0; j < A[i].length; j++) {
|
|
5214
|
+
for (let k = 0; k < A[i][j].length; k++) {
|
|
5215
|
+
total += A[i][j][k] - B[i][j][k];
|
|
5216
|
+
}
|
|
5217
|
+
}
|
|
5218
|
+
}
|
|
5219
|
+
return total;
|
|
5220
|
+
}
|
|
5221
|
+
|
|
5222
|
+
throw new Error("Unsupported or mismatched structure");
|
|
5223
|
+
|
|
5186
5224
|
}
|
|
5187
5225
|
|
|
5188
5226
|
/**
|
|
@@ -6879,6 +6917,8 @@ function SUBTOTAL(function_num, ref1) {
|
|
|
6879
6917
|
function SUM() {
|
|
6880
6918
|
let result = 0;
|
|
6881
6919
|
|
|
6920
|
+
console.log("LLLLO", argsToArray(arguments), {arguments});
|
|
6921
|
+
|
|
6882
6922
|
arrayEach(argsToArray(arguments), (value) => {
|
|
6883
6923
|
if (result instanceof Error) {
|
|
6884
6924
|
return false
|
|
@@ -12959,6 +12999,22 @@ const SERVICE_API_KEY = {
|
|
|
12959
12999
|
BASESCAN: 'Basescan'
|
|
12960
13000
|
};
|
|
12961
13001
|
|
|
13002
|
+
const CHAIN_ID_MAP = {
|
|
13003
|
+
ethereum: 1,
|
|
13004
|
+
gnosis: 100,
|
|
13005
|
+
base: 8453,
|
|
13006
|
+
};
|
|
13007
|
+
|
|
13008
|
+
const fromTimeStampToBlock = async (timestamp, chain, apiKey) => {
|
|
13009
|
+
if(!timestamp || !chain || !apiKey) return
|
|
13010
|
+
const chainId = CHAIN_ID_MAP[chain];
|
|
13011
|
+
const url = `https://api.etherscan.io/v2/api?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before&apikey=${apiKey}&chainId=${chainId}`;
|
|
13012
|
+
const res = await fetch(url);
|
|
13013
|
+
const json = await res.json();
|
|
13014
|
+
return parseInt(json.result);
|
|
13015
|
+
|
|
13016
|
+
};
|
|
13017
|
+
|
|
12962
13018
|
async function ETHERSCAN(address, page, offset) {
|
|
12963
13019
|
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Etherscan);
|
|
12964
13020
|
const url = `https://api.etherscan.io/api?module=account&action=txlist&address=${address}&startblock=0&endblock=99999999&page=${page}&offset=${offset}&sort=asc&apikey=${API_KEY}`;
|
|
@@ -13024,37 +13080,23 @@ async function OX(address, categories, chain, startTime, endTime) {
|
|
|
13024
13080
|
gnosis: window.localStorage.getItem(SERVICE_API_KEY.Gnosisscan),
|
|
13025
13081
|
base: window.localStorage.getItem(SERVICE_API_KEY.Basescan),
|
|
13026
13082
|
};
|
|
13027
|
-
|
|
13028
|
-
const CHAIN_API_BASE = {
|
|
13029
|
-
ethereum: 'https://api.etherscan.io/api',
|
|
13030
|
-
gnosis: 'https://api.gnosisscan.io/api',
|
|
13031
|
-
base: 'https://api.basescan.org/api',
|
|
13032
|
-
};
|
|
13033
|
-
|
|
13034
13083
|
const apiKey = API_KEYS[chain];
|
|
13035
|
-
const
|
|
13036
|
-
|
|
13037
|
-
const timeToBlock = async (timestamp) => {
|
|
13038
|
-
try {
|
|
13039
|
-
const url = `${baseUrl}?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before&apikey=${apiKey}`;
|
|
13040
|
-
const res = await fetch(url);
|
|
13041
|
-
const json = await res.json();
|
|
13042
|
-
return parseInt(json.result);
|
|
13043
|
-
} catch {
|
|
13044
|
-
return 0;
|
|
13045
|
-
}
|
|
13046
|
-
};
|
|
13047
|
-
|
|
13048
|
-
const startBlock = await timeToBlock(startTime);
|
|
13049
|
-
const endBlock = await timeToBlock(endTime);
|
|
13084
|
+
const chainId = CHAIN_ID_MAP[chain];
|
|
13085
|
+
if (!apiKey || !chainId) return `${chain.toUpperCase()}_MISSING`;
|
|
13050
13086
|
|
|
13051
13087
|
let action = '';
|
|
13052
|
-
if (categories === 'txns') action = 'txlist';
|
|
13053
|
-
else
|
|
13054
|
-
|
|
13055
|
-
|
|
13056
|
-
|
|
13057
|
-
|
|
13088
|
+
if (categories === 'txns') action = 'account.txlist';
|
|
13089
|
+
else {action = 'account.balance';} let timeQuery = '';
|
|
13090
|
+
if(!isNaN(startTime) && !isNaN(endTime)){
|
|
13091
|
+
const startBlock = await fromTimeStampToBlock(startTime, chain, apiKey);
|
|
13092
|
+
const endBlock = await fromTimeStampToBlock(endTime, chain, apiKey);
|
|
13093
|
+
timeQuery = `&startblock=${startBlock}&endblock=${endBlock}`;
|
|
13094
|
+
} else if(categories === 'balance') {
|
|
13095
|
+
timeQuery = `&tag=latest`;
|
|
13096
|
+
} else {
|
|
13097
|
+
throw new Error('Start and End Time is required for querying transaction list ')
|
|
13098
|
+
}
|
|
13099
|
+
const url = `https://api.etherscan.io/v2/api?module=${action.split('.')[0]}&action=${action.split('.')[1]}&address=${address}&sort=asc&chainid=${chainId}&apikey=${apiKey}${timeQuery}`;
|
|
13058
13100
|
try {
|
|
13059
13101
|
const response = await fetch(url);
|
|
13060
13102
|
if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
|
|
@@ -13062,10 +13104,9 @@ async function OX(address, categories, chain, startTime, endTime) {
|
|
|
13062
13104
|
if (json.result?.includes?.("Invalid API Key")) {
|
|
13063
13105
|
return `${SERVICE_API_KEY[chain.charAt(0).toUpperCase() + chain.slice(1)]}_MISSING`;
|
|
13064
13106
|
}
|
|
13065
|
-
|
|
13066
|
-
console.log({ANSWER: json.result });
|
|
13067
13107
|
return json.result;
|
|
13068
13108
|
} catch (e) {
|
|
13109
|
+
console.log(e);
|
|
13069
13110
|
return "ERROR IN FETCHING";
|
|
13070
13111
|
}
|
|
13071
13112
|
}
|
|
@@ -13081,4 +13122,4 @@ async function FLVURL(token, vs_currencies) {
|
|
|
13081
13122
|
|
|
13082
13123
|
const utils = { errors, symbols, date };
|
|
13083
13124
|
|
|
13084
|
-
export { ABS, ACCRINT, ACOS, ACOSH, ACOT, ACOTH, AGGREGATE, AND, ARABIC, ASIN, ASINH, ATAN, ATAN2, ATANH, AVEDEV, AVERAGE, AVERAGEA, AVERAGEIF, AVERAGEIFS, BASE, BESSELI, BESSELJ, BESSELK, BESSELY, BETA, BETADIST, BETAINV, BIN2DEC, BIN2HEX, BIN2OCT, BINOM, BINOMDIST, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, CEILING, CEILINGMATH, CEILINGPRECISE, CHAR, CHIDIST, CHIDISTRT, CHIINV, CHIINVRT, CHISQ, CHITEST, CHOOSE, CLEAN, CODE, COLUMN, COLUMNS, COMBIN, COMBINA, COMPLEX, CONCAT, CONCATENATE, CONFIDENCE, CONVERT, CORREL, COS, COSH, COT, COTH, COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS, COUPDAYS, COVAR, COVARIANCE, COVARIANCEP, COVARIANCES, CRITBINOM, CSC, CSCH, CUMIPMT, CUMPRINC, DATE, DATEDIF, DATEVALUE, DAVERAGE, DAY, DAYS, DAYS360, DB, DCOUNT, DCOUNTA, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DECIMAL, DEGREES, DELTA, DEVSQ, DGET, DISC, DMAX, DMIN, DOLLAR, DOLLARDE, DOLLARFR, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, DVARP, EDATE, EFFECT, EOMONTH, ERF, ERFC, ERFCPRECISE, ERFPRECISE, ERROR, ETHERSCAN, EVEN, EXACT, EXP, EXPON, EXPONDIST, F, FACT, FACTDOUBLE, FALSE, FDIST, FDISTRT, FIND, FINV, FINVRT, FISHER, FISHERINV, FIXED, FLOOR, FLOORMATH, FLOORPRECISE, FLVURL, FORECAST, FREQUENCY, FTEST, FV, FVSCHEDULE, GAMMA, GAMMADIST, GAMMAINV, GAMMALN, GAMMALNPRECISE, GAUSS, GCD, GEOMEAN, GESTEP, GETPRICE, GROWTH, HARMEAN, HEX2BIN, HEX2DEC, HEX2OCT, HLOOKUP, HOUR, HYPGEOM, HYPGEOMDIST, IF, IFERROR, IFNA, IFS, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN, INDEX, INT, INTERCEPT, IPMT, IRR, ISBLANK, ISERR, ISERROR, ISEVEN, ISLOGICAL, ISNA, ISNONTEXT, ISNUMBER, ISO, ISODD, ISOWEEKNUM, ISPMT, ISTEXT, KURT, LARGE, LCM, LEFT, LEN, LINEST, LN, LOG, LOG10, LOGEST, LOGINV, LOGNORM, LOGNORMDIST, LOGNORMINV, LOOKUP, LOWER, MATCH, MAX, MAXA, MAXIFS, MEDIAN, MID, MIN, MINA, MINIFS, MINUTE, MIRR, MMULT, MOD, MODE, MODEMULT, MODESNGL, MONTH, MROUND, MULTINOMIAL, MUNIT, N, NA, NEGBINOM, NEGBINOMDIST, NETWORKDAYS, NETWORKDAYSINTL, NOMINAL, NORM, NORMDIST, NORMINV, NORMSDIST, NORMSINV, NOT, NOW, NPER, NPV, NUMBERVALUE, OCT2BIN, OCT2DEC, OCT2HEX, ODD, OR, OX, PDURATION, PEARSON, PERCENTILE, PERCENTILEEXC, PERCENTILEINC, PERCENTRANK, PERCENTRANKEXC, PERCENTRANKINC, PERMUT, PERMUTATIONA, PHI, PI, PMT, POISSON, POISSONDIST, POWER, PPMT, PRICEDISC, PROB, PRODUCT, PROPER, PV,
|
|
13125
|
+
export { ABS, ACCRINT, ACOS, ACOSH, ACOT, ACOTH, AGGREGATE, AND, ARABIC, ASIN, ASINH, ATAN, ATAN2, ATANH, AVEDEV, AVERAGE, AVERAGEA, AVERAGEIF, AVERAGEIFS, BASE, BESSELI, BESSELJ, BESSELK, BESSELY, BETA, BETADIST, BETAINV, BIN2DEC, BIN2HEX, BIN2OCT, BINOM, BINOMDIST, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, CEILING, CEILINGMATH, CEILINGPRECISE, CHAR, CHIDIST, CHIDISTRT, CHIINV, CHIINVRT, CHISQ, CHITEST, CHOOSE, CLEAN, CODE, COLUMN, COLUMNS, COMBIN, COMBINA, COMPLEX, CONCAT, CONCATENATE, CONFIDENCE, CONVERT, CORREL, COS, COSH, COT, COTH, COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS, COUPDAYS, COVAR, COVARIANCE, COVARIANCEP, COVARIANCES, CRITBINOM, CSC, CSCH, CUMIPMT, CUMPRINC, DATE, DATEDIF, DATEVALUE, DAVERAGE, DAY, DAYS, DAYS360, DB, DCOUNT, DCOUNTA, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DECIMAL, DEGREES, DELTA, DEVSQ, DGET, DISC, DMAX, DMIN, DOLLAR, DOLLARDE, DOLLARFR, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, DVARP, EDATE, EFFECT, EOMONTH, ERF, ERFC, ERFCPRECISE, ERFPRECISE, ERROR, ETHERSCAN, EVEN, EXACT, EXP, EXPON, EXPONDIST, F, FACT, FACTDOUBLE, FALSE, FDIST, FDISTRT, FIND, FINV, FINVRT, FISHER, FISHERINV, FIXED, FLOOR, FLOORMATH, FLOORPRECISE, FLVURL, FORECAST, FREQUENCY, FTEST, FV, FVSCHEDULE, GAMMA, GAMMADIST, GAMMAINV, GAMMALN, GAMMALNPRECISE, GAUSS, GCD, GEOMEAN, GESTEP, GETPRICE, GROWTH, HARMEAN, HEX2BIN, HEX2DEC, HEX2OCT, HLOOKUP, HOUR, HYPGEOM, HYPGEOMDIST, IF, IFERROR, IFNA, IFS, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN, INDEX, INT, INTERCEPT, IPMT, IRR, ISBLANK, ISERR, ISERROR, ISEVEN, ISLOGICAL, ISNA, ISNONTEXT, ISNUMBER, ISO, ISODD, ISOWEEKNUM, ISPMT, ISTEXT, KURT, LARGE, LCM, LEFT, LEN, LINEST, LN, LOG, LOG10, LOGEST, LOGINV, LOGNORM, LOGNORMDIST, LOGNORMINV, LOOKUP, LOWER, MATCH, MAX, MAXA, MAXIFS, MEDIAN, MID, MIN, MINA, MINIFS, MINUTE, MIRR, MMULT, MOD, MODE, MODEMULT, MODESNGL, MONTH, MROUND, MULTINOMIAL, MUNIT, N, NA, NEGBINOM, NEGBINOMDIST, NETWORKDAYS, NETWORKDAYSINTL, NOMINAL, NORM, NORMDIST, NORMINV, NORMSDIST, NORMSINV, NOT, NOW, NPER, NPV, NUMBERVALUE, OCT2BIN, OCT2DEC, OCT2HEX, ODD, OR, OX, PDURATION, PEARSON, PERCENTILE, PERCENTILEEXC, PERCENTILEINC, PERCENTRANK, PERCENTRANKEXC, PERCENTRANKINC, PERMUT, PERMUTATIONA, PHI, PI, PMT, PNL, POISSON, POISSONDIST, POWER, PPMT, PRICEDISC, PROB, PRODUCT, PROPER, PV, QUARTILE, QUARTILEEXC, QUARTILEINC, QUOTIENT, RADIANS, RAND, RANDBETWEEN, RANK, RANKAVG, RANKEQ, RATE, REPLACE, REPT, RIGHT, ROMAN, ROUND, ROUNDDOWN, ROUNDUP, ROW, ROWS, RRI, RSQ, SEARCH, SEC, SECH, SECOND, SERIESSUM, SIGN, SIN, SINH, SKEW, SKEWP, SLN, SLOPE, SMALL, SORT, SQRT, SQRTPI, STANDARDIZE, STDEV, STDEVA, STDEVP, STDEVPA, STDEVS, STEYX, SUBSTITUTE, SUBTOTAL, SUM, SUMIF, SUMIFS, SUMPRODUCT, SUMSQ, SUMX2MY2, SUMX2PY2, SUMXMY2, SWITCH, SYD, T, TAN, TANH, TBILLEQ, TBILLPRICE, TBILLYIELD, TDIST, TDISTRT, TEXT, TEXTJOIN, TIME, TIMEVALUE, TINV, TODAY, TRANSPOSE, TREND, TRIM, TRIMMEAN, TRUE, TRUNC, TTEST, TYPE, UNICHAR, UNICODE, UNIQUE, UPPER, VALUE, VAR, VARA, VARP, VARPA, VARS, VLOOKUP, WEEKDAY, WEEKNUM, WEIBULL, WEIBULLDIST, WORKDAY, WORKDAYINTL, XIRR, XNPV, XOR, YEAR, YEARFRAC, Z, ZTEST, utils };
|
package/package.json
CHANGED
package/types/cjs/index.d.cts
CHANGED
|
@@ -3157,6 +3157,7 @@ export function PI(): number;
|
|
|
3157
3157
|
* @returns
|
|
3158
3158
|
*/
|
|
3159
3159
|
export function PMT(rate: any, nper: any, pv: any, fv: any, type: any): number | Error;
|
|
3160
|
+
export function PNL(...args: any[]): any;
|
|
3160
3161
|
export namespace POISSON {
|
|
3161
3162
|
/**
|
|
3162
3163
|
* Returns the Poisson distribution.
|
|
@@ -3262,7 +3263,6 @@ export function PROPER(text: any): any;
|
|
|
3262
3263
|
* @returns
|
|
3263
3264
|
*/
|
|
3264
3265
|
export function PV(rate: any, per: any, pmt: any, fv: any, type: any): number | Error;
|
|
3265
|
-
export function PnL(...args: any[]): number;
|
|
3266
3266
|
export namespace QUARTILE {
|
|
3267
3267
|
/**
|
|
3268
3268
|
* Returns the quartile of the data set, based on percentile values from 0..1, exclusive.
|
package/types/esm/index.d.mts
CHANGED
|
@@ -3157,6 +3157,7 @@ export function PI(): number;
|
|
|
3157
3157
|
* @returns
|
|
3158
3158
|
*/
|
|
3159
3159
|
export function PMT(rate: any, nper: any, pv: any, fv: any, type: any): number | Error;
|
|
3160
|
+
export function PNL(...args: any[]): any;
|
|
3160
3161
|
export namespace POISSON {
|
|
3161
3162
|
/**
|
|
3162
3163
|
* Returns the Poisson distribution.
|
|
@@ -3262,7 +3263,6 @@ export function PROPER(text: any): any;
|
|
|
3262
3263
|
* @returns
|
|
3263
3264
|
*/
|
|
3264
3265
|
export function PV(rate: any, per: any, pmt: any, fv: any, type: any): number | Error;
|
|
3265
|
-
export function PnL(...args: any[]): number;
|
|
3266
3266
|
export namespace QUARTILE {
|
|
3267
3267
|
/**
|
|
3268
3268
|
* Returns the quartile of the data set, based on percentile values from 0..1, exclusive.
|