@webacy-xyz/sdk-core 1.0.1
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/LICENSE +21 -0
- package/README.md +96 -0
- package/dist/cjs/client-base.js +134 -0
- package/dist/cjs/client-base.js.map +1 -0
- package/dist/cjs/config.js +30 -0
- package/dist/cjs/config.js.map +1 -0
- package/dist/cjs/errors/authentication.js +35 -0
- package/dist/cjs/errors/authentication.js.map +1 -0
- package/dist/cjs/errors/base.js +76 -0
- package/dist/cjs/errors/base.js.map +1 -0
- package/dist/cjs/errors/index.js +16 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/errors/network.js +45 -0
- package/dist/cjs/errors/network.js.map +1 -0
- package/dist/cjs/errors/not-found.js +38 -0
- package/dist/cjs/errors/not-found.js.map +1 -0
- package/dist/cjs/errors/rate-limit.js +53 -0
- package/dist/cjs/errors/rate-limit.js.map +1 -0
- package/dist/cjs/errors/validation.js +49 -0
- package/dist/cjs/errors/validation.js.map +1 -0
- package/dist/cjs/http/client.js +393 -0
- package/dist/cjs/http/client.js.map +1 -0
- package/dist/cjs/http/index.js +11 -0
- package/dist/cjs/http/index.js.map +1 -0
- package/dist/cjs/http/retry.js +43 -0
- package/dist/cjs/http/retry.js.map +1 -0
- package/dist/cjs/index.js +52 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/resources/base.js +43 -0
- package/dist/cjs/resources/base.js.map +1 -0
- package/dist/cjs/resources/index.js +6 -0
- package/dist/cjs/resources/index.js.map +1 -0
- package/dist/cjs/types/chain.js +114 -0
- package/dist/cjs/types/chain.js.map +1 -0
- package/dist/cjs/types/common.js +49 -0
- package/dist/cjs/types/common.js.map +1 -0
- package/dist/cjs/types/index.js +18 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/modules.js +64 -0
- package/dist/cjs/types/modules.js.map +1 -0
- package/dist/cjs/utils/address-validation.js +124 -0
- package/dist/cjs/utils/address-validation.js.map +1 -0
- package/dist/cjs/utils/index.js +16 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/url-validation.js +31 -0
- package/dist/cjs/utils/url-validation.js.map +1 -0
- package/dist/esm/client-base.js +130 -0
- package/dist/esm/client-base.js.map +1 -0
- package/dist/esm/config.js +26 -0
- package/dist/esm/config.js.map +1 -0
- package/dist/esm/errors/authentication.js +31 -0
- package/dist/esm/errors/authentication.js.map +1 -0
- package/dist/esm/errors/base.js +72 -0
- package/dist/esm/errors/base.js.map +1 -0
- package/dist/esm/errors/index.js +7 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/errors/network.js +41 -0
- package/dist/esm/errors/network.js.map +1 -0
- package/dist/esm/errors/not-found.js +34 -0
- package/dist/esm/errors/not-found.js.map +1 -0
- package/dist/esm/errors/rate-limit.js +49 -0
- package/dist/esm/errors/rate-limit.js.map +1 -0
- package/dist/esm/errors/validation.js +45 -0
- package/dist/esm/errors/validation.js.map +1 -0
- package/dist/esm/http/client.js +389 -0
- package/dist/esm/http/client.js.map +1 -0
- package/dist/esm/http/index.js +3 -0
- package/dist/esm/http/index.js.map +1 -0
- package/dist/esm/http/retry.js +37 -0
- package/dist/esm/http/retry.js.map +1 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/resources/base.js +39 -0
- package/dist/esm/resources/base.js.map +1 -0
- package/dist/esm/resources/index.js +2 -0
- package/dist/esm/resources/index.js.map +1 -0
- package/dist/esm/types/chain.js +109 -0
- package/dist/esm/types/chain.js.map +1 -0
- package/dist/esm/types/common.js +46 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/index.js +4 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/modules.js +61 -0
- package/dist/esm/types/modules.js.map +1 -0
- package/dist/esm/utils/address-validation.js +113 -0
- package/dist/esm/utils/address-validation.js.map +1 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/url-validation.js +28 -0
- package/dist/esm/utils/url-validation.js.map +1 -0
- package/dist/types/client-base.d.ts +90 -0
- package/dist/types/client-base.d.ts.map +1 -0
- package/dist/types/config.d.ts +124 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/errors/authentication.d.ts +24 -0
- package/dist/types/errors/authentication.d.ts.map +1 -0
- package/dist/types/errors/base.d.ts +53 -0
- package/dist/types/errors/base.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +7 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/errors/network.d.ts +30 -0
- package/dist/types/errors/network.d.ts.map +1 -0
- package/dist/types/errors/not-found.d.ts +27 -0
- package/dist/types/errors/not-found.d.ts.map +1 -0
- package/dist/types/errors/rate-limit.d.ts +37 -0
- package/dist/types/errors/rate-limit.d.ts.map +1 -0
- package/dist/types/errors/validation.d.ts +34 -0
- package/dist/types/errors/validation.d.ts.map +1 -0
- package/dist/types/http/client.d.ts +160 -0
- package/dist/types/http/client.d.ts.map +1 -0
- package/dist/types/http/index.d.ts +3 -0
- package/dist/types/http/index.d.ts.map +1 -0
- package/dist/types/http/retry.d.ts +32 -0
- package/dist/types/http/retry.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/resources/base.d.ts +26 -0
- package/dist/types/resources/base.d.ts.map +1 -0
- package/dist/types/resources/index.d.ts +2 -0
- package/dist/types/resources/index.d.ts.map +1 -0
- package/dist/types/types/chain.d.ts +60 -0
- package/dist/types/types/chain.d.ts.map +1 -0
- package/dist/types/types/common.d.ts +251 -0
- package/dist/types/types/common.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +5 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/modules.d.ts +51 -0
- package/dist/types/types/modules.d.ts.map +1 -0
- package/dist/types/utils/address-validation.d.ts +50 -0
- package/dist/types/utils/address-validation.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/url-validation.d.ts +16 -0
- package/dist/types/utils/url-validation.d.ts.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/http/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAOX,MAAM,UAAU,CAAC;AAElB,OAAO,EAEL,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,GACN,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default retry configuration
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_RETRY_CONFIG = {
|
|
5
|
+
maxRetries: 3,
|
|
6
|
+
initialDelay: 1000,
|
|
7
|
+
maxDelay: 30000,
|
|
8
|
+
backoffMultiplier: 2,
|
|
9
|
+
retryableStatusCodes: [408, 429, 500, 502, 503, 504],
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Calculate delay for a retry attempt using exponential backoff with jitter
|
|
13
|
+
*/
|
|
14
|
+
export function calculateRetryDelay(attempt, config, retryAfter) {
|
|
15
|
+
// If server provided Retry-After, use it
|
|
16
|
+
if (retryAfter && retryAfter > 0) {
|
|
17
|
+
return Math.min(retryAfter * 1000, config.maxDelay);
|
|
18
|
+
}
|
|
19
|
+
// Exponential backoff with jitter
|
|
20
|
+
const exponentialDelay = config.initialDelay * Math.pow(config.backoffMultiplier, attempt);
|
|
21
|
+
const jitter = Math.random() * 0.3 * exponentialDelay; // 30% jitter
|
|
22
|
+
const delay = exponentialDelay + jitter;
|
|
23
|
+
return Math.min(delay, config.maxDelay);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Check if a status code is retryable
|
|
27
|
+
*/
|
|
28
|
+
export function isRetryableStatusCode(statusCode, config) {
|
|
29
|
+
return config.retryableStatusCodes.includes(statusCode);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sleep for a given number of milliseconds
|
|
33
|
+
*/
|
|
34
|
+
export function sleep(ms) {
|
|
35
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/http/retry.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,KAAK;IACf,iBAAiB,EAAE,CAAC;IACpB,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,MAAmB,EACnB,UAAmB;IAEnB,yCAAyC;IACzC,IAAI,UAAU,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,kCAAkC;IAClC,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,gBAAgB,CAAC,CAAC,aAAa;IACpE,MAAM,KAAK,GAAG,gBAAgB,GAAG,MAAM,CAAC;IAExC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,MAAmB;IAC3E,OAAO,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Configuration
|
|
2
|
+
export { DEFAULT_CONFIG, buildBaseUrl, defaultLogger, } from './config.js';
|
|
3
|
+
// Base client
|
|
4
|
+
export { BaseClient } from './client-base.js';
|
|
5
|
+
// Base resource
|
|
6
|
+
export { BaseResource } from './resources/index.js';
|
|
7
|
+
// HTTP client
|
|
8
|
+
export { HttpClient, DEFAULT_RETRY_CONFIG, } from './http/index.js';
|
|
9
|
+
// Errors
|
|
10
|
+
export { WebacyError, AuthenticationError, RateLimitError, ValidationError, NotFoundError, NetworkError, } from './errors/index.js';
|
|
11
|
+
// Types
|
|
12
|
+
export { Chain, ChainCompatibility, getChainCompatibility, isEvmChain, CHAIN_IDS, CHAIN_NAMES, RiskModule, RiskScore, RiskLevel, TypeOfAddress, TokenStandard, } from './types/index.js';
|
|
13
|
+
// Utilities
|
|
14
|
+
export { isValidAddress, isValidEvmAddress, isValidSolanaAddress, isValidBitcoinAddress, isValidTonAddress, isValidSuiAddress, isValidStellarAddress, normalizeAddress, normalizeEvmAddress, isValidUrl, } from './utils/index.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAEL,cAAc,EACd,YAAY,EAGZ,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,cAAc;AACd,OAAO,EACL,UAAU,EAQV,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAEhB,SAAS;AACT,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,UAAU,CAAC;AAElB,QAAQ;AACR,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,GAgBd,MAAM,SAAS,CAAC;AAEjB,YAAY;AACZ,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ValidationError } from '../errors/index.js';
|
|
2
|
+
import { CHAIN_NAMES } from '../types/index.js';
|
|
3
|
+
import { isValidAddress } from '../utils/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Base class for API resources
|
|
6
|
+
*
|
|
7
|
+
* Provides common functionality for chain resolution and address validation
|
|
8
|
+
* that is shared across all resource implementations.
|
|
9
|
+
*/
|
|
10
|
+
export class BaseResource {
|
|
11
|
+
httpClient;
|
|
12
|
+
defaultChain;
|
|
13
|
+
constructor(httpClient, defaultChain) {
|
|
14
|
+
this.httpClient = httpClient;
|
|
15
|
+
this.defaultChain = defaultChain;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Resolve the chain to use for a request
|
|
19
|
+
* @throws ValidationError if no chain is specified and no default is set
|
|
20
|
+
*/
|
|
21
|
+
resolveChain(options) {
|
|
22
|
+
const chain = options?.chain ?? this.defaultChain;
|
|
23
|
+
if (!chain) {
|
|
24
|
+
throw new ValidationError('Chain is required. Either specify chain in options or set defaultChain in client configuration.');
|
|
25
|
+
}
|
|
26
|
+
return chain;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Validate address format for the given chain
|
|
30
|
+
* @throws ValidationError if address format is invalid for the chain
|
|
31
|
+
*/
|
|
32
|
+
validateAddress(address, chain) {
|
|
33
|
+
if (!isValidAddress(address, chain)) {
|
|
34
|
+
const chainName = CHAIN_NAMES[chain] || chain;
|
|
35
|
+
throw new ValidationError(`Invalid ${chainName} address: "${address}". Please provide a valid address format for the ${chainName} blockchain.`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/resources/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAS,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,OAAgB,YAAY;IAEX;IACA;IAFrB,YACqB,UAAsB,EACtB,YAAoB;QADpB,eAAU,GAAV,UAAU,CAAY;QACtB,iBAAY,GAAZ,YAAY,CAAQ;IACtC,CAAC;IAEJ;;;OAGG;IACO,YAAY,CAAC,OAA2B;QAChD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,eAAe,CACvB,iGAAiG,CAClG,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACO,eAAe,CAAC,OAAe,EAAE,KAAY;QACrD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAC9C,MAAM,IAAI,eAAe,CACvB,WAAW,SAAS,cAAc,OAAO,oDAAoD,SAAS,cAAc,CACrH,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported blockchain networks
|
|
3
|
+
*/
|
|
4
|
+
export var Chain;
|
|
5
|
+
(function (Chain) {
|
|
6
|
+
/** Ethereum Mainnet */
|
|
7
|
+
Chain["ETH"] = "eth";
|
|
8
|
+
/** Ethereum Sepolia Testnet */
|
|
9
|
+
Chain["SEP"] = "sep";
|
|
10
|
+
/** Arbitrum One */
|
|
11
|
+
Chain["ARB"] = "arb";
|
|
12
|
+
/** Polygon (MATIC) */
|
|
13
|
+
Chain["POL"] = "pol";
|
|
14
|
+
/** Solana */
|
|
15
|
+
Chain["SOL"] = "sol";
|
|
16
|
+
/** Optimism */
|
|
17
|
+
Chain["OPT"] = "opt";
|
|
18
|
+
/** Base */
|
|
19
|
+
Chain["BASE"] = "base";
|
|
20
|
+
/** BNB Smart Chain */
|
|
21
|
+
Chain["BSC"] = "bsc";
|
|
22
|
+
/** TON (The Open Network) */
|
|
23
|
+
Chain["TON"] = "ton";
|
|
24
|
+
/** Sei */
|
|
25
|
+
Chain["SEI"] = "sei";
|
|
26
|
+
/** Bitcoin */
|
|
27
|
+
Chain["BTC"] = "btc";
|
|
28
|
+
/** Sui */
|
|
29
|
+
Chain["SUI"] = "sui";
|
|
30
|
+
/** Stellar */
|
|
31
|
+
Chain["STELLAR"] = "stellar";
|
|
32
|
+
})(Chain || (Chain = {}));
|
|
33
|
+
/**
|
|
34
|
+
* Chain compatibility groups for feature detection
|
|
35
|
+
*/
|
|
36
|
+
export var ChainCompatibility;
|
|
37
|
+
(function (ChainCompatibility) {
|
|
38
|
+
ChainCompatibility["EVM"] = "EVM";
|
|
39
|
+
ChainCompatibility["SOLANA"] = "SOLANA";
|
|
40
|
+
ChainCompatibility["TON"] = "TON";
|
|
41
|
+
ChainCompatibility["BTC"] = "BTC";
|
|
42
|
+
ChainCompatibility["SEI"] = "SEI";
|
|
43
|
+
ChainCompatibility["SUI"] = "SUI";
|
|
44
|
+
ChainCompatibility["STELLAR"] = "STELLAR";
|
|
45
|
+
})(ChainCompatibility || (ChainCompatibility = {}));
|
|
46
|
+
/**
|
|
47
|
+
* Get the compatibility group for a chain
|
|
48
|
+
*/
|
|
49
|
+
export function getChainCompatibility(chain) {
|
|
50
|
+
switch (chain) {
|
|
51
|
+
case Chain.ETH:
|
|
52
|
+
case Chain.SEP:
|
|
53
|
+
case Chain.ARB:
|
|
54
|
+
case Chain.POL:
|
|
55
|
+
case Chain.OPT:
|
|
56
|
+
case Chain.BASE:
|
|
57
|
+
case Chain.BSC:
|
|
58
|
+
return ChainCompatibility.EVM;
|
|
59
|
+
case Chain.SOL:
|
|
60
|
+
return ChainCompatibility.SOLANA;
|
|
61
|
+
case Chain.TON:
|
|
62
|
+
return ChainCompatibility.TON;
|
|
63
|
+
case Chain.BTC:
|
|
64
|
+
return ChainCompatibility.BTC;
|
|
65
|
+
case Chain.SEI:
|
|
66
|
+
return ChainCompatibility.SEI;
|
|
67
|
+
case Chain.SUI:
|
|
68
|
+
return ChainCompatibility.SUI;
|
|
69
|
+
case Chain.STELLAR:
|
|
70
|
+
return ChainCompatibility.STELLAR;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if a chain is EVM-compatible
|
|
75
|
+
*/
|
|
76
|
+
export function isEvmChain(chain) {
|
|
77
|
+
return getChainCompatibility(chain) === ChainCompatibility.EVM;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Chain ID mapping for EVM chains
|
|
81
|
+
*/
|
|
82
|
+
export const CHAIN_IDS = {
|
|
83
|
+
[Chain.ETH]: 1,
|
|
84
|
+
[Chain.SEP]: 11155111,
|
|
85
|
+
[Chain.BSC]: 56,
|
|
86
|
+
[Chain.POL]: 137,
|
|
87
|
+
[Chain.OPT]: 10,
|
|
88
|
+
[Chain.ARB]: 42161,
|
|
89
|
+
[Chain.BASE]: 8453,
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Human-readable chain names
|
|
93
|
+
*/
|
|
94
|
+
export const CHAIN_NAMES = {
|
|
95
|
+
[Chain.ETH]: 'Ethereum',
|
|
96
|
+
[Chain.SEP]: 'Sepolia',
|
|
97
|
+
[Chain.ARB]: 'Arbitrum',
|
|
98
|
+
[Chain.POL]: 'Polygon',
|
|
99
|
+
[Chain.SOL]: 'Solana',
|
|
100
|
+
[Chain.OPT]: 'Optimism',
|
|
101
|
+
[Chain.BASE]: 'Base',
|
|
102
|
+
[Chain.BSC]: 'BNB Smart Chain',
|
|
103
|
+
[Chain.TON]: 'TON',
|
|
104
|
+
[Chain.SEI]: 'Sei',
|
|
105
|
+
[Chain.BTC]: 'Bitcoin',
|
|
106
|
+
[Chain.SUI]: 'Sui',
|
|
107
|
+
[Chain.STELLAR]: 'Stellar',
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/types/chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Risk score classification
|
|
3
|
+
*/
|
|
4
|
+
export var RiskScore;
|
|
5
|
+
(function (RiskScore) {
|
|
6
|
+
RiskScore["HIGH"] = "High Risk";
|
|
7
|
+
RiskScore["MEDIUM"] = "Medium Risk";
|
|
8
|
+
RiskScore["LOW"] = "Low Risk";
|
|
9
|
+
RiskScore["TRUSTED"] = "Trusted";
|
|
10
|
+
RiskScore["UNKNOWN"] = "Unknown";
|
|
11
|
+
})(RiskScore || (RiskScore = {}));
|
|
12
|
+
/**
|
|
13
|
+
* Risk level enum
|
|
14
|
+
*/
|
|
15
|
+
export var RiskLevel;
|
|
16
|
+
(function (RiskLevel) {
|
|
17
|
+
RiskLevel["Low"] = "low";
|
|
18
|
+
RiskLevel["Medium"] = "medium";
|
|
19
|
+
RiskLevel["High"] = "high";
|
|
20
|
+
RiskLevel["Suspicious"] = "suspicious";
|
|
21
|
+
})(RiskLevel || (RiskLevel = {}));
|
|
22
|
+
/**
|
|
23
|
+
* Address type classification
|
|
24
|
+
*/
|
|
25
|
+
export var TypeOfAddress;
|
|
26
|
+
(function (TypeOfAddress) {
|
|
27
|
+
TypeOfAddress["EOA"] = "EOA";
|
|
28
|
+
TypeOfAddress["CONTRACT"] = "CONTRACT";
|
|
29
|
+
TypeOfAddress["TOKEN"] = "TOKEN";
|
|
30
|
+
TypeOfAddress["CONTRACT_WALLET"] = "CONTRACT_WALLET";
|
|
31
|
+
TypeOfAddress["MULTISIG"] = "MULTISIG";
|
|
32
|
+
})(TypeOfAddress || (TypeOfAddress = {}));
|
|
33
|
+
/**
|
|
34
|
+
* Token standard
|
|
35
|
+
*/
|
|
36
|
+
export var TokenStandard;
|
|
37
|
+
(function (TokenStandard) {
|
|
38
|
+
TokenStandard["ERC20"] = "ERC20";
|
|
39
|
+
TokenStandard["ERC721"] = "ERC721";
|
|
40
|
+
TokenStandard["ERC1155"] = "ERC1155";
|
|
41
|
+
TokenStandard["SPL"] = "SPL";
|
|
42
|
+
TokenStandard["JETTON"] = "JETTON";
|
|
43
|
+
TokenStandard["STELLAR_ASSET"] = "STELLAR_ASSET";
|
|
44
|
+
TokenStandard["SUI_COIN"] = "SUI_COIN";
|
|
45
|
+
})(TokenStandard || (TokenStandard = {}));
|
|
46
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"AA8CA;;GAEG;AACH,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,+BAAkB,CAAA;IAClB,mCAAsB,CAAA;IACtB,6BAAgB,CAAA;IAChB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;AACrB,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,8BAAiB,CAAA;IACjB,0BAAa,CAAA;IACb,sCAAyB,CAAA;AAC3B,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AA2ID;;GAEG;AACH,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,oDAAmC,CAAA;IACnC,sCAAqB,CAAA;AACvB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,4BAAW,CAAA;IACX,kCAAiB,CAAA;IACjB,gDAA+B,CAAA;IAC/B,sCAAqB,CAAA;AACvB,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Chain, ChainCompatibility, getChainCompatibility, isEvmChain, CHAIN_IDS, CHAIN_NAMES, } from './chain.js';
|
|
2
|
+
export { RiskModule } from './modules.js';
|
|
3
|
+
export { RiskScore, RiskLevel, TypeOfAddress, TokenStandard } from './common.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAoBvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Risk analysis modules available for requests
|
|
3
|
+
*
|
|
4
|
+
* Use these to specify which analysis modules to run when making API requests.
|
|
5
|
+
* Requesting fewer modules can improve response time.
|
|
6
|
+
*/
|
|
7
|
+
export var RiskModule;
|
|
8
|
+
(function (RiskModule) {
|
|
9
|
+
// Core security analysis
|
|
10
|
+
/** Contract ownership, upgradeability, access controls */
|
|
11
|
+
RiskModule["GOVERNANCE_ANALYSIS"] = "governance_analysis";
|
|
12
|
+
/** Freezeable, mintable, blacklist, whitelist */
|
|
13
|
+
RiskModule["TOKEN_SECURITY"] = "token_security";
|
|
14
|
+
/** Static/dynamic code analysis, vulnerabilities */
|
|
15
|
+
RiskModule["CONTRACT_ANALYSIS"] = "contract_analysis";
|
|
16
|
+
/** Source code analysis, vulnerabilities */
|
|
17
|
+
RiskModule["SOURCE_CODE_ANALYSIS"] = "source_code_analysis";
|
|
18
|
+
// Financial risk analysis
|
|
19
|
+
/** Price, volatility, market cap, liquidity */
|
|
20
|
+
RiskModule["MARKET_DATA"] = "market_data";
|
|
21
|
+
/** Token distribution, concentration risks */
|
|
22
|
+
RiskModule["HOLDER_ANALYSIS"] = "holder_analysis";
|
|
23
|
+
/** Pool data, unlock schedules, LP analysis */
|
|
24
|
+
RiskModule["LIQUIDITY_ANALYSIS"] = "liquidity_analysis";
|
|
25
|
+
// Fraud and compliance
|
|
26
|
+
/** Hacker, drainer, rugpull detection */
|
|
27
|
+
RiskModule["FRAUD_DETECTION"] = "fraud_detection";
|
|
28
|
+
/** OFAC, sanctioned addresses */
|
|
29
|
+
RiskModule["SANCTIONS_COMPLIANCE"] = "sanctions_compliance";
|
|
30
|
+
/** Tornado cash, coin mixers */
|
|
31
|
+
RiskModule["MIXER_DETECTION"] = "mixer_detection";
|
|
32
|
+
// Address behavior analysis
|
|
33
|
+
/** Trading patterns, automated trading */
|
|
34
|
+
RiskModule["ADDRESS_BEHAVIOR"] = "address_behavior";
|
|
35
|
+
/** Address poisoning, wash trading */
|
|
36
|
+
RiskModule["TRANSACTION_ANALYSIS"] = "transaction_analysis";
|
|
37
|
+
/** Reported addresses, spam detection */
|
|
38
|
+
RiskModule["REPUTATION_ANALYSIS"] = "reputation_analysis";
|
|
39
|
+
// Chain-specific analysis
|
|
40
|
+
/** Solana-only risks (bundling, sniping) */
|
|
41
|
+
RiskModule["SOLANA_SPECIFIC"] = "solana_specific";
|
|
42
|
+
/** EVM-only risks (gas optimization, MEV) */
|
|
43
|
+
RiskModule["EVM_SPECIFIC"] = "evm_specific";
|
|
44
|
+
/** TON-only risks (jetton standards, etc.) */
|
|
45
|
+
RiskModule["TON_SPECIFIC"] = "ton_specific";
|
|
46
|
+
/** SUI-only risks (coin standards, object model) */
|
|
47
|
+
RiskModule["SUI_SPECIFIC"] = "sui_specific";
|
|
48
|
+
// Basic metadata (always fast)
|
|
49
|
+
/** Address type, age, balance checks */
|
|
50
|
+
RiskModule["BASIC_INFO"] = "basic_info";
|
|
51
|
+
// Ultra-fast module for core security flags
|
|
52
|
+
/** Only is_mintable, freezeable, is_metadata_immutable */
|
|
53
|
+
RiskModule["SECURITY_ESSENTIALS"] = "security_essentials";
|
|
54
|
+
// Fast fund flow screening with boolean indicators
|
|
55
|
+
/** Boolean flags for OFAC, hacker, mixer, drainer risks */
|
|
56
|
+
RiskModule["FUND_FLOW_SCREENING"] = "fund_flow_screening";
|
|
57
|
+
// Developer behavior and migration pattern analysis
|
|
58
|
+
/** Multi-platform developer behavior, token launch patterns */
|
|
59
|
+
RiskModule["DEVELOPER_MIGRATION"] = "developer_migration";
|
|
60
|
+
})(RiskModule || (RiskModule = {}));
|
|
61
|
+
//# sourceMappingURL=modules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../../src/types/modules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,UA4DX;AA5DD,WAAY,UAAU;IACpB,yBAAyB;IACzB,0DAA0D;IAC1D,yDAA2C,CAAA;IAC3C,iDAAiD;IACjD,+CAAiC,CAAA;IACjC,oDAAoD;IACpD,qDAAuC,CAAA;IACvC,4CAA4C;IAC5C,2DAA6C,CAAA;IAE7C,0BAA0B;IAC1B,+CAA+C;IAC/C,yCAA2B,CAAA;IAC3B,8CAA8C;IAC9C,iDAAmC,CAAA;IACnC,+CAA+C;IAC/C,uDAAyC,CAAA;IAEzC,uBAAuB;IACvB,yCAAyC;IACzC,iDAAmC,CAAA;IACnC,iCAAiC;IACjC,2DAA6C,CAAA;IAC7C,gCAAgC;IAChC,iDAAmC,CAAA;IAEnC,4BAA4B;IAC5B,0CAA0C;IAC1C,mDAAqC,CAAA;IACrC,sCAAsC;IACtC,2DAA6C,CAAA;IAC7C,yCAAyC;IACzC,yDAA2C,CAAA;IAE3C,0BAA0B;IAC1B,4CAA4C;IAC5C,iDAAmC,CAAA;IACnC,6CAA6C;IAC7C,2CAA6B,CAAA;IAC7B,8CAA8C;IAC9C,2CAA6B,CAAA;IAC7B,oDAAoD;IACpD,2CAA6B,CAAA;IAE7B,+BAA+B;IAC/B,wCAAwC;IACxC,uCAAyB,CAAA;IAEzB,4CAA4C;IAC5C,0DAA0D;IAC1D,yDAA2C,CAAA;IAE3C,mDAAmD;IACnD,2DAA2D;IAC3D,yDAA2C,CAAA;IAE3C,oDAAoD;IACpD,+DAA+D;IAC/D,yDAA2C,CAAA;AAC7C,CAAC,EA5DW,UAAU,KAAV,UAAU,QA4DrB"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Chain, isEvmChain } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validate an Ethereum address format
|
|
4
|
+
*/
|
|
5
|
+
export function isValidEvmAddress(address) {
|
|
6
|
+
return /^0x[a-fA-F0-9]{40}$/.test(address);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validate a Solana address format (base58)
|
|
10
|
+
*/
|
|
11
|
+
export function isValidSolanaAddress(address) {
|
|
12
|
+
// Base58 character set (no 0, O, I, l)
|
|
13
|
+
return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Validate a Bitcoin address format
|
|
17
|
+
*/
|
|
18
|
+
export function isValidBitcoinAddress(address) {
|
|
19
|
+
// P2PKH (starts with 1), P2SH (starts with 3), Bech32 (starts with bc1)
|
|
20
|
+
return /^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$/.test(address) || /^bc1[a-z0-9]{39,59}$/.test(address);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Validate a TON address format
|
|
24
|
+
*/
|
|
25
|
+
export function isValidTonAddress(address) {
|
|
26
|
+
// Raw format (48 bytes hex with workchain)
|
|
27
|
+
if (/^-?\d:[a-fA-F0-9]{64}$/.test(address)) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
// User-friendly format (base64)
|
|
31
|
+
if (/^[A-Za-z0-9_-]{48}$/.test(address)) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Validate a Sui address format
|
|
38
|
+
*/
|
|
39
|
+
export function isValidSuiAddress(address) {
|
|
40
|
+
return /^0x[a-fA-F0-9]{64}$/.test(address);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Validate a Stellar address format
|
|
44
|
+
*
|
|
45
|
+
* Supports both:
|
|
46
|
+
* - Standard account ID (G...)
|
|
47
|
+
* - Asset identifier (CODE:ISSUER)
|
|
48
|
+
*/
|
|
49
|
+
export function isValidStellarAddress(address) {
|
|
50
|
+
// Standard Stellar account ID
|
|
51
|
+
if (/^G[A-Z2-7]{55}$/.test(address)) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
// Asset identifier (CODE:ISSUER)
|
|
55
|
+
if (/^[A-Za-z0-9]{1,12}:G[A-Z2-7]{55}$/.test(address)) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Validate an address for a specific chain
|
|
62
|
+
*
|
|
63
|
+
* @param address - The address to validate
|
|
64
|
+
* @param chain - The blockchain to validate against
|
|
65
|
+
* @returns true if the address is valid for the chain
|
|
66
|
+
*/
|
|
67
|
+
export function isValidAddress(address, chain) {
|
|
68
|
+
if (!address || typeof address !== 'string') {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (isEvmChain(chain)) {
|
|
72
|
+
return isValidEvmAddress(address);
|
|
73
|
+
}
|
|
74
|
+
switch (chain) {
|
|
75
|
+
case Chain.SOL:
|
|
76
|
+
return isValidSolanaAddress(address);
|
|
77
|
+
case Chain.BTC:
|
|
78
|
+
return isValidBitcoinAddress(address);
|
|
79
|
+
case Chain.TON:
|
|
80
|
+
return isValidTonAddress(address);
|
|
81
|
+
case Chain.SUI:
|
|
82
|
+
return isValidSuiAddress(address);
|
|
83
|
+
case Chain.STELLAR:
|
|
84
|
+
return isValidStellarAddress(address);
|
|
85
|
+
default:
|
|
86
|
+
// Unknown chain, allow any non-empty string
|
|
87
|
+
return address.length > 0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Normalize an EVM address to checksum format
|
|
92
|
+
*/
|
|
93
|
+
export function normalizeEvmAddress(address) {
|
|
94
|
+
if (!isValidEvmAddress(address)) {
|
|
95
|
+
throw new Error(`Invalid EVM address: ${address}`);
|
|
96
|
+
}
|
|
97
|
+
return address.toLowerCase();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Normalize an address for a specific chain
|
|
101
|
+
*
|
|
102
|
+
* @param address - The address to normalize
|
|
103
|
+
* @param chain - The blockchain
|
|
104
|
+
* @returns The normalized address
|
|
105
|
+
*/
|
|
106
|
+
export function normalizeAddress(address, chain) {
|
|
107
|
+
if (isEvmChain(chain)) {
|
|
108
|
+
return normalizeEvmAddress(address);
|
|
109
|
+
}
|
|
110
|
+
// For non-EVM chains, return as-is
|
|
111
|
+
return address;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=address-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address-validation.js","sourceRoot":"","sources":["../../../src/utils/address-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { isValidAddress, isValidEvmAddress, isValidSolanaAddress, isValidBitcoinAddress, isValidTonAddress, isValidSuiAddress, isValidStellarAddress, normalizeAddress, normalizeEvmAddress, } from './address-validation.js';
|
|
2
|
+
export { isValidUrl } from './url-validation.js';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate that a string is a valid URL
|
|
3
|
+
*
|
|
4
|
+
* @param url - String to validate
|
|
5
|
+
* @returns True if the string is a valid URL
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* isValidUrl('https://example.com'); // true
|
|
10
|
+
* isValidUrl('http://example.com/path?query=1'); // true
|
|
11
|
+
* isValidUrl('not-a-url'); // false
|
|
12
|
+
* isValidUrl(''); // false
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export function isValidUrl(url) {
|
|
16
|
+
if (!url || typeof url !== 'string') {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
const parsed = new URL(url);
|
|
21
|
+
// Only allow http and https protocols
|
|
22
|
+
return parsed.protocol === 'http:' || parsed.protocol === 'https:';
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=url-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-validation.js","sourceRoot":"","sources":["../../../src/utils/url-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,sCAAsC;QACtC,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { WebacyClientConfig } from './config';
|
|
2
|
+
import { HttpClient, HttpResponse, RequestInterceptor, ResponseInterceptor, ErrorInterceptor } from './http';
|
|
3
|
+
import { Chain } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Base client class for Webacy SDK
|
|
6
|
+
*
|
|
7
|
+
* Provides shared functionality for all Webacy client implementations
|
|
8
|
+
* including HTTP client setup, authentication, and interceptors.
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class BaseClient {
|
|
11
|
+
protected readonly httpClient: HttpClient;
|
|
12
|
+
protected readonly config: Required<Pick<WebacyClientConfig, 'baseUrl' | 'apiVersion' | 'timeout'>> & WebacyClientConfig;
|
|
13
|
+
/**
|
|
14
|
+
* Default chain to use when chain is not specified in API calls
|
|
15
|
+
*/
|
|
16
|
+
readonly defaultChain?: Chain;
|
|
17
|
+
constructor(config: WebacyClientConfig);
|
|
18
|
+
/**
|
|
19
|
+
* Add a request interceptor
|
|
20
|
+
*
|
|
21
|
+
* Request interceptors are called before each request is sent.
|
|
22
|
+
* Use them to modify requests, add headers, or log requests.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* client.addRequestInterceptor((url, config) => {
|
|
27
|
+
* console.log(`Making request to ${url}`);
|
|
28
|
+
* return config;
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
addRequestInterceptor(interceptor: RequestInterceptor): void;
|
|
33
|
+
/**
|
|
34
|
+
* Add a response interceptor
|
|
35
|
+
*
|
|
36
|
+
* Response interceptors are called after each successful response.
|
|
37
|
+
* Use them to transform responses or log data.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* client.addResponseInterceptor((response) => {
|
|
42
|
+
* console.log(`Received ${response.status} response`);
|
|
43
|
+
* return response;
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
addResponseInterceptor(interceptor: ResponseInterceptor): void;
|
|
48
|
+
/**
|
|
49
|
+
* Add an error interceptor
|
|
50
|
+
*
|
|
51
|
+
* Error interceptors are called when a request fails.
|
|
52
|
+
* Use them to handle errors globally or transform error types.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* client.addErrorInterceptor((error) => {
|
|
57
|
+
* if (error instanceof RateLimitError) {
|
|
58
|
+
* console.warn('Rate limited, will retry...');
|
|
59
|
+
* }
|
|
60
|
+
* return error;
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
addErrorInterceptor(interceptor: ErrorInterceptor): void;
|
|
65
|
+
/**
|
|
66
|
+
* Make a GET request
|
|
67
|
+
*/
|
|
68
|
+
protected get<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>>;
|
|
69
|
+
/**
|
|
70
|
+
* Make a POST request
|
|
71
|
+
*/
|
|
72
|
+
protected post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>>;
|
|
73
|
+
/**
|
|
74
|
+
* Make a PUT request
|
|
75
|
+
*/
|
|
76
|
+
protected put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>>;
|
|
77
|
+
/**
|
|
78
|
+
* Make a DELETE request
|
|
79
|
+
*/
|
|
80
|
+
protected delete<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Options for protected request methods
|
|
84
|
+
*/
|
|
85
|
+
interface RequestOptions {
|
|
86
|
+
timeout?: number;
|
|
87
|
+
signal?: AbortSignal;
|
|
88
|
+
}
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=client-base.d.ts.map
|