@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,127 @@
1
+ /**
2
+ * Error Handler
3
+ *
4
+ * Provides reusable error handling utilities including:
5
+ * - Tool handler wrapper with automatic error normalization
6
+ * - Generic error normalization
7
+ * - Error type detection
8
+ */
9
+ import { MCPError, ErrorContext, ToolContext } from "./types.js";
10
+ /**
11
+ * Error Handler Class
12
+ *
13
+ * Central error handling and normalization logic.
14
+ */
15
+ export declare class ErrorHandler {
16
+ /**
17
+ * Wrap tool handler with error normalization
18
+ *
19
+ * This wrapper:
20
+ * - Generates a request ID for tracking
21
+ * - Logs the tool invocation
22
+ * - Catches and normalizes all errors
23
+ * - Logs normalized errors
24
+ *
25
+ * @param toolName - Name of the tool being wrapped
26
+ * @param handler - The actual tool handler function
27
+ * @returns Wrapped handler with error normalization
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const wrappedHandler = ErrorHandler.wrapHandler(
32
+ * "timeentry_create",
33
+ * async (input, context) => {
34
+ * // Tool implementation
35
+ * return result;
36
+ * }
37
+ * );
38
+ * ```
39
+ */
40
+ static wrapHandler<TInput, TOutput>(toolName: string, handler: (input: TInput, context: ToolContext) => Promise<TOutput>): (input: TInput, context: ToolContext) => Promise<TOutput>;
41
+ /**
42
+ * Normalize any error to MCP format
43
+ *
44
+ * Detects the error type and maps it appropriately:
45
+ * - Already normalized MCPError: return as-is
46
+ * - FreshBooks API error: map using ErrorMapper
47
+ * - Zod validation error: map validation issues
48
+ * - OAuth error: map authentication error
49
+ * - Network error: map network/transport error
50
+ * - Unknown error: create generic internal error
51
+ *
52
+ * @param error - Error to normalize
53
+ * @param context - Additional context
54
+ * @returns Normalized MCP error
55
+ */
56
+ static normalizeError(error: unknown, context?: ErrorContext): MCPError;
57
+ /**
58
+ * Check if error is already an MCPError
59
+ */
60
+ private static isMCPError;
61
+ /**
62
+ * Check if error is a FreshBooks API error
63
+ */
64
+ private static isFreshBooksError;
65
+ /**
66
+ * Check if error is a network/transport error
67
+ */
68
+ private static isNetworkError;
69
+ /**
70
+ * Check if error has HTTP status code
71
+ */
72
+ private static isHttpError;
73
+ /**
74
+ * Create a validation error
75
+ *
76
+ * Helper method for creating validation errors directly.
77
+ *
78
+ * @param message - Error message
79
+ * @param context - Error context
80
+ * @returns MCPError with validation error code
81
+ */
82
+ static createValidationError(message: string, context?: ErrorContext): MCPError;
83
+ /**
84
+ * Create an authentication error
85
+ *
86
+ * Helper method for creating authentication errors directly.
87
+ *
88
+ * @param message - Error message
89
+ * @param context - Error context
90
+ * @returns MCPError with authentication error code
91
+ */
92
+ static createAuthError(message: string, context?: ErrorContext): MCPError;
93
+ /**
94
+ * Create a not found error
95
+ *
96
+ * Helper method for creating not found errors directly.
97
+ *
98
+ * @param resourceType - Type of resource (e.g., "TimeEntry")
99
+ * @param resourceId - ID of the resource
100
+ * @param context - Error context
101
+ * @returns MCPError with not found error code
102
+ */
103
+ static createNotFoundError(resourceType: string, resourceId: string | number, context?: ErrorContext): MCPError;
104
+ }
105
+ /**
106
+ * Generate a unique request ID
107
+ *
108
+ * Used for tracking requests through logs.
109
+ *
110
+ * @returns Request ID in format: req_<timestamp>_<random>
111
+ */
112
+ declare function generateRequestId(): string;
113
+ /**
114
+ * Export request ID generator for use in other modules
115
+ */
116
+ export { generateRequestId };
117
+ /**
118
+ * Convenience function for normalizing errors
119
+ * Re-exports ErrorHandler.normalizeError as handleError for backward compatibility
120
+ */
121
+ export declare const handleError: typeof ErrorHandler.normalizeError;
122
+ /**
123
+ * Convenience function for creating authentication errors
124
+ * Re-exports ErrorHandler.createAuthError for backward compatibility
125
+ */
126
+ export declare const createAuthError: typeof ErrorHandler.createAuthError;
127
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/errors/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,QAAQ,EAIR,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAGpB;;;;GAIG;AACH,qBAAa,YAAY;IACvB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,GACjE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC;IA2B5D;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ;IAwEvE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAazB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAahC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAoB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAW1B;;;;;;;;OAQG;IACH,MAAM,CAAC,qBAAqB,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,GACrB,QAAQ;IAiBX;;;;;;;;OAQG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ;IAiBzE;;;;;;;;;OASG;IACH,MAAM,CAAC,mBAAmB,CACxB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,OAAO,CAAC,EAAE,YAAY,GACrB,QAAQ;CAkBZ;AAED;;;;;;GAMG;AACH,iBAAS,iBAAiB,IAAI,MAAM,CAInC;AAED;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,WAAW,oCAAiD,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,eAAe,qCAAkD,CAAC"}
@@ -0,0 +1,283 @@
1
+ /**
2
+ * Error Handler
3
+ *
4
+ * Provides reusable error handling utilities including:
5
+ * - Tool handler wrapper with automatic error normalization
6
+ * - Generic error normalization
7
+ * - Error type detection
8
+ */
9
+ import { z } from "zod";
10
+ import { MCPErrorCode, OAuthError, } from "./types.js";
11
+ import { ErrorMapper } from "./error-mapper.js";
12
+ /**
13
+ * Error Handler Class
14
+ *
15
+ * Central error handling and normalization logic.
16
+ */
17
+ export class ErrorHandler {
18
+ /**
19
+ * Wrap tool handler with error normalization
20
+ *
21
+ * This wrapper:
22
+ * - Generates a request ID for tracking
23
+ * - Logs the tool invocation
24
+ * - Catches and normalizes all errors
25
+ * - Logs normalized errors
26
+ *
27
+ * @param toolName - Name of the tool being wrapped
28
+ * @param handler - The actual tool handler function
29
+ * @returns Wrapped handler with error normalization
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const wrappedHandler = ErrorHandler.wrapHandler(
34
+ * "timeentry_create",
35
+ * async (input, context) => {
36
+ * // Tool implementation
37
+ * return result;
38
+ * }
39
+ * );
40
+ * ```
41
+ */
42
+ static wrapHandler(toolName, handler) {
43
+ return async (input, context) => {
44
+ const requestId = generateRequestId();
45
+ try {
46
+ // Note: In production, this would use a proper logger
47
+ // For now, we avoid logging to keep stdio clean for MCP
48
+ const result = await handler(input, context);
49
+ return result;
50
+ }
51
+ catch (error) {
52
+ const errorContext = {
53
+ tool: toolName,
54
+ requestId,
55
+ };
56
+ if (context.accountId !== undefined) {
57
+ errorContext.accountId = context.accountId;
58
+ }
59
+ const mcpError = this.normalizeError(error, errorContext);
60
+ // Re-throw the normalized error
61
+ throw mcpError;
62
+ }
63
+ };
64
+ }
65
+ /**
66
+ * Normalize any error to MCP format
67
+ *
68
+ * Detects the error type and maps it appropriately:
69
+ * - Already normalized MCPError: return as-is
70
+ * - FreshBooks API error: map using ErrorMapper
71
+ * - Zod validation error: map validation issues
72
+ * - OAuth error: map authentication error
73
+ * - Network error: map network/transport error
74
+ * - Unknown error: create generic internal error
75
+ *
76
+ * @param error - Error to normalize
77
+ * @param context - Additional context
78
+ * @returns Normalized MCP error
79
+ */
80
+ static normalizeError(error, context) {
81
+ // Already normalized
82
+ if (this.isMCPError(error)) {
83
+ // Add context if provided and not already present
84
+ if (context && !error.data.context) {
85
+ error.data.context = context;
86
+ }
87
+ return error;
88
+ }
89
+ // FreshBooks API error
90
+ if (this.isFreshBooksError(error)) {
91
+ return ErrorMapper.mapFreshBooksError(error, context);
92
+ }
93
+ // Zod validation error
94
+ if (error instanceof z.ZodError) {
95
+ return ErrorMapper.mapValidationError(error, context);
96
+ }
97
+ // OAuth error
98
+ if (error instanceof OAuthError) {
99
+ return ErrorMapper.mapOAuthError(error, context);
100
+ }
101
+ // Network error
102
+ if (error instanceof Error && this.isNetworkError(error)) {
103
+ return ErrorMapper.mapNetworkError(error, context);
104
+ }
105
+ // HTTP-like error with status code
106
+ if (this.isHttpError(error)) {
107
+ return ErrorMapper.mapHttpError(error.statusCode, error.statusText || "Unknown", context);
108
+ }
109
+ // Unknown error - create generic internal error
110
+ const message = error instanceof Error ? error.message : String(error);
111
+ const stack = error instanceof Error ? error.stack : undefined;
112
+ const errorData = {
113
+ recoverable: true,
114
+ suggestion: "An unexpected error occurred. Please try again.",
115
+ };
116
+ if (context) {
117
+ errorData.context = context;
118
+ }
119
+ if (stack) {
120
+ errorData.freshbooksError = {
121
+ code: "UNKNOWN_ERROR",
122
+ message,
123
+ details: { stack },
124
+ };
125
+ }
126
+ const mcpError = Object.assign(new Error(`Unexpected error: ${message}`), {
127
+ code: MCPErrorCode.INTERNAL_ERROR,
128
+ message: `Unexpected error: ${message}`,
129
+ data: errorData,
130
+ });
131
+ return mcpError;
132
+ }
133
+ /**
134
+ * Check if error is already an MCPError
135
+ */
136
+ static isMCPError(error) {
137
+ return (typeof error === "object" &&
138
+ error !== null &&
139
+ "code" in error &&
140
+ "message" in error &&
141
+ "data" in error &&
142
+ typeof error.code === "number" &&
143
+ error.code < -32000 &&
144
+ "recoverable" in error.data);
145
+ }
146
+ /**
147
+ * Check if error is a FreshBooks API error
148
+ */
149
+ static isFreshBooksError(error) {
150
+ return (typeof error === "object" &&
151
+ error !== null &&
152
+ "ok" in error &&
153
+ error.ok === false &&
154
+ "error" in error &&
155
+ typeof error.error === "object");
156
+ }
157
+ /**
158
+ * Check if error is a network/transport error
159
+ */
160
+ static isNetworkError(error) {
161
+ const networkIndicators = [
162
+ "ETIMEDOUT",
163
+ "ECONNREFUSED",
164
+ "ENOTFOUND",
165
+ "ECONNRESET",
166
+ "EAI_AGAIN",
167
+ "ENOTFOUND",
168
+ "socket hang up",
169
+ "network",
170
+ "fetch failed",
171
+ "getaddrinfo",
172
+ ];
173
+ const message = error.message.toLowerCase();
174
+ return networkIndicators.some((indicator) => message.includes(indicator.toLowerCase()));
175
+ }
176
+ /**
177
+ * Check if error has HTTP status code
178
+ */
179
+ static isHttpError(error) {
180
+ return (typeof error === "object" &&
181
+ error !== null &&
182
+ "statusCode" in error &&
183
+ typeof error.statusCode === "number");
184
+ }
185
+ /**
186
+ * Create a validation error
187
+ *
188
+ * Helper method for creating validation errors directly.
189
+ *
190
+ * @param message - Error message
191
+ * @param context - Error context
192
+ * @returns MCPError with validation error code
193
+ */
194
+ static createValidationError(message, context) {
195
+ const errorData = {
196
+ recoverable: true,
197
+ suggestion: "Check the input parameters and try again",
198
+ };
199
+ if (context) {
200
+ errorData.context = context;
201
+ }
202
+ return Object.assign(new Error(message), {
203
+ code: MCPErrorCode.INVALID_PARAMS,
204
+ message,
205
+ data: errorData,
206
+ });
207
+ }
208
+ /**
209
+ * Create an authentication error
210
+ *
211
+ * Helper method for creating authentication errors directly.
212
+ *
213
+ * @param message - Error message
214
+ * @param context - Error context
215
+ * @returns MCPError with authentication error code
216
+ */
217
+ static createAuthError(message, context) {
218
+ const errorData = {
219
+ recoverable: true,
220
+ suggestion: "Please re-authenticate using auth_get_url",
221
+ };
222
+ if (context) {
223
+ errorData.context = context;
224
+ }
225
+ return Object.assign(new Error(message), {
226
+ code: MCPErrorCode.NOT_AUTHENTICATED,
227
+ message,
228
+ data: errorData,
229
+ });
230
+ }
231
+ /**
232
+ * Create a not found error
233
+ *
234
+ * Helper method for creating not found errors directly.
235
+ *
236
+ * @param resourceType - Type of resource (e.g., "TimeEntry")
237
+ * @param resourceId - ID of the resource
238
+ * @param context - Error context
239
+ * @returns MCPError with not found error code
240
+ */
241
+ static createNotFoundError(resourceType, resourceId, context) {
242
+ const message = `${resourceType} with id ${resourceId} was not found`;
243
+ const errorData = {
244
+ recoverable: false,
245
+ suggestion: `Verify the ${resourceType} ID is correct. The resource may have been deleted.`,
246
+ };
247
+ if (context) {
248
+ errorData.context = context;
249
+ }
250
+ return Object.assign(new Error(message), {
251
+ code: MCPErrorCode.RESOURCE_NOT_FOUND,
252
+ message,
253
+ data: errorData,
254
+ });
255
+ }
256
+ }
257
+ /**
258
+ * Generate a unique request ID
259
+ *
260
+ * Used for tracking requests through logs.
261
+ *
262
+ * @returns Request ID in format: req_<timestamp>_<random>
263
+ */
264
+ function generateRequestId() {
265
+ const timestamp = Date.now().toString(36);
266
+ const random = Math.random().toString(36).substring(2, 8);
267
+ return `req_${timestamp}_${random}`;
268
+ }
269
+ /**
270
+ * Export request ID generator for use in other modules
271
+ */
272
+ export { generateRequestId };
273
+ /**
274
+ * Convenience function for normalizing errors
275
+ * Re-exports ErrorHandler.normalizeError as handleError for backward compatibility
276
+ */
277
+ export const handleError = ErrorHandler.normalizeError.bind(ErrorHandler);
278
+ /**
279
+ * Convenience function for creating authentication errors
280
+ * Re-exports ErrorHandler.createAuthError for backward compatibility
281
+ */
282
+ export const createAuthError = ErrorHandler.createAuthError.bind(ErrorHandler);
283
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/errors/error-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
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 { z } from "zod";
8
+ import { MCPError, FreshBooksApiError, ErrorContext, OAuthError } from "./types.js";
9
+ /**
10
+ * Error Mapper Class
11
+ *
12
+ * Provides static methods for mapping different error types
13
+ * to the normalized MCP error format.
14
+ */
15
+ export declare class ErrorMapper {
16
+ /**
17
+ * Map FreshBooks API error to MCP error
18
+ *
19
+ * @param fbError - FreshBooks API error object
20
+ * @param context - Additional error context
21
+ * @returns Normalized MCP error
22
+ */
23
+ static mapFreshBooksError(fbError: FreshBooksApiError, context?: ErrorContext): MCPError;
24
+ /**
25
+ * Map Zod validation error to MCP error
26
+ *
27
+ * @param zodError - Zod validation error
28
+ * @param context - Additional error context
29
+ * @returns Normalized MCP error
30
+ */
31
+ static mapValidationError(zodError: z.ZodError, context?: ErrorContext): MCPError;
32
+ /**
33
+ * Map OAuth error to MCP error
34
+ *
35
+ * @param error - OAuth error
36
+ * @param context - Additional error context
37
+ * @returns Normalized MCP error
38
+ */
39
+ static mapOAuthError(error: OAuthError, context?: ErrorContext): MCPError;
40
+ /**
41
+ * Get validation suggestion based on issues
42
+ *
43
+ * @param issues - Validation issues
44
+ * @returns Human-readable suggestion
45
+ */
46
+ private static getValidationSuggestion;
47
+ /**
48
+ * Map network/transport error to MCP error
49
+ *
50
+ * Handles various network error conditions like timeouts,
51
+ * connection failures, DNS errors, etc.
52
+ *
53
+ * @param error - Network error
54
+ * @param context - Additional error context
55
+ * @returns Normalized MCP error
56
+ */
57
+ static mapNetworkError(error: Error, context?: ErrorContext): MCPError;
58
+ /**
59
+ * Map HTTP status code to MCP error
60
+ *
61
+ * @param statusCode - HTTP status code
62
+ * @param statusText - HTTP status text
63
+ * @param context - Additional error context
64
+ * @returns Normalized MCP error
65
+ */
66
+ static mapHttpError(statusCode: number, statusText: string, context?: ErrorContext): MCPError;
67
+ }
68
+ //# sourceMappingURL=error-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-mapper.d.ts","sourceRoot":"","sources":["../../src/errors/error-mapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,QAAQ,EAIR,kBAAkB,EAElB,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,qBAAa,WAAW;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACvB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,YAAY,GACrB,QAAQ;IA4BX;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACvB,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,OAAO,CAAC,EAAE,YAAY,GACrB,QAAQ;IA6BX;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ;IAgEzE;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAmBtC;;;;;;;;;OASG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ;IA2EtE;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,YAAY,GACrB,QAAQ;CAmFZ"}