@lifi/sdk 3.0.2-beta.0 → 3.1.0-beta.0

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 (201) hide show
  1. package/package.json +3 -3
  2. package/src/_cjs/core/EVM/EVMStepExecutor.js +12 -11
  3. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
  4. package/src/_cjs/core/EVM/checkAllowance.js +3 -4
  5. package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
  6. package/src/_cjs/core/EVM/multisig.js +4 -3
  7. package/src/_cjs/core/EVM/multisig.js.map +1 -1
  8. package/src/_cjs/core/EVM/parseEVMErrors.js +38 -0
  9. package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -0
  10. package/src/_cjs/core/EVM/publicClient.js +8 -3
  11. package/src/_cjs/core/EVM/publicClient.js.map +1 -1
  12. package/src/_cjs/core/EVM/switchChain.js +4 -3
  13. package/src/_cjs/core/EVM/switchChain.js.map +1 -1
  14. package/src/_cjs/core/Solana/SolanaStepExecutor.js +42 -24
  15. package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
  16. package/src/_cjs/core/Solana/connection.js.map +1 -1
  17. package/src/_cjs/core/Solana/parseSolanaErrors.js +33 -0
  18. package/src/_cjs/core/Solana/parseSolanaErrors.js.map +1 -0
  19. package/src/_cjs/core/checkBalance.js +2 -2
  20. package/src/_cjs/core/checkBalance.js.map +1 -1
  21. package/src/_cjs/core/stepComparison.js +3 -3
  22. package/src/_cjs/core/stepComparison.js.map +1 -1
  23. package/src/_cjs/core/waitForReceivingTransaction.js +1 -1
  24. package/src/_cjs/core/waitForReceivingTransaction.js.map +1 -1
  25. package/src/_cjs/errors/SDKError.js +48 -0
  26. package/src/_cjs/errors/SDKError.js.map +1 -0
  27. package/src/_cjs/errors/baseError.js +30 -0
  28. package/src/_cjs/errors/baseError.js.map +1 -0
  29. package/src/_cjs/errors/constants.js +48 -0
  30. package/src/_cjs/errors/constants.js.map +1 -0
  31. package/src/_cjs/errors/errors.js +48 -0
  32. package/src/_cjs/errors/errors.js.map +1 -0
  33. package/src/_cjs/errors/httpError.js +101 -0
  34. package/src/_cjs/errors/httpError.js.map +1 -0
  35. package/src/_cjs/errors/index.js +11 -0
  36. package/src/_cjs/errors/index.js.map +1 -0
  37. package/src/_cjs/errors/utils/baseErrorRootCause.js +21 -0
  38. package/src/_cjs/errors/utils/baseErrorRootCause.js.map +1 -0
  39. package/src/_cjs/errors/utils/rootCause.js +12 -0
  40. package/src/_cjs/errors/utils/rootCause.js.map +1 -0
  41. package/src/_cjs/helpers.js +13 -8
  42. package/src/_cjs/helpers.js.map +1 -1
  43. package/src/_cjs/index.js +2 -4
  44. package/src/_cjs/index.js.map +1 -1
  45. package/src/_cjs/request.js +37 -34
  46. package/src/_cjs/request.js.map +1 -1
  47. package/src/_cjs/services/api.js +61 -132
  48. package/src/_cjs/services/api.js.map +1 -1
  49. package/src/_cjs/services/balance.js +1 -1
  50. package/src/_cjs/services/balance.js.map +1 -1
  51. package/src/_cjs/types/request.js +3 -0
  52. package/src/_cjs/types/request.js.map +1 -0
  53. package/src/_cjs/utils/errors.js +0 -183
  54. package/src/_cjs/utils/errors.js.map +1 -1
  55. package/src/_cjs/utils/index.js +1 -2
  56. package/src/_cjs/utils/index.js.map +1 -1
  57. package/src/_cjs/version.js +1 -1
  58. package/src/_esm/core/EVM/EVMStepExecutor.js +8 -7
  59. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  60. package/src/_esm/core/EVM/checkAllowance.js +3 -4
  61. package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
  62. package/src/_esm/core/EVM/multisig.js +2 -1
  63. package/src/_esm/core/EVM/multisig.js.map +1 -1
  64. package/src/_esm/core/EVM/parseEVMErrors.js +35 -0
  65. package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -0
  66. package/src/_esm/core/EVM/publicClient.js +9 -4
  67. package/src/_esm/core/EVM/publicClient.js.map +1 -1
  68. package/src/_esm/core/EVM/switchChain.js +2 -1
  69. package/src/_esm/core/EVM/switchChain.js.map +1 -1
  70. package/src/_esm/core/Solana/SolanaStepExecutor.js +52 -25
  71. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
  72. package/src/_esm/core/Solana/connection.js +2 -3
  73. package/src/_esm/core/Solana/connection.js.map +1 -1
  74. package/src/_esm/core/Solana/parseSolanaErrors.js +29 -0
  75. package/src/_esm/core/Solana/parseSolanaErrors.js.map +1 -0
  76. package/src/_esm/core/checkBalance.js +2 -2
  77. package/src/_esm/core/checkBalance.js.map +1 -1
  78. package/src/_esm/core/stepComparison.js +3 -3
  79. package/src/_esm/core/stepComparison.js.map +1 -1
  80. package/src/_esm/core/waitForReceivingTransaction.js +1 -1
  81. package/src/_esm/core/waitForReceivingTransaction.js.map +1 -1
  82. package/src/_esm/errors/SDKError.js +47 -0
  83. package/src/_esm/errors/SDKError.js.map +1 -0
  84. package/src/_esm/errors/baseError.js +28 -0
  85. package/src/_esm/errors/baseError.js.map +1 -0
  86. package/src/_esm/errors/constants.js +45 -0
  87. package/src/_esm/errors/constants.js.map +1 -0
  88. package/src/_esm/errors/errors.js +38 -0
  89. package/src/_esm/errors/errors.js.map +1 -0
  90. package/src/_esm/errors/httpError.js +97 -0
  91. package/src/_esm/errors/httpError.js.map +1 -0
  92. package/src/_esm/errors/index.js +8 -0
  93. package/src/_esm/errors/index.js.map +1 -0
  94. package/src/_esm/errors/utils/baseErrorRootCause.js +16 -0
  95. package/src/_esm/errors/utils/baseErrorRootCause.js.map +1 -0
  96. package/src/_esm/errors/utils/rootCause.js +8 -0
  97. package/src/_esm/errors/utils/rootCause.js.map +1 -0
  98. package/src/_esm/helpers.js +16 -9
  99. package/src/_esm/helpers.js.map +1 -1
  100. package/src/_esm/index.js +2 -2
  101. package/src/_esm/index.js.map +1 -1
  102. package/src/_esm/request.js +38 -35
  103. package/src/_esm/request.js.map +1 -1
  104. package/src/_esm/services/api.js +61 -133
  105. package/src/_esm/services/api.js.map +1 -1
  106. package/src/_esm/services/balance.js +4 -4
  107. package/src/_esm/services/balance.js.map +1 -1
  108. package/src/_esm/types/request.js +2 -0
  109. package/src/_esm/types/request.js.map +1 -0
  110. package/src/_esm/utils/errors.js +1 -173
  111. package/src/_esm/utils/errors.js.map +1 -1
  112. package/src/_esm/utils/index.js +1 -2
  113. package/src/_esm/utils/index.js.map +1 -1
  114. package/src/_esm/version.js +1 -1
  115. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  116. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
  117. package/src/_types/core/EVM/multisig.d.ts.map +1 -1
  118. package/src/_types/core/EVM/parseEVMErrors.d.ts +4 -0
  119. package/src/_types/core/EVM/parseEVMErrors.d.ts.map +1 -0
  120. package/src/_types/core/EVM/publicClient.d.ts.map +1 -1
  121. package/src/_types/core/EVM/switchChain.d.ts.map +1 -1
  122. package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
  123. package/src/_types/core/Solana/connection.d.ts +2 -3
  124. package/src/_types/core/Solana/connection.d.ts.map +1 -1
  125. package/src/_types/core/Solana/parseSolanaErrors.d.ts +4 -0
  126. package/src/_types/core/Solana/parseSolanaErrors.d.ts.map +1 -0
  127. package/src/_types/core/stepComparison.d.ts.map +1 -1
  128. package/src/_types/errors/SDKError.d.ts +12 -0
  129. package/src/_types/errors/SDKError.d.ts.map +1 -0
  130. package/src/_types/errors/baseError.d.ts +7 -0
  131. package/src/_types/errors/baseError.d.ts.map +1 -0
  132. package/src/_types/errors/constants.d.ts +43 -0
  133. package/src/_types/errors/constants.d.ts.map +1 -0
  134. package/src/_types/errors/errors.d.ts +24 -0
  135. package/src/_types/errors/errors.d.ts.map +1 -0
  136. package/src/_types/errors/httpError.d.ts +21 -0
  137. package/src/_types/errors/httpError.d.ts.map +1 -0
  138. package/src/_types/errors/index.d.ts +8 -0
  139. package/src/_types/errors/index.d.ts.map +1 -0
  140. package/src/_types/errors/utils/baseErrorRootCause.d.ts +4 -0
  141. package/src/_types/errors/utils/baseErrorRootCause.d.ts.map +1 -0
  142. package/src/_types/errors/utils/rootCause.d.ts +2 -0
  143. package/src/_types/errors/utils/rootCause.d.ts.map +1 -0
  144. package/src/_types/helpers.d.ts +5 -4
  145. package/src/_types/helpers.d.ts.map +1 -1
  146. package/src/_types/index.d.ts +2 -2
  147. package/src/_types/index.d.ts.map +1 -1
  148. package/src/_types/request.d.ts +1 -5
  149. package/src/_types/request.d.ts.map +1 -1
  150. package/src/_types/services/api.d.ts.map +1 -1
  151. package/src/_types/services/balance.d.ts +3 -3
  152. package/src/_types/types/request.d.ts +4 -0
  153. package/src/_types/types/request.d.ts.map +1 -0
  154. package/src/_types/utils/errors.d.ts +0 -109
  155. package/src/_types/utils/errors.d.ts.map +1 -1
  156. package/src/_types/utils/index.d.ts +1 -2
  157. package/src/_types/utils/index.d.ts.map +1 -1
  158. package/src/_types/version.d.ts +1 -1
  159. package/src/core/EVM/EVMStepExecutor.ts +14 -12
  160. package/src/core/EVM/checkAllowance.ts +3 -4
  161. package/src/core/EVM/multisig.ts +2 -1
  162. package/src/core/EVM/parseEVMErrors.ts +60 -0
  163. package/src/core/EVM/publicClient.ts +9 -4
  164. package/src/core/EVM/switchChain.ts +2 -1
  165. package/src/core/Solana/SolanaStepExecutor.ts +67 -34
  166. package/src/core/Solana/connection.ts +2 -3
  167. package/src/core/Solana/parseSolanaErrors.ts +45 -0
  168. package/src/core/checkBalance.ts +2 -2
  169. package/src/core/stepComparison.ts +3 -4
  170. package/src/core/waitForReceivingTransaction.ts +1 -1
  171. package/src/errors/SDKError.ts +25 -0
  172. package/src/errors/baseError.ts +22 -0
  173. package/src/errors/constants.ts +45 -0
  174. package/src/errors/errors.ts +44 -0
  175. package/src/errors/httpError.ts +93 -0
  176. package/src/errors/index.ts +7 -0
  177. package/src/errors/utils/baseErrorRootCause.ts +18 -0
  178. package/src/errors/utils/rootCause.ts +7 -0
  179. package/src/helpers.ts +23 -16
  180. package/src/index.ts +2 -2
  181. package/src/request.ts +52 -38
  182. package/src/services/api.ts +109 -157
  183. package/src/services/balance.ts +4 -4
  184. package/src/types/request.ts +3 -0
  185. package/src/utils/errors.ts +0 -233
  186. package/src/utils/index.ts +1 -2
  187. package/src/version.ts +1 -1
  188. package/src/_cjs/utils/parseBackendError.js +0 -27
  189. package/src/_cjs/utils/parseBackendError.js.map +0 -1
  190. package/src/_cjs/utils/parseError.js +0 -69
  191. package/src/_cjs/utils/parseError.js.map +0 -1
  192. package/src/_esm/utils/parseBackendError.js +0 -24
  193. package/src/_esm/utils/parseBackendError.js.map +0 -1
  194. package/src/_esm/utils/parseError.js +0 -100
  195. package/src/_esm/utils/parseError.js.map +0 -1
  196. package/src/_types/utils/parseBackendError.d.ts +0 -3
  197. package/src/_types/utils/parseBackendError.d.ts.map +0 -1
  198. package/src/_types/utils/parseError.d.ts +0 -35
  199. package/src/_types/utils/parseError.d.ts.map +0 -1
  200. package/src/utils/parseBackendError.ts +0 -50
  201. package/src/utils/parseError.ts +0 -210
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseError.js","sourceRoot":"","sources":["../../errors/baseError.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,+EAA+E;AAC/E,qDAAqD;AACrD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAIlC,YAAY,IAAe,EAAE,IAAY,EAAE,OAAe,EAAE,KAAa;QACvE,KAAK,CAAC,OAAO,CAAC,CAAA;QAJhB;;;;;WAAe;QACN;;;;;WAAa;QAKpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;QAC9B,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,45 @@
1
+ export var ErrorName;
2
+ (function (ErrorName) {
3
+ ErrorName["RPCError"] = "RPCError";
4
+ ErrorName["ProviderError"] = "ProviderError";
5
+ ErrorName["ServerError"] = "ServerError";
6
+ ErrorName["TransactionError"] = "TransactionError";
7
+ ErrorName["ValidationError"] = "ValidationError";
8
+ ErrorName["BalanceError"] = "BalanceError";
9
+ ErrorName["NotFoundError"] = "NotFoundError";
10
+ ErrorName["UnknownError"] = "UnknownError";
11
+ ErrorName["SlippageError"] = "SlippageError";
12
+ ErrorName["HTTPError"] = "HTTPError";
13
+ })(ErrorName || (ErrorName = {}));
14
+ export var LiFiErrorCode;
15
+ (function (LiFiErrorCode) {
16
+ LiFiErrorCode[LiFiErrorCode["InternalError"] = 1000] = "InternalError";
17
+ LiFiErrorCode[LiFiErrorCode["ValidationError"] = 1001] = "ValidationError";
18
+ LiFiErrorCode[LiFiErrorCode["TransactionUnderpriced"] = 1002] = "TransactionUnderpriced";
19
+ LiFiErrorCode[LiFiErrorCode["TransactionFailed"] = 1003] = "TransactionFailed";
20
+ LiFiErrorCode[LiFiErrorCode["Timeout"] = 1004] = "Timeout";
21
+ LiFiErrorCode[LiFiErrorCode["ProviderUnavailable"] = 1005] = "ProviderUnavailable";
22
+ LiFiErrorCode[LiFiErrorCode["NotFound"] = 1006] = "NotFound";
23
+ LiFiErrorCode[LiFiErrorCode["ChainSwitchError"] = 1007] = "ChainSwitchError";
24
+ LiFiErrorCode[LiFiErrorCode["TransactionUnprepared"] = 1008] = "TransactionUnprepared";
25
+ LiFiErrorCode[LiFiErrorCode["GasLimitError"] = 1009] = "GasLimitError";
26
+ LiFiErrorCode[LiFiErrorCode["TransactionCanceled"] = 1010] = "TransactionCanceled";
27
+ LiFiErrorCode[LiFiErrorCode["SlippageError"] = 1011] = "SlippageError";
28
+ LiFiErrorCode[LiFiErrorCode["SignatureRejected"] = 1012] = "SignatureRejected";
29
+ LiFiErrorCode[LiFiErrorCode["BalanceError"] = 1013] = "BalanceError";
30
+ LiFiErrorCode[LiFiErrorCode["AllowanceRequired"] = 1014] = "AllowanceRequired";
31
+ LiFiErrorCode[LiFiErrorCode["InsufficientFunds"] = 1015] = "InsufficientFunds";
32
+ LiFiErrorCode[LiFiErrorCode["ExchangeRateUpdateCanceled"] = 1016] = "ExchangeRateUpdateCanceled";
33
+ LiFiErrorCode[LiFiErrorCode["WalletChangedDuringExecution"] = 1017] = "WalletChangedDuringExecution";
34
+ LiFiErrorCode[LiFiErrorCode["TransactionExpired"] = 1018] = "TransactionExpired";
35
+ LiFiErrorCode[LiFiErrorCode["TransactionSimulationFailed"] = 1019] = "TransactionSimulationFailed";
36
+ })(LiFiErrorCode || (LiFiErrorCode = {}));
37
+ export var ErrorMessage;
38
+ (function (ErrorMessage) {
39
+ ErrorMessage["UnknownError"] = "Unknown error occurred.";
40
+ ErrorMessage["SlippageError"] = "The slippage is larger than the defined threshold. Please request a new route to get a fresh quote.";
41
+ ErrorMessage["GasLimitLow"] = "Gas limit is too low.";
42
+ ErrorMessage["TransactionUnderpriced"] = "Transaction is underpriced.";
43
+ ErrorMessage["TransactionReverted"] = "Transaction was reverted.";
44
+ })(ErrorMessage || (ErrorMessage = {}));
45
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../errors/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,4CAA+B,CAAA;IAC/B,wCAA2B,CAAA;IAC3B,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,oCAAuB,CAAA;AACzB,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AAID,MAAM,CAAN,IAAY,aAqBX;AArBD,WAAY,aAAa;IACvB,sEAAoB,CAAA;IACpB,0EAAsB,CAAA;IACtB,wFAA6B,CAAA;IAC7B,8EAAwB,CAAA;IACxB,0DAAc,CAAA;IACd,kFAA0B,CAAA;IAC1B,4DAAe,CAAA;IACf,4EAAuB,CAAA;IACvB,sFAA4B,CAAA;IAC5B,sEAAoB,CAAA;IACpB,kFAA0B,CAAA;IAC1B,sEAAoB,CAAA;IACpB,8EAAwB,CAAA;IACxB,oEAAmB,CAAA;IACnB,8EAAwB,CAAA;IACxB,8EAAwB,CAAA;IACxB,gGAAiC,CAAA;IACjC,oGAAmC,CAAA;IACnC,gFAAyB,CAAA;IACzB,kGAAkC,CAAA;AACpC,CAAC,EArBW,aAAa,KAAb,aAAa,QAqBxB;AAED,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,wDAAwC,CAAA;IACxC,qIAAqH,CAAA;IACrH,qDAAqC,CAAA;IACrC,sEAAsD,CAAA;IACtD,iEAAiD,CAAA;AACnD,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB"}
@@ -0,0 +1,38 @@
1
+ import { ErrorName, LiFiErrorCode } from './constants.js';
2
+ import { BaseError } from './baseError.js';
3
+ export class RPCError extends BaseError {
4
+ constructor(code, message, cause) {
5
+ super(ErrorName.RPCError, code, message, cause);
6
+ }
7
+ }
8
+ export class ProviderError extends BaseError {
9
+ constructor(code, message, cause) {
10
+ super(ErrorName.ProviderError, code, message, cause);
11
+ }
12
+ }
13
+ export class TransactionError extends BaseError {
14
+ constructor(code, message, cause) {
15
+ super(ErrorName.TransactionError, code, message, cause);
16
+ }
17
+ }
18
+ export class UnknownError extends BaseError {
19
+ constructor(message, cause) {
20
+ super(ErrorName.UnknownError, LiFiErrorCode.InternalError, message, cause);
21
+ }
22
+ }
23
+ export class BalanceError extends BaseError {
24
+ constructor(message, cause) {
25
+ super(ErrorName.BalanceError, LiFiErrorCode.BalanceError, message, cause);
26
+ }
27
+ }
28
+ export class ServerError extends BaseError {
29
+ constructor(message) {
30
+ super(ErrorName.ServerError, LiFiErrorCode.InternalError, message);
31
+ }
32
+ }
33
+ export class ValidationError extends BaseError {
34
+ constructor(message) {
35
+ super(ErrorName.ValidationError, LiFiErrorCode.ValidationError, message);
36
+ }
37
+ }
38
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,OAAO,QAAS,SAAQ,SAAS;IACrC,YAAY,IAAmB,EAAE,OAAe,EAAE,KAAa;QAC7D,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,IAAmB,EAAE,OAAe,EAAE,KAAa;QAC7D,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IACtD,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC7C,YAAY,IAAmB,EAAE,OAAe,EAAE,KAAa;QAC7D,KAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IACzD,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3E,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,SAAS;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACpE,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;IAC1E,CAAC;CACF"}
@@ -0,0 +1,97 @@
1
+ import { LiFiErrorCode } from './constants.js';
2
+ import { BaseError } from './baseError.js';
3
+ import { ErrorName, ErrorMessage } from './constants.js';
4
+ const statusCodeToErrorClassificationMap = new Map([
5
+ [
6
+ 400,
7
+ { type: ErrorName.ValidationError, code: LiFiErrorCode.ValidationError },
8
+ ],
9
+ [404, { type: ErrorName.NotFoundError, code: LiFiErrorCode.NotFound }],
10
+ [
11
+ 409,
12
+ {
13
+ type: ErrorName.SlippageError,
14
+ code: LiFiErrorCode.SlippageError,
15
+ message: ErrorMessage.SlippageError,
16
+ },
17
+ ],
18
+ [500, { type: ErrorName.ServerError, code: LiFiErrorCode.InternalError }],
19
+ ]);
20
+ const getErrorClassificationFromStatusCode = (code) => statusCodeToErrorClassificationMap.get(code) ?? {
21
+ type: ErrorName.ServerError,
22
+ code: LiFiErrorCode.InternalError,
23
+ };
24
+ const createInitialMessage = (response) => {
25
+ const statusCode = response.status || response.status === 0 ? response.status : '';
26
+ const title = response.statusText || '';
27
+ const status = `${statusCode} ${title}`.trim();
28
+ const reason = status ? `status code ${status}` : 'an unknown error';
29
+ return `Request failed with ${reason}`;
30
+ };
31
+ export class HTTPError extends BaseError {
32
+ constructor(response, url, options) {
33
+ const errorClassification = getErrorClassificationFromStatusCode(response.status);
34
+ const additionalMessage = errorClassification?.message
35
+ ? `\n${errorClassification.message}`
36
+ : '';
37
+ const message = createInitialMessage(response) + additionalMessage;
38
+ super(ErrorName.HTTPError, errorClassification.code, message);
39
+ Object.defineProperty(this, "response", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: void 0
44
+ });
45
+ Object.defineProperty(this, "status", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: void 0
50
+ });
51
+ Object.defineProperty(this, "url", {
52
+ enumerable: true,
53
+ configurable: true,
54
+ writable: true,
55
+ value: void 0
56
+ });
57
+ Object.defineProperty(this, "fetchOptions", {
58
+ enumerable: true,
59
+ configurable: true,
60
+ writable: true,
61
+ value: void 0
62
+ });
63
+ Object.defineProperty(this, "type", {
64
+ enumerable: true,
65
+ configurable: true,
66
+ writable: true,
67
+ value: void 0
68
+ });
69
+ Object.defineProperty(this, "responseBody", {
70
+ enumerable: true,
71
+ configurable: true,
72
+ writable: true,
73
+ value: void 0
74
+ });
75
+ this.type = errorClassification.type;
76
+ this.response = response;
77
+ this.status = response.status;
78
+ this.message = message;
79
+ this.url = url;
80
+ this.fetchOptions = options;
81
+ }
82
+ async buildAdditionalDetails() {
83
+ if (this.type) {
84
+ this.message = `[${this.type}] ${this.message}`;
85
+ }
86
+ try {
87
+ this.responseBody = await this.response.json();
88
+ const spacer = '\n ';
89
+ if (this.responseBody) {
90
+ this.message += `${spacer}responseMessage: ${this.responseBody?.message.toString().replaceAll('\n', spacer)}`;
91
+ }
92
+ }
93
+ catch { }
94
+ return this;
95
+ }
96
+ }
97
+ //# sourceMappingURL=httpError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpError.js","sourceRoot":"","sources":["../../errors/httpError.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from './baseError.js';
2
+ export * from './constants.js';
3
+ export * from './errors.js';
4
+ export * from './httpError.js';
5
+ export * from './SDKError.js';
6
+ export * from './utils/rootCause.js';
7
+ export * from './utils/baseErrorRootCause.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { BaseError } from '../baseError.js';
2
+ import { HTTPError } from '../httpError.js';
3
+ export const getRootCauseBaseError = (e) => {
4
+ let rootCause = e;
5
+ while (rootCause.cause && rootCause.cause instanceof BaseError) {
6
+ rootCause = rootCause.cause;
7
+ }
8
+ return rootCause;
9
+ };
10
+ export const getRootCauseBaseErrorMessage = (e) => {
11
+ const rootCause = getRootCauseBaseError(e);
12
+ return rootCause instanceof HTTPError
13
+ ? rootCause.responseBody?.message || rootCause.message
14
+ : rootCause.message;
15
+ };
16
+ //# sourceMappingURL=baseErrorRootCause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseErrorRootCause.js","sourceRoot":"","sources":["../../../errors/utils/baseErrorRootCause.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAQ,EAAE,EAAE;IAChD,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,OAAO,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/D,SAAS,GAAG,SAAS,CAAC,KAAkB,CAAA;IAC1C,CAAC;IACD,OAAO,SAAsB,CAAA;AAC/B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAQ,EAAE,EAAE;IACvD,MAAM,SAAS,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;IAE1C,OAAO,SAAS,YAAY,SAAS;QACnC,CAAC,CAAE,SAAuB,CAAC,YAAY,EAAE,OAAO,IAAI,SAAS,CAAC,OAAO;QACrE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAA;AACvB,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ export const getRootCause = (e) => {
2
+ let rootCause = e;
3
+ while (rootCause?.cause) {
4
+ rootCause = rootCause.cause;
5
+ }
6
+ return rootCause;
7
+ };
8
+ //# sourceMappingURL=rootCause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rootCause.js","sourceRoot":"","sources":["../../../errors/utils/rootCause.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAoB,EAAE,EAAE;IACnD,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,OAAO,SAAS,EAAE,KAAK,EAAE,CAAC;QACxB,SAAS,GAAG,SAAS,CAAC,KAAc,CAAA;IACtC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
@@ -1,11 +1,12 @@
1
- import { request } from './request.js';
2
- import { ValidationError } from './utils/errors.js';
3
1
  import { name, version } from './version.js';
2
+ import { ValidationError } from './errors/errors.js';
3
+ import { SDKError } from './errors/SDKError.js';
4
4
  export const checkPackageUpdates = async (packageName, packageVersion) => {
5
5
  try {
6
6
  const pkgName = packageName ?? name;
7
- const response = await request(`https://registry.npmjs.org/${pkgName}/latest`, { skipTrackingHeaders: true });
8
- const latestVersion = response.version;
7
+ const response = await fetch(`https://registry.npmjs.org/${pkgName}/latest`);
8
+ const reponseBody = await response.json();
9
+ const latestVersion = reponseBody.version;
9
10
  const currentVersion = packageVersion ?? version;
10
11
  if (latestVersion > currentVersion) {
11
12
  console.warn(
@@ -20,15 +21,17 @@ export const checkPackageUpdates = async (packageName, packageVersion) => {
20
21
  /**
21
22
  * Converts a quote to Route
22
23
  * @param step - Step returned from the quote endpoint.
24
+ * @param txHash
25
+ * @param chainId
23
26
  * @returns - The route to be executed.
24
- * @throws {ValidationError} Throws a ValidationError if the step has missing values.
27
+ * @throws {BaseError} Throws a ValidationError if the step has missing values.
25
28
  */
26
29
  export const convertQuoteToRoute = (step) => {
27
30
  if (!step.estimate.fromAmountUSD) {
28
- throw new ValidationError("Missing 'fromAmountUSD' in step estimate.");
31
+ throw new SDKError(new ValidationError("Missing 'fromAmountUSD' in step estimate."));
29
32
  }
30
33
  if (!step.estimate.toAmountUSD) {
31
- throw new ValidationError("Missing 'toAmountUSD' in step estimate.");
34
+ throw new SDKError(new ValidationError("Missing 'toAmountUSD' in step estimate."));
32
35
  }
33
36
  const route = {
34
37
  fromToken: step.action.fromToken,
@@ -47,7 +50,11 @@ export const convertQuoteToRoute = (step) => {
47
50
  return route;
48
51
  };
49
52
  export const fetchTxErrorDetails = async (txHash, chainId) => {
50
- const response = await request(`https://api.tenderly.co/api/v1/public-contract/${chainId}/tx/${txHash}`);
51
- return response;
53
+ try {
54
+ const response = await fetch(`https://api.tenderly.co/api/v1/public-contract/${chainId}/tx/${txHash}`);
55
+ const reponseBody = await response.json();
56
+ return reponseBody;
57
+ }
58
+ catch (_) { }
52
59
  };
53
60
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,WAAoB,EACpB,cAAuB,EACvB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,CAAA;QACnC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,8BAA8B,OAAO,SAAS,EAC9C,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAC9B,CAAA;QACD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAA;QACtC,MAAM,cAAc,GAAG,cAAc,IAAI,OAAO,CAAA;QAChD,IAAI,aAAa,GAAG,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI;YACV,mCAAmC;YACnC,GAAG,OAAO,wHAAwH,cAAc,qBAAqB,aAAa,GAAG,CACtL,CAAA;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mGAAmG;IACrG,CAAC;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAS,EAAE;IAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,IAAI,eAAe,CAAC,2CAA2C,CAAC,CAAA;IACxE,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,yCAAyC,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,KAAK,GAAU;QACnB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;QAChC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;QAC5B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;QAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAChC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;QAC1C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;QACtC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;QAC1C,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;QACtC,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;QACtC,SAAS,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,EAAE;KACzD,CAAA;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE;IAC3E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,kDAAkD,OAAO,OAAO,MAAM,EAAE,CACzE,CAAA;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAG/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,WAAoB,EACpB,cAAuB,EACvB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,CAAA;QACnC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,8BAA8B,OAAO,SAAS,CAAC,CAAA;QAC5E,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACzC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAA;QACzC,MAAM,cAAc,GAAG,cAAc,IAAI,OAAO,CAAA;QAEhD,IAAI,aAAa,GAAG,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI;YACV,mCAAmC;YACnC,GAAG,OAAO,wHAAwH,cAAc,qBAAqB,aAAa,GAAG,CACtL,CAAA;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mGAAmG;IACrG,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAS,EAAE;IAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,IAAI,QAAQ,CAChB,IAAI,eAAe,CAAC,2CAA2C,CAAC,CACjE,CAAA;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,QAAQ,CAChB,IAAI,eAAe,CAAC,yCAAyC,CAAC,CAC/D,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAU;QACnB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;QAChC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;QAC5B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;QAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAChC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;QAC1C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;QACtC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;QAC1C,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;QACtC,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;QACtC,SAAS,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,EAAE;KACzD,CAAA;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE;IAC3E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,kDAAkD,OAAO,OAAO,MAAM,EAAE,CACzE,CAAA;QACD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEzC,OAAO,WAAW,CAAA;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;AAChB,CAAC,CAAA"}
package/src/_esm/index.js CHANGED
@@ -12,6 +12,6 @@ export * from './services/api.js';
12
12
  export * from './services/balance.js';
13
13
  export * from './services/getNameServiceAddress.js';
14
14
  export * from './types/index.js';
15
- export * from './utils/errors.js';
16
- export { LiFiError } from './utils/errors.js';
15
+ export * from './errors/index.js';
16
+ export {} from './errors/index.js';
17
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAA;AAMnC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qCAAqC,CAAA;AACnD,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,SAAS,EAAkB,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAA;AAMnC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qCAAqC,CAAA;AACnD,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAkB,MAAM,mBAAmB,CAAA"}
@@ -1,63 +1,66 @@
1
1
  import { config } from './config.js';
2
- import { HTTPError } from './utils/errors.js';
2
+ import { HTTPError } from './errors/httpError.js';
3
3
  import { wait } from './utils/utils.js';
4
+ import { ValidationError } from './errors/errors.js';
5
+ import { SDKError } from './errors/SDKError.js';
4
6
  import { version } from './version.js';
5
7
  export const requestSettings = {
6
8
  retries: 1,
7
9
  };
10
+ const stripExtendRequestInitProperties = ({ retries, ...rest }) => ({
11
+ ...rest,
12
+ });
8
13
  export const request = async (url, options = {
9
14
  retries: requestSettings.retries,
10
15
  }) => {
11
16
  const { userId, integrator, widgetVersion, apiKey } = config.get();
12
17
  if (!integrator) {
13
- throw new Error('Integrator not found. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk');
18
+ throw new SDKError(new ValidationError('You need to provide the Integrator property. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk'));
14
19
  }
15
20
  options.retries = options.retries ?? requestSettings.retries;
16
21
  try {
17
- if (!options.skipTrackingHeaders) {
18
- if (apiKey) {
19
- options.headers = {
20
- ...options.headers,
21
- 'x-lifi-api-key': apiKey,
22
- };
23
- }
24
- if (userId) {
25
- options.headers = {
26
- ...options.headers,
27
- 'x-lifi-userid': userId,
28
- };
29
- }
30
- if (widgetVersion) {
31
- options.headers = {
32
- ...options.headers,
33
- 'x-lifi-widget': widgetVersion,
34
- };
35
- }
36
- if (version) {
37
- options.headers = {
38
- ...options.headers,
39
- 'x-lifi-sdk': version,
40
- };
41
- }
42
- // integrator is mandatory during SDK initialization
22
+ if (apiKey) {
43
23
  options.headers = {
44
24
  ...options.headers,
45
- 'x-lifi-integrator': integrator,
25
+ 'x-lifi-api-key': apiKey,
46
26
  };
47
27
  }
48
- const response = await fetch(url, options);
28
+ if (userId) {
29
+ options.headers = {
30
+ ...options.headers,
31
+ 'x-lifi-userid': userId,
32
+ };
33
+ }
34
+ if (widgetVersion) {
35
+ options.headers = {
36
+ ...options.headers,
37
+ 'x-lifi-widget': widgetVersion,
38
+ };
39
+ }
40
+ if (version) {
41
+ options.headers = {
42
+ ...options.headers,
43
+ 'x-lifi-sdk': version,
44
+ };
45
+ }
46
+ // integrator is mandatory during SDK initialization
47
+ options.headers = {
48
+ ...options.headers,
49
+ 'x-lifi-integrator': integrator,
50
+ };
51
+ const response = await fetch(url, stripExtendRequestInitProperties(options));
49
52
  if (!response.ok) {
50
- throw new HTTPError(response);
53
+ throw new HTTPError(response, url, options);
51
54
  }
52
- const data = await response.json();
53
- return data;
55
+ return await response.json();
54
56
  }
55
57
  catch (error) {
56
- if (options.retries > 0 && error?.status === 500) {
58
+ if (options.retries > 0 && error.status === 500) {
57
59
  await wait(500);
58
60
  return request(url, { ...options, retries: options.retries - 1 });
59
61
  }
60
- throw error;
62
+ await error.buildAdditionalDetails?.();
63
+ throw new SDKError(error);
61
64
  }
62
65
  };
63
66
  //# sourceMappingURL=request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,CAAC;CACX,CAAA;AAOD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,GAAsB,EACtB,UAA+B;IAC7B,OAAO,EAAE,eAAe,CAAC,OAAO;CACjC,EACW,EAAE;IACd,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IAClE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAA;IACH,CAAC;IACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAA;IAC5D,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACjC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,OAAO,GAAG;oBAChB,GAAG,OAAO,CAAC,OAAO;oBAClB,gBAAgB,EAAE,MAAM;iBACzB,CAAA;YACH,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,OAAO,GAAG;oBAChB,GAAG,OAAO,CAAC,OAAO;oBAClB,eAAe,EAAE,MAAM;iBACxB,CAAA;YACH,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,OAAO,GAAG;oBAChB,GAAG,OAAO,CAAC,OAAO;oBAClB,eAAe,EAAE,aAAa;iBAC/B,CAAA;YACH,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,OAAO,GAAG;oBAChB,GAAG,OAAO,CAAC,OAAO;oBAClB,YAAY,EAAE,OAAO;iBACtB,CAAA;YACH,CAAC;YAED,oDAAoD;YACpD,OAAO,CAAC,OAAO,GAAG;gBAChB,GAAG,OAAO,CAAC,OAAO;gBAClB,mBAAmB,EAAE,UAAU;aAChC,CAAA;QACH,CAAC;QAED,MAAM,QAAQ,GAAa,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC/B,CAAC;QAED,MAAM,IAAI,GAAM,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,IAAK,KAAmB,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YAChE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,OAAO,CAAI,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAA;QACtE,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,CAAC;CACX,CAAA;AAED,MAAM,gCAAgC,GAAG,CAAC,EACxC,OAAO,EACP,GAAG,IAAI,EACa,EAAe,EAAE,CAAC,CAAC;IACvC,GAAG,IAAI;CACR,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,GAAsB,EACtB,UAA+B;IAC7B,OAAO,EAAE,eAAe,CAAC,OAAO;CACjC,EACW,EAAE;IACd,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IAElE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,QAAQ,CAChB,IAAI,eAAe,CACjB,gIAAgI,CACjI,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAA;IAE5D,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,OAAO,GAAG;gBAChB,GAAG,OAAO,CAAC,OAAO;gBAClB,gBAAgB,EAAE,MAAM;aACzB,CAAA;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,OAAO,GAAG;gBAChB,GAAG,OAAO,CAAC,OAAO;gBAClB,eAAe,EAAE,MAAM;aACxB,CAAA;QACH,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,OAAO,GAAG;gBAChB,GAAG,OAAO,CAAC,OAAO;gBAClB,eAAe,EAAE,aAAa;aAC/B,CAAA;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,GAAG;gBAChB,GAAG,OAAO,CAAC,OAAO;gBAClB,YAAY,EAAE,OAAO;aACtB,CAAA;QACH,CAAC;QAED,oDAAoD;QACpD,OAAO,CAAC,OAAO,GAAG;YAChB,GAAG,OAAO,CAAC,OAAO;YAClB,mBAAmB,EAAE,UAAU;SAChC,CAAA;QAED,MAAM,QAAQ,GAAa,MAAM,KAAK,CACpC,GAAG,EACH,gCAAgC,CAAC,OAAO,CAAC,CAC1C,CAAA;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,IAAK,KAAmB,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/D,MAAM,IAAI,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,OAAO,CAAI,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAA;QACtE,CAAC;QAED,MAAO,KAAmB,CAAC,sBAAsB,EAAE,EAAE,CAAA;QAErD,MAAM,IAAI,QAAQ,CAAC,KAAkB,CAAC,CAAA;IACxC,CAAC;AACH,CAAC,CAAA"}