From 2794e965cb358d801145d491fbd7b4c1c3873b17 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Mon, 18 Aug 2025 16:24:48 -0400 Subject: [PATCH 1/4] improve rate limiting --- components/quickbooks/common/constants.mjs | 2 +- components/quickbooks/common/utils.mjs | 26 +++++++++++++++++----- components/quickbooks/package.json | 2 +- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/components/quickbooks/common/constants.mjs b/components/quickbooks/common/constants.mjs index bf001cba36632..9d965b2af1fbb 100644 --- a/components/quickbooks/common/constants.mjs +++ b/components/quickbooks/common/constants.mjs @@ -1,6 +1,6 @@ export const LIMIT = 100; export const MAX_RETRIES = 5; -export const INITIAL_BACKOFF_MILLISECONDS = 1500; +export const INITIAL_BACKOFF_MILLISECONDS = 2000; export const AP_AGING_REPORT_COLUMNS = [ "create_by", diff --git a/components/quickbooks/common/utils.mjs b/components/quickbooks/common/utils.mjs index 30aaba3ed910b..e58f8df7ec8e5 100644 --- a/components/quickbooks/common/utils.mjs +++ b/components/quickbooks/common/utils.mjs @@ -46,16 +46,32 @@ export function parseObject(obj) { } export async function retryWithExponentialBackoff( - requestFn, retries = MAX_RETRIES, backoff = INITIAL_BACKOFF_MILLISECONDS, + requestFn, + retries = MAX_RETRIES, + backoff = INITIAL_BACKOFF_MILLISECONDS, ) { try { return await requestFn(); } catch (error) { - if (retries > 0 && error.response?.status === 429) { - console.warn(`Rate limit exceeded. Retrying in ${backoff}ms...`); - await new Promise((resolve) => setTimeout(resolve, backoff)); - return retryWithExponentialBackoff(requestFn, retries - 1, backoff * 2); + const status = error.response?.status; + const errorCode = error.response?.data?.Fault?.Error?.[0]?.code; + + const isRateLimit = status === 429 || + status === 503 || + errorCode === "3200" || // Rate limit exceeded + errorCode === "10001"; // Throttle limit exceeded + + if (retries > 0 && isRateLimit) { + const retryAfter = error.response?.headers?.["retry-after"]; + const delay = retryAfter + ? parseInt(retryAfter) * 1000 + : backoff; + + console.warn(`QuickBooks rate limit exceeded. Retrying in ${delay}ms... (${retries} retries left)`); + await new Promise((resolve) => setTimeout(resolve, delay)); + return retryWithExponentialBackoff(requestFn, retries - 1, Math.min(backoff * 2, 60000)); } + throw error; } } diff --git a/components/quickbooks/package.json b/components/quickbooks/package.json index 7e2167b75ed02..221e11a0b00ab 100644 --- a/components/quickbooks/package.json +++ b/components/quickbooks/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/quickbooks", - "version": "0.7.0", + "version": "0.7.1", "description": "Pipedream Quickbooks Components", "main": "quickbooks.app.mjs", "keywords": [ From 5eb195887f4b03a959e4d49ce217632137ea19df Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Mon, 18 Aug 2025 16:25:42 -0400 Subject: [PATCH 2/4] pnpm-lock.yaml --- pnpm-lock.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d5eeeca611d6..8537b20cfe8bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8617,8 +8617,7 @@ importers: specifier: ^3.1.0 version: 3.1.0 - components/mexc: - specifiers: {} + components/mexc: {} components/mezmo: {} @@ -13017,8 +13016,7 @@ importers: specifier: ^1.4.0 version: 1.6.6 - components/siteglide: - specifiers: {} + components/siteglide: {} components/siteleaf: dependencies: From 210449032282785f7e5d00745ae773235ed4d89c Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Mon, 18 Aug 2025 16:31:55 -0400 Subject: [PATCH 3/4] versions --- .../actions/create-ap-aging-report/create-ap-aging-report.mjs | 2 +- components/quickbooks/actions/create-bill/create-bill.mjs | 2 +- .../quickbooks/actions/create-customer/create-customer.mjs | 2 +- .../quickbooks/actions/create-estimate/create-estimate.mjs | 2 +- components/quickbooks/actions/create-invoice/create-invoice.mjs | 2 +- components/quickbooks/actions/create-payment/create-payment.mjs | 2 +- .../quickbooks/actions/create-pl-report/create-pl-report.mjs | 2 +- .../actions/create-purchase-order/create-purchase-order.mjs | 2 +- .../quickbooks/actions/create-purchase/create-purchase.mjs | 2 +- .../actions/create-sales-receipt/create-sales-receipt.mjs | 2 +- .../quickbooks/actions/delete-purchase/delete-purchase.mjs | 2 +- components/quickbooks/actions/get-bill/get-bill.mjs | 2 +- components/quickbooks/actions/get-customer/get-customer.mjs | 2 +- components/quickbooks/actions/get-invoice/get-invoice.mjs | 2 +- components/quickbooks/actions/get-my-company/get-my-company.mjs | 2 +- components/quickbooks/actions/get-payment/get-payment.mjs | 2 +- .../actions/get-purchase-order/get-purchase-order.mjs | 2 +- components/quickbooks/actions/get-purchase/get-purchase.mjs | 2 +- .../quickbooks/actions/get-sales-receipt/get-sales-receipt.mjs | 2 +- .../quickbooks/actions/get-time-activity/get-time-activity.mjs | 2 +- .../quickbooks/actions/search-accounts/search-accounts.mjs | 2 +- .../quickbooks/actions/search-customers/search-customers.mjs | 2 +- .../quickbooks/actions/search-invoices/search-invoices.mjs | 2 +- components/quickbooks/actions/search-items/search-items.mjs | 2 +- .../quickbooks/actions/search-products/search-products.mjs | 2 +- .../quickbooks/actions/search-purchases/search-purchases.mjs | 2 +- components/quickbooks/actions/search-query/search-query.mjs | 2 +- .../quickbooks/actions/search-services/search-services.mjs | 2 +- .../actions/search-time-activities/search-time-activities.mjs | 2 +- components/quickbooks/actions/search-vendors/search-vendors.mjs | 2 +- components/quickbooks/actions/send-estimate/send-estimate.mjs | 2 +- components/quickbooks/actions/send-invoice/send-invoice.mjs | 2 +- .../actions/sparse-update-invoice/sparse-update-invoice.mjs | 2 +- .../quickbooks/actions/update-customer/update-customer.mjs | 2 +- .../quickbooks/actions/update-estimate/update-estimate.mjs | 2 +- components/quickbooks/actions/update-invoice/update-invoice.mjs | 2 +- components/quickbooks/actions/update-item/update-item.mjs | 2 +- components/quickbooks/actions/void-invoice/void-invoice.mjs | 2 +- .../sources/new-customer-created/new-customer-created.mjs | 2 +- .../sources/new-customer-updated/new-customer-updated.mjs | 2 +- .../sources/new-employee-created/new-employee-created.mjs | 2 +- .../sources/new-employee-updated/new-employee-updated.mjs | 2 +- .../sources/new-invoice-created/new-invoice-created.mjs | 2 +- .../sources/new-invoice-updated/new-invoice-updated.mjs | 2 +- .../quickbooks/sources/new-item-created/new-item-created.mjs | 2 +- .../quickbooks/sources/new-item-updated/new-item-updated.mjs | 2 +- .../sources/new-purchase-created/new-purchase-created.mjs | 2 +- .../sources/new-purchase-updated/new-purchase-updated.mjs | 2 +- 48 files changed, 48 insertions(+), 48 deletions(-) diff --git a/components/quickbooks/actions/create-ap-aging-report/create-ap-aging-report.mjs b/components/quickbooks/actions/create-ap-aging-report/create-ap-aging-report.mjs index 34f20e82cea77..57f4b1ac13e66 100644 --- a/components/quickbooks/actions/create-ap-aging-report/create-ap-aging-report.mjs +++ b/components/quickbooks/actions/create-ap-aging-report/create-ap-aging-report.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-create-ap-aging-report", name: "Create AP Aging Detail Report", description: "Creates an AP aging report in Quickbooks Online. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/apagingdetail#query-a-report)", - version: "0.0.5", + version: "0.0.6", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/create-bill/create-bill.mjs b/components/quickbooks/actions/create-bill/create-bill.mjs index 1c5e660e5774d..c90ed57cc3678 100644 --- a/components/quickbooks/actions/create-bill/create-bill.mjs +++ b/components/quickbooks/actions/create-bill/create-bill.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-create-bill", name: "Create Bill", description: "Creates a bill. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/bill#create-a-bill)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/create-customer/create-customer.mjs b/components/quickbooks/actions/create-customer/create-customer.mjs index 40fae539fe4d3..bfbb98149aac1 100644 --- a/components/quickbooks/actions/create-customer/create-customer.mjs +++ b/components/quickbooks/actions/create-customer/create-customer.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-create-customer", name: "Create Customer", description: "Creates a customer. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#create-a-customer)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/create-estimate/create-estimate.mjs b/components/quickbooks/actions/create-estimate/create-estimate.mjs index 8e82f286beef9..cd45ba0da0cf1 100644 --- a/components/quickbooks/actions/create-estimate/create-estimate.mjs +++ b/components/quickbooks/actions/create-estimate/create-estimate.mjs @@ -9,7 +9,7 @@ export default { key: "quickbooks-create-estimate", name: "Create Estimate", description: "Creates an estimate. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/estimate#create-an-estimate)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/create-invoice/create-invoice.mjs b/components/quickbooks/actions/create-invoice/create-invoice.mjs index 5c43230644429..1f5ad906e0a8d 100644 --- a/components/quickbooks/actions/create-invoice/create-invoice.mjs +++ b/components/quickbooks/actions/create-invoice/create-invoice.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-create-invoice", name: "Create Invoice", description: "Creates an invoice. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#create-an-invoice)", - version: "0.2.4", + version: "0.2.5", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/create-payment/create-payment.mjs b/components/quickbooks/actions/create-payment/create-payment.mjs index be15215d7ec98..9939f0930e418 100644 --- a/components/quickbooks/actions/create-payment/create-payment.mjs +++ b/components/quickbooks/actions/create-payment/create-payment.mjs @@ -4,7 +4,7 @@ export default { key: "quickbooks-create-payment", name: "Create Payment", description: "Creates a payment. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/payment#create-a-payment)", - version: "0.0.9", + version: "0.0.10", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/create-pl-report/create-pl-report.mjs b/components/quickbooks/actions/create-pl-report/create-pl-report.mjs index d6d7511816a6e..025902f7aa25b 100644 --- a/components/quickbooks/actions/create-pl-report/create-pl-report.mjs +++ b/components/quickbooks/actions/create-pl-report/create-pl-report.mjs @@ -7,7 +7,7 @@ export default { key: "quickbooks-create-pl-report", name: "Create Profit and Loss Detail Report", description: "Creates a profit and loss report in Quickbooks Online. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/profitandloss#query-a-report)", - version: "0.0.5", + version: "0.0.6", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/create-purchase-order/create-purchase-order.mjs b/components/quickbooks/actions/create-purchase-order/create-purchase-order.mjs index 66ce81832c590..2850c217b8aa1 100644 --- a/components/quickbooks/actions/create-purchase-order/create-purchase-order.mjs +++ b/components/quickbooks/actions/create-purchase-order/create-purchase-order.mjs @@ -9,7 +9,7 @@ export default { key: "quickbooks-create-purchase-order", name: "Create Purchase Order", description: "Creates a purchase order. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchaseorder#create-a-purchaseorder)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/create-purchase/create-purchase.mjs b/components/quickbooks/actions/create-purchase/create-purchase.mjs index eebe47052d2e9..52dbb408aa0f0 100644 --- a/components/quickbooks/actions/create-purchase/create-purchase.mjs +++ b/components/quickbooks/actions/create-purchase/create-purchase.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-create-purchase", name: "Create Purchase", description: "Creates a new purchase. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchase#create-a-purchase)", - version: "0.0.8", + version: "0.0.9", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/create-sales-receipt/create-sales-receipt.mjs b/components/quickbooks/actions/create-sales-receipt/create-sales-receipt.mjs index 6dfdb4dc40012..2ef4307fec80b 100644 --- a/components/quickbooks/actions/create-sales-receipt/create-sales-receipt.mjs +++ b/components/quickbooks/actions/create-sales-receipt/create-sales-receipt.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-create-sales-receipt", name: "Create Sales Receipt", description: "Creates a sales receipt. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/salesreceipt#create-a-salesreceipt)", - version: "0.0.9", + version: "0.0.10", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/delete-purchase/delete-purchase.mjs b/components/quickbooks/actions/delete-purchase/delete-purchase.mjs index 7e8a3297cedf1..a33ffd5f34ede 100644 --- a/components/quickbooks/actions/delete-purchase/delete-purchase.mjs +++ b/components/quickbooks/actions/delete-purchase/delete-purchase.mjs @@ -4,7 +4,7 @@ export default { key: "quickbooks-delete-purchase", name: "Delete Purchase", description: "Delete a specific purchase. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchase#delete-a-purchase)", - version: "0.0.8", + version: "0.0.9", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/get-bill/get-bill.mjs b/components/quickbooks/actions/get-bill/get-bill.mjs index 6847ca62b2867..0a6386f7004ce 100644 --- a/components/quickbooks/actions/get-bill/get-bill.mjs +++ b/components/quickbooks/actions/get-bill/get-bill.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-get-bill", name: "Get Bill", description: "Returns info about a bill. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/bill#read-a-bill)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/get-customer/get-customer.mjs b/components/quickbooks/actions/get-customer/get-customer.mjs index 10678c8c67031..fa61f8c78ea03 100644 --- a/components/quickbooks/actions/get-customer/get-customer.mjs +++ b/components/quickbooks/actions/get-customer/get-customer.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-get-customer", name: "Get Customer", description: "Returns info about a customer. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer#read-a-customer)", - version: "0.3.10", + version: "0.3.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/get-invoice/get-invoice.mjs b/components/quickbooks/actions/get-invoice/get-invoice.mjs index c9f39028e5eb0..ab2c88a92240e 100644 --- a/components/quickbooks/actions/get-invoice/get-invoice.mjs +++ b/components/quickbooks/actions/get-invoice/get-invoice.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-get-invoice", name: "Get Invoice", description: "Returns info about an invoice. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#read-an-invoice)", - version: "0.2.11", + version: "0.2.12", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/get-my-company/get-my-company.mjs b/components/quickbooks/actions/get-my-company/get-my-company.mjs index 6ac75ab5dc644..8b34b8a05250e 100644 --- a/components/quickbooks/actions/get-my-company/get-my-company.mjs +++ b/components/quickbooks/actions/get-my-company/get-my-company.mjs @@ -4,7 +4,7 @@ export default { key: "quickbooks-get-my-company", name: "Get My Company", description: "Gets info about a company. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/companyinfo)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/get-payment/get-payment.mjs b/components/quickbooks/actions/get-payment/get-payment.mjs index 150f8b9332104..6f6e7d0c08ccd 100644 --- a/components/quickbooks/actions/get-payment/get-payment.mjs +++ b/components/quickbooks/actions/get-payment/get-payment.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-get-payment", name: "Get Payment", description: "Returns info about a payment. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/payment#read-a-payment)", - version: "0.0.4", + version: "0.0.5", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/get-purchase-order/get-purchase-order.mjs b/components/quickbooks/actions/get-purchase-order/get-purchase-order.mjs index a2c80ec93ed13..33e092598d3ed 100644 --- a/components/quickbooks/actions/get-purchase-order/get-purchase-order.mjs +++ b/components/quickbooks/actions/get-purchase-order/get-purchase-order.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-get-purchase-order", name: "Get Purchase Order", description: "Returns details about a purchase order. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchaseorder#read-a-purchase-order)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/get-purchase/get-purchase.mjs b/components/quickbooks/actions/get-purchase/get-purchase.mjs index 736b06aa4aa29..13f77490e2223 100644 --- a/components/quickbooks/actions/get-purchase/get-purchase.mjs +++ b/components/quickbooks/actions/get-purchase/get-purchase.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-get-purchase", name: "Get Purchase", description: "Returns info about a purchase. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchase#read-a-purchase)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/get-sales-receipt/get-sales-receipt.mjs b/components/quickbooks/actions/get-sales-receipt/get-sales-receipt.mjs index 6ed7ec28ecab4..676fd3e3c4370 100644 --- a/components/quickbooks/actions/get-sales-receipt/get-sales-receipt.mjs +++ b/components/quickbooks/actions/get-sales-receipt/get-sales-receipt.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-get-sales-receipt", name: "Get Sales Receipt", description: "Returns details about a sales receipt. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/salesreceipt#read-a-salesreceipt)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/get-time-activity/get-time-activity.mjs b/components/quickbooks/actions/get-time-activity/get-time-activity.mjs index c8f9868ce917f..263bc5c691ed4 100644 --- a/components/quickbooks/actions/get-time-activity/get-time-activity.mjs +++ b/components/quickbooks/actions/get-time-activity/get-time-activity.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-get-time-activity", name: "Get Time Activity", description: "Returns info about an activity. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#read-a-timeactivity-object)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-accounts/search-accounts.mjs b/components/quickbooks/actions/search-accounts/search-accounts.mjs index ccede3b3fbfb1..5f5e25a29cc62 100644 --- a/components/quickbooks/actions/search-accounts/search-accounts.mjs +++ b/components/quickbooks/actions/search-accounts/search-accounts.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-search-accounts", name: "Search Accounts", description: "Search for accounts. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account#query-an-account)", - version: "0.2.10", + version: "0.2.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-customers/search-customers.mjs b/components/quickbooks/actions/search-customers/search-customers.mjs index ad0203695d30a..553bfe23e869a 100644 --- a/components/quickbooks/actions/search-customers/search-customers.mjs +++ b/components/quickbooks/actions/search-customers/search-customers.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-search-customers", name: "Search Customers", description: "Searches for customers. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#query-a-customer)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-invoices/search-invoices.mjs b/components/quickbooks/actions/search-invoices/search-invoices.mjs index bcc50fe1f586c..e1255d27411a4 100644 --- a/components/quickbooks/actions/search-invoices/search-invoices.mjs +++ b/components/quickbooks/actions/search-invoices/search-invoices.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-search-invoices", name: "Search Invoices", description: "Searches for invoices. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#query-an-invoice)", - version: "0.0.4", + version: "0.0.5", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-items/search-items.mjs b/components/quickbooks/actions/search-items/search-items.mjs index d6a91effa5da8..407ac5db543fc 100644 --- a/components/quickbooks/actions/search-items/search-items.mjs +++ b/components/quickbooks/actions/search-items/search-items.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-search-items", name: "Search Items", description: "Searches for items. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item#query-an-item)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-products/search-products.mjs b/components/quickbooks/actions/search-products/search-products.mjs index a6de9b4e2cf83..3d19e49e5b64b 100644 --- a/components/quickbooks/actions/search-products/search-products.mjs +++ b/components/quickbooks/actions/search-products/search-products.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-search-products", name: "Search Products", description: "Search for products. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item#query-an-item)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-purchases/search-purchases.mjs b/components/quickbooks/actions/search-purchases/search-purchases.mjs index b84768cc44570..d1eaf57857ad2 100644 --- a/components/quickbooks/actions/search-purchases/search-purchases.mjs +++ b/components/quickbooks/actions/search-purchases/search-purchases.mjs @@ -4,7 +4,7 @@ export default { key: "quickbooks-search-purchases", name: "Search Purchases", description: "Searches for purchases. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchase#query-a-purchase)", - version: "0.0.8", + version: "0.0.9", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-query/search-query.mjs b/components/quickbooks/actions/search-query/search-query.mjs index b6d30dea2c581..4298727c15d0a 100644 --- a/components/quickbooks/actions/search-query/search-query.mjs +++ b/components/quickbooks/actions/search-query/search-query.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-search-query", name: "Search Query", description: "Performs a search query against a Quickbooks entity. [See the documentation](https://developer.intuit.com/app/develophttps://developer.intuit.com/app/developer/qbo/docs/develop/explore-the-quickbooks-online-api/data-queries)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-services/search-services.mjs b/components/quickbooks/actions/search-services/search-services.mjs index e8ef737065a7d..3c41b10e09598 100644 --- a/components/quickbooks/actions/search-services/search-services.mjs +++ b/components/quickbooks/actions/search-services/search-services.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-search-services", name: "Search Services", description: "Search for services. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item#query-an-item)", - version: "0.0.4", + version: "0.0.5", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-time-activities/search-time-activities.mjs b/components/quickbooks/actions/search-time-activities/search-time-activities.mjs index 15f5bf179072e..0d9e63df7f2db 100644 --- a/components/quickbooks/actions/search-time-activities/search-time-activities.mjs +++ b/components/quickbooks/actions/search-time-activities/search-time-activities.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-search-time-activities", name: "Search Time Activities", description: "Searches for time activities. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#query-a-timeactivity-object)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/search-vendors/search-vendors.mjs b/components/quickbooks/actions/search-vendors/search-vendors.mjs index a1722b05a3309..adfab05a34abc 100644 --- a/components/quickbooks/actions/search-vendors/search-vendors.mjs +++ b/components/quickbooks/actions/search-vendors/search-vendors.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-search-vendors", name: "Search Vendors", description: "Searches for vendors. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/vendor#query-a-vendor)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/send-estimate/send-estimate.mjs b/components/quickbooks/actions/send-estimate/send-estimate.mjs index 2a10736fb484a..24feb6829564a 100644 --- a/components/quickbooks/actions/send-estimate/send-estimate.mjs +++ b/components/quickbooks/actions/send-estimate/send-estimate.mjs @@ -4,7 +4,7 @@ export default { key: "quickbooks-send-estimate", name: "Send Estimate", description: "Sends an estimate by email. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/estimate#send-an-estimate)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/send-invoice/send-invoice.mjs b/components/quickbooks/actions/send-invoice/send-invoice.mjs index dc24cc7181955..ce429f419ca55 100644 --- a/components/quickbooks/actions/send-invoice/send-invoice.mjs +++ b/components/quickbooks/actions/send-invoice/send-invoice.mjs @@ -4,7 +4,7 @@ export default { key: "quickbooks-send-invoice", name: "Send Invoice", description: "Sends an invoice by email. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#send-an-invoice)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/sparse-update-invoice/sparse-update-invoice.mjs b/components/quickbooks/actions/sparse-update-invoice/sparse-update-invoice.mjs index fbf7376ad93c4..3c08b967bda69 100644 --- a/components/quickbooks/actions/sparse-update-invoice/sparse-update-invoice.mjs +++ b/components/quickbooks/actions/sparse-update-invoice/sparse-update-invoice.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-sparse-update-invoice", name: "Sparse Update Invoice", description: "Sparse updating provides the ability to update a subset of properties for a given object; only elements specified in the request are updated. Missing elements are left untouched. The ID of the object to update is specified in the request body.​ [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#sparse-update-an-invoice)", - version: "0.1.8", + version: "0.1.9", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/update-customer/update-customer.mjs b/components/quickbooks/actions/update-customer/update-customer.mjs index 73bd5e647452d..7a76c453a17bc 100644 --- a/components/quickbooks/actions/update-customer/update-customer.mjs +++ b/components/quickbooks/actions/update-customer/update-customer.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-update-customer", name: "Update Customer", description: "Updates a customer. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#full-update-a-customer)", - version: "0.1.10", + version: "0.1.11", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/update-estimate/update-estimate.mjs b/components/quickbooks/actions/update-estimate/update-estimate.mjs index 78302747d4380..14c7afe4a13a2 100644 --- a/components/quickbooks/actions/update-estimate/update-estimate.mjs +++ b/components/quickbooks/actions/update-estimate/update-estimate.mjs @@ -9,7 +9,7 @@ export default { key: "quickbooks-update-estimate", name: "Update Estimate", description: "Updates an estimate. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/estimate#update-an-estimate)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/update-invoice/update-invoice.mjs b/components/quickbooks/actions/update-invoice/update-invoice.mjs index 5df278ea7cdfc..151f5bba885cc 100644 --- a/components/quickbooks/actions/update-invoice/update-invoice.mjs +++ b/components/quickbooks/actions/update-invoice/update-invoice.mjs @@ -9,7 +9,7 @@ export default { key: "quickbooks-update-invoice", name: "Update Invoice", description: "Updates an invoice. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#update-an-invoice)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/update-item/update-item.mjs b/components/quickbooks/actions/update-item/update-item.mjs index d794095954668..77568aa452a7f 100644 --- a/components/quickbooks/actions/update-item/update-item.mjs +++ b/components/quickbooks/actions/update-item/update-item.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-update-item", name: "Update Item", description: "Updates an item. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item#full-update-an-item)", - version: "0.0.4", + version: "0.0.5", type: "action", props: { quickbooks, diff --git a/components/quickbooks/actions/void-invoice/void-invoice.mjs b/components/quickbooks/actions/void-invoice/void-invoice.mjs index 63a4e3f343786..a6b0fac2584e0 100644 --- a/components/quickbooks/actions/void-invoice/void-invoice.mjs +++ b/components/quickbooks/actions/void-invoice/void-invoice.mjs @@ -5,7 +5,7 @@ export default { key: "quickbooks-void-invoice", name: "Void Invoice", description: "Voids an invoice. [See the documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#void-an-invoice)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { quickbooks, diff --git a/components/quickbooks/sources/new-customer-created/new-customer-created.mjs b/components/quickbooks/sources/new-customer-created/new-customer-created.mjs index 944c9d4b387fb..a7efc8fdb842d 100644 --- a/components/quickbooks/sources/new-customer-created/new-customer-created.mjs +++ b/components/quickbooks/sources/new-customer-created/new-customer-created.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-customer-created", name: "New Customer Created", description: "Emit new event when a new customer is created.", - version: "0.0.7", + version: "0.0.8", type: "source", dedupe: "unique", methods: { diff --git a/components/quickbooks/sources/new-customer-updated/new-customer-updated.mjs b/components/quickbooks/sources/new-customer-updated/new-customer-updated.mjs index ed858ef24e65a..e2164a4e9447c 100644 --- a/components/quickbooks/sources/new-customer-updated/new-customer-updated.mjs +++ b/components/quickbooks/sources/new-customer-updated/new-customer-updated.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-customer-updated", name: "New Customer Updated", description: "Emit new event when a customer is updated.", - version: "0.0.7", + version: "0.0.8", type: "source", dedupe: "unique", methods: { diff --git a/components/quickbooks/sources/new-employee-created/new-employee-created.mjs b/components/quickbooks/sources/new-employee-created/new-employee-created.mjs index 78504b6a97c32..f1a2a938ab6fa 100644 --- a/components/quickbooks/sources/new-employee-created/new-employee-created.mjs +++ b/components/quickbooks/sources/new-employee-created/new-employee-created.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-employee-created", name: "New Employee Created", description: "Emit new event when a new employee is created.", - version: "0.0.5", + version: "0.0.6", type: "source", dedupe: "unique", methods: { diff --git a/components/quickbooks/sources/new-employee-updated/new-employee-updated.mjs b/components/quickbooks/sources/new-employee-updated/new-employee-updated.mjs index b6479ebd2b505..4113a3ba88066 100644 --- a/components/quickbooks/sources/new-employee-updated/new-employee-updated.mjs +++ b/components/quickbooks/sources/new-employee-updated/new-employee-updated.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-employee-updated", name: "New Employee Updated", description: "Emit new event when an employee is updated.", - version: "0.0.5", + version: "0.0.6", type: "source", dedupe: "unique", methods: { diff --git a/components/quickbooks/sources/new-invoice-created/new-invoice-created.mjs b/components/quickbooks/sources/new-invoice-created/new-invoice-created.mjs index 5ffa6c087dab4..cf4e690b4c25e 100644 --- a/components/quickbooks/sources/new-invoice-created/new-invoice-created.mjs +++ b/components/quickbooks/sources/new-invoice-created/new-invoice-created.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-invoice-created", name: "New Invoice Created", description: "Emit new event when a new invoice is created.", - version: "0.0.7", + version: "0.0.8", type: "source", dedupe: "unique", methods: { diff --git a/components/quickbooks/sources/new-invoice-updated/new-invoice-updated.mjs b/components/quickbooks/sources/new-invoice-updated/new-invoice-updated.mjs index c566d19f5e849..322072abceed4 100644 --- a/components/quickbooks/sources/new-invoice-updated/new-invoice-updated.mjs +++ b/components/quickbooks/sources/new-invoice-updated/new-invoice-updated.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-invoice-updated", name: "New Invoice Updated", description: "Emit new event when an invoice is updated.", - version: "0.0.7", + version: "0.0.8", type: "source", dedupe: "unique", methods: { diff --git a/components/quickbooks/sources/new-item-created/new-item-created.mjs b/components/quickbooks/sources/new-item-created/new-item-created.mjs index 8aa868989b2cf..cd3fc1108679d 100644 --- a/components/quickbooks/sources/new-item-created/new-item-created.mjs +++ b/components/quickbooks/sources/new-item-created/new-item-created.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-item-created", name: "New Item Created", description: "Emit new event when a new item is created.", - version: "0.0.7", + version: "0.0.8", type: "source", dedupe: "unique", methods: { diff --git a/components/quickbooks/sources/new-item-updated/new-item-updated.mjs b/components/quickbooks/sources/new-item-updated/new-item-updated.mjs index ecbc2c0f84a00..f525d82dba25f 100644 --- a/components/quickbooks/sources/new-item-updated/new-item-updated.mjs +++ b/components/quickbooks/sources/new-item-updated/new-item-updated.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-item-updated", name: "New Item Updated", description: "Emit new event when an item is updated.", - version: "0.0.7", + version: "0.0.8", type: "source", dedupe: "unique", methods: { diff --git a/components/quickbooks/sources/new-purchase-created/new-purchase-created.mjs b/components/quickbooks/sources/new-purchase-created/new-purchase-created.mjs index a141145e4ceca..93a881cd6a8ed 100644 --- a/components/quickbooks/sources/new-purchase-created/new-purchase-created.mjs +++ b/components/quickbooks/sources/new-purchase-created/new-purchase-created.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-purchase-created", name: "New Purchase Created", description: "Emit new event when a new purchase is created.", - version: "0.0.1", + version: "0.0.2", type: "source", dedupe: "unique", methods: { diff --git a/components/quickbooks/sources/new-purchase-updated/new-purchase-updated.mjs b/components/quickbooks/sources/new-purchase-updated/new-purchase-updated.mjs index 0504941be4312..e51bf304f788d 100644 --- a/components/quickbooks/sources/new-purchase-updated/new-purchase-updated.mjs +++ b/components/quickbooks/sources/new-purchase-updated/new-purchase-updated.mjs @@ -6,7 +6,7 @@ export default { key: "quickbooks-new-purchase-updated", name: "New Purchase Updated", description: "Emit new event when a purchase is updated.", - version: "0.0.1", + version: "0.0.2", type: "source", dedupe: "unique", methods: { From 2b84ce365749800be4067f4c94cd93e9b99494c6 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Mon, 18 Aug 2025 16:51:19 -0400 Subject: [PATCH 4/4] updates --- .../quickbooks/actions/search-vendors/search-vendors.mjs | 2 +- components/quickbooks/common/utils.mjs | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/components/quickbooks/actions/search-vendors/search-vendors.mjs b/components/quickbooks/actions/search-vendors/search-vendors.mjs index adfab05a34abc..cd05e30660f23 100644 --- a/components/quickbooks/actions/search-vendors/search-vendors.mjs +++ b/components/quickbooks/actions/search-vendors/search-vendors.mjs @@ -37,7 +37,7 @@ export default { }, async run({ $ }) { if (!this.whereClause) { - throw new ConfigurationError("Must provide includeClause, whereClause parameters."); + throw new ConfigurationError("Must provide whereClause parameter."); } const orderClause = this.orderClause diff --git a/components/quickbooks/common/utils.mjs b/components/quickbooks/common/utils.mjs index e58f8df7ec8e5..2d548beae6c6a 100644 --- a/components/quickbooks/common/utils.mjs +++ b/components/quickbooks/common/utils.mjs @@ -55,11 +55,14 @@ export async function retryWithExponentialBackoff( } catch (error) { const status = error.response?.status; const errorCode = error.response?.data?.Fault?.Error?.[0]?.code; + const errorCodeStr = errorCode == null + ? undefined + : String(errorCode); const isRateLimit = status === 429 || status === 503 || - errorCode === "3200" || // Rate limit exceeded - errorCode === "10001"; // Throttle limit exceeded + errorCodeStr === "3200" || // Rate limit exceeded + errorCodeStr === "10001"; // Throttle limit exceeded if (retries > 0 && isRateLimit) { const retryAfter = error.response?.headers?.["retry-after"];