@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.
- package/LICENSE +21 -0
- package/README.md +357 -0
- package/dist/auth/config.d.ts +57 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/config.js +118 -0
- package/dist/auth/config.js.map +1 -0
- package/dist/auth/index.d.ts +47 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +46 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth.d.ts +93 -0
- package/dist/auth/oauth.d.ts.map +1 -0
- package/dist/auth/oauth.js +279 -0
- package/dist/auth/oauth.js.map +1 -0
- package/dist/auth/token-store.d.ts +80 -0
- package/dist/auth/token-store.d.ts.map +1 -0
- package/dist/auth/token-store.js +204 -0
- package/dist/auth/token-store.js.map +1 -0
- package/dist/auth/types.d.ts +76 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +20 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/client/freshbooks-client.d.ts +99 -0
- package/dist/client/freshbooks-client.d.ts.map +1 -0
- package/dist/client/freshbooks-client.js +283 -0
- package/dist/client/freshbooks-client.js.map +1 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/config/index.d.ts +17 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +81 -0
- package/dist/config/index.js.map +1 -0
- package/dist/errors/documentation.d.ts +57 -0
- package/dist/errors/documentation.d.ts.map +1 -0
- package/dist/errors/documentation.js +390 -0
- package/dist/errors/documentation.js.map +1 -0
- package/dist/errors/error-codes.d.ts +45 -0
- package/dist/errors/error-codes.d.ts.map +1 -0
- package/dist/errors/error-codes.js +94 -0
- package/dist/errors/error-codes.js.map +1 -0
- package/dist/errors/error-handler.d.ts +127 -0
- package/dist/errors/error-handler.d.ts.map +1 -0
- package/dist/errors/error-handler.js +283 -0
- package/dist/errors/error-handler.js.map +1 -0
- package/dist/errors/error-mapper.d.ts +68 -0
- package/dist/errors/error-mapper.d.ts.map +1 -0
- package/dist/errors/error-mapper.js +449 -0
- package/dist/errors/error-mapper.js.map +1 -0
- package/dist/errors/index.d.ts +37 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +41 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/response-formatter.d.ts +109 -0
- package/dist/errors/response-formatter.d.ts.map +1 -0
- package/dist/errors/response-formatter.js +232 -0
- package/dist/errors/response-formatter.js.map +1 -0
- package/dist/errors/types.d.ts +194 -0
- package/dist/errors/types.d.ts.map +1 -0
- package/dist/errors/types.js +134 -0
- package/dist/errors/types.js.map +1 -0
- package/dist/server.d.ts +10 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +263 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/base-tool.d.ts +146 -0
- package/dist/tools/base-tool.d.ts.map +1 -0
- package/dist/tools/base-tool.js +161 -0
- package/dist/tools/base-tool.js.map +1 -0
- package/dist/tools/bill/bill-archive.d.ts +40 -0
- package/dist/tools/bill/bill-archive.d.ts.map +1 -0
- package/dist/tools/bill/bill-archive.js +68 -0
- package/dist/tools/bill/bill-archive.js.map +1 -0
- package/dist/tools/bill/bill-create.d.ts +178 -0
- package/dist/tools/bill/bill-create.d.ts.map +1 -0
- package/dist/tools/bill/bill-create.js +70 -0
- package/dist/tools/bill/bill-create.js.map +1 -0
- package/dist/tools/bill/bill-delete.d.ts +40 -0
- package/dist/tools/bill/bill-delete.d.ts.map +1 -0
- package/dist/tools/bill/bill-delete.js +67 -0
- package/dist/tools/bill/bill-delete.js.map +1 -0
- package/dist/tools/bill/bill-list.d.ts +249 -0
- package/dist/tools/bill/bill-list.d.ts.map +1 -0
- package/dist/tools/bill/bill-list.js +114 -0
- package/dist/tools/bill/bill-list.js.map +1 -0
- package/dist/tools/bill/bill-single.d.ts +142 -0
- package/dist/tools/bill/bill-single.d.ts.map +1 -0
- package/dist/tools/bill/bill-single.js +62 -0
- package/dist/tools/bill/bill-single.js.map +1 -0
- package/dist/tools/bill/index.d.ts +11 -0
- package/dist/tools/bill/index.d.ts.map +1 -0
- package/dist/tools/bill/index.js +13 -0
- package/dist/tools/bill/index.js.map +1 -0
- package/dist/tools/bill/schemas.d.ts +609 -0
- package/dist/tools/bill/schemas.d.ts.map +1 -0
- package/dist/tools/bill/schemas.js +124 -0
- package/dist/tools/bill/schemas.js.map +1 -0
- package/dist/tools/bill-payment/billpayment-create.d.ts +103 -0
- package/dist/tools/bill-payment/billpayment-create.d.ts.map +1 -0
- package/dist/tools/bill-payment/billpayment-create.js +67 -0
- package/dist/tools/bill-payment/billpayment-create.js.map +1 -0
- package/dist/tools/bill-payment/billpayment-delete.d.ts +40 -0
- package/dist/tools/bill-payment/billpayment-delete.d.ts.map +1 -0
- package/dist/tools/bill-payment/billpayment-delete.js +67 -0
- package/dist/tools/bill-payment/billpayment-delete.js.map +1 -0
- package/dist/tools/bill-payment/billpayment-list.d.ts +148 -0
- package/dist/tools/bill-payment/billpayment-list.d.ts.map +1 -0
- package/dist/tools/bill-payment/billpayment-list.js +111 -0
- package/dist/tools/bill-payment/billpayment-list.js.map +1 -0
- package/dist/tools/bill-payment/billpayment-single.d.ts +76 -0
- package/dist/tools/bill-payment/billpayment-single.d.ts.map +1 -0
- package/dist/tools/bill-payment/billpayment-single.js +62 -0
- package/dist/tools/bill-payment/billpayment-single.js.map +1 -0
- package/dist/tools/bill-payment/billpayment-update.d.ts +103 -0
- package/dist/tools/bill-payment/billpayment-update.d.ts.map +1 -0
- package/dist/tools/bill-payment/billpayment-update.js +67 -0
- package/dist/tools/bill-payment/billpayment-update.js.map +1 -0
- package/dist/tools/bill-payment/index.d.ts +11 -0
- package/dist/tools/bill-payment/index.d.ts.map +1 -0
- package/dist/tools/bill-payment/index.js +13 -0
- package/dist/tools/bill-payment/index.js.map +1 -0
- package/dist/tools/bill-payment/schemas.d.ts +381 -0
- package/dist/tools/bill-payment/schemas.d.ts.map +1 -0
- package/dist/tools/bill-payment/schemas.js +113 -0
- package/dist/tools/bill-payment/schemas.js.map +1 -0
- package/dist/tools/bill-vendor/billvendor-create.d.ts +139 -0
- package/dist/tools/bill-vendor/billvendor-create.d.ts.map +1 -0
- package/dist/tools/bill-vendor/billvendor-create.js +72 -0
- package/dist/tools/bill-vendor/billvendor-create.js.map +1 -0
- package/dist/tools/bill-vendor/billvendor-delete.d.ts +40 -0
- package/dist/tools/bill-vendor/billvendor-delete.d.ts.map +1 -0
- package/dist/tools/bill-vendor/billvendor-delete.js +67 -0
- package/dist/tools/bill-vendor/billvendor-delete.js.map +1 -0
- package/dist/tools/bill-vendor/billvendor-list.d.ts +179 -0
- package/dist/tools/bill-vendor/billvendor-list.d.ts.map +1 -0
- package/dist/tools/bill-vendor/billvendor-list.js +109 -0
- package/dist/tools/bill-vendor/billvendor-list.js.map +1 -0
- package/dist/tools/bill-vendor/billvendor-single.d.ts +94 -0
- package/dist/tools/bill-vendor/billvendor-single.d.ts.map +1 -0
- package/dist/tools/bill-vendor/billvendor-single.js +62 -0
- package/dist/tools/bill-vendor/billvendor-single.js.map +1 -0
- package/dist/tools/bill-vendor/billvendor-update.d.ts +142 -0
- package/dist/tools/bill-vendor/billvendor-update.d.ts.map +1 -0
- package/dist/tools/bill-vendor/billvendor-update.js +72 -0
- package/dist/tools/bill-vendor/billvendor-update.js.map +1 -0
- package/dist/tools/bill-vendor/index.d.ts +11 -0
- package/dist/tools/bill-vendor/index.d.ts.map +1 -0
- package/dist/tools/bill-vendor/index.js +13 -0
- package/dist/tools/bill-vendor/index.js.map +1 -0
- package/dist/tools/bill-vendor/schemas.d.ts +483 -0
- package/dist/tools/bill-vendor/schemas.d.ts.map +1 -0
- package/dist/tools/bill-vendor/schemas.js +136 -0
- package/dist/tools/bill-vendor/schemas.js.map +1 -0
- package/dist/tools/callback/callback-create.d.ts +52 -0
- package/dist/tools/callback/callback-create.d.ts.map +1 -0
- package/dist/tools/callback/callback-create.js +73 -0
- package/dist/tools/callback/callback-create.js.map +1 -0
- package/dist/tools/callback/callback-delete.d.ts +37 -0
- package/dist/tools/callback/callback-delete.d.ts.map +1 -0
- package/dist/tools/callback/callback-delete.js +57 -0
- package/dist/tools/callback/callback-delete.js.map +1 -0
- package/dist/tools/callback/callback-list.d.ts +100 -0
- package/dist/tools/callback/callback-list.d.ts.map +1 -0
- package/dist/tools/callback/callback-list.js +84 -0
- package/dist/tools/callback/callback-list.js.map +1 -0
- package/dist/tools/callback/callback-resend-verification.d.ts +49 -0
- package/dist/tools/callback/callback-resend-verification.d.ts.map +1 -0
- package/dist/tools/callback/callback-resend-verification.js +63 -0
- package/dist/tools/callback/callback-resend-verification.js.map +1 -0
- package/dist/tools/callback/callback-single.d.ts +49 -0
- package/dist/tools/callback/callback-single.d.ts.map +1 -0
- package/dist/tools/callback/callback-single.js +53 -0
- package/dist/tools/callback/callback-single.js.map +1 -0
- package/dist/tools/callback/callback-update.d.ts +55 -0
- package/dist/tools/callback/callback-update.d.ts.map +1 -0
- package/dist/tools/callback/callback-update.js +62 -0
- package/dist/tools/callback/callback-update.js.map +1 -0
- package/dist/tools/callback/callback-verify.d.ts +43 -0
- package/dist/tools/callback/callback-verify.d.ts.map +1 -0
- package/dist/tools/callback/callback-verify.js +69 -0
- package/dist/tools/callback/callback-verify.js.map +1 -0
- package/dist/tools/callback/index.d.ts +13 -0
- package/dist/tools/callback/index.d.ts.map +1 -0
- package/dist/tools/callback/index.js +15 -0
- package/dist/tools/callback/index.js.map +1 -0
- package/dist/tools/callback/schemas.d.ts +284 -0
- package/dist/tools/callback/schemas.d.ts.map +1 -0
- package/dist/tools/callback/schemas.js +114 -0
- package/dist/tools/callback/schemas.js.map +1 -0
- package/dist/tools/client/client-create.d.ts +211 -0
- package/dist/tools/client/client-create.d.ts.map +1 -0
- package/dist/tools/client/client-create.js +147 -0
- package/dist/tools/client/client-create.js.map +1 -0
- package/dist/tools/client/client-delete.d.ts +40 -0
- package/dist/tools/client/client-delete.d.ts.map +1 -0
- package/dist/tools/client/client-delete.js +73 -0
- package/dist/tools/client/client-delete.js.map +1 -0
- package/dist/tools/client/client-list.d.ts +264 -0
- package/dist/tools/client/client-list.d.ts.map +1 -0
- package/dist/tools/client/client-list.js +131 -0
- package/dist/tools/client/client-list.js.map +1 -0
- package/dist/tools/client/client-single.d.ts +133 -0
- package/dist/tools/client/client-single.d.ts.map +1 -0
- package/dist/tools/client/client-single.js +67 -0
- package/dist/tools/client/client-single.js.map +1 -0
- package/dist/tools/client/client-update.d.ts +217 -0
- package/dist/tools/client/client-update.d.ts.map +1 -0
- package/dist/tools/client/client-update.js +146 -0
- package/dist/tools/client/client-update.js.map +1 -0
- package/dist/tools/client/index.d.ts +11 -0
- package/dist/tools/client/index.d.ts.map +1 -0
- package/dist/tools/client/index.js +13 -0
- package/dist/tools/client/index.js.map +1 -0
- package/dist/tools/client/schemas.d.ts +759 -0
- package/dist/tools/client/schemas.d.ts.map +1 -0
- package/dist/tools/client/schemas.js +241 -0
- package/dist/tools/client/schemas.js.map +1 -0
- package/dist/tools/credit-note/creditnote-create.d.ts +448 -0
- package/dist/tools/credit-note/creditnote-create.d.ts.map +1 -0
- package/dist/tools/credit-note/creditnote-create.js +88 -0
- package/dist/tools/credit-note/creditnote-create.js.map +1 -0
- package/dist/tools/credit-note/creditnote-delete.d.ts +37 -0
- package/dist/tools/credit-note/creditnote-delete.d.ts.map +1 -0
- package/dist/tools/credit-note/creditnote-delete.js +57 -0
- package/dist/tools/credit-note/creditnote-delete.js.map +1 -0
- package/dist/tools/credit-note/creditnote-list.d.ts +627 -0
- package/dist/tools/credit-note/creditnote-list.d.ts.map +1 -0
- package/dist/tools/credit-note/creditnote-list.js +106 -0
- package/dist/tools/credit-note/creditnote-list.js.map +1 -0
- package/dist/tools/credit-note/creditnote-single.d.ts +358 -0
- package/dist/tools/credit-note/creditnote-single.d.ts.map +1 -0
- package/dist/tools/credit-note/creditnote-single.js +60 -0
- package/dist/tools/credit-note/creditnote-single.js.map +1 -0
- package/dist/tools/credit-note/creditnote-update.d.ts +442 -0
- package/dist/tools/credit-note/creditnote-update.d.ts.map +1 -0
- package/dist/tools/credit-note/creditnote-update.js +82 -0
- package/dist/tools/credit-note/creditnote-update.js.map +1 -0
- package/dist/tools/credit-note/index.d.ts +11 -0
- package/dist/tools/credit-note/index.d.ts.map +1 -0
- package/dist/tools/credit-note/index.js +13 -0
- package/dist/tools/credit-note/index.js.map +1 -0
- package/dist/tools/credit-note/schemas.d.ts +1599 -0
- package/dist/tools/credit-note/schemas.d.ts.map +1 -0
- package/dist/tools/credit-note/schemas.js +196 -0
- package/dist/tools/credit-note/schemas.js.map +1 -0
- package/dist/tools/expense/expense-create.d.ts +196 -0
- package/dist/tools/expense/expense-create.d.ts.map +1 -0
- package/dist/tools/expense/expense-create.js +103 -0
- package/dist/tools/expense/expense-create.js.map +1 -0
- package/dist/tools/expense/expense-delete.d.ts +40 -0
- package/dist/tools/expense/expense-delete.d.ts.map +1 -0
- package/dist/tools/expense/expense-delete.js +73 -0
- package/dist/tools/expense/expense-delete.js.map +1 -0
- package/dist/tools/expense/expense-list.d.ts +264 -0
- package/dist/tools/expense/expense-list.d.ts.map +1 -0
- package/dist/tools/expense/expense-list.js +126 -0
- package/dist/tools/expense/expense-list.js.map +1 -0
- package/dist/tools/expense/expense-single.d.ts +145 -0
- package/dist/tools/expense/expense-single.d.ts.map +1 -0
- package/dist/tools/expense/expense-single.js +63 -0
- package/dist/tools/expense/expense-single.js.map +1 -0
- package/dist/tools/expense/expense-update.d.ts +199 -0
- package/dist/tools/expense/expense-update.d.ts.map +1 -0
- package/dist/tools/expense/expense-update.js +108 -0
- package/dist/tools/expense/expense-update.js.map +1 -0
- package/dist/tools/expense/index.d.ts +11 -0
- package/dist/tools/expense/index.d.ts.map +1 -0
- package/dist/tools/expense/index.js +13 -0
- package/dist/tools/expense/index.js.map +1 -0
- package/dist/tools/expense/schemas.d.ts +667 -0
- package/dist/tools/expense/schemas.d.ts.map +1 -0
- package/dist/tools/expense/schemas.js +142 -0
- package/dist/tools/expense/schemas.js.map +1 -0
- package/dist/tools/expense-category/expensecategory-list.d.ts +113 -0
- package/dist/tools/expense-category/expensecategory-list.d.ts.map +1 -0
- package/dist/tools/expense-category/expensecategory-list.js +113 -0
- package/dist/tools/expense-category/expensecategory-list.js.map +1 -0
- package/dist/tools/expense-category/expensecategory-single.d.ts +58 -0
- package/dist/tools/expense-category/expensecategory-single.d.ts.map +1 -0
- package/dist/tools/expense-category/expensecategory-single.js +66 -0
- package/dist/tools/expense-category/expensecategory-single.js.map +1 -0
- package/dist/tools/expense-category/index.d.ts +9 -0
- package/dist/tools/expense-category/index.d.ts.map +1 -0
- package/dist/tools/expense-category/index.js +11 -0
- package/dist/tools/expense-category/index.js.map +1 -0
- package/dist/tools/expense-category/schemas.d.ts +184 -0
- package/dist/tools/expense-category/schemas.d.ts.map +1 -0
- package/dist/tools/expense-category/schemas.js +58 -0
- package/dist/tools/expense-category/schemas.js.map +1 -0
- package/dist/tools/index.d.ts +53 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +98 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/invoice/index.d.ts +12 -0
- package/dist/tools/invoice/index.d.ts.map +1 -0
- package/dist/tools/invoice/index.js +14 -0
- package/dist/tools/invoice/index.js.map +1 -0
- package/dist/tools/invoice/invoice-create.d.ts +367 -0
- package/dist/tools/invoice/invoice-create.d.ts.map +1 -0
- package/dist/tools/invoice/invoice-create.js +115 -0
- package/dist/tools/invoice/invoice-create.js.map +1 -0
- package/dist/tools/invoice/invoice-delete.d.ts +40 -0
- package/dist/tools/invoice/invoice-delete.d.ts.map +1 -0
- package/dist/tools/invoice/invoice-delete.js +75 -0
- package/dist/tools/invoice/invoice-delete.js.map +1 -0
- package/dist/tools/invoice/invoice-list.d.ts +439 -0
- package/dist/tools/invoice/invoice-list.d.ts.map +1 -0
- package/dist/tools/invoice/invoice-list.js +126 -0
- package/dist/tools/invoice/invoice-list.js.map +1 -0
- package/dist/tools/invoice/invoice-share-link.d.ts +40 -0
- package/dist/tools/invoice/invoice-share-link.d.ts.map +1 -0
- package/dist/tools/invoice/invoice-share-link.js +89 -0
- package/dist/tools/invoice/invoice-share-link.js.map +1 -0
- package/dist/tools/invoice/invoice-single.d.ts +265 -0
- package/dist/tools/invoice/invoice-single.d.ts.map +1 -0
- package/dist/tools/invoice/invoice-single.js +66 -0
- package/dist/tools/invoice/invoice-single.js.map +1 -0
- package/dist/tools/invoice/invoice-update.d.ts +373 -0
- package/dist/tools/invoice/invoice-update.d.ts.map +1 -0
- package/dist/tools/invoice/invoice-update.js +122 -0
- package/dist/tools/invoice/invoice-update.js.map +1 -0
- package/dist/tools/invoice/schemas.d.ts +1414 -0
- package/dist/tools/invoice/schemas.d.ts.map +1 -0
- package/dist/tools/invoice/schemas.js +269 -0
- package/dist/tools/invoice/schemas.js.map +1 -0
- package/dist/tools/item/index.d.ts +10 -0
- package/dist/tools/item/index.d.ts.map +1 -0
- package/dist/tools/item/index.js +12 -0
- package/dist/tools/item/index.js.map +1 -0
- package/dist/tools/item/item-create.d.ts +136 -0
- package/dist/tools/item/item-create.d.ts.map +1 -0
- package/dist/tools/item/item-create.js +71 -0
- package/dist/tools/item/item-create.js.map +1 -0
- package/dist/tools/item/item-list.d.ts +178 -0
- package/dist/tools/item/item-list.d.ts.map +1 -0
- package/dist/tools/item/item-list.js +112 -0
- package/dist/tools/item/item-list.js.map +1 -0
- package/dist/tools/item/item-single.d.ts +94 -0
- package/dist/tools/item/item-single.d.ts.map +1 -0
- package/dist/tools/item/item-single.js +62 -0
- package/dist/tools/item/item-single.js.map +1 -0
- package/dist/tools/item/item-update.d.ts +139 -0
- package/dist/tools/item/item-update.d.ts.map +1 -0
- package/dist/tools/item/item-update.js +74 -0
- package/dist/tools/item/item-update.js.map +1 -0
- package/dist/tools/item/schemas.d.ts +454 -0
- package/dist/tools/item/schemas.d.ts.map +1 -0
- package/dist/tools/item/schemas.js +116 -0
- package/dist/tools/item/schemas.js.map +1 -0
- package/dist/tools/journal-entry/index.d.ts +7 -0
- package/dist/tools/journal-entry/index.d.ts.map +1 -0
- package/dist/tools/journal-entry/index.js +9 -0
- package/dist/tools/journal-entry/index.js.map +1 -0
- package/dist/tools/journal-entry/journalentry-create.d.ts +114 -0
- package/dist/tools/journal-entry/journalentry-create.d.ts.map +1 -0
- package/dist/tools/journal-entry/journalentry-create.js +98 -0
- package/dist/tools/journal-entry/journalentry-create.js.map +1 -0
- package/dist/tools/journal-entry/schemas.d.ts +182 -0
- package/dist/tools/journal-entry/schemas.d.ts.map +1 -0
- package/dist/tools/journal-entry/schemas.js +43 -0
- package/dist/tools/journal-entry/schemas.js.map +1 -0
- package/dist/tools/journal-entry-account/index.d.ts +7 -0
- package/dist/tools/journal-entry-account/index.d.ts.map +1 -0
- package/dist/tools/journal-entry-account/index.js +9 -0
- package/dist/tools/journal-entry-account/index.js.map +1 -0
- package/dist/tools/journal-entry-account/journalentryaccount-list.d.ts +190 -0
- package/dist/tools/journal-entry-account/journalentryaccount-list.d.ts.map +1 -0
- package/dist/tools/journal-entry-account/journalentryaccount-list.js +102 -0
- package/dist/tools/journal-entry-account/journalentryaccount-list.js.map +1 -0
- package/dist/tools/journal-entry-account/schemas.d.ts +344 -0
- package/dist/tools/journal-entry-account/schemas.d.ts.map +1 -0
- package/dist/tools/journal-entry-account/schemas.js +65 -0
- package/dist/tools/journal-entry-account/schemas.js.map +1 -0
- package/dist/tools/metadata.d.ts +49 -0
- package/dist/tools/metadata.d.ts.map +1 -0
- package/dist/tools/metadata.js +317 -0
- package/dist/tools/metadata.js.map +1 -0
- package/dist/tools/other-income/index.d.ts +11 -0
- package/dist/tools/other-income/index.d.ts.map +1 -0
- package/dist/tools/other-income/index.js +13 -0
- package/dist/tools/other-income/index.js.map +1 -0
- package/dist/tools/other-income/otherincome-create.d.ts +152 -0
- package/dist/tools/other-income/otherincome-create.d.ts.map +1 -0
- package/dist/tools/other-income/otherincome-create.js +89 -0
- package/dist/tools/other-income/otherincome-create.js.map +1 -0
- package/dist/tools/other-income/otherincome-delete.d.ts +37 -0
- package/dist/tools/other-income/otherincome-delete.d.ts.map +1 -0
- package/dist/tools/other-income/otherincome-delete.js +57 -0
- package/dist/tools/other-income/otherincome-delete.js.map +1 -0
- package/dist/tools/other-income/otherincome-list.d.ts +186 -0
- package/dist/tools/other-income/otherincome-list.d.ts.map +1 -0
- package/dist/tools/other-income/otherincome-list.js +107 -0
- package/dist/tools/other-income/otherincome-list.js.map +1 -0
- package/dist/tools/other-income/otherincome-single.d.ts +99 -0
- package/dist/tools/other-income/otherincome-single.d.ts.map +1 -0
- package/dist/tools/other-income/otherincome-single.js +53 -0
- package/dist/tools/other-income/otherincome-single.js.map +1 -0
- package/dist/tools/other-income/otherincome-update.d.ts +155 -0
- package/dist/tools/other-income/otherincome-update.d.ts.map +1 -0
- package/dist/tools/other-income/otherincome-update.js +84 -0
- package/dist/tools/other-income/otherincome-update.js.map +1 -0
- package/dist/tools/other-income/schemas.d.ts +510 -0
- package/dist/tools/other-income/schemas.d.ts.map +1 -0
- package/dist/tools/other-income/schemas.js +141 -0
- package/dist/tools/other-income/schemas.js.map +1 -0
- package/dist/tools/payment/index.d.ts +11 -0
- package/dist/tools/payment/index.d.ts.map +1 -0
- package/dist/tools/payment/index.js +13 -0
- package/dist/tools/payment/index.js.map +1 -0
- package/dist/tools/payment/payment-create.d.ts +127 -0
- package/dist/tools/payment/payment-create.d.ts.map +1 -0
- package/dist/tools/payment/payment-create.js +84 -0
- package/dist/tools/payment/payment-create.js.map +1 -0
- package/dist/tools/payment/payment-delete.d.ts +40 -0
- package/dist/tools/payment/payment-delete.d.ts.map +1 -0
- package/dist/tools/payment/payment-delete.js +67 -0
- package/dist/tools/payment/payment-delete.js.map +1 -0
- package/dist/tools/payment/payment-list.d.ts +186 -0
- package/dist/tools/payment/payment-list.d.ts.map +1 -0
- package/dist/tools/payment/payment-list.js +113 -0
- package/dist/tools/payment/payment-list.js.map +1 -0
- package/dist/tools/payment/payment-single.d.ts +97 -0
- package/dist/tools/payment/payment-single.d.ts.map +1 -0
- package/dist/tools/payment/payment-single.js +62 -0
- package/dist/tools/payment/payment-single.js.map +1 -0
- package/dist/tools/payment/payment-update.d.ts +124 -0
- package/dist/tools/payment/payment-update.d.ts.map +1 -0
- package/dist/tools/payment/payment-update.js +79 -0
- package/dist/tools/payment/payment-update.js.map +1 -0
- package/dist/tools/payment/schemas.d.ts +445 -0
- package/dist/tools/payment/schemas.d.ts.map +1 -0
- package/dist/tools/payment/schemas.js +126 -0
- package/dist/tools/payment/schemas.js.map +1 -0
- package/dist/tools/payment-options/index.d.ts +9 -0
- package/dist/tools/payment-options/index.d.ts.map +1 -0
- package/dist/tools/payment-options/index.js +11 -0
- package/dist/tools/payment-options/index.js.map +1 -0
- package/dist/tools/payment-options/paymentoptions-create.d.ts +91 -0
- package/dist/tools/payment-options/paymentoptions-create.d.ts.map +1 -0
- package/dist/tools/payment-options/paymentoptions-create.js +71 -0
- package/dist/tools/payment-options/paymentoptions-create.js.map +1 -0
- package/dist/tools/payment-options/paymentoptions-default.d.ts +43 -0
- package/dist/tools/payment-options/paymentoptions-default.d.ts.map +1 -0
- package/dist/tools/payment-options/paymentoptions-default.js +64 -0
- package/dist/tools/payment-options/paymentoptions-default.js.map +1 -0
- package/dist/tools/payment-options/paymentoptions-single.d.ts +76 -0
- package/dist/tools/payment-options/paymentoptions-single.d.ts.map +1 -0
- package/dist/tools/payment-options/paymentoptions-single.js +58 -0
- package/dist/tools/payment-options/paymentoptions-single.js.map +1 -0
- package/dist/tools/payment-options/schemas.d.ts +197 -0
- package/dist/tools/payment-options/schemas.d.ts.map +1 -0
- package/dist/tools/payment-options/schemas.js +69 -0
- package/dist/tools/payment-options/schemas.js.map +1 -0
- package/dist/tools/project/index.d.ts +11 -0
- package/dist/tools/project/index.d.ts.map +1 -0
- package/dist/tools/project/index.js +13 -0
- package/dist/tools/project/index.js.map +1 -0
- package/dist/tools/project/project-create.d.ts +142 -0
- package/dist/tools/project/project-create.d.ts.map +1 -0
- package/dist/tools/project/project-create.js +100 -0
- package/dist/tools/project/project-create.js.map +1 -0
- package/dist/tools/project/project-delete.d.ts +44 -0
- package/dist/tools/project/project-delete.d.ts.map +1 -0
- package/dist/tools/project/project-delete.js +80 -0
- package/dist/tools/project/project-delete.js.map +1 -0
- package/dist/tools/project/project-list.d.ts +227 -0
- package/dist/tools/project/project-list.d.ts.map +1 -0
- package/dist/tools/project/project-list.js +118 -0
- package/dist/tools/project/project-list.js.map +1 -0
- package/dist/tools/project/project-single.d.ts +115 -0
- package/dist/tools/project/project-single.d.ts.map +1 -0
- package/dist/tools/project/project-single.js +63 -0
- package/dist/tools/project/project-single.js.map +1 -0
- package/dist/tools/project/project-update.d.ts +151 -0
- package/dist/tools/project/project-update.d.ts.map +1 -0
- package/dist/tools/project/project-update.js +106 -0
- package/dist/tools/project/project-update.js.map +1 -0
- package/dist/tools/project/schemas.d.ts +588 -0
- package/dist/tools/project/schemas.d.ts.map +1 -0
- package/dist/tools/project/schemas.js +196 -0
- package/dist/tools/project/schemas.js.map +1 -0
- package/dist/tools/report/index.d.ts +9 -0
- package/dist/tools/report/index.d.ts.map +1 -0
- package/dist/tools/report/index.js +11 -0
- package/dist/tools/report/index.js.map +1 -0
- package/dist/tools/report/report-payments-collected.d.ts +118 -0
- package/dist/tools/report/report-payments-collected.d.ts.map +1 -0
- package/dist/tools/report/report-payments-collected.js +89 -0
- package/dist/tools/report/report-payments-collected.js.map +1 -0
- package/dist/tools/report/report-profit-loss.d.ts +139 -0
- package/dist/tools/report/report-profit-loss.d.ts.map +1 -0
- package/dist/tools/report/report-profit-loss.js +98 -0
- package/dist/tools/report/report-profit-loss.js.map +1 -0
- package/dist/tools/report/report-tax-summary.d.ts +155 -0
- package/dist/tools/report/report-tax-summary.d.ts.map +1 -0
- package/dist/tools/report/report-tax-summary.js +100 -0
- package/dist/tools/report/report-tax-summary.js.map +1 -0
- package/dist/tools/report/schemas.d.ts +859 -0
- package/dist/tools/report/schemas.d.ts.map +1 -0
- package/dist/tools/report/schemas.js +126 -0
- package/dist/tools/report/schemas.js.map +1 -0
- package/dist/tools/service/index.d.ts +12 -0
- package/dist/tools/service/index.d.ts.map +1 -0
- package/dist/tools/service/index.js +14 -0
- package/dist/tools/service/index.js.map +1 -0
- package/dist/tools/service/schemas.d.ts +159 -0
- package/dist/tools/service/schemas.d.ts.map +1 -0
- package/dist/tools/service/schemas.js +62 -0
- package/dist/tools/service/schemas.js.map +1 -0
- package/dist/tools/service/service-create.d.ts +52 -0
- package/dist/tools/service/service-create.d.ts.map +1 -0
- package/dist/tools/service/service-create.js +82 -0
- package/dist/tools/service/service-create.js.map +1 -0
- package/dist/tools/service/service-list.d.ts +119 -0
- package/dist/tools/service/service-list.d.ts.map +1 -0
- package/dist/tools/service/service-list.js +99 -0
- package/dist/tools/service/service-list.js.map +1 -0
- package/dist/tools/service/service-rate-get.d.ts +63 -0
- package/dist/tools/service/service-rate-get.d.ts.map +1 -0
- package/dist/tools/service/service-rate-get.js +66 -0
- package/dist/tools/service/service-rate-get.js.map +1 -0
- package/dist/tools/service/service-rate-set.d.ts +76 -0
- package/dist/tools/service/service-rate-set.d.ts.map +1 -0
- package/dist/tools/service/service-rate-set.js +91 -0
- package/dist/tools/service/service-rate-set.js.map +1 -0
- package/dist/tools/service/service-single.d.ts +45 -0
- package/dist/tools/service/service-single.d.ts.map +1 -0
- package/dist/tools/service/service-single.js +63 -0
- package/dist/tools/service/service-single.js.map +1 -0
- package/dist/tools/task/index.d.ts +12 -0
- package/dist/tools/task/index.d.ts.map +1 -0
- package/dist/tools/task/index.js +14 -0
- package/dist/tools/task/index.js.map +1 -0
- package/dist/tools/task/schemas.d.ts +299 -0
- package/dist/tools/task/schemas.d.ts.map +1 -0
- package/dist/tools/task/schemas.js +89 -0
- package/dist/tools/task/schemas.js.map +1 -0
- package/dist/tools/task/task-create.d.ts +101 -0
- package/dist/tools/task/task-create.d.ts.map +1 -0
- package/dist/tools/task/task-create.js +77 -0
- package/dist/tools/task/task-create.js.map +1 -0
- package/dist/tools/task/task-delete.d.ts +39 -0
- package/dist/tools/task/task-delete.d.ts.map +1 -0
- package/dist/tools/task/task-delete.js +70 -0
- package/dist/tools/task/task-delete.js.map +1 -0
- package/dist/tools/task/task-list.d.ts +157 -0
- package/dist/tools/task/task-list.d.ts.map +1 -0
- package/dist/tools/task/task-list.js +78 -0
- package/dist/tools/task/task-list.js.map +1 -0
- package/dist/tools/task/task-single.d.ts +77 -0
- package/dist/tools/task/task-single.d.ts.map +1 -0
- package/dist/tools/task/task-single.js +56 -0
- package/dist/tools/task/task-single.js.map +1 -0
- package/dist/tools/task/task-update.d.ts +107 -0
- package/dist/tools/task/task-update.d.ts.map +1 -0
- package/dist/tools/task/task-update.js +87 -0
- package/dist/tools/task/task-update.js.map +1 -0
- package/dist/tools/time-entry/index.d.ts +11 -0
- package/dist/tools/time-entry/index.d.ts.map +1 -0
- package/dist/tools/time-entry/index.js +11 -0
- package/dist/tools/time-entry/index.js.map +1 -0
- package/dist/tools/time-entry/schemas.d.ts +598 -0
- package/dist/tools/time-entry/schemas.d.ts.map +1 -0
- package/dist/tools/time-entry/schemas.js +217 -0
- package/dist/tools/time-entry/schemas.js.map +1 -0
- package/dist/tools/time-entry/timeentry-create.d.ts +142 -0
- package/dist/tools/time-entry/timeentry-create.d.ts.map +1 -0
- package/dist/tools/time-entry/timeentry-create.js +137 -0
- package/dist/tools/time-entry/timeentry-create.js.map +1 -0
- package/dist/tools/time-entry/timeentry-delete.d.ts +43 -0
- package/dist/tools/time-entry/timeentry-delete.d.ts.map +1 -0
- package/dist/tools/time-entry/timeentry-delete.js +93 -0
- package/dist/tools/time-entry/timeentry-delete.js.map +1 -0
- package/dist/tools/time-entry/timeentry-list.d.ts +232 -0
- package/dist/tools/time-entry/timeentry-list.d.ts.map +1 -0
- package/dist/tools/time-entry/timeentry-list.js +154 -0
- package/dist/tools/time-entry/timeentry-list.js.map +1 -0
- package/dist/tools/time-entry/timeentry-single.d.ts +109 -0
- package/dist/tools/time-entry/timeentry-single.d.ts.map +1 -0
- package/dist/tools/time-entry/timeentry-single.js +75 -0
- package/dist/tools/time-entry/timeentry-single.js.map +1 -0
- package/dist/tools/time-entry/timeentry-update.d.ts +145 -0
- package/dist/tools/time-entry/timeentry-update.d.ts.map +1 -0
- package/dist/tools/time-entry/timeentry-update.js +174 -0
- package/dist/tools/time-entry/timeentry-update.js.map +1 -0
- package/dist/tools/timer/index.d.ts +16 -0
- package/dist/tools/timer/index.d.ts.map +1 -0
- package/dist/tools/timer/index.js +19 -0
- package/dist/tools/timer/index.js.map +1 -0
- package/dist/tools/timer/schemas.d.ts +520 -0
- package/dist/tools/timer/schemas.d.ts.map +1 -0
- package/dist/tools/timer/schemas.js +109 -0
- package/dist/tools/timer/schemas.js.map +1 -0
- package/dist/tools/timer/timer-current.d.ts +170 -0
- package/dist/tools/timer/timer-current.d.ts.map +1 -0
- package/dist/tools/timer/timer-current.js +134 -0
- package/dist/tools/timer/timer-current.js.map +1 -0
- package/dist/tools/timer/timer-discard.d.ts +54 -0
- package/dist/tools/timer/timer-discard.d.ts.map +1 -0
- package/dist/tools/timer/timer-discard.js +115 -0
- package/dist/tools/timer/timer-discard.js.map +1 -0
- package/dist/tools/timer/timer-start.d.ts +135 -0
- package/dist/tools/timer/timer-start.d.ts.map +1 -0
- package/dist/tools/timer/timer-start.js +129 -0
- package/dist/tools/timer/timer-start.js.map +1 -0
- package/dist/tools/timer/timer-stop.d.ts +123 -0
- package/dist/tools/timer/timer-stop.d.ts.map +1 -0
- package/dist/tools/timer/timer-stop.js +165 -0
- package/dist/tools/timer/timer-stop.js.map +1 -0
- package/dist/tools/types.d.ts +49 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +61 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/user/index.d.ts +7 -0
- package/dist/tools/user/index.d.ts.map +1 -0
- package/dist/tools/user/index.js +9 -0
- package/dist/tools/user/index.js.map +1 -0
- package/dist/tools/user/schemas.d.ts +258 -0
- package/dist/tools/user/schemas.d.ts.map +1 -0
- package/dist/tools/user/schemas.js +51 -0
- package/dist/tools/user/schemas.js.map +1 -0
- package/dist/tools/user/user-me.d.ts +129 -0
- package/dist/tools/user/user-me.d.ts.map +1 -0
- package/dist/tools/user/user-me.js +63 -0
- package/dist/tools/user/user-me.js.map +1 -0
- package/dist/types/freshbooks.d.ts +276 -0
- package/dist/types/freshbooks.d.ts.map +1 -0
- package/dist/types/freshbooks.js +6 -0
- package/dist/types/freshbooks.js.map +1 -0
- package/dist/types/index.d.ts +92 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +54 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +133 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pagination.d.ts +39 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +62 -0
- package/dist/utils/pagination.js.map +1 -0
- 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"}
|