@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.
Files changed (137) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +96 -0
  3. package/dist/cjs/client-base.js +134 -0
  4. package/dist/cjs/client-base.js.map +1 -0
  5. package/dist/cjs/config.js +30 -0
  6. package/dist/cjs/config.js.map +1 -0
  7. package/dist/cjs/errors/authentication.js +35 -0
  8. package/dist/cjs/errors/authentication.js.map +1 -0
  9. package/dist/cjs/errors/base.js +76 -0
  10. package/dist/cjs/errors/base.js.map +1 -0
  11. package/dist/cjs/errors/index.js +16 -0
  12. package/dist/cjs/errors/index.js.map +1 -0
  13. package/dist/cjs/errors/network.js +45 -0
  14. package/dist/cjs/errors/network.js.map +1 -0
  15. package/dist/cjs/errors/not-found.js +38 -0
  16. package/dist/cjs/errors/not-found.js.map +1 -0
  17. package/dist/cjs/errors/rate-limit.js +53 -0
  18. package/dist/cjs/errors/rate-limit.js.map +1 -0
  19. package/dist/cjs/errors/validation.js +49 -0
  20. package/dist/cjs/errors/validation.js.map +1 -0
  21. package/dist/cjs/http/client.js +393 -0
  22. package/dist/cjs/http/client.js.map +1 -0
  23. package/dist/cjs/http/index.js +11 -0
  24. package/dist/cjs/http/index.js.map +1 -0
  25. package/dist/cjs/http/retry.js +43 -0
  26. package/dist/cjs/http/retry.js.map +1 -0
  27. package/dist/cjs/index.js +52 -0
  28. package/dist/cjs/index.js.map +1 -0
  29. package/dist/cjs/package.json +1 -0
  30. package/dist/cjs/resources/base.js +43 -0
  31. package/dist/cjs/resources/base.js.map +1 -0
  32. package/dist/cjs/resources/index.js +6 -0
  33. package/dist/cjs/resources/index.js.map +1 -0
  34. package/dist/cjs/types/chain.js +114 -0
  35. package/dist/cjs/types/chain.js.map +1 -0
  36. package/dist/cjs/types/common.js +49 -0
  37. package/dist/cjs/types/common.js.map +1 -0
  38. package/dist/cjs/types/index.js +18 -0
  39. package/dist/cjs/types/index.js.map +1 -0
  40. package/dist/cjs/types/modules.js +64 -0
  41. package/dist/cjs/types/modules.js.map +1 -0
  42. package/dist/cjs/utils/address-validation.js +124 -0
  43. package/dist/cjs/utils/address-validation.js.map +1 -0
  44. package/dist/cjs/utils/index.js +16 -0
  45. package/dist/cjs/utils/index.js.map +1 -0
  46. package/dist/cjs/utils/url-validation.js +31 -0
  47. package/dist/cjs/utils/url-validation.js.map +1 -0
  48. package/dist/esm/client-base.js +130 -0
  49. package/dist/esm/client-base.js.map +1 -0
  50. package/dist/esm/config.js +26 -0
  51. package/dist/esm/config.js.map +1 -0
  52. package/dist/esm/errors/authentication.js +31 -0
  53. package/dist/esm/errors/authentication.js.map +1 -0
  54. package/dist/esm/errors/base.js +72 -0
  55. package/dist/esm/errors/base.js.map +1 -0
  56. package/dist/esm/errors/index.js +7 -0
  57. package/dist/esm/errors/index.js.map +1 -0
  58. package/dist/esm/errors/network.js +41 -0
  59. package/dist/esm/errors/network.js.map +1 -0
  60. package/dist/esm/errors/not-found.js +34 -0
  61. package/dist/esm/errors/not-found.js.map +1 -0
  62. package/dist/esm/errors/rate-limit.js +49 -0
  63. package/dist/esm/errors/rate-limit.js.map +1 -0
  64. package/dist/esm/errors/validation.js +45 -0
  65. package/dist/esm/errors/validation.js.map +1 -0
  66. package/dist/esm/http/client.js +389 -0
  67. package/dist/esm/http/client.js.map +1 -0
  68. package/dist/esm/http/index.js +3 -0
  69. package/dist/esm/http/index.js.map +1 -0
  70. package/dist/esm/http/retry.js +37 -0
  71. package/dist/esm/http/retry.js.map +1 -0
  72. package/dist/esm/index.js +15 -0
  73. package/dist/esm/index.js.map +1 -0
  74. package/dist/esm/package.json +1 -0
  75. package/dist/esm/resources/base.js +39 -0
  76. package/dist/esm/resources/base.js.map +1 -0
  77. package/dist/esm/resources/index.js +2 -0
  78. package/dist/esm/resources/index.js.map +1 -0
  79. package/dist/esm/types/chain.js +109 -0
  80. package/dist/esm/types/chain.js.map +1 -0
  81. package/dist/esm/types/common.js +46 -0
  82. package/dist/esm/types/common.js.map +1 -0
  83. package/dist/esm/types/index.js +4 -0
  84. package/dist/esm/types/index.js.map +1 -0
  85. package/dist/esm/types/modules.js +61 -0
  86. package/dist/esm/types/modules.js.map +1 -0
  87. package/dist/esm/utils/address-validation.js +113 -0
  88. package/dist/esm/utils/address-validation.js.map +1 -0
  89. package/dist/esm/utils/index.js +3 -0
  90. package/dist/esm/utils/index.js.map +1 -0
  91. package/dist/esm/utils/url-validation.js +28 -0
  92. package/dist/esm/utils/url-validation.js.map +1 -0
  93. package/dist/types/client-base.d.ts +90 -0
  94. package/dist/types/client-base.d.ts.map +1 -0
  95. package/dist/types/config.d.ts +124 -0
  96. package/dist/types/config.d.ts.map +1 -0
  97. package/dist/types/errors/authentication.d.ts +24 -0
  98. package/dist/types/errors/authentication.d.ts.map +1 -0
  99. package/dist/types/errors/base.d.ts +53 -0
  100. package/dist/types/errors/base.d.ts.map +1 -0
  101. package/dist/types/errors/index.d.ts +7 -0
  102. package/dist/types/errors/index.d.ts.map +1 -0
  103. package/dist/types/errors/network.d.ts +30 -0
  104. package/dist/types/errors/network.d.ts.map +1 -0
  105. package/dist/types/errors/not-found.d.ts +27 -0
  106. package/dist/types/errors/not-found.d.ts.map +1 -0
  107. package/dist/types/errors/rate-limit.d.ts +37 -0
  108. package/dist/types/errors/rate-limit.d.ts.map +1 -0
  109. package/dist/types/errors/validation.d.ts +34 -0
  110. package/dist/types/errors/validation.d.ts.map +1 -0
  111. package/dist/types/http/client.d.ts +160 -0
  112. package/dist/types/http/client.d.ts.map +1 -0
  113. package/dist/types/http/index.d.ts +3 -0
  114. package/dist/types/http/index.d.ts.map +1 -0
  115. package/dist/types/http/retry.d.ts +32 -0
  116. package/dist/types/http/retry.d.ts.map +1 -0
  117. package/dist/types/index.d.ts +8 -0
  118. package/dist/types/index.d.ts.map +1 -0
  119. package/dist/types/resources/base.d.ts +26 -0
  120. package/dist/types/resources/base.d.ts.map +1 -0
  121. package/dist/types/resources/index.d.ts +2 -0
  122. package/dist/types/resources/index.d.ts.map +1 -0
  123. package/dist/types/types/chain.d.ts +60 -0
  124. package/dist/types/types/chain.d.ts.map +1 -0
  125. package/dist/types/types/common.d.ts +251 -0
  126. package/dist/types/types/common.d.ts.map +1 -0
  127. package/dist/types/types/index.d.ts +5 -0
  128. package/dist/types/types/index.d.ts.map +1 -0
  129. package/dist/types/types/modules.d.ts +51 -0
  130. package/dist/types/types/modules.d.ts.map +1 -0
  131. package/dist/types/utils/address-validation.d.ts +50 -0
  132. package/dist/types/utils/address-validation.d.ts.map +1 -0
  133. package/dist/types/utils/index.d.ts +3 -0
  134. package/dist/types/utils/index.d.ts.map +1 -0
  135. package/dist/types/utils/url-validation.d.ts +16 -0
  136. package/dist/types/utils/url-validation.d.ts.map +1 -0
  137. package/package.json +64 -0
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CHAIN_NAMES = exports.CHAIN_IDS = exports.ChainCompatibility = exports.Chain = void 0;
4
+ exports.getChainCompatibility = getChainCompatibility;
5
+ exports.isEvmChain = isEvmChain;
6
+ /**
7
+ * Supported blockchain networks
8
+ */
9
+ var Chain;
10
+ (function (Chain) {
11
+ /** Ethereum Mainnet */
12
+ Chain["ETH"] = "eth";
13
+ /** Ethereum Sepolia Testnet */
14
+ Chain["SEP"] = "sep";
15
+ /** Arbitrum One */
16
+ Chain["ARB"] = "arb";
17
+ /** Polygon (MATIC) */
18
+ Chain["POL"] = "pol";
19
+ /** Solana */
20
+ Chain["SOL"] = "sol";
21
+ /** Optimism */
22
+ Chain["OPT"] = "opt";
23
+ /** Base */
24
+ Chain["BASE"] = "base";
25
+ /** BNB Smart Chain */
26
+ Chain["BSC"] = "bsc";
27
+ /** TON (The Open Network) */
28
+ Chain["TON"] = "ton";
29
+ /** Sei */
30
+ Chain["SEI"] = "sei";
31
+ /** Bitcoin */
32
+ Chain["BTC"] = "btc";
33
+ /** Sui */
34
+ Chain["SUI"] = "sui";
35
+ /** Stellar */
36
+ Chain["STELLAR"] = "stellar";
37
+ })(Chain || (exports.Chain = Chain = {}));
38
+ /**
39
+ * Chain compatibility groups for feature detection
40
+ */
41
+ var ChainCompatibility;
42
+ (function (ChainCompatibility) {
43
+ ChainCompatibility["EVM"] = "EVM";
44
+ ChainCompatibility["SOLANA"] = "SOLANA";
45
+ ChainCompatibility["TON"] = "TON";
46
+ ChainCompatibility["BTC"] = "BTC";
47
+ ChainCompatibility["SEI"] = "SEI";
48
+ ChainCompatibility["SUI"] = "SUI";
49
+ ChainCompatibility["STELLAR"] = "STELLAR";
50
+ })(ChainCompatibility || (exports.ChainCompatibility = ChainCompatibility = {}));
51
+ /**
52
+ * Get the compatibility group for a chain
53
+ */
54
+ function getChainCompatibility(chain) {
55
+ switch (chain) {
56
+ case Chain.ETH:
57
+ case Chain.SEP:
58
+ case Chain.ARB:
59
+ case Chain.POL:
60
+ case Chain.OPT:
61
+ case Chain.BASE:
62
+ case Chain.BSC:
63
+ return ChainCompatibility.EVM;
64
+ case Chain.SOL:
65
+ return ChainCompatibility.SOLANA;
66
+ case Chain.TON:
67
+ return ChainCompatibility.TON;
68
+ case Chain.BTC:
69
+ return ChainCompatibility.BTC;
70
+ case Chain.SEI:
71
+ return ChainCompatibility.SEI;
72
+ case Chain.SUI:
73
+ return ChainCompatibility.SUI;
74
+ case Chain.STELLAR:
75
+ return ChainCompatibility.STELLAR;
76
+ }
77
+ }
78
+ /**
79
+ * Check if a chain is EVM-compatible
80
+ */
81
+ function isEvmChain(chain) {
82
+ return getChainCompatibility(chain) === ChainCompatibility.EVM;
83
+ }
84
+ /**
85
+ * Chain ID mapping for EVM chains
86
+ */
87
+ exports.CHAIN_IDS = {
88
+ [Chain.ETH]: 1,
89
+ [Chain.SEP]: 11155111,
90
+ [Chain.BSC]: 56,
91
+ [Chain.POL]: 137,
92
+ [Chain.OPT]: 10,
93
+ [Chain.ARB]: 42161,
94
+ [Chain.BASE]: 8453,
95
+ };
96
+ /**
97
+ * Human-readable chain names
98
+ */
99
+ exports.CHAIN_NAMES = {
100
+ [Chain.ETH]: 'Ethereum',
101
+ [Chain.SEP]: 'Sepolia',
102
+ [Chain.ARB]: 'Arbitrum',
103
+ [Chain.POL]: 'Polygon',
104
+ [Chain.SOL]: 'Solana',
105
+ [Chain.OPT]: 'Optimism',
106
+ [Chain.BASE]: 'Base',
107
+ [Chain.BSC]: 'BNB Smart Chain',
108
+ [Chain.TON]: 'TON',
109
+ [Chain.SEI]: 'Sei',
110
+ [Chain.BTC]: 'Bitcoin',
111
+ [Chain.SUI]: 'Sui',
112
+ [Chain.STELLAR]: 'Stellar',
113
+ };
114
+ //# 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,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenStandard = exports.TypeOfAddress = exports.RiskLevel = exports.RiskScore = void 0;
4
+ /**
5
+ * Risk score classification
6
+ */
7
+ var RiskScore;
8
+ (function (RiskScore) {
9
+ RiskScore["HIGH"] = "High Risk";
10
+ RiskScore["MEDIUM"] = "Medium Risk";
11
+ RiskScore["LOW"] = "Low Risk";
12
+ RiskScore["TRUSTED"] = "Trusted";
13
+ RiskScore["UNKNOWN"] = "Unknown";
14
+ })(RiskScore || (exports.RiskScore = RiskScore = {}));
15
+ /**
16
+ * Risk level enum
17
+ */
18
+ var RiskLevel;
19
+ (function (RiskLevel) {
20
+ RiskLevel["Low"] = "low";
21
+ RiskLevel["Medium"] = "medium";
22
+ RiskLevel["High"] = "high";
23
+ RiskLevel["Suspicious"] = "suspicious";
24
+ })(RiskLevel || (exports.RiskLevel = RiskLevel = {}));
25
+ /**
26
+ * Address type classification
27
+ */
28
+ var TypeOfAddress;
29
+ (function (TypeOfAddress) {
30
+ TypeOfAddress["EOA"] = "EOA";
31
+ TypeOfAddress["CONTRACT"] = "CONTRACT";
32
+ TypeOfAddress["TOKEN"] = "TOKEN";
33
+ TypeOfAddress["CONTRACT_WALLET"] = "CONTRACT_WALLET";
34
+ TypeOfAddress["MULTISIG"] = "MULTISIG";
35
+ })(TypeOfAddress || (exports.TypeOfAddress = TypeOfAddress = {}));
36
+ /**
37
+ * Token standard
38
+ */
39
+ var TokenStandard;
40
+ (function (TokenStandard) {
41
+ TokenStandard["ERC20"] = "ERC20";
42
+ TokenStandard["ERC721"] = "ERC721";
43
+ TokenStandard["ERC1155"] = "ERC1155";
44
+ TokenStandard["SPL"] = "SPL";
45
+ TokenStandard["JETTON"] = "JETTON";
46
+ TokenStandard["STELLAR_ASSET"] = "STELLAR_ASSET";
47
+ TokenStandard["SUI_COIN"] = "SUI_COIN";
48
+ })(TokenStandard || (exports.TokenStandard = TokenStandard = {}));
49
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":";;;AA8CA;;GAEG;AACH,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,+BAAkB,CAAA;IAClB,mCAAsB,CAAA;IACtB,6BAAgB,CAAA;IAChB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;AACrB,CAAC,EANW,SAAS,yBAAT,SAAS,QAMpB;AAED;;GAEG;AACH,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,8BAAiB,CAAA;IACjB,0BAAa,CAAA;IACb,sCAAyB,CAAA;AAC3B,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AA2ID;;GAEG;AACH,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,oDAAmC,CAAA;IACnC,sCAAqB,CAAA;AACvB,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAED;;GAEG;AACH,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,6BAAb,aAAa,QAQxB"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenStandard = exports.TypeOfAddress = exports.RiskLevel = exports.RiskScore = exports.RiskModule = exports.CHAIN_NAMES = exports.CHAIN_IDS = exports.isEvmChain = exports.getChainCompatibility = exports.ChainCompatibility = exports.Chain = void 0;
4
+ var chain_1 = require("./chain");
5
+ Object.defineProperty(exports, "Chain", { enumerable: true, get: function () { return chain_1.Chain; } });
6
+ Object.defineProperty(exports, "ChainCompatibility", { enumerable: true, get: function () { return chain_1.ChainCompatibility; } });
7
+ Object.defineProperty(exports, "getChainCompatibility", { enumerable: true, get: function () { return chain_1.getChainCompatibility; } });
8
+ Object.defineProperty(exports, "isEvmChain", { enumerable: true, get: function () { return chain_1.isEvmChain; } });
9
+ Object.defineProperty(exports, "CHAIN_IDS", { enumerable: true, get: function () { return chain_1.CHAIN_IDS; } });
10
+ Object.defineProperty(exports, "CHAIN_NAMES", { enumerable: true, get: function () { return chain_1.CHAIN_NAMES; } });
11
+ var modules_1 = require("./modules");
12
+ Object.defineProperty(exports, "RiskModule", { enumerable: true, get: function () { return modules_1.RiskModule; } });
13
+ var common_1 = require("./common");
14
+ Object.defineProperty(exports, "RiskScore", { enumerable: true, get: function () { return common_1.RiskScore; } });
15
+ Object.defineProperty(exports, "RiskLevel", { enumerable: true, get: function () { return common_1.RiskLevel; } });
16
+ Object.defineProperty(exports, "TypeOfAddress", { enumerable: true, get: function () { return common_1.TypeOfAddress; } });
17
+ Object.defineProperty(exports, "TokenStandard", { enumerable: true, get: function () { return common_1.TokenStandard; } });
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,iCAOiB;AANf,8FAAA,KAAK,OAAA;AACL,2GAAA,kBAAkB,OAAA;AAClB,8GAAA,qBAAqB,OAAA;AACrB,mGAAA,UAAU,OAAA;AACV,kGAAA,SAAS,OAAA;AACT,oGAAA,WAAW,OAAA;AAGb,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAoBnB,mCAA8E;AAArE,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,uGAAA,aAAa,OAAA"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RiskModule = void 0;
4
+ /**
5
+ * Risk analysis modules available for requests
6
+ *
7
+ * Use these to specify which analysis modules to run when making API requests.
8
+ * Requesting fewer modules can improve response time.
9
+ */
10
+ var RiskModule;
11
+ (function (RiskModule) {
12
+ // Core security analysis
13
+ /** Contract ownership, upgradeability, access controls */
14
+ RiskModule["GOVERNANCE_ANALYSIS"] = "governance_analysis";
15
+ /** Freezeable, mintable, blacklist, whitelist */
16
+ RiskModule["TOKEN_SECURITY"] = "token_security";
17
+ /** Static/dynamic code analysis, vulnerabilities */
18
+ RiskModule["CONTRACT_ANALYSIS"] = "contract_analysis";
19
+ /** Source code analysis, vulnerabilities */
20
+ RiskModule["SOURCE_CODE_ANALYSIS"] = "source_code_analysis";
21
+ // Financial risk analysis
22
+ /** Price, volatility, market cap, liquidity */
23
+ RiskModule["MARKET_DATA"] = "market_data";
24
+ /** Token distribution, concentration risks */
25
+ RiskModule["HOLDER_ANALYSIS"] = "holder_analysis";
26
+ /** Pool data, unlock schedules, LP analysis */
27
+ RiskModule["LIQUIDITY_ANALYSIS"] = "liquidity_analysis";
28
+ // Fraud and compliance
29
+ /** Hacker, drainer, rugpull detection */
30
+ RiskModule["FRAUD_DETECTION"] = "fraud_detection";
31
+ /** OFAC, sanctioned addresses */
32
+ RiskModule["SANCTIONS_COMPLIANCE"] = "sanctions_compliance";
33
+ /** Tornado cash, coin mixers */
34
+ RiskModule["MIXER_DETECTION"] = "mixer_detection";
35
+ // Address behavior analysis
36
+ /** Trading patterns, automated trading */
37
+ RiskModule["ADDRESS_BEHAVIOR"] = "address_behavior";
38
+ /** Address poisoning, wash trading */
39
+ RiskModule["TRANSACTION_ANALYSIS"] = "transaction_analysis";
40
+ /** Reported addresses, spam detection */
41
+ RiskModule["REPUTATION_ANALYSIS"] = "reputation_analysis";
42
+ // Chain-specific analysis
43
+ /** Solana-only risks (bundling, sniping) */
44
+ RiskModule["SOLANA_SPECIFIC"] = "solana_specific";
45
+ /** EVM-only risks (gas optimization, MEV) */
46
+ RiskModule["EVM_SPECIFIC"] = "evm_specific";
47
+ /** TON-only risks (jetton standards, etc.) */
48
+ RiskModule["TON_SPECIFIC"] = "ton_specific";
49
+ /** SUI-only risks (coin standards, object model) */
50
+ RiskModule["SUI_SPECIFIC"] = "sui_specific";
51
+ // Basic metadata (always fast)
52
+ /** Address type, age, balance checks */
53
+ RiskModule["BASIC_INFO"] = "basic_info";
54
+ // Ultra-fast module for core security flags
55
+ /** Only is_mintable, freezeable, is_metadata_immutable */
56
+ RiskModule["SECURITY_ESSENTIALS"] = "security_essentials";
57
+ // Fast fund flow screening with boolean indicators
58
+ /** Boolean flags for OFAC, hacker, mixer, drainer risks */
59
+ RiskModule["FUND_FLOW_SCREENING"] = "fund_flow_screening";
60
+ // Developer behavior and migration pattern analysis
61
+ /** Multi-platform developer behavior, token launch patterns */
62
+ RiskModule["DEVELOPER_MIGRATION"] = "developer_migration";
63
+ })(RiskModule || (exports.RiskModule = RiskModule = {}));
64
+ //# sourceMappingURL=modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../../src/types/modules.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,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,0BAAV,UAAU,QA4DrB"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidEvmAddress = isValidEvmAddress;
4
+ exports.isValidSolanaAddress = isValidSolanaAddress;
5
+ exports.isValidBitcoinAddress = isValidBitcoinAddress;
6
+ exports.isValidTonAddress = isValidTonAddress;
7
+ exports.isValidSuiAddress = isValidSuiAddress;
8
+ exports.isValidStellarAddress = isValidStellarAddress;
9
+ exports.isValidAddress = isValidAddress;
10
+ exports.normalizeEvmAddress = normalizeEvmAddress;
11
+ exports.normalizeAddress = normalizeAddress;
12
+ const types_1 = require("../types");
13
+ /**
14
+ * Validate an Ethereum address format
15
+ */
16
+ function isValidEvmAddress(address) {
17
+ return /^0x[a-fA-F0-9]{40}$/.test(address);
18
+ }
19
+ /**
20
+ * Validate a Solana address format (base58)
21
+ */
22
+ function isValidSolanaAddress(address) {
23
+ // Base58 character set (no 0, O, I, l)
24
+ return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);
25
+ }
26
+ /**
27
+ * Validate a Bitcoin address format
28
+ */
29
+ function isValidBitcoinAddress(address) {
30
+ // P2PKH (starts with 1), P2SH (starts with 3), Bech32 (starts with bc1)
31
+ return /^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$/.test(address) || /^bc1[a-z0-9]{39,59}$/.test(address);
32
+ }
33
+ /**
34
+ * Validate a TON address format
35
+ */
36
+ function isValidTonAddress(address) {
37
+ // Raw format (48 bytes hex with workchain)
38
+ if (/^-?\d:[a-fA-F0-9]{64}$/.test(address)) {
39
+ return true;
40
+ }
41
+ // User-friendly format (base64)
42
+ if (/^[A-Za-z0-9_-]{48}$/.test(address)) {
43
+ return true;
44
+ }
45
+ return false;
46
+ }
47
+ /**
48
+ * Validate a Sui address format
49
+ */
50
+ function isValidSuiAddress(address) {
51
+ return /^0x[a-fA-F0-9]{64}$/.test(address);
52
+ }
53
+ /**
54
+ * Validate a Stellar address format
55
+ *
56
+ * Supports both:
57
+ * - Standard account ID (G...)
58
+ * - Asset identifier (CODE:ISSUER)
59
+ */
60
+ function isValidStellarAddress(address) {
61
+ // Standard Stellar account ID
62
+ if (/^G[A-Z2-7]{55}$/.test(address)) {
63
+ return true;
64
+ }
65
+ // Asset identifier (CODE:ISSUER)
66
+ if (/^[A-Za-z0-9]{1,12}:G[A-Z2-7]{55}$/.test(address)) {
67
+ return true;
68
+ }
69
+ return false;
70
+ }
71
+ /**
72
+ * Validate an address for a specific chain
73
+ *
74
+ * @param address - The address to validate
75
+ * @param chain - The blockchain to validate against
76
+ * @returns true if the address is valid for the chain
77
+ */
78
+ function isValidAddress(address, chain) {
79
+ if (!address || typeof address !== 'string') {
80
+ return false;
81
+ }
82
+ if ((0, types_1.isEvmChain)(chain)) {
83
+ return isValidEvmAddress(address);
84
+ }
85
+ switch (chain) {
86
+ case types_1.Chain.SOL:
87
+ return isValidSolanaAddress(address);
88
+ case types_1.Chain.BTC:
89
+ return isValidBitcoinAddress(address);
90
+ case types_1.Chain.TON:
91
+ return isValidTonAddress(address);
92
+ case types_1.Chain.SUI:
93
+ return isValidSuiAddress(address);
94
+ case types_1.Chain.STELLAR:
95
+ return isValidStellarAddress(address);
96
+ default:
97
+ // Unknown chain, allow any non-empty string
98
+ return address.length > 0;
99
+ }
100
+ }
101
+ /**
102
+ * Normalize an EVM address to checksum format
103
+ */
104
+ function normalizeEvmAddress(address) {
105
+ if (!isValidEvmAddress(address)) {
106
+ throw new Error(`Invalid EVM address: ${address}`);
107
+ }
108
+ return address.toLowerCase();
109
+ }
110
+ /**
111
+ * Normalize an address for a specific chain
112
+ *
113
+ * @param address - The address to normalize
114
+ * @param chain - The blockchain
115
+ * @returns The normalized address
116
+ */
117
+ function normalizeAddress(address, chain) {
118
+ if ((0, types_1.isEvmChain)(chain)) {
119
+ return normalizeEvmAddress(address);
120
+ }
121
+ // For non-EVM chains, return as-is
122
+ return address;
123
+ }
124
+ //# 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,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidUrl = exports.normalizeEvmAddress = exports.normalizeAddress = exports.isValidStellarAddress = exports.isValidSuiAddress = exports.isValidTonAddress = exports.isValidBitcoinAddress = exports.isValidSolanaAddress = exports.isValidEvmAddress = exports.isValidAddress = void 0;
4
+ var address_validation_1 = require("./address-validation");
5
+ Object.defineProperty(exports, "isValidAddress", { enumerable: true, get: function () { return address_validation_1.isValidAddress; } });
6
+ Object.defineProperty(exports, "isValidEvmAddress", { enumerable: true, get: function () { return address_validation_1.isValidEvmAddress; } });
7
+ Object.defineProperty(exports, "isValidSolanaAddress", { enumerable: true, get: function () { return address_validation_1.isValidSolanaAddress; } });
8
+ Object.defineProperty(exports, "isValidBitcoinAddress", { enumerable: true, get: function () { return address_validation_1.isValidBitcoinAddress; } });
9
+ Object.defineProperty(exports, "isValidTonAddress", { enumerable: true, get: function () { return address_validation_1.isValidTonAddress; } });
10
+ Object.defineProperty(exports, "isValidSuiAddress", { enumerable: true, get: function () { return address_validation_1.isValidSuiAddress; } });
11
+ Object.defineProperty(exports, "isValidStellarAddress", { enumerable: true, get: function () { return address_validation_1.isValidStellarAddress; } });
12
+ Object.defineProperty(exports, "normalizeAddress", { enumerable: true, get: function () { return address_validation_1.normalizeAddress; } });
13
+ Object.defineProperty(exports, "normalizeEvmAddress", { enumerable: true, get: function () { return address_validation_1.normalizeEvmAddress; } });
14
+ var url_validation_1 = require("./url-validation");
15
+ Object.defineProperty(exports, "isValidUrl", { enumerable: true, get: function () { return url_validation_1.isValidUrl; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,2DAU8B;AAT5B,oHAAA,cAAc,OAAA;AACd,uHAAA,iBAAiB,OAAA;AACjB,0HAAA,oBAAoB,OAAA;AACpB,2HAAA,qBAAqB,OAAA;AACrB,uHAAA,iBAAiB,OAAA;AACjB,uHAAA,iBAAiB,OAAA;AACjB,2HAAA,qBAAqB,OAAA;AACrB,sHAAA,gBAAgB,OAAA;AAChB,yHAAA,mBAAmB,OAAA;AAGrB,mDAA8C;AAArC,4GAAA,UAAU,OAAA"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidUrl = isValidUrl;
4
+ /**
5
+ * Validate that a string is a valid URL
6
+ *
7
+ * @param url - String to validate
8
+ * @returns True if the string is a valid URL
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * isValidUrl('https://example.com'); // true
13
+ * isValidUrl('http://example.com/path?query=1'); // true
14
+ * isValidUrl('not-a-url'); // false
15
+ * isValidUrl(''); // false
16
+ * ```
17
+ */
18
+ function isValidUrl(url) {
19
+ if (!url || typeof url !== 'string') {
20
+ return false;
21
+ }
22
+ try {
23
+ const parsed = new URL(url);
24
+ // Only allow http and https protocols
25
+ return parsed.protocol === 'http:' || parsed.protocol === 'https:';
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ }
31
+ //# sourceMappingURL=url-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-validation.js","sourceRoot":"","sources":["../../../src/utils/url-validation.ts"],"names":[],"mappings":";;AAcA,gCAYC;AA1BD;;;;;;;;;;;;;GAaG;AACH,SAAgB,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,130 @@
1
+ import { DEFAULT_CONFIG, buildBaseUrl } from './config.js';
2
+ import { HttpClient, } from './http/index.js';
3
+ import { AuthenticationError } from './errors/index.js';
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 class BaseClient {
11
+ httpClient;
12
+ config;
13
+ /**
14
+ * Default chain to use when chain is not specified in API calls
15
+ */
16
+ defaultChain;
17
+ constructor(config) {
18
+ if (!config.apiKey) {
19
+ throw new AuthenticationError('API key is required');
20
+ }
21
+ this.config = {
22
+ ...config,
23
+ baseUrl: config.baseUrl ?? DEFAULT_CONFIG.baseUrl,
24
+ apiVersion: config.apiVersion ?? DEFAULT_CONFIG.apiVersion,
25
+ timeout: config.timeout ?? DEFAULT_CONFIG.timeout,
26
+ };
27
+ this.defaultChain = config.defaultChain;
28
+ this.httpClient = new HttpClient({
29
+ baseUrl: buildBaseUrl(this.config),
30
+ timeout: this.config.timeout,
31
+ retry: config.retry,
32
+ debug: config.debug,
33
+ logger: config.logger,
34
+ headers: {
35
+ 'x-api-key': config.apiKey,
36
+ ...config.headers,
37
+ },
38
+ });
39
+ }
40
+ /**
41
+ * Add a request interceptor
42
+ *
43
+ * Request interceptors are called before each request is sent.
44
+ * Use them to modify requests, add headers, or log requests.
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * client.addRequestInterceptor((url, config) => {
49
+ * console.log(`Making request to ${url}`);
50
+ * return config;
51
+ * });
52
+ * ```
53
+ */
54
+ addRequestInterceptor(interceptor) {
55
+ this.httpClient.addRequestInterceptor(interceptor);
56
+ }
57
+ /**
58
+ * Add a response interceptor
59
+ *
60
+ * Response interceptors are called after each successful response.
61
+ * Use them to transform responses or log data.
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * client.addResponseInterceptor((response) => {
66
+ * console.log(`Received ${response.status} response`);
67
+ * return response;
68
+ * });
69
+ * ```
70
+ */
71
+ addResponseInterceptor(interceptor) {
72
+ this.httpClient.addResponseInterceptor(interceptor);
73
+ }
74
+ /**
75
+ * Add an error interceptor
76
+ *
77
+ * Error interceptors are called when a request fails.
78
+ * Use them to handle errors globally or transform error types.
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * client.addErrorInterceptor((error) => {
83
+ * if (error instanceof RateLimitError) {
84
+ * console.warn('Rate limited, will retry...');
85
+ * }
86
+ * return error;
87
+ * });
88
+ * ```
89
+ */
90
+ addErrorInterceptor(interceptor) {
91
+ this.httpClient.addErrorInterceptor(interceptor);
92
+ }
93
+ /**
94
+ * Make a GET request
95
+ */
96
+ get(path, options) {
97
+ return this.httpClient.get(path, {
98
+ timeout: options?.timeout,
99
+ signal: options?.signal,
100
+ });
101
+ }
102
+ /**
103
+ * Make a POST request
104
+ */
105
+ post(path, body, options) {
106
+ return this.httpClient.post(path, body, {
107
+ timeout: options?.timeout,
108
+ signal: options?.signal,
109
+ });
110
+ }
111
+ /**
112
+ * Make a PUT request
113
+ */
114
+ put(path, body, options) {
115
+ return this.httpClient.put(path, body, {
116
+ timeout: options?.timeout,
117
+ signal: options?.signal,
118
+ });
119
+ }
120
+ /**
121
+ * Make a DELETE request
122
+ */
123
+ delete(path, options) {
124
+ return this.httpClient.delete(path, {
125
+ timeout: options?.timeout,
126
+ signal: options?.signal,
127
+ });
128
+ }
129
+ }
130
+ //# sourceMappingURL=client-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-base.js","sourceRoot":"","sources":["../../src/client-base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Default console logger implementation
3
+ */
4
+ export const defaultLogger = {
5
+ debug: (message, data) => console.debug(`[Webacy SDK] ${message}`, data ?? ''),
6
+ info: (message, data) => console.info(`[Webacy SDK] ${message}`, data ?? ''),
7
+ warn: (message, data) => console.warn(`[Webacy SDK] ${message}`, data ?? ''),
8
+ error: (message, data) => console.error(`[Webacy SDK] ${message}`, data ?? ''),
9
+ };
10
+ /**
11
+ * Default API configuration
12
+ */
13
+ export const DEFAULT_CONFIG = {
14
+ baseUrl: 'https://api.webacy.com',
15
+ apiVersion: 'v2',
16
+ timeout: 30000,
17
+ };
18
+ /**
19
+ * Build the full base URL from configuration
20
+ */
21
+ export function buildBaseUrl(config) {
22
+ const baseUrl = config.baseUrl ?? DEFAULT_CONFIG.baseUrl;
23
+ // API doesn't need /api/v2 prefix - endpoints are directly on base URL
24
+ return baseUrl.replace(/\/$/, '');
25
+ }
26
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;IAC9E,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;IAC5E,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;IAC5E,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;CAC/E,CAAC;AAwGF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,wBAAwB;IACjC,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,KAAK;CACN,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC;IACzD,uEAAuE;IACvE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { WebacyError } from './base.js';
2
+ /**
3
+ * Thrown when API key is invalid or missing
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * try {
8
+ * await client.addresses.analyze(address, { chain: Chain.ETH });
9
+ * } catch (error) {
10
+ * if (error instanceof AuthenticationError) {
11
+ * console.error('Authentication failed:', error.message);
12
+ * console.error('Suggestion:', error.getRecoverySuggestion());
13
+ * }
14
+ * }
15
+ * ```
16
+ */
17
+ export class AuthenticationError extends WebacyError {
18
+ constructor(message = 'Invalid or missing API key', options = {}) {
19
+ super(message, {
20
+ status: 401,
21
+ code: 'AUTHENTICATION_ERROR',
22
+ requestId: options.requestId,
23
+ endpoint: options.endpoint,
24
+ });
25
+ this.name = 'AuthenticationError';
26
+ }
27
+ getRecoverySuggestion() {
28
+ return 'Verify your API key is correct and has not expired. You can get a new API key from the Webacy dashboard at https://webacy.com';
29
+ }
30
+ }
31
+ //# sourceMappingURL=authentication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../../src/errors/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD,YACE,OAAO,GAAG,4BAA4B,EACtC,UAAqD,EAAE;QAEvD,KAAK,CAAC,OAAO,EAAE;YACb,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;IAEQ,qBAAqB;QAC5B,OAAO,+HAA+H,CAAC;IACzI,CAAC;CACF"}