@fileverse-dev/formulajs 4.4.11-mod-76 → 4.4.11-mod-78
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 +649 -653
- package/lib/browser/formula.min.js +2 -2
- package/lib/browser/formula.min.js.map +1 -1
- package/lib/cjs/index.cjs +27 -36
- package/lib/esm/index.mjs +27 -36
- package/package.json +4 -2
package/lib/cjs/index.cjs
CHANGED
|
@@ -13189,44 +13189,43 @@ class InvalidApiKeyError extends Error {
|
|
|
13189
13189
|
}
|
|
13190
13190
|
}
|
|
13191
13191
|
|
|
13192
|
-
const
|
|
13193
|
-
const productionFileverseProxyUrl = `${process.env.NEXT_PUBLIC_PROXY_BASE_URL}/proxy`;
|
|
13192
|
+
const fileverseProxyUrl = `${process.env.NEXT_PUBLIC_PROXY_BASE_URL}/proxy`;
|
|
13194
13193
|
// Proxy map configuration
|
|
13195
13194
|
const PROXY_MAP = {
|
|
13196
13195
|
Etherscan: {
|
|
13197
|
-
url:
|
|
13196
|
+
url: fileverseProxyUrl,
|
|
13198
13197
|
removeParams: ['apikey']
|
|
13199
13198
|
},
|
|
13200
13199
|
Basescan: {
|
|
13201
|
-
url:
|
|
13200
|
+
url: fileverseProxyUrl,
|
|
13202
13201
|
removeParams: ['apikey']
|
|
13203
13202
|
},
|
|
13204
13203
|
Gnosisscan: {
|
|
13205
|
-
url:
|
|
13204
|
+
url: fileverseProxyUrl,
|
|
13206
13205
|
removeParams: ['apikey']
|
|
13207
13206
|
},
|
|
13208
13207
|
Coingecko: {
|
|
13209
|
-
url:
|
|
13208
|
+
url: fileverseProxyUrl,
|
|
13210
13209
|
removeParams: ['apikey']
|
|
13211
13210
|
},
|
|
13212
13211
|
Firefly: {
|
|
13213
|
-
url:
|
|
13212
|
+
url: fileverseProxyUrl,
|
|
13214
13213
|
removeParams: ['apikey']
|
|
13215
13214
|
},
|
|
13216
13215
|
Neynar: {
|
|
13217
|
-
url:
|
|
13216
|
+
url: fileverseProxyUrl,
|
|
13218
13217
|
removeParams: ['api_key']
|
|
13219
13218
|
},
|
|
13220
13219
|
Safe: {
|
|
13221
|
-
url:
|
|
13220
|
+
url: fileverseProxyUrl,
|
|
13222
13221
|
removeParams: ['api_key']
|
|
13223
13222
|
},
|
|
13224
13223
|
Defillama: {
|
|
13225
|
-
url:
|
|
13224
|
+
url: fileverseProxyUrl,
|
|
13226
13225
|
removeParams: ['api_key']
|
|
13227
13226
|
},
|
|
13228
13227
|
GnosisPay: {
|
|
13229
|
-
url:
|
|
13228
|
+
url: fileverseProxyUrl,
|
|
13230
13229
|
removeParams: ['api_key']
|
|
13231
13230
|
},
|
|
13232
13231
|
// Add more services as needed. It can be direct url instead of ENV variable
|
|
@@ -13362,9 +13361,16 @@ async function fromEnsNameToAddress(name) {
|
|
|
13362
13361
|
return null
|
|
13363
13362
|
}
|
|
13364
13363
|
}
|
|
13364
|
+
const validateAndGetAddress = async (address) => {
|
|
13365
|
+
if(isAddress$1.isAddress(address)) return address
|
|
13366
|
+
|
|
13367
|
+
const resolvedAddress = await fromEnsNameToAddress(address);
|
|
13368
|
+
if(resolvedAddress) return resolvedAddress
|
|
13369
|
+
throw new ValidationError("Invalid address")
|
|
13370
|
+
};
|
|
13365
13371
|
|
|
13366
13372
|
var fromEnsNameToAddress$1 = {
|
|
13367
|
-
|
|
13373
|
+
validateAndGetAddress
|
|
13368
13374
|
};
|
|
13369
13375
|
|
|
13370
13376
|
async function handleScanRequest({
|
|
@@ -13385,12 +13391,8 @@ async function handleScanRequest({
|
|
|
13385
13391
|
GNOSIS: { url: 'https://api.gnosisscan.io/api', apiKeyName: SERVICES_API_KEY.Gnosisscan }
|
|
13386
13392
|
};
|
|
13387
13393
|
|
|
13388
|
-
if (
|
|
13389
|
-
|
|
13390
|
-
address = await fromEnsNameToAddress$1.fromEnsNameToAddress(address);
|
|
13391
|
-
if (!address) {
|
|
13392
|
-
throw new EnsError(ensName)
|
|
13393
|
-
}
|
|
13394
|
+
if (type !== 'gas') {
|
|
13395
|
+
address = await fromEnsNameToAddress$1.validateAndGetAddress(address);
|
|
13394
13396
|
}
|
|
13395
13397
|
|
|
13396
13398
|
const apiInfo = API_INFO_MAP[functionName];
|
|
@@ -17908,14 +17910,7 @@ async function BLOCKSCOUT() {
|
|
|
17908
17910
|
startTimestamp ?? Math.floor((Date.now() - 30 * 24 * 3600 * 1000) / 1000);
|
|
17909
17911
|
const endTs = endTimestamp;
|
|
17910
17912
|
|
|
17911
|
-
|
|
17912
|
-
if (!isAddress$1.isAddress(resolvedAddress)) {
|
|
17913
|
-
const ensName = resolvedAddress;
|
|
17914
|
-
resolvedAddress = await fromEnsNameToAddress$1.fromEnsNameToAddress(ensName);
|
|
17915
|
-
if (!resolvedAddress) {
|
|
17916
|
-
throw new EnsError(ensName)
|
|
17917
|
-
}
|
|
17918
|
-
}
|
|
17913
|
+
const resolvedAddress = await fromEnsNameToAddress$1.validateAndGetAddress(address);
|
|
17919
17914
|
|
|
17920
17915
|
const hostname = BLOCKSCOUT_CHAINS_MAP[chain];
|
|
17921
17916
|
|
|
@@ -18249,10 +18244,8 @@ async function EOA() {
|
|
|
18249
18244
|
if (isAddress$1.isAddress(inp)) {
|
|
18250
18245
|
ADDRESS_MAP[inp.toLowerCase()] = null;
|
|
18251
18246
|
} else {
|
|
18252
|
-
|
|
18253
|
-
|
|
18254
|
-
if (!resolved) throw new EnsError(ens)
|
|
18255
|
-
ADDRESS_MAP[resolved.toLowerCase()] = ens;
|
|
18247
|
+
const _address = await fromEnsNameToAddress$1.validateAndGetAddress(inp);
|
|
18248
|
+
ADDRESS_MAP[_address.toLowerCase()] = _address;
|
|
18256
18249
|
}
|
|
18257
18250
|
}
|
|
18258
18251
|
const ADDRS = Object.keys(ADDRESS_MAP);
|
|
@@ -18334,12 +18327,10 @@ async function SAFE() {
|
|
|
18334
18327
|
const chainId = SAFE_CHAIN_MAP[chain];
|
|
18335
18328
|
if (!chainId) throw new ValidationError(`Invalid chain: ${chain}`)
|
|
18336
18329
|
|
|
18337
|
-
|
|
18338
|
-
|
|
18339
|
-
|
|
18340
|
-
|
|
18341
|
-
if (!resolved) throw new EnsError(ens)
|
|
18342
|
-
}
|
|
18330
|
+
|
|
18331
|
+
|
|
18332
|
+
|
|
18333
|
+
const resolved = await fromEnsNameToAddress$1.validateAndGetAddress(address);
|
|
18343
18334
|
|
|
18344
18335
|
|
|
18345
18336
|
const url = `https://api.safe.global/tx-service/${chainId}/api/v2/safes/${resolved}/multisig-transactions?limit=${limit}&offset=${offset}`;
|
package/lib/esm/index.mjs
CHANGED
|
@@ -13187,44 +13187,43 @@ class InvalidApiKeyError extends Error {
|
|
|
13187
13187
|
}
|
|
13188
13188
|
}
|
|
13189
13189
|
|
|
13190
|
-
const
|
|
13191
|
-
const productionFileverseProxyUrl = `${process.env.NEXT_PUBLIC_PROXY_BASE_URL}/proxy`;
|
|
13190
|
+
const fileverseProxyUrl = `${process.env.NEXT_PUBLIC_PROXY_BASE_URL}/proxy`;
|
|
13192
13191
|
// Proxy map configuration
|
|
13193
13192
|
const PROXY_MAP = {
|
|
13194
13193
|
Etherscan: {
|
|
13195
|
-
url:
|
|
13194
|
+
url: fileverseProxyUrl,
|
|
13196
13195
|
removeParams: ['apikey']
|
|
13197
13196
|
},
|
|
13198
13197
|
Basescan: {
|
|
13199
|
-
url:
|
|
13198
|
+
url: fileverseProxyUrl,
|
|
13200
13199
|
removeParams: ['apikey']
|
|
13201
13200
|
},
|
|
13202
13201
|
Gnosisscan: {
|
|
13203
|
-
url:
|
|
13202
|
+
url: fileverseProxyUrl,
|
|
13204
13203
|
removeParams: ['apikey']
|
|
13205
13204
|
},
|
|
13206
13205
|
Coingecko: {
|
|
13207
|
-
url:
|
|
13206
|
+
url: fileverseProxyUrl,
|
|
13208
13207
|
removeParams: ['apikey']
|
|
13209
13208
|
},
|
|
13210
13209
|
Firefly: {
|
|
13211
|
-
url:
|
|
13210
|
+
url: fileverseProxyUrl,
|
|
13212
13211
|
removeParams: ['apikey']
|
|
13213
13212
|
},
|
|
13214
13213
|
Neynar: {
|
|
13215
|
-
url:
|
|
13214
|
+
url: fileverseProxyUrl,
|
|
13216
13215
|
removeParams: ['api_key']
|
|
13217
13216
|
},
|
|
13218
13217
|
Safe: {
|
|
13219
|
-
url:
|
|
13218
|
+
url: fileverseProxyUrl,
|
|
13220
13219
|
removeParams: ['api_key']
|
|
13221
13220
|
},
|
|
13222
13221
|
Defillama: {
|
|
13223
|
-
url:
|
|
13222
|
+
url: fileverseProxyUrl,
|
|
13224
13223
|
removeParams: ['api_key']
|
|
13225
13224
|
},
|
|
13226
13225
|
GnosisPay: {
|
|
13227
|
-
url:
|
|
13226
|
+
url: fileverseProxyUrl,
|
|
13228
13227
|
removeParams: ['api_key']
|
|
13229
13228
|
},
|
|
13230
13229
|
// Add more services as needed. It can be direct url instead of ENV variable
|
|
@@ -13360,9 +13359,16 @@ async function fromEnsNameToAddress(name) {
|
|
|
13360
13359
|
return null
|
|
13361
13360
|
}
|
|
13362
13361
|
}
|
|
13362
|
+
const validateAndGetAddress = async (address) => {
|
|
13363
|
+
if(isAddress$1.isAddress(address)) return address
|
|
13364
|
+
|
|
13365
|
+
const resolvedAddress = await fromEnsNameToAddress(address);
|
|
13366
|
+
if(resolvedAddress) return resolvedAddress
|
|
13367
|
+
throw new ValidationError("Invalid address")
|
|
13368
|
+
};
|
|
13363
13369
|
|
|
13364
13370
|
var fromEnsNameToAddress$1 = {
|
|
13365
|
-
|
|
13371
|
+
validateAndGetAddress
|
|
13366
13372
|
};
|
|
13367
13373
|
|
|
13368
13374
|
async function handleScanRequest({
|
|
@@ -13383,12 +13389,8 @@ async function handleScanRequest({
|
|
|
13383
13389
|
GNOSIS: { url: 'https://api.gnosisscan.io/api', apiKeyName: SERVICES_API_KEY.Gnosisscan }
|
|
13384
13390
|
};
|
|
13385
13391
|
|
|
13386
|
-
if (
|
|
13387
|
-
|
|
13388
|
-
address = await fromEnsNameToAddress$1.fromEnsNameToAddress(address);
|
|
13389
|
-
if (!address) {
|
|
13390
|
-
throw new EnsError(ensName)
|
|
13391
|
-
}
|
|
13392
|
+
if (type !== 'gas') {
|
|
13393
|
+
address = await fromEnsNameToAddress$1.validateAndGetAddress(address);
|
|
13392
13394
|
}
|
|
13393
13395
|
|
|
13394
13396
|
const apiInfo = API_INFO_MAP[functionName];
|
|
@@ -17906,14 +17908,7 @@ async function BLOCKSCOUT() {
|
|
|
17906
17908
|
startTimestamp ?? Math.floor((Date.now() - 30 * 24 * 3600 * 1000) / 1000);
|
|
17907
17909
|
const endTs = endTimestamp;
|
|
17908
17910
|
|
|
17909
|
-
|
|
17910
|
-
if (!isAddress$1.isAddress(resolvedAddress)) {
|
|
17911
|
-
const ensName = resolvedAddress;
|
|
17912
|
-
resolvedAddress = await fromEnsNameToAddress$1.fromEnsNameToAddress(ensName);
|
|
17913
|
-
if (!resolvedAddress) {
|
|
17914
|
-
throw new EnsError(ensName)
|
|
17915
|
-
}
|
|
17916
|
-
}
|
|
17911
|
+
const resolvedAddress = await fromEnsNameToAddress$1.validateAndGetAddress(address);
|
|
17917
17912
|
|
|
17918
17913
|
const hostname = BLOCKSCOUT_CHAINS_MAP[chain];
|
|
17919
17914
|
|
|
@@ -18247,10 +18242,8 @@ async function EOA() {
|
|
|
18247
18242
|
if (isAddress$1.isAddress(inp)) {
|
|
18248
18243
|
ADDRESS_MAP[inp.toLowerCase()] = null;
|
|
18249
18244
|
} else {
|
|
18250
|
-
|
|
18251
|
-
|
|
18252
|
-
if (!resolved) throw new EnsError(ens)
|
|
18253
|
-
ADDRESS_MAP[resolved.toLowerCase()] = ens;
|
|
18245
|
+
const _address = await fromEnsNameToAddress$1.validateAndGetAddress(inp);
|
|
18246
|
+
ADDRESS_MAP[_address.toLowerCase()] = _address;
|
|
18254
18247
|
}
|
|
18255
18248
|
}
|
|
18256
18249
|
const ADDRS = Object.keys(ADDRESS_MAP);
|
|
@@ -18332,12 +18325,10 @@ async function SAFE() {
|
|
|
18332
18325
|
const chainId = SAFE_CHAIN_MAP[chain];
|
|
18333
18326
|
if (!chainId) throw new ValidationError(`Invalid chain: ${chain}`)
|
|
18334
18327
|
|
|
18335
|
-
|
|
18336
|
-
|
|
18337
|
-
|
|
18338
|
-
|
|
18339
|
-
if (!resolved) throw new EnsError(ens)
|
|
18340
|
-
}
|
|
18328
|
+
|
|
18329
|
+
|
|
18330
|
+
|
|
18331
|
+
const resolved = await fromEnsNameToAddress$1.validateAndGetAddress(address);
|
|
18341
18332
|
|
|
18342
18333
|
|
|
18343
18334
|
const url = `https://api.safe.global/tx-service/${chainId}/api/v2/safes/${resolved}/multisig-transactions?limit=${limit}&offset=${offset}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fileverse-dev/formulajs",
|
|
3
|
-
"version": "4.4.11-mod-
|
|
3
|
+
"version": "4.4.11-mod-78",
|
|
4
4
|
"description": "JavaScript implementation of most Microsoft Excel formula functions",
|
|
5
5
|
"author": "Formulajs",
|
|
6
6
|
"publishConfig": {
|
|
@@ -57,7 +57,8 @@
|
|
|
57
57
|
"test:coverage": "c8 mocha --recursive",
|
|
58
58
|
"test:watch": "mocha --recursive --watch --parallel --reporter min",
|
|
59
59
|
"types": "tsc",
|
|
60
|
-
"test:crypto": "npx mocha 'test/crypto-functions/**/*.js' --recursive"
|
|
60
|
+
"test:crypto": "npx mocha 'test/crypto-functions/**/*.js' --recursive",
|
|
61
|
+
"prepare": "husky install"
|
|
61
62
|
},
|
|
62
63
|
"dependencies": {
|
|
63
64
|
"bessel": "^1.0.2",
|
|
@@ -77,6 +78,7 @@
|
|
|
77
78
|
"chai": "^5.2.0",
|
|
78
79
|
"eslint": "^9.26.0",
|
|
79
80
|
"globals": "^16.1.0",
|
|
81
|
+
"husky": "^9.1.7",
|
|
80
82
|
"jsdom": "^26.1.0",
|
|
81
83
|
"mocha": "^11.7.1",
|
|
82
84
|
"mochawesome": "^7.1.3",
|