@goodsamsoftware/freshbooks-mcp 1.0.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 (647) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +357 -0
  3. package/dist/auth/config.d.ts +57 -0
  4. package/dist/auth/config.d.ts.map +1 -0
  5. package/dist/auth/config.js +118 -0
  6. package/dist/auth/config.js.map +1 -0
  7. package/dist/auth/index.d.ts +47 -0
  8. package/dist/auth/index.d.ts.map +1 -0
  9. package/dist/auth/index.js +46 -0
  10. package/dist/auth/index.js.map +1 -0
  11. package/dist/auth/oauth.d.ts +93 -0
  12. package/dist/auth/oauth.d.ts.map +1 -0
  13. package/dist/auth/oauth.js +279 -0
  14. package/dist/auth/oauth.js.map +1 -0
  15. package/dist/auth/token-store.d.ts +80 -0
  16. package/dist/auth/token-store.d.ts.map +1 -0
  17. package/dist/auth/token-store.js +204 -0
  18. package/dist/auth/token-store.js.map +1 -0
  19. package/dist/auth/types.d.ts +76 -0
  20. package/dist/auth/types.d.ts.map +1 -0
  21. package/dist/auth/types.js +20 -0
  22. package/dist/auth/types.js.map +1 -0
  23. package/dist/client/freshbooks-client.d.ts +99 -0
  24. package/dist/client/freshbooks-client.d.ts.map +1 -0
  25. package/dist/client/freshbooks-client.js +283 -0
  26. package/dist/client/freshbooks-client.js.map +1 -0
  27. package/dist/client/index.d.ts +5 -0
  28. package/dist/client/index.d.ts.map +1 -0
  29. package/dist/client/index.js +5 -0
  30. package/dist/client/index.js.map +1 -0
  31. package/dist/config/index.d.ts +17 -0
  32. package/dist/config/index.d.ts.map +1 -0
  33. package/dist/config/index.js +81 -0
  34. package/dist/config/index.js.map +1 -0
  35. package/dist/errors/documentation.d.ts +57 -0
  36. package/dist/errors/documentation.d.ts.map +1 -0
  37. package/dist/errors/documentation.js +390 -0
  38. package/dist/errors/documentation.js.map +1 -0
  39. package/dist/errors/error-codes.d.ts +45 -0
  40. package/dist/errors/error-codes.d.ts.map +1 -0
  41. package/dist/errors/error-codes.js +94 -0
  42. package/dist/errors/error-codes.js.map +1 -0
  43. package/dist/errors/error-handler.d.ts +127 -0
  44. package/dist/errors/error-handler.d.ts.map +1 -0
  45. package/dist/errors/error-handler.js +283 -0
  46. package/dist/errors/error-handler.js.map +1 -0
  47. package/dist/errors/error-mapper.d.ts +68 -0
  48. package/dist/errors/error-mapper.d.ts.map +1 -0
  49. package/dist/errors/error-mapper.js +449 -0
  50. package/dist/errors/error-mapper.js.map +1 -0
  51. package/dist/errors/index.d.ts +37 -0
  52. package/dist/errors/index.d.ts.map +1 -0
  53. package/dist/errors/index.js +41 -0
  54. package/dist/errors/index.js.map +1 -0
  55. package/dist/errors/response-formatter.d.ts +109 -0
  56. package/dist/errors/response-formatter.d.ts.map +1 -0
  57. package/dist/errors/response-formatter.js +232 -0
  58. package/dist/errors/response-formatter.js.map +1 -0
  59. package/dist/errors/types.d.ts +194 -0
  60. package/dist/errors/types.d.ts.map +1 -0
  61. package/dist/errors/types.js +134 -0
  62. package/dist/errors/types.js.map +1 -0
  63. package/dist/server.d.ts +10 -0
  64. package/dist/server.d.ts.map +1 -0
  65. package/dist/server.js +263 -0
  66. package/dist/server.js.map +1 -0
  67. package/dist/tools/base-tool.d.ts +146 -0
  68. package/dist/tools/base-tool.d.ts.map +1 -0
  69. package/dist/tools/base-tool.js +161 -0
  70. package/dist/tools/base-tool.js.map +1 -0
  71. package/dist/tools/bill/bill-archive.d.ts +40 -0
  72. package/dist/tools/bill/bill-archive.d.ts.map +1 -0
  73. package/dist/tools/bill/bill-archive.js +68 -0
  74. package/dist/tools/bill/bill-archive.js.map +1 -0
  75. package/dist/tools/bill/bill-create.d.ts +178 -0
  76. package/dist/tools/bill/bill-create.d.ts.map +1 -0
  77. package/dist/tools/bill/bill-create.js +70 -0
  78. package/dist/tools/bill/bill-create.js.map +1 -0
  79. package/dist/tools/bill/bill-delete.d.ts +40 -0
  80. package/dist/tools/bill/bill-delete.d.ts.map +1 -0
  81. package/dist/tools/bill/bill-delete.js +67 -0
  82. package/dist/tools/bill/bill-delete.js.map +1 -0
  83. package/dist/tools/bill/bill-list.d.ts +249 -0
  84. package/dist/tools/bill/bill-list.d.ts.map +1 -0
  85. package/dist/tools/bill/bill-list.js +114 -0
  86. package/dist/tools/bill/bill-list.js.map +1 -0
  87. package/dist/tools/bill/bill-single.d.ts +142 -0
  88. package/dist/tools/bill/bill-single.d.ts.map +1 -0
  89. package/dist/tools/bill/bill-single.js +62 -0
  90. package/dist/tools/bill/bill-single.js.map +1 -0
  91. package/dist/tools/bill/index.d.ts +11 -0
  92. package/dist/tools/bill/index.d.ts.map +1 -0
  93. package/dist/tools/bill/index.js +13 -0
  94. package/dist/tools/bill/index.js.map +1 -0
  95. package/dist/tools/bill/schemas.d.ts +609 -0
  96. package/dist/tools/bill/schemas.d.ts.map +1 -0
  97. package/dist/tools/bill/schemas.js +124 -0
  98. package/dist/tools/bill/schemas.js.map +1 -0
  99. package/dist/tools/bill-payment/billpayment-create.d.ts +103 -0
  100. package/dist/tools/bill-payment/billpayment-create.d.ts.map +1 -0
  101. package/dist/tools/bill-payment/billpayment-create.js +67 -0
  102. package/dist/tools/bill-payment/billpayment-create.js.map +1 -0
  103. package/dist/tools/bill-payment/billpayment-delete.d.ts +40 -0
  104. package/dist/tools/bill-payment/billpayment-delete.d.ts.map +1 -0
  105. package/dist/tools/bill-payment/billpayment-delete.js +67 -0
  106. package/dist/tools/bill-payment/billpayment-delete.js.map +1 -0
  107. package/dist/tools/bill-payment/billpayment-list.d.ts +148 -0
  108. package/dist/tools/bill-payment/billpayment-list.d.ts.map +1 -0
  109. package/dist/tools/bill-payment/billpayment-list.js +111 -0
  110. package/dist/tools/bill-payment/billpayment-list.js.map +1 -0
  111. package/dist/tools/bill-payment/billpayment-single.d.ts +76 -0
  112. package/dist/tools/bill-payment/billpayment-single.d.ts.map +1 -0
  113. package/dist/tools/bill-payment/billpayment-single.js +62 -0
  114. package/dist/tools/bill-payment/billpayment-single.js.map +1 -0
  115. package/dist/tools/bill-payment/billpayment-update.d.ts +103 -0
  116. package/dist/tools/bill-payment/billpayment-update.d.ts.map +1 -0
  117. package/dist/tools/bill-payment/billpayment-update.js +67 -0
  118. package/dist/tools/bill-payment/billpayment-update.js.map +1 -0
  119. package/dist/tools/bill-payment/index.d.ts +11 -0
  120. package/dist/tools/bill-payment/index.d.ts.map +1 -0
  121. package/dist/tools/bill-payment/index.js +13 -0
  122. package/dist/tools/bill-payment/index.js.map +1 -0
  123. package/dist/tools/bill-payment/schemas.d.ts +381 -0
  124. package/dist/tools/bill-payment/schemas.d.ts.map +1 -0
  125. package/dist/tools/bill-payment/schemas.js +113 -0
  126. package/dist/tools/bill-payment/schemas.js.map +1 -0
  127. package/dist/tools/bill-vendor/billvendor-create.d.ts +139 -0
  128. package/dist/tools/bill-vendor/billvendor-create.d.ts.map +1 -0
  129. package/dist/tools/bill-vendor/billvendor-create.js +72 -0
  130. package/dist/tools/bill-vendor/billvendor-create.js.map +1 -0
  131. package/dist/tools/bill-vendor/billvendor-delete.d.ts +40 -0
  132. package/dist/tools/bill-vendor/billvendor-delete.d.ts.map +1 -0
  133. package/dist/tools/bill-vendor/billvendor-delete.js +67 -0
  134. package/dist/tools/bill-vendor/billvendor-delete.js.map +1 -0
  135. package/dist/tools/bill-vendor/billvendor-list.d.ts +179 -0
  136. package/dist/tools/bill-vendor/billvendor-list.d.ts.map +1 -0
  137. package/dist/tools/bill-vendor/billvendor-list.js +109 -0
  138. package/dist/tools/bill-vendor/billvendor-list.js.map +1 -0
  139. package/dist/tools/bill-vendor/billvendor-single.d.ts +94 -0
  140. package/dist/tools/bill-vendor/billvendor-single.d.ts.map +1 -0
  141. package/dist/tools/bill-vendor/billvendor-single.js +62 -0
  142. package/dist/tools/bill-vendor/billvendor-single.js.map +1 -0
  143. package/dist/tools/bill-vendor/billvendor-update.d.ts +142 -0
  144. package/dist/tools/bill-vendor/billvendor-update.d.ts.map +1 -0
  145. package/dist/tools/bill-vendor/billvendor-update.js +72 -0
  146. package/dist/tools/bill-vendor/billvendor-update.js.map +1 -0
  147. package/dist/tools/bill-vendor/index.d.ts +11 -0
  148. package/dist/tools/bill-vendor/index.d.ts.map +1 -0
  149. package/dist/tools/bill-vendor/index.js +13 -0
  150. package/dist/tools/bill-vendor/index.js.map +1 -0
  151. package/dist/tools/bill-vendor/schemas.d.ts +483 -0
  152. package/dist/tools/bill-vendor/schemas.d.ts.map +1 -0
  153. package/dist/tools/bill-vendor/schemas.js +136 -0
  154. package/dist/tools/bill-vendor/schemas.js.map +1 -0
  155. package/dist/tools/callback/callback-create.d.ts +52 -0
  156. package/dist/tools/callback/callback-create.d.ts.map +1 -0
  157. package/dist/tools/callback/callback-create.js +73 -0
  158. package/dist/tools/callback/callback-create.js.map +1 -0
  159. package/dist/tools/callback/callback-delete.d.ts +37 -0
  160. package/dist/tools/callback/callback-delete.d.ts.map +1 -0
  161. package/dist/tools/callback/callback-delete.js +57 -0
  162. package/dist/tools/callback/callback-delete.js.map +1 -0
  163. package/dist/tools/callback/callback-list.d.ts +100 -0
  164. package/dist/tools/callback/callback-list.d.ts.map +1 -0
  165. package/dist/tools/callback/callback-list.js +84 -0
  166. package/dist/tools/callback/callback-list.js.map +1 -0
  167. package/dist/tools/callback/callback-resend-verification.d.ts +49 -0
  168. package/dist/tools/callback/callback-resend-verification.d.ts.map +1 -0
  169. package/dist/tools/callback/callback-resend-verification.js +63 -0
  170. package/dist/tools/callback/callback-resend-verification.js.map +1 -0
  171. package/dist/tools/callback/callback-single.d.ts +49 -0
  172. package/dist/tools/callback/callback-single.d.ts.map +1 -0
  173. package/dist/tools/callback/callback-single.js +53 -0
  174. package/dist/tools/callback/callback-single.js.map +1 -0
  175. package/dist/tools/callback/callback-update.d.ts +55 -0
  176. package/dist/tools/callback/callback-update.d.ts.map +1 -0
  177. package/dist/tools/callback/callback-update.js +62 -0
  178. package/dist/tools/callback/callback-update.js.map +1 -0
  179. package/dist/tools/callback/callback-verify.d.ts +43 -0
  180. package/dist/tools/callback/callback-verify.d.ts.map +1 -0
  181. package/dist/tools/callback/callback-verify.js +69 -0
  182. package/dist/tools/callback/callback-verify.js.map +1 -0
  183. package/dist/tools/callback/index.d.ts +13 -0
  184. package/dist/tools/callback/index.d.ts.map +1 -0
  185. package/dist/tools/callback/index.js +15 -0
  186. package/dist/tools/callback/index.js.map +1 -0
  187. package/dist/tools/callback/schemas.d.ts +284 -0
  188. package/dist/tools/callback/schemas.d.ts.map +1 -0
  189. package/dist/tools/callback/schemas.js +114 -0
  190. package/dist/tools/callback/schemas.js.map +1 -0
  191. package/dist/tools/client/client-create.d.ts +211 -0
  192. package/dist/tools/client/client-create.d.ts.map +1 -0
  193. package/dist/tools/client/client-create.js +147 -0
  194. package/dist/tools/client/client-create.js.map +1 -0
  195. package/dist/tools/client/client-delete.d.ts +40 -0
  196. package/dist/tools/client/client-delete.d.ts.map +1 -0
  197. package/dist/tools/client/client-delete.js +73 -0
  198. package/dist/tools/client/client-delete.js.map +1 -0
  199. package/dist/tools/client/client-list.d.ts +264 -0
  200. package/dist/tools/client/client-list.d.ts.map +1 -0
  201. package/dist/tools/client/client-list.js +131 -0
  202. package/dist/tools/client/client-list.js.map +1 -0
  203. package/dist/tools/client/client-single.d.ts +133 -0
  204. package/dist/tools/client/client-single.d.ts.map +1 -0
  205. package/dist/tools/client/client-single.js +67 -0
  206. package/dist/tools/client/client-single.js.map +1 -0
  207. package/dist/tools/client/client-update.d.ts +217 -0
  208. package/dist/tools/client/client-update.d.ts.map +1 -0
  209. package/dist/tools/client/client-update.js +146 -0
  210. package/dist/tools/client/client-update.js.map +1 -0
  211. package/dist/tools/client/index.d.ts +11 -0
  212. package/dist/tools/client/index.d.ts.map +1 -0
  213. package/dist/tools/client/index.js +13 -0
  214. package/dist/tools/client/index.js.map +1 -0
  215. package/dist/tools/client/schemas.d.ts +759 -0
  216. package/dist/tools/client/schemas.d.ts.map +1 -0
  217. package/dist/tools/client/schemas.js +241 -0
  218. package/dist/tools/client/schemas.js.map +1 -0
  219. package/dist/tools/credit-note/creditnote-create.d.ts +448 -0
  220. package/dist/tools/credit-note/creditnote-create.d.ts.map +1 -0
  221. package/dist/tools/credit-note/creditnote-create.js +88 -0
  222. package/dist/tools/credit-note/creditnote-create.js.map +1 -0
  223. package/dist/tools/credit-note/creditnote-delete.d.ts +37 -0
  224. package/dist/tools/credit-note/creditnote-delete.d.ts.map +1 -0
  225. package/dist/tools/credit-note/creditnote-delete.js +57 -0
  226. package/dist/tools/credit-note/creditnote-delete.js.map +1 -0
  227. package/dist/tools/credit-note/creditnote-list.d.ts +627 -0
  228. package/dist/tools/credit-note/creditnote-list.d.ts.map +1 -0
  229. package/dist/tools/credit-note/creditnote-list.js +106 -0
  230. package/dist/tools/credit-note/creditnote-list.js.map +1 -0
  231. package/dist/tools/credit-note/creditnote-single.d.ts +358 -0
  232. package/dist/tools/credit-note/creditnote-single.d.ts.map +1 -0
  233. package/dist/tools/credit-note/creditnote-single.js +60 -0
  234. package/dist/tools/credit-note/creditnote-single.js.map +1 -0
  235. package/dist/tools/credit-note/creditnote-update.d.ts +442 -0
  236. package/dist/tools/credit-note/creditnote-update.d.ts.map +1 -0
  237. package/dist/tools/credit-note/creditnote-update.js +82 -0
  238. package/dist/tools/credit-note/creditnote-update.js.map +1 -0
  239. package/dist/tools/credit-note/index.d.ts +11 -0
  240. package/dist/tools/credit-note/index.d.ts.map +1 -0
  241. package/dist/tools/credit-note/index.js +13 -0
  242. package/dist/tools/credit-note/index.js.map +1 -0
  243. package/dist/tools/credit-note/schemas.d.ts +1599 -0
  244. package/dist/tools/credit-note/schemas.d.ts.map +1 -0
  245. package/dist/tools/credit-note/schemas.js +196 -0
  246. package/dist/tools/credit-note/schemas.js.map +1 -0
  247. package/dist/tools/expense/expense-create.d.ts +196 -0
  248. package/dist/tools/expense/expense-create.d.ts.map +1 -0
  249. package/dist/tools/expense/expense-create.js +103 -0
  250. package/dist/tools/expense/expense-create.js.map +1 -0
  251. package/dist/tools/expense/expense-delete.d.ts +40 -0
  252. package/dist/tools/expense/expense-delete.d.ts.map +1 -0
  253. package/dist/tools/expense/expense-delete.js +73 -0
  254. package/dist/tools/expense/expense-delete.js.map +1 -0
  255. package/dist/tools/expense/expense-list.d.ts +264 -0
  256. package/dist/tools/expense/expense-list.d.ts.map +1 -0
  257. package/dist/tools/expense/expense-list.js +126 -0
  258. package/dist/tools/expense/expense-list.js.map +1 -0
  259. package/dist/tools/expense/expense-single.d.ts +145 -0
  260. package/dist/tools/expense/expense-single.d.ts.map +1 -0
  261. package/dist/tools/expense/expense-single.js +63 -0
  262. package/dist/tools/expense/expense-single.js.map +1 -0
  263. package/dist/tools/expense/expense-update.d.ts +199 -0
  264. package/dist/tools/expense/expense-update.d.ts.map +1 -0
  265. package/dist/tools/expense/expense-update.js +108 -0
  266. package/dist/tools/expense/expense-update.js.map +1 -0
  267. package/dist/tools/expense/index.d.ts +11 -0
  268. package/dist/tools/expense/index.d.ts.map +1 -0
  269. package/dist/tools/expense/index.js +13 -0
  270. package/dist/tools/expense/index.js.map +1 -0
  271. package/dist/tools/expense/schemas.d.ts +667 -0
  272. package/dist/tools/expense/schemas.d.ts.map +1 -0
  273. package/dist/tools/expense/schemas.js +142 -0
  274. package/dist/tools/expense/schemas.js.map +1 -0
  275. package/dist/tools/expense-category/expensecategory-list.d.ts +113 -0
  276. package/dist/tools/expense-category/expensecategory-list.d.ts.map +1 -0
  277. package/dist/tools/expense-category/expensecategory-list.js +113 -0
  278. package/dist/tools/expense-category/expensecategory-list.js.map +1 -0
  279. package/dist/tools/expense-category/expensecategory-single.d.ts +58 -0
  280. package/dist/tools/expense-category/expensecategory-single.d.ts.map +1 -0
  281. package/dist/tools/expense-category/expensecategory-single.js +66 -0
  282. package/dist/tools/expense-category/expensecategory-single.js.map +1 -0
  283. package/dist/tools/expense-category/index.d.ts +9 -0
  284. package/dist/tools/expense-category/index.d.ts.map +1 -0
  285. package/dist/tools/expense-category/index.js +11 -0
  286. package/dist/tools/expense-category/index.js.map +1 -0
  287. package/dist/tools/expense-category/schemas.d.ts +184 -0
  288. package/dist/tools/expense-category/schemas.d.ts.map +1 -0
  289. package/dist/tools/expense-category/schemas.js +58 -0
  290. package/dist/tools/expense-category/schemas.js.map +1 -0
  291. package/dist/tools/index.d.ts +53 -0
  292. package/dist/tools/index.d.ts.map +1 -0
  293. package/dist/tools/index.js +98 -0
  294. package/dist/tools/index.js.map +1 -0
  295. package/dist/tools/invoice/index.d.ts +12 -0
  296. package/dist/tools/invoice/index.d.ts.map +1 -0
  297. package/dist/tools/invoice/index.js +14 -0
  298. package/dist/tools/invoice/index.js.map +1 -0
  299. package/dist/tools/invoice/invoice-create.d.ts +367 -0
  300. package/dist/tools/invoice/invoice-create.d.ts.map +1 -0
  301. package/dist/tools/invoice/invoice-create.js +115 -0
  302. package/dist/tools/invoice/invoice-create.js.map +1 -0
  303. package/dist/tools/invoice/invoice-delete.d.ts +40 -0
  304. package/dist/tools/invoice/invoice-delete.d.ts.map +1 -0
  305. package/dist/tools/invoice/invoice-delete.js +75 -0
  306. package/dist/tools/invoice/invoice-delete.js.map +1 -0
  307. package/dist/tools/invoice/invoice-list.d.ts +439 -0
  308. package/dist/tools/invoice/invoice-list.d.ts.map +1 -0
  309. package/dist/tools/invoice/invoice-list.js +126 -0
  310. package/dist/tools/invoice/invoice-list.js.map +1 -0
  311. package/dist/tools/invoice/invoice-share-link.d.ts +40 -0
  312. package/dist/tools/invoice/invoice-share-link.d.ts.map +1 -0
  313. package/dist/tools/invoice/invoice-share-link.js +89 -0
  314. package/dist/tools/invoice/invoice-share-link.js.map +1 -0
  315. package/dist/tools/invoice/invoice-single.d.ts +265 -0
  316. package/dist/tools/invoice/invoice-single.d.ts.map +1 -0
  317. package/dist/tools/invoice/invoice-single.js +66 -0
  318. package/dist/tools/invoice/invoice-single.js.map +1 -0
  319. package/dist/tools/invoice/invoice-update.d.ts +373 -0
  320. package/dist/tools/invoice/invoice-update.d.ts.map +1 -0
  321. package/dist/tools/invoice/invoice-update.js +122 -0
  322. package/dist/tools/invoice/invoice-update.js.map +1 -0
  323. package/dist/tools/invoice/schemas.d.ts +1414 -0
  324. package/dist/tools/invoice/schemas.d.ts.map +1 -0
  325. package/dist/tools/invoice/schemas.js +269 -0
  326. package/dist/tools/invoice/schemas.js.map +1 -0
  327. package/dist/tools/item/index.d.ts +10 -0
  328. package/dist/tools/item/index.d.ts.map +1 -0
  329. package/dist/tools/item/index.js +12 -0
  330. package/dist/tools/item/index.js.map +1 -0
  331. package/dist/tools/item/item-create.d.ts +136 -0
  332. package/dist/tools/item/item-create.d.ts.map +1 -0
  333. package/dist/tools/item/item-create.js +71 -0
  334. package/dist/tools/item/item-create.js.map +1 -0
  335. package/dist/tools/item/item-list.d.ts +178 -0
  336. package/dist/tools/item/item-list.d.ts.map +1 -0
  337. package/dist/tools/item/item-list.js +112 -0
  338. package/dist/tools/item/item-list.js.map +1 -0
  339. package/dist/tools/item/item-single.d.ts +94 -0
  340. package/dist/tools/item/item-single.d.ts.map +1 -0
  341. package/dist/tools/item/item-single.js +62 -0
  342. package/dist/tools/item/item-single.js.map +1 -0
  343. package/dist/tools/item/item-update.d.ts +139 -0
  344. package/dist/tools/item/item-update.d.ts.map +1 -0
  345. package/dist/tools/item/item-update.js +74 -0
  346. package/dist/tools/item/item-update.js.map +1 -0
  347. package/dist/tools/item/schemas.d.ts +454 -0
  348. package/dist/tools/item/schemas.d.ts.map +1 -0
  349. package/dist/tools/item/schemas.js +116 -0
  350. package/dist/tools/item/schemas.js.map +1 -0
  351. package/dist/tools/journal-entry/index.d.ts +7 -0
  352. package/dist/tools/journal-entry/index.d.ts.map +1 -0
  353. package/dist/tools/journal-entry/index.js +9 -0
  354. package/dist/tools/journal-entry/index.js.map +1 -0
  355. package/dist/tools/journal-entry/journalentry-create.d.ts +114 -0
  356. package/dist/tools/journal-entry/journalentry-create.d.ts.map +1 -0
  357. package/dist/tools/journal-entry/journalentry-create.js +98 -0
  358. package/dist/tools/journal-entry/journalentry-create.js.map +1 -0
  359. package/dist/tools/journal-entry/schemas.d.ts +182 -0
  360. package/dist/tools/journal-entry/schemas.d.ts.map +1 -0
  361. package/dist/tools/journal-entry/schemas.js +43 -0
  362. package/dist/tools/journal-entry/schemas.js.map +1 -0
  363. package/dist/tools/journal-entry-account/index.d.ts +7 -0
  364. package/dist/tools/journal-entry-account/index.d.ts.map +1 -0
  365. package/dist/tools/journal-entry-account/index.js +9 -0
  366. package/dist/tools/journal-entry-account/index.js.map +1 -0
  367. package/dist/tools/journal-entry-account/journalentryaccount-list.d.ts +190 -0
  368. package/dist/tools/journal-entry-account/journalentryaccount-list.d.ts.map +1 -0
  369. package/dist/tools/journal-entry-account/journalentryaccount-list.js +102 -0
  370. package/dist/tools/journal-entry-account/journalentryaccount-list.js.map +1 -0
  371. package/dist/tools/journal-entry-account/schemas.d.ts +344 -0
  372. package/dist/tools/journal-entry-account/schemas.d.ts.map +1 -0
  373. package/dist/tools/journal-entry-account/schemas.js +65 -0
  374. package/dist/tools/journal-entry-account/schemas.js.map +1 -0
  375. package/dist/tools/metadata.d.ts +49 -0
  376. package/dist/tools/metadata.d.ts.map +1 -0
  377. package/dist/tools/metadata.js +317 -0
  378. package/dist/tools/metadata.js.map +1 -0
  379. package/dist/tools/other-income/index.d.ts +11 -0
  380. package/dist/tools/other-income/index.d.ts.map +1 -0
  381. package/dist/tools/other-income/index.js +13 -0
  382. package/dist/tools/other-income/index.js.map +1 -0
  383. package/dist/tools/other-income/otherincome-create.d.ts +152 -0
  384. package/dist/tools/other-income/otherincome-create.d.ts.map +1 -0
  385. package/dist/tools/other-income/otherincome-create.js +89 -0
  386. package/dist/tools/other-income/otherincome-create.js.map +1 -0
  387. package/dist/tools/other-income/otherincome-delete.d.ts +37 -0
  388. package/dist/tools/other-income/otherincome-delete.d.ts.map +1 -0
  389. package/dist/tools/other-income/otherincome-delete.js +57 -0
  390. package/dist/tools/other-income/otherincome-delete.js.map +1 -0
  391. package/dist/tools/other-income/otherincome-list.d.ts +186 -0
  392. package/dist/tools/other-income/otherincome-list.d.ts.map +1 -0
  393. package/dist/tools/other-income/otherincome-list.js +107 -0
  394. package/dist/tools/other-income/otherincome-list.js.map +1 -0
  395. package/dist/tools/other-income/otherincome-single.d.ts +99 -0
  396. package/dist/tools/other-income/otherincome-single.d.ts.map +1 -0
  397. package/dist/tools/other-income/otherincome-single.js +53 -0
  398. package/dist/tools/other-income/otherincome-single.js.map +1 -0
  399. package/dist/tools/other-income/otherincome-update.d.ts +155 -0
  400. package/dist/tools/other-income/otherincome-update.d.ts.map +1 -0
  401. package/dist/tools/other-income/otherincome-update.js +84 -0
  402. package/dist/tools/other-income/otherincome-update.js.map +1 -0
  403. package/dist/tools/other-income/schemas.d.ts +510 -0
  404. package/dist/tools/other-income/schemas.d.ts.map +1 -0
  405. package/dist/tools/other-income/schemas.js +141 -0
  406. package/dist/tools/other-income/schemas.js.map +1 -0
  407. package/dist/tools/payment/index.d.ts +11 -0
  408. package/dist/tools/payment/index.d.ts.map +1 -0
  409. package/dist/tools/payment/index.js +13 -0
  410. package/dist/tools/payment/index.js.map +1 -0
  411. package/dist/tools/payment/payment-create.d.ts +127 -0
  412. package/dist/tools/payment/payment-create.d.ts.map +1 -0
  413. package/dist/tools/payment/payment-create.js +84 -0
  414. package/dist/tools/payment/payment-create.js.map +1 -0
  415. package/dist/tools/payment/payment-delete.d.ts +40 -0
  416. package/dist/tools/payment/payment-delete.d.ts.map +1 -0
  417. package/dist/tools/payment/payment-delete.js +67 -0
  418. package/dist/tools/payment/payment-delete.js.map +1 -0
  419. package/dist/tools/payment/payment-list.d.ts +186 -0
  420. package/dist/tools/payment/payment-list.d.ts.map +1 -0
  421. package/dist/tools/payment/payment-list.js +113 -0
  422. package/dist/tools/payment/payment-list.js.map +1 -0
  423. package/dist/tools/payment/payment-single.d.ts +97 -0
  424. package/dist/tools/payment/payment-single.d.ts.map +1 -0
  425. package/dist/tools/payment/payment-single.js +62 -0
  426. package/dist/tools/payment/payment-single.js.map +1 -0
  427. package/dist/tools/payment/payment-update.d.ts +124 -0
  428. package/dist/tools/payment/payment-update.d.ts.map +1 -0
  429. package/dist/tools/payment/payment-update.js +79 -0
  430. package/dist/tools/payment/payment-update.js.map +1 -0
  431. package/dist/tools/payment/schemas.d.ts +445 -0
  432. package/dist/tools/payment/schemas.d.ts.map +1 -0
  433. package/dist/tools/payment/schemas.js +126 -0
  434. package/dist/tools/payment/schemas.js.map +1 -0
  435. package/dist/tools/payment-options/index.d.ts +9 -0
  436. package/dist/tools/payment-options/index.d.ts.map +1 -0
  437. package/dist/tools/payment-options/index.js +11 -0
  438. package/dist/tools/payment-options/index.js.map +1 -0
  439. package/dist/tools/payment-options/paymentoptions-create.d.ts +91 -0
  440. package/dist/tools/payment-options/paymentoptions-create.d.ts.map +1 -0
  441. package/dist/tools/payment-options/paymentoptions-create.js +71 -0
  442. package/dist/tools/payment-options/paymentoptions-create.js.map +1 -0
  443. package/dist/tools/payment-options/paymentoptions-default.d.ts +43 -0
  444. package/dist/tools/payment-options/paymentoptions-default.d.ts.map +1 -0
  445. package/dist/tools/payment-options/paymentoptions-default.js +64 -0
  446. package/dist/tools/payment-options/paymentoptions-default.js.map +1 -0
  447. package/dist/tools/payment-options/paymentoptions-single.d.ts +76 -0
  448. package/dist/tools/payment-options/paymentoptions-single.d.ts.map +1 -0
  449. package/dist/tools/payment-options/paymentoptions-single.js +58 -0
  450. package/dist/tools/payment-options/paymentoptions-single.js.map +1 -0
  451. package/dist/tools/payment-options/schemas.d.ts +197 -0
  452. package/dist/tools/payment-options/schemas.d.ts.map +1 -0
  453. package/dist/tools/payment-options/schemas.js +69 -0
  454. package/dist/tools/payment-options/schemas.js.map +1 -0
  455. package/dist/tools/project/index.d.ts +11 -0
  456. package/dist/tools/project/index.d.ts.map +1 -0
  457. package/dist/tools/project/index.js +13 -0
  458. package/dist/tools/project/index.js.map +1 -0
  459. package/dist/tools/project/project-create.d.ts +142 -0
  460. package/dist/tools/project/project-create.d.ts.map +1 -0
  461. package/dist/tools/project/project-create.js +100 -0
  462. package/dist/tools/project/project-create.js.map +1 -0
  463. package/dist/tools/project/project-delete.d.ts +44 -0
  464. package/dist/tools/project/project-delete.d.ts.map +1 -0
  465. package/dist/tools/project/project-delete.js +80 -0
  466. package/dist/tools/project/project-delete.js.map +1 -0
  467. package/dist/tools/project/project-list.d.ts +227 -0
  468. package/dist/tools/project/project-list.d.ts.map +1 -0
  469. package/dist/tools/project/project-list.js +118 -0
  470. package/dist/tools/project/project-list.js.map +1 -0
  471. package/dist/tools/project/project-single.d.ts +115 -0
  472. package/dist/tools/project/project-single.d.ts.map +1 -0
  473. package/dist/tools/project/project-single.js +63 -0
  474. package/dist/tools/project/project-single.js.map +1 -0
  475. package/dist/tools/project/project-update.d.ts +151 -0
  476. package/dist/tools/project/project-update.d.ts.map +1 -0
  477. package/dist/tools/project/project-update.js +106 -0
  478. package/dist/tools/project/project-update.js.map +1 -0
  479. package/dist/tools/project/schemas.d.ts +588 -0
  480. package/dist/tools/project/schemas.d.ts.map +1 -0
  481. package/dist/tools/project/schemas.js +196 -0
  482. package/dist/tools/project/schemas.js.map +1 -0
  483. package/dist/tools/report/index.d.ts +9 -0
  484. package/dist/tools/report/index.d.ts.map +1 -0
  485. package/dist/tools/report/index.js +11 -0
  486. package/dist/tools/report/index.js.map +1 -0
  487. package/dist/tools/report/report-payments-collected.d.ts +118 -0
  488. package/dist/tools/report/report-payments-collected.d.ts.map +1 -0
  489. package/dist/tools/report/report-payments-collected.js +89 -0
  490. package/dist/tools/report/report-payments-collected.js.map +1 -0
  491. package/dist/tools/report/report-profit-loss.d.ts +139 -0
  492. package/dist/tools/report/report-profit-loss.d.ts.map +1 -0
  493. package/dist/tools/report/report-profit-loss.js +98 -0
  494. package/dist/tools/report/report-profit-loss.js.map +1 -0
  495. package/dist/tools/report/report-tax-summary.d.ts +155 -0
  496. package/dist/tools/report/report-tax-summary.d.ts.map +1 -0
  497. package/dist/tools/report/report-tax-summary.js +100 -0
  498. package/dist/tools/report/report-tax-summary.js.map +1 -0
  499. package/dist/tools/report/schemas.d.ts +859 -0
  500. package/dist/tools/report/schemas.d.ts.map +1 -0
  501. package/dist/tools/report/schemas.js +126 -0
  502. package/dist/tools/report/schemas.js.map +1 -0
  503. package/dist/tools/service/index.d.ts +12 -0
  504. package/dist/tools/service/index.d.ts.map +1 -0
  505. package/dist/tools/service/index.js +14 -0
  506. package/dist/tools/service/index.js.map +1 -0
  507. package/dist/tools/service/schemas.d.ts +159 -0
  508. package/dist/tools/service/schemas.d.ts.map +1 -0
  509. package/dist/tools/service/schemas.js +62 -0
  510. package/dist/tools/service/schemas.js.map +1 -0
  511. package/dist/tools/service/service-create.d.ts +52 -0
  512. package/dist/tools/service/service-create.d.ts.map +1 -0
  513. package/dist/tools/service/service-create.js +82 -0
  514. package/dist/tools/service/service-create.js.map +1 -0
  515. package/dist/tools/service/service-list.d.ts +119 -0
  516. package/dist/tools/service/service-list.d.ts.map +1 -0
  517. package/dist/tools/service/service-list.js +99 -0
  518. package/dist/tools/service/service-list.js.map +1 -0
  519. package/dist/tools/service/service-rate-get.d.ts +63 -0
  520. package/dist/tools/service/service-rate-get.d.ts.map +1 -0
  521. package/dist/tools/service/service-rate-get.js +66 -0
  522. package/dist/tools/service/service-rate-get.js.map +1 -0
  523. package/dist/tools/service/service-rate-set.d.ts +76 -0
  524. package/dist/tools/service/service-rate-set.d.ts.map +1 -0
  525. package/dist/tools/service/service-rate-set.js +91 -0
  526. package/dist/tools/service/service-rate-set.js.map +1 -0
  527. package/dist/tools/service/service-single.d.ts +45 -0
  528. package/dist/tools/service/service-single.d.ts.map +1 -0
  529. package/dist/tools/service/service-single.js +63 -0
  530. package/dist/tools/service/service-single.js.map +1 -0
  531. package/dist/tools/task/index.d.ts +12 -0
  532. package/dist/tools/task/index.d.ts.map +1 -0
  533. package/dist/tools/task/index.js +14 -0
  534. package/dist/tools/task/index.js.map +1 -0
  535. package/dist/tools/task/schemas.d.ts +299 -0
  536. package/dist/tools/task/schemas.d.ts.map +1 -0
  537. package/dist/tools/task/schemas.js +89 -0
  538. package/dist/tools/task/schemas.js.map +1 -0
  539. package/dist/tools/task/task-create.d.ts +101 -0
  540. package/dist/tools/task/task-create.d.ts.map +1 -0
  541. package/dist/tools/task/task-create.js +77 -0
  542. package/dist/tools/task/task-create.js.map +1 -0
  543. package/dist/tools/task/task-delete.d.ts +39 -0
  544. package/dist/tools/task/task-delete.d.ts.map +1 -0
  545. package/dist/tools/task/task-delete.js +70 -0
  546. package/dist/tools/task/task-delete.js.map +1 -0
  547. package/dist/tools/task/task-list.d.ts +157 -0
  548. package/dist/tools/task/task-list.d.ts.map +1 -0
  549. package/dist/tools/task/task-list.js +78 -0
  550. package/dist/tools/task/task-list.js.map +1 -0
  551. package/dist/tools/task/task-single.d.ts +77 -0
  552. package/dist/tools/task/task-single.d.ts.map +1 -0
  553. package/dist/tools/task/task-single.js +56 -0
  554. package/dist/tools/task/task-single.js.map +1 -0
  555. package/dist/tools/task/task-update.d.ts +107 -0
  556. package/dist/tools/task/task-update.d.ts.map +1 -0
  557. package/dist/tools/task/task-update.js +87 -0
  558. package/dist/tools/task/task-update.js.map +1 -0
  559. package/dist/tools/time-entry/index.d.ts +11 -0
  560. package/dist/tools/time-entry/index.d.ts.map +1 -0
  561. package/dist/tools/time-entry/index.js +11 -0
  562. package/dist/tools/time-entry/index.js.map +1 -0
  563. package/dist/tools/time-entry/schemas.d.ts +598 -0
  564. package/dist/tools/time-entry/schemas.d.ts.map +1 -0
  565. package/dist/tools/time-entry/schemas.js +217 -0
  566. package/dist/tools/time-entry/schemas.js.map +1 -0
  567. package/dist/tools/time-entry/timeentry-create.d.ts +142 -0
  568. package/dist/tools/time-entry/timeentry-create.d.ts.map +1 -0
  569. package/dist/tools/time-entry/timeentry-create.js +137 -0
  570. package/dist/tools/time-entry/timeentry-create.js.map +1 -0
  571. package/dist/tools/time-entry/timeentry-delete.d.ts +43 -0
  572. package/dist/tools/time-entry/timeentry-delete.d.ts.map +1 -0
  573. package/dist/tools/time-entry/timeentry-delete.js +93 -0
  574. package/dist/tools/time-entry/timeentry-delete.js.map +1 -0
  575. package/dist/tools/time-entry/timeentry-list.d.ts +232 -0
  576. package/dist/tools/time-entry/timeentry-list.d.ts.map +1 -0
  577. package/dist/tools/time-entry/timeentry-list.js +154 -0
  578. package/dist/tools/time-entry/timeentry-list.js.map +1 -0
  579. package/dist/tools/time-entry/timeentry-single.d.ts +109 -0
  580. package/dist/tools/time-entry/timeentry-single.d.ts.map +1 -0
  581. package/dist/tools/time-entry/timeentry-single.js +75 -0
  582. package/dist/tools/time-entry/timeentry-single.js.map +1 -0
  583. package/dist/tools/time-entry/timeentry-update.d.ts +145 -0
  584. package/dist/tools/time-entry/timeentry-update.d.ts.map +1 -0
  585. package/dist/tools/time-entry/timeentry-update.js +174 -0
  586. package/dist/tools/time-entry/timeentry-update.js.map +1 -0
  587. package/dist/tools/timer/index.d.ts +16 -0
  588. package/dist/tools/timer/index.d.ts.map +1 -0
  589. package/dist/tools/timer/index.js +19 -0
  590. package/dist/tools/timer/index.js.map +1 -0
  591. package/dist/tools/timer/schemas.d.ts +520 -0
  592. package/dist/tools/timer/schemas.d.ts.map +1 -0
  593. package/dist/tools/timer/schemas.js +109 -0
  594. package/dist/tools/timer/schemas.js.map +1 -0
  595. package/dist/tools/timer/timer-current.d.ts +170 -0
  596. package/dist/tools/timer/timer-current.d.ts.map +1 -0
  597. package/dist/tools/timer/timer-current.js +134 -0
  598. package/dist/tools/timer/timer-current.js.map +1 -0
  599. package/dist/tools/timer/timer-discard.d.ts +54 -0
  600. package/dist/tools/timer/timer-discard.d.ts.map +1 -0
  601. package/dist/tools/timer/timer-discard.js +115 -0
  602. package/dist/tools/timer/timer-discard.js.map +1 -0
  603. package/dist/tools/timer/timer-start.d.ts +135 -0
  604. package/dist/tools/timer/timer-start.d.ts.map +1 -0
  605. package/dist/tools/timer/timer-start.js +129 -0
  606. package/dist/tools/timer/timer-start.js.map +1 -0
  607. package/dist/tools/timer/timer-stop.d.ts +123 -0
  608. package/dist/tools/timer/timer-stop.d.ts.map +1 -0
  609. package/dist/tools/timer/timer-stop.js +165 -0
  610. package/dist/tools/timer/timer-stop.js.map +1 -0
  611. package/dist/tools/types.d.ts +49 -0
  612. package/dist/tools/types.d.ts.map +1 -0
  613. package/dist/tools/types.js +61 -0
  614. package/dist/tools/types.js.map +1 -0
  615. package/dist/tools/user/index.d.ts +7 -0
  616. package/dist/tools/user/index.d.ts.map +1 -0
  617. package/dist/tools/user/index.js +9 -0
  618. package/dist/tools/user/index.js.map +1 -0
  619. package/dist/tools/user/schemas.d.ts +258 -0
  620. package/dist/tools/user/schemas.d.ts.map +1 -0
  621. package/dist/tools/user/schemas.js +51 -0
  622. package/dist/tools/user/schemas.js.map +1 -0
  623. package/dist/tools/user/user-me.d.ts +129 -0
  624. package/dist/tools/user/user-me.d.ts.map +1 -0
  625. package/dist/tools/user/user-me.js +63 -0
  626. package/dist/tools/user/user-me.js.map +1 -0
  627. package/dist/types/freshbooks.d.ts +276 -0
  628. package/dist/types/freshbooks.d.ts.map +1 -0
  629. package/dist/types/freshbooks.js +6 -0
  630. package/dist/types/freshbooks.js.map +1 -0
  631. package/dist/types/index.d.ts +92 -0
  632. package/dist/types/index.d.ts.map +1 -0
  633. package/dist/types/index.js +6 -0
  634. package/dist/types/index.js.map +1 -0
  635. package/dist/utils/index.d.ts +6 -0
  636. package/dist/utils/index.d.ts.map +1 -0
  637. package/dist/utils/index.js +6 -0
  638. package/dist/utils/index.js.map +1 -0
  639. package/dist/utils/logger.d.ts +54 -0
  640. package/dist/utils/logger.d.ts.map +1 -0
  641. package/dist/utils/logger.js +133 -0
  642. package/dist/utils/logger.js.map +1 -0
  643. package/dist/utils/pagination.d.ts +39 -0
  644. package/dist/utils/pagination.d.ts.map +1 -0
  645. package/dist/utils/pagination.js +62 -0
  646. package/dist/utils/pagination.js.map +1 -0
  647. package/package.json +88 -0
@@ -0,0 +1,449 @@
1
+ /**
2
+ * Error Mapper
3
+ *
4
+ * Maps various error types to normalized MCP format while
5
+ * preserving original error details for debugging.
6
+ */
7
+ import { MCPErrorCode, FreshBooksErrorCode, } from "./types.js";
8
+ /**
9
+ * Error Mapper Class
10
+ *
11
+ * Provides static methods for mapping different error types
12
+ * to the normalized MCP error format.
13
+ */
14
+ export class ErrorMapper {
15
+ /**
16
+ * Map FreshBooks API error to MCP error
17
+ *
18
+ * @param fbError - FreshBooks API error object
19
+ * @param context - Additional error context
20
+ * @returns Normalized MCP error
21
+ */
22
+ static mapFreshBooksError(fbError, context) {
23
+ const errorCode = fbError.error?.code || "UNKNOWN";
24
+ const mapping = ERROR_MAPPINGS[errorCode] || DEFAULT_MAPPING;
25
+ const mcpError = Object.assign(new Error(mapping.getMessage(fbError.error)), {
26
+ code: mapping.mcpCode,
27
+ message: mapping.getMessage(fbError.error),
28
+ data: {
29
+ freshbooksError: {
30
+ code: fbError.error?.code || "UNKNOWN",
31
+ message: fbError.error?.message || "Unknown error",
32
+ field: fbError.error?.field,
33
+ errno: fbError.error?.errno,
34
+ details: fbError.error?.details,
35
+ },
36
+ context,
37
+ recoverable: mapping.recoverable,
38
+ suggestion: mapping.getSuggestion(fbError.error),
39
+ retryAfter: fbError.retryAfter,
40
+ },
41
+ });
42
+ return mcpError;
43
+ }
44
+ /**
45
+ * Map Zod validation error to MCP error
46
+ *
47
+ * @param zodError - Zod validation error
48
+ * @param context - Additional error context
49
+ * @returns Normalized MCP error
50
+ */
51
+ static mapValidationError(zodError, context) {
52
+ const issues = zodError.issues.map((issue) => ({
53
+ path: issue.path.join("."),
54
+ message: issue.message,
55
+ code: issue.code,
56
+ expected: "expected" in issue ? String(issue.expected) : undefined,
57
+ received: "received" in issue ? issue.received : undefined,
58
+ }));
59
+ const firstIssue = issues[0];
60
+ const message = firstIssue
61
+ ? `Validation failed for "${firstIssue.path}": ${firstIssue.message}`
62
+ : "Validation failed";
63
+ const mcpError = Object.assign(new Error(message), {
64
+ code: MCPErrorCode.INVALID_PARAMS,
65
+ message,
66
+ data: {
67
+ validationErrors: issues,
68
+ context,
69
+ recoverable: true,
70
+ suggestion: this.getValidationSuggestion(issues),
71
+ statusCode: 400,
72
+ },
73
+ });
74
+ return mcpError;
75
+ }
76
+ /**
77
+ * Map OAuth error to MCP error
78
+ *
79
+ * @param error - OAuth error
80
+ * @param context - Additional error context
81
+ * @returns Normalized MCP error
82
+ */
83
+ static mapOAuthError(error, context) {
84
+ const isTokenExpired = error.code === "invalid_grant" ||
85
+ error.code === "token_expired" ||
86
+ error.message.toLowerCase().includes("expired");
87
+ const isInvalidAuth = error.code === "invalid_client" ||
88
+ error.code === "unauthorized_client" ||
89
+ error.code === "access_denied";
90
+ if (isTokenExpired) {
91
+ const message = "Authentication token has expired.";
92
+ return Object.assign(new Error(message), {
93
+ code: MCPErrorCode.TOKEN_EXPIRED,
94
+ message,
95
+ data: {
96
+ freshbooksError: {
97
+ code: error.code,
98
+ message: error.message,
99
+ },
100
+ context,
101
+ recoverable: true,
102
+ suggestion: "Call auth_refresh to get a new token, or re-authenticate using auth_get_url",
103
+ },
104
+ });
105
+ }
106
+ if (isInvalidAuth) {
107
+ const message = "Authentication failed or access was denied.";
108
+ return Object.assign(new Error(message), {
109
+ code: MCPErrorCode.NOT_AUTHENTICATED,
110
+ message,
111
+ data: {
112
+ freshbooksError: {
113
+ code: error.code,
114
+ message: error.message,
115
+ },
116
+ context,
117
+ recoverable: true,
118
+ suggestion: "Re-authenticate using auth_get_url to obtain valid credentials",
119
+ },
120
+ });
121
+ }
122
+ const message = `OAuth error: ${error.message}`;
123
+ return Object.assign(new Error(message), {
124
+ code: MCPErrorCode.NOT_AUTHENTICATED,
125
+ message,
126
+ data: {
127
+ freshbooksError: {
128
+ code: error.code,
129
+ message: error.message,
130
+ details: error.details,
131
+ },
132
+ context,
133
+ recoverable: true,
134
+ suggestion: "Check your OAuth credentials and try again",
135
+ },
136
+ });
137
+ }
138
+ /**
139
+ * Get validation suggestion based on issues
140
+ *
141
+ * @param issues - Validation issues
142
+ * @returns Human-readable suggestion
143
+ */
144
+ static getValidationSuggestion(issues) {
145
+ if (issues.length === 0) {
146
+ return "Check the input parameters and try again";
147
+ }
148
+ if (issues.length === 1) {
149
+ const issue = issues[0];
150
+ if (!issue) {
151
+ return "Check the input parameters and try again";
152
+ }
153
+ return `Fix the "${issue.path}" field: ${issue.message.toLowerCase()}`;
154
+ }
155
+ const fields = issues.map((i) => `"${i.path}"`).join(", ");
156
+ return `Fix the following fields: ${fields}`;
157
+ }
158
+ /**
159
+ * Map network/transport error to MCP error
160
+ *
161
+ * Handles various network error conditions like timeouts,
162
+ * connection failures, DNS errors, etc.
163
+ *
164
+ * @param error - Network error
165
+ * @param context - Additional error context
166
+ * @returns Normalized MCP error
167
+ */
168
+ static mapNetworkError(error, context) {
169
+ const errorMessage = error.message.toLowerCase();
170
+ // Timeout errors
171
+ const isTimeout = errorMessage.includes("etimedout") || errorMessage.includes("timeout");
172
+ // Connection errors
173
+ const isConnection = errorMessage.includes("econnrefused") ||
174
+ errorMessage.includes("enotfound") ||
175
+ errorMessage.includes("econnreset");
176
+ // DNS errors
177
+ const isDNS = errorMessage.includes("eai_again") ||
178
+ errorMessage.includes("getaddrinfo");
179
+ // Socket errors
180
+ const isSocket = errorMessage.includes("socket hang up");
181
+ if (isTimeout) {
182
+ const message = "Request timed out. FreshBooks may be slow to respond.";
183
+ return Object.assign(new Error(message), {
184
+ code: MCPErrorCode.SERVICE_UNAVAILABLE,
185
+ message,
186
+ data: {
187
+ context,
188
+ recoverable: true,
189
+ suggestion: "Wait a moment and try again. If the issue persists, check FreshBooks status.",
190
+ },
191
+ });
192
+ }
193
+ if (isConnection || isDNS) {
194
+ const message = "Could not connect to FreshBooks API.";
195
+ return Object.assign(new Error(message), {
196
+ code: MCPErrorCode.SERVICE_UNAVAILABLE,
197
+ message,
198
+ data: {
199
+ context,
200
+ recoverable: true,
201
+ suggestion: "Check your internet connection and try again.",
202
+ },
203
+ });
204
+ }
205
+ if (isSocket) {
206
+ const message = "Connection was closed unexpectedly.";
207
+ return Object.assign(new Error(message), {
208
+ code: MCPErrorCode.SERVICE_UNAVAILABLE,
209
+ message,
210
+ data: {
211
+ context,
212
+ recoverable: true,
213
+ suggestion: "The connection was interrupted. Please try again.",
214
+ },
215
+ });
216
+ }
217
+ // Generic network error
218
+ const message = `Network error: ${error.message}`;
219
+ return Object.assign(new Error(message), {
220
+ code: MCPErrorCode.INTERNAL_ERROR,
221
+ message,
222
+ data: {
223
+ context,
224
+ recoverable: true,
225
+ suggestion: "An unexpected network error occurred. Please try again.",
226
+ },
227
+ });
228
+ }
229
+ /**
230
+ * Map HTTP status code to MCP error
231
+ *
232
+ * @param statusCode - HTTP status code
233
+ * @param statusText - HTTP status text
234
+ * @param context - Additional error context
235
+ * @returns Normalized MCP error
236
+ */
237
+ static mapHttpError(statusCode, statusText, context) {
238
+ let code;
239
+ let message;
240
+ let recoverable;
241
+ let suggestion;
242
+ switch (statusCode) {
243
+ case 401:
244
+ code = MCPErrorCode.NOT_AUTHENTICATED;
245
+ message = "Authentication required or session expired";
246
+ recoverable = true;
247
+ suggestion = "Please re-authenticate using auth_get_url";
248
+ break;
249
+ case 403:
250
+ code = MCPErrorCode.PERMISSION_DENIED;
251
+ message = "Permission denied";
252
+ recoverable = false;
253
+ suggestion =
254
+ "You don't have access to this resource. Contact your administrator.";
255
+ break;
256
+ case 404:
257
+ code = MCPErrorCode.RESOURCE_NOT_FOUND;
258
+ message = "Resource not found";
259
+ recoverable = false;
260
+ suggestion =
261
+ "Verify the resource ID is correct. The resource may have been deleted.";
262
+ break;
263
+ case 409:
264
+ code = MCPErrorCode.CONFLICT;
265
+ message = "Conflict with existing resource";
266
+ recoverable = false;
267
+ suggestion = "A resource with these details already exists";
268
+ break;
269
+ case 422:
270
+ code = MCPErrorCode.VALIDATION_ERROR;
271
+ message = "Validation failed";
272
+ recoverable = true;
273
+ suggestion = "Check the input values and try again";
274
+ break;
275
+ case 429:
276
+ code = MCPErrorCode.RATE_LIMITED;
277
+ message = "Rate limit exceeded";
278
+ recoverable = true;
279
+ suggestion = "Wait a moment before making more requests";
280
+ break;
281
+ case 500:
282
+ case 502:
283
+ case 503:
284
+ case 504:
285
+ code = MCPErrorCode.SERVICE_UNAVAILABLE;
286
+ message = "FreshBooks service is unavailable";
287
+ recoverable = true;
288
+ suggestion =
289
+ "An error occurred on FreshBooks' side. Please try again.";
290
+ break;
291
+ default:
292
+ code = MCPErrorCode.INTERNAL_ERROR;
293
+ message = `HTTP error ${statusCode}: ${statusText}`;
294
+ recoverable = true;
295
+ suggestion = "An unexpected error occurred. Please try again.";
296
+ }
297
+ return Object.assign(new Error(message), {
298
+ code,
299
+ message,
300
+ data: {
301
+ freshbooksError: {
302
+ code: `HTTP_${statusCode}`,
303
+ message: statusText,
304
+ },
305
+ context,
306
+ recoverable,
307
+ suggestion,
308
+ },
309
+ });
310
+ }
311
+ }
312
+ /**
313
+ * Error Mapping Configuration
314
+ *
315
+ * Maps FreshBooks error codes to MCP error codes with
316
+ * recovery guidance.
317
+ */
318
+ const ERROR_MAPPINGS = {
319
+ // Authentication Errors
320
+ [FreshBooksErrorCode.UNAUTHORIZED]: {
321
+ mcpCode: MCPErrorCode.NOT_AUTHENTICATED,
322
+ recoverable: true,
323
+ statusCode: 401,
324
+ getMessage: () => "Authentication required or session expired",
325
+ getSuggestion: () => "Please authenticate using auth_get_url to obtain access credentials",
326
+ },
327
+ [FreshBooksErrorCode.UNAUTHENTICATED]: {
328
+ mcpCode: MCPErrorCode.NOT_AUTHENTICATED,
329
+ recoverable: true,
330
+ statusCode: 401,
331
+ getMessage: () => "No valid authentication found",
332
+ getSuggestion: () => "Call auth_get_url to start the authentication process",
333
+ },
334
+ [FreshBooksErrorCode.TOKEN_EXPIRED]: {
335
+ mcpCode: MCPErrorCode.TOKEN_EXPIRED,
336
+ recoverable: true,
337
+ statusCode: 401,
338
+ getMessage: () => "Access token has expired",
339
+ getSuggestion: () => "Call auth_refresh to refresh your token, or re-authenticate if refresh fails",
340
+ },
341
+ [FreshBooksErrorCode.INVALID_GRANT]: {
342
+ mcpCode: MCPErrorCode.TOKEN_EXPIRED,
343
+ recoverable: true,
344
+ statusCode: 401,
345
+ getMessage: () => "Refresh token is invalid or expired",
346
+ getSuggestion: () => "Re-authenticate using auth_get_url to obtain new credentials",
347
+ },
348
+ // Permission Errors
349
+ [FreshBooksErrorCode.FORBIDDEN]: {
350
+ mcpCode: MCPErrorCode.PERMISSION_DENIED,
351
+ recoverable: false,
352
+ statusCode: 403,
353
+ getMessage: (e) => `Permission denied: ${e.message}`,
354
+ getSuggestion: () => "You don't have permission to access this resource. Contact your FreshBooks administrator to request access.",
355
+ },
356
+ [FreshBooksErrorCode.INSUFFICIENT_PERMISSIONS]: {
357
+ mcpCode: MCPErrorCode.PERMISSION_DENIED,
358
+ recoverable: false,
359
+ statusCode: 403,
360
+ getMessage: (e) => `Insufficient permissions: ${e.message}`,
361
+ getSuggestion: () => "Your FreshBooks account lacks the required permissions for this operation",
362
+ },
363
+ // Resource Errors
364
+ [FreshBooksErrorCode.NOT_FOUND]: {
365
+ mcpCode: MCPErrorCode.RESOURCE_NOT_FOUND,
366
+ recoverable: false,
367
+ statusCode: 404,
368
+ getMessage: (e) => {
369
+ if (e.field) {
370
+ return `Resource not found: The ${e.field} you specified doesn't exist`;
371
+ }
372
+ return `Resource not found: ${e.message}`;
373
+ },
374
+ getSuggestion: (e) => {
375
+ if (e.field) {
376
+ return `Verify the ${e.field} is correct. The resource may have been deleted or moved to a different account.`;
377
+ }
378
+ return "Double-check the ID or identifier. The resource may have been deleted.";
379
+ },
380
+ },
381
+ // Validation Errors
382
+ [FreshBooksErrorCode.VALIDATION_ERROR]: {
383
+ mcpCode: MCPErrorCode.VALIDATION_ERROR,
384
+ recoverable: true,
385
+ statusCode: 422,
386
+ getMessage: (e) => {
387
+ if (e.field) {
388
+ return `Invalid value for "${e.field}": ${e.message}`;
389
+ }
390
+ return `Validation error: ${e.message}`;
391
+ },
392
+ getSuggestion: (e) => {
393
+ if (e.field) {
394
+ return `Check the value provided for "${e.field}" and ensure it meets the requirements`;
395
+ }
396
+ return "Review the input values and ensure they match the expected format";
397
+ },
398
+ },
399
+ [FreshBooksErrorCode.BAD_REQUEST]: {
400
+ mcpCode: MCPErrorCode.VALIDATION_ERROR,
401
+ recoverable: true,
402
+ statusCode: 400,
403
+ getMessage: (e) => `Invalid request: ${e.message}`,
404
+ getSuggestion: () => "Check the request parameters and ensure all required fields are provided correctly",
405
+ },
406
+ // Rate Limiting
407
+ [FreshBooksErrorCode.RATE_LIMIT_EXCEEDED]: {
408
+ mcpCode: MCPErrorCode.RATE_LIMITED,
409
+ recoverable: true,
410
+ statusCode: 429,
411
+ getMessage: () => "Rate limit exceeded",
412
+ getSuggestion: () => "You've made too many requests in a short period. Wait before making more requests.",
413
+ },
414
+ // Conflict Errors
415
+ [FreshBooksErrorCode.CONFLICT]: {
416
+ mcpCode: MCPErrorCode.CONFLICT,
417
+ recoverable: false,
418
+ statusCode: 409,
419
+ getMessage: (e) => `Conflict: ${e.message}`,
420
+ getSuggestion: () => "A resource with these details already exists. Try updating the existing resource instead of creating a new one.",
421
+ },
422
+ // Server Errors
423
+ [FreshBooksErrorCode.INTERNAL_ERROR]: {
424
+ mcpCode: MCPErrorCode.INTERNAL_ERROR,
425
+ recoverable: true,
426
+ statusCode: 500,
427
+ getMessage: () => "FreshBooks server error",
428
+ getSuggestion: () => "An error occurred on FreshBooks' side. Please try again in a few moments. If the issue persists, contact FreshBooks support.",
429
+ },
430
+ [FreshBooksErrorCode.SERVICE_UNAVAILABLE]: {
431
+ mcpCode: MCPErrorCode.SERVICE_UNAVAILABLE,
432
+ recoverable: true,
433
+ statusCode: 503,
434
+ getMessage: () => "FreshBooks service is temporarily unavailable",
435
+ getSuggestion: () => "FreshBooks may be undergoing maintenance. Please try again later or check status.freshbooks.com",
436
+ },
437
+ };
438
+ /**
439
+ * Default Error Mapping
440
+ *
441
+ * Used when no specific mapping is found for an error code.
442
+ */
443
+ const DEFAULT_MAPPING = {
444
+ mcpCode: MCPErrorCode.INTERNAL_ERROR,
445
+ recoverable: true,
446
+ getMessage: (e) => e.message || "An unexpected error occurred",
447
+ getSuggestion: () => "Please try again. If the issue persists, check the error details.",
448
+ };
449
+ //# sourceMappingURL=error-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-mapper.js","sourceRoot":"","sources":["../../src/errors/error-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Error System
3
+ *
4
+ * Comprehensive error handling for the FreshBooks MCP server.
5
+ *
6
+ * This module provides a dual-format error system:
7
+ * - All errors normalized to MCP JSON-RPC format for clients
8
+ * - Original FreshBooks errors preserved in data field for debugging
9
+ *
10
+ * @module errors
11
+ */
12
+ export type { MCPError, MCPErrorData, ErrorContext, FreshBooksApiError, ErrorMapping, ToolContext, } from "./types.js";
13
+ export { MCPErrorCode, FreshBooksErrorCode, OAuthError, } from "./types.js";
14
+ export { ErrorMapper } from "./error-mapper.js";
15
+ export { ErrorHandler, generateRequestId, handleError, createAuthError } from "./error-handler.js";
16
+ import { MCPErrorCode as _MCPErrorCode } from "./types.js";
17
+ /**
18
+ * Re-export commonly used error codes for convenience
19
+ */
20
+ export declare const ErrorCodes: {
21
+ readonly PARSE_ERROR: _MCPErrorCode.PARSE_ERROR;
22
+ readonly INVALID_REQUEST: _MCPErrorCode.INVALID_REQUEST;
23
+ readonly METHOD_NOT_FOUND: _MCPErrorCode.METHOD_NOT_FOUND;
24
+ readonly INVALID_PARAMS: _MCPErrorCode.INVALID_PARAMS;
25
+ readonly INTERNAL_ERROR: _MCPErrorCode.INTERNAL_ERROR;
26
+ readonly NOT_AUTHENTICATED: _MCPErrorCode.NOT_AUTHENTICATED;
27
+ readonly TOKEN_EXPIRED: _MCPErrorCode.TOKEN_EXPIRED;
28
+ readonly PERMISSION_DENIED: _MCPErrorCode.PERMISSION_DENIED;
29
+ readonly RATE_LIMITED: _MCPErrorCode.RATE_LIMITED;
30
+ readonly RESOURCE_NOT_FOUND: _MCPErrorCode.RESOURCE_NOT_FOUND;
31
+ readonly VALIDATION_ERROR: _MCPErrorCode.VALIDATION_ERROR;
32
+ readonly CONFLICT: _MCPErrorCode.CONFLICT;
33
+ readonly SERVICE_UNAVAILABLE: _MCPErrorCode.SERVICE_UNAVAILABLE;
34
+ readonly NETWORK_ERROR: _MCPErrorCode.NETWORK_ERROR;
35
+ readonly TIMEOUT: _MCPErrorCode.TIMEOUT;
36
+ };
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGnG,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAmBb,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Error System
3
+ *
4
+ * Comprehensive error handling for the FreshBooks MCP server.
5
+ *
6
+ * This module provides a dual-format error system:
7
+ * - All errors normalized to MCP JSON-RPC format for clients
8
+ * - Original FreshBooks errors preserved in data field for debugging
9
+ *
10
+ * @module errors
11
+ */
12
+ export { MCPErrorCode, FreshBooksErrorCode, OAuthError, } from "./types.js";
13
+ // Error Mapping
14
+ export { ErrorMapper } from "./error-mapper.js";
15
+ // Error Handling
16
+ export { ErrorHandler, generateRequestId, handleError, createAuthError } from "./error-handler.js";
17
+ // Re-export MCPErrorCode enum for convenience
18
+ import { MCPErrorCode as _MCPErrorCode } from "./types.js";
19
+ /**
20
+ * Re-export commonly used error codes for convenience
21
+ */
22
+ export const ErrorCodes = {
23
+ // JSON-RPC standard errors
24
+ PARSE_ERROR: _MCPErrorCode.PARSE_ERROR,
25
+ INVALID_REQUEST: _MCPErrorCode.INVALID_REQUEST,
26
+ METHOD_NOT_FOUND: _MCPErrorCode.METHOD_NOT_FOUND,
27
+ INVALID_PARAMS: _MCPErrorCode.INVALID_PARAMS,
28
+ INTERNAL_ERROR: _MCPErrorCode.INTERNAL_ERROR,
29
+ // Application errors
30
+ NOT_AUTHENTICATED: _MCPErrorCode.NOT_AUTHENTICATED,
31
+ TOKEN_EXPIRED: _MCPErrorCode.TOKEN_EXPIRED,
32
+ PERMISSION_DENIED: _MCPErrorCode.PERMISSION_DENIED,
33
+ RATE_LIMITED: _MCPErrorCode.RATE_LIMITED,
34
+ RESOURCE_NOT_FOUND: _MCPErrorCode.RESOURCE_NOT_FOUND,
35
+ VALIDATION_ERROR: _MCPErrorCode.VALIDATION_ERROR,
36
+ CONFLICT: _MCPErrorCode.CONFLICT,
37
+ SERVICE_UNAVAILABLE: _MCPErrorCode.SERVICE_UNAVAILABLE,
38
+ NETWORK_ERROR: _MCPErrorCode.NETWORK_ERROR,
39
+ TIMEOUT: _MCPErrorCode.TIMEOUT,
40
+ };
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnG,8CAA8C;AAC9C,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,2BAA2B;IAC3B,WAAW,EAAE,aAAa,CAAC,WAAW;IACtC,eAAe,EAAE,aAAa,CAAC,eAAe;IAC9C,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;IAChD,cAAc,EAAE,aAAa,CAAC,cAAc;IAC5C,cAAc,EAAE,aAAa,CAAC,cAAc;IAE5C,qBAAqB;IACrB,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;IAClD,aAAa,EAAE,aAAa,CAAC,aAAa;IAC1C,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;IAClD,YAAY,EAAE,aAAa,CAAC,YAAY;IACxC,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;IACpD,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;IAChD,QAAQ,EAAE,aAAa,CAAC,QAAQ;IAChC,mBAAmB,EAAE,aAAa,CAAC,mBAAmB;IACtD,aAAa,EAAE,aAAa,CAAC,aAAa;IAC1C,OAAO,EAAE,aAAa,CAAC,OAAO;CACtB,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Response Formatter
3
+ *
4
+ * Formats errors for different output contexts:
5
+ * - JSON-RPC response format (for MCP protocol)
6
+ * - Claude-friendly text format (for display)
7
+ */
8
+ import { MCPError } from "./types.js";
9
+ /**
10
+ * Format MCPError for JSON-RPC 2.0 error response
11
+ *
12
+ * Creates a properly formatted JSON-RPC error response object
13
+ * that can be sent over the MCP protocol.
14
+ *
15
+ * @param error - The normalized MCP error
16
+ * @param requestId - Optional request ID (null for notifications)
17
+ * @returns JSON-RPC error response object
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const response = formatErrorResponse(mcpError, "req-123");
22
+ * // Returns:
23
+ * // {
24
+ * // jsonrpc: "2.0",
25
+ * // id: "req-123",
26
+ * // error: {
27
+ * // code: -32005,
28
+ * // message: "Resource not found",
29
+ * // data: { ... }
30
+ * // }
31
+ * // }
32
+ * ```
33
+ */
34
+ export declare function formatErrorResponse(error: MCPError, requestId?: string | number | null): object;
35
+ /**
36
+ * Format error for Claude-friendly display
37
+ *
38
+ * Creates a markdown-formatted, human-readable error message
39
+ * that Claude can present to the user with actionable guidance.
40
+ *
41
+ * @param error - The normalized MCP error
42
+ * @returns Formatted error message with suggestions
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const display = formatErrorForClaude(mcpError);
47
+ * // Returns:
48
+ * // **Error:** Resource not found
49
+ * //
50
+ * // **Suggestion:** Verify the ID is correct...
51
+ * //
52
+ * // *This error cannot be recovered by retrying.*
53
+ * ```
54
+ */
55
+ export declare function formatErrorForClaude(error: MCPError): string;
56
+ /**
57
+ * Format error for logging
58
+ *
59
+ * Creates a structured log entry suitable for stderr logging.
60
+ * Omits sensitive information like tokens or PII.
61
+ *
62
+ * @param error - The normalized MCP error
63
+ * @returns Structured log object
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const logEntry = formatErrorForLogging(mcpError);
68
+ * console.error(JSON.stringify(logEntry));
69
+ * ```
70
+ */
71
+ export declare function formatErrorForLogging(error: MCPError): object;
72
+ /**
73
+ * Format error details for debugging
74
+ *
75
+ * Creates a comprehensive error dump including all details
76
+ * for debugging purposes. Should only be used in development.
77
+ *
78
+ * @param error - The normalized MCP error
79
+ * @returns Detailed error information
80
+ */
81
+ export declare function formatErrorForDebug(error: MCPError): object;
82
+ /**
83
+ * Get error summary
84
+ *
85
+ * Returns a brief one-line summary of the error.
86
+ *
87
+ * @param error - The normalized MCP error
88
+ * @returns Brief error summary
89
+ */
90
+ export declare function getErrorSummary(error: MCPError): string;
91
+ /**
92
+ * Check if error is retryable
93
+ *
94
+ * Determines if the error can be resolved by retrying.
95
+ *
96
+ * @param error - The normalized MCP error
97
+ * @returns True if error is retryable
98
+ */
99
+ export declare function isRetryable(error: MCPError): boolean;
100
+ /**
101
+ * Get suggested retry delay
102
+ *
103
+ * Returns the suggested delay before retrying (in milliseconds).
104
+ *
105
+ * @param error - The normalized MCP error
106
+ * @returns Delay in milliseconds, or undefined if not retryable
107
+ */
108
+ export declare function getRetryDelay(error: MCPError): number | undefined;
109
+ //# sourceMappingURL=response-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-formatter.d.ts","sourceRoot":"","sources":["../../src/errors/response-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,EACf,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GACjC,MAAM,CAUR;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAgD5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAgB7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAW3D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAYvD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAEpD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAqBjE"}