@tangle-network/agent-integrations 0.53.2 → 0.53.4
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/dist/catalog.js +4 -4
- package/dist/{chunk-JOQQ2VYH.js → chunk-4DZR436A.js} +901 -859
- package/dist/{chunk-JOQQ2VYH.js.map → chunk-4DZR436A.js.map} +1 -1
- package/dist/{chunk-MWEIKCF5.js → chunk-FPBOGTHV.js} +2 -2
- package/dist/{chunk-IL2SROKV.js → chunk-S77LC6LM.js} +3 -3
- package/dist/{chunk-BFKVIZD5.js → chunk-UXRMMG6W.js} +2 -2
- package/dist/connectors/adapters/index.js +1 -1
- package/dist/connectors/index.js +2 -2
- package/dist/index.js +4 -4
- package/dist/mcp.js +4 -4
- package/dist/registry.js +4 -4
- package/dist/runtime.js +4 -4
- package/dist/specs.js +3 -3
- package/docs/integration-execution-matrix.json +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-MWEIKCF5.js.map → chunk-FPBOGTHV.js.map} +0 -0
- /package/dist/{chunk-IL2SROKV.js.map → chunk-S77LC6LM.js.map} +0 -0
- /package/dist/{chunk-BFKVIZD5.js.map → chunk-UXRMMG6W.js.map} +0 -0
|
@@ -9481,6 +9481,437 @@ async function ensureFreshAccessTokenFromCreds(creds, clientId, clientSecret, on
|
|
|
9481
9481
|
return creds.accessToken;
|
|
9482
9482
|
}
|
|
9483
9483
|
|
|
9484
|
+
// src/connectors/adapters/quickbooks.ts
|
|
9485
|
+
var quickbooksConnector = declarativeRestConnector({
|
|
9486
|
+
kind: "quickbooks",
|
|
9487
|
+
displayName: "QuickBooks",
|
|
9488
|
+
description: "Query QuickBooks Online entities with SQL-like queries and create or update customers, invoices, and items.",
|
|
9489
|
+
auth: {
|
|
9490
|
+
kind: "oauth2",
|
|
9491
|
+
authorizationUrl: "https://appcenter.intuit.com/connect/oauth2",
|
|
9492
|
+
tokenUrl: "https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer",
|
|
9493
|
+
scopes: ["com.intuit.quickbooks.accounting"],
|
|
9494
|
+
clientIdEnv: "QUICKBOOKS_OAUTH_CLIENT_ID",
|
|
9495
|
+
clientSecretEnv: "QUICKBOOKS_OAUTH_CLIENT_SECRET"
|
|
9496
|
+
},
|
|
9497
|
+
category: "commerce",
|
|
9498
|
+
defaultConsistencyModel: "authoritative",
|
|
9499
|
+
baseUrl: { metadataKey: "apiBaseUrl" },
|
|
9500
|
+
defaultHeaders: {
|
|
9501
|
+
accept: "application/json"
|
|
9502
|
+
},
|
|
9503
|
+
// `realmId` is pinned at connect time, not passed per call, so the health
|
|
9504
|
+
// check reads it from connection metadata. Written as `{realmId}` it resolved
|
|
9505
|
+
// against the (empty) test argument map and threw before any request was
|
|
9506
|
+
// made — the connection test could never pass, for any connection.
|
|
9507
|
+
test: { method: "GET", path: "companyinfo/{connection.realmId}", query: { minorversion: "70" } },
|
|
9508
|
+
capabilities: [
|
|
9509
|
+
{
|
|
9510
|
+
// The reports namespace is NOT reachable through `entities.query` — QBO
|
|
9511
|
+
// exposes the accountant-grade statements only under /reports/{name}.
|
|
9512
|
+
// These four are the tax/bookkeeping read surface; without them a tax
|
|
9513
|
+
// agent can enumerate ledger rows but cannot obtain a P&L or a balance
|
|
9514
|
+
// sheet, which is what a return is actually built from.
|
|
9515
|
+
name: "reports.get",
|
|
9516
|
+
class: "read",
|
|
9517
|
+
description: "Run a QuickBooks Online report. `reportName` is the QBO report id (ProfitAndLoss, BalanceSheet, TrialBalance, GeneralLedger, CashFlow, AgedReceivables, AgedPayables).",
|
|
9518
|
+
parameters: {
|
|
9519
|
+
type: "object",
|
|
9520
|
+
properties: {
|
|
9521
|
+
reportName: {
|
|
9522
|
+
type: "string",
|
|
9523
|
+
enum: [
|
|
9524
|
+
"ProfitAndLoss",
|
|
9525
|
+
"BalanceSheet",
|
|
9526
|
+
"TrialBalance",
|
|
9527
|
+
"GeneralLedger",
|
|
9528
|
+
"CashFlow",
|
|
9529
|
+
"AgedReceivables",
|
|
9530
|
+
"AgedPayables"
|
|
9531
|
+
]
|
|
9532
|
+
},
|
|
9533
|
+
start_date: { type: "string", description: "YYYY-MM-DD (inclusive)." },
|
|
9534
|
+
end_date: { type: "string", description: "YYYY-MM-DD (inclusive)." },
|
|
9535
|
+
accounting_method: { type: "string", enum: ["Cash", "Accrual"] },
|
|
9536
|
+
date_macro: { type: "string", description: 'e.g. "Last Fiscal Year" \u2014 alternative to start/end dates.' },
|
|
9537
|
+
summarize_column_by: { type: "string", description: "e.g. Month, Quarter, Year, Total." },
|
|
9538
|
+
minorversion: { type: "string" }
|
|
9539
|
+
},
|
|
9540
|
+
required: ["reportName"]
|
|
9541
|
+
},
|
|
9542
|
+
request: {
|
|
9543
|
+
method: "GET",
|
|
9544
|
+
path: "reports/{reportName}",
|
|
9545
|
+
query: {
|
|
9546
|
+
start_date: "{start_date}",
|
|
9547
|
+
end_date: "{end_date}",
|
|
9548
|
+
accounting_method: "{accounting_method}",
|
|
9549
|
+
date_macro: "{date_macro}",
|
|
9550
|
+
summarize_column_by: "{summarize_column_by}",
|
|
9551
|
+
minorversion: "{minorversion}"
|
|
9552
|
+
}
|
|
9553
|
+
},
|
|
9554
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9555
|
+
},
|
|
9556
|
+
{
|
|
9557
|
+
name: "companyinfo.get",
|
|
9558
|
+
class: "read",
|
|
9559
|
+
description: "Read the connected QuickBooks company profile (legal name, EIN/company id, fiscal year start, country) for the realm this connection was authorized against.",
|
|
9560
|
+
parameters: { type: "object", properties: { minorversion: { type: "string" } } },
|
|
9561
|
+
request: {
|
|
9562
|
+
method: "GET",
|
|
9563
|
+
path: "companyinfo/{connection.realmId}",
|
|
9564
|
+
query: { minorversion: "{minorversion}" }
|
|
9565
|
+
},
|
|
9566
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9567
|
+
},
|
|
9568
|
+
{
|
|
9569
|
+
name: "entities.query",
|
|
9570
|
+
class: "read",
|
|
9571
|
+
description: 'Run a QuickBooks Online query (e.g. "SELECT * FROM Customer WHERE Active = true MAXRESULTS 50").',
|
|
9572
|
+
parameters: {
|
|
9573
|
+
type: "object",
|
|
9574
|
+
properties: {
|
|
9575
|
+
query: { type: "string" },
|
|
9576
|
+
minorversion: { type: "string" }
|
|
9577
|
+
},
|
|
9578
|
+
required: ["query"]
|
|
9579
|
+
},
|
|
9580
|
+
request: {
|
|
9581
|
+
method: "GET",
|
|
9582
|
+
path: "query",
|
|
9583
|
+
query: { query: "{query}", minorversion: "{minorversion}" }
|
|
9584
|
+
},
|
|
9585
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9586
|
+
},
|
|
9587
|
+
{
|
|
9588
|
+
name: "customers.get",
|
|
9589
|
+
class: "read",
|
|
9590
|
+
description: "Read a QuickBooks customer by id.",
|
|
9591
|
+
parameters: {
|
|
9592
|
+
type: "object",
|
|
9593
|
+
properties: {
|
|
9594
|
+
customerId: { type: "string" },
|
|
9595
|
+
minorversion: { type: "string" }
|
|
9596
|
+
},
|
|
9597
|
+
required: ["customerId"]
|
|
9598
|
+
},
|
|
9599
|
+
request: {
|
|
9600
|
+
method: "GET",
|
|
9601
|
+
path: "customer/{customerId}",
|
|
9602
|
+
query: { minorversion: "{minorversion}" }
|
|
9603
|
+
},
|
|
9604
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9605
|
+
},
|
|
9606
|
+
{
|
|
9607
|
+
name: "customers.create",
|
|
9608
|
+
class: "mutation",
|
|
9609
|
+
description: "Create a QuickBooks customer.",
|
|
9610
|
+
parameters: {
|
|
9611
|
+
type: "object",
|
|
9612
|
+
properties: {
|
|
9613
|
+
DisplayName: { type: "string" },
|
|
9614
|
+
GivenName: { type: "string" },
|
|
9615
|
+
FamilyName: { type: "string" },
|
|
9616
|
+
CompanyName: { type: "string" },
|
|
9617
|
+
PrimaryEmailAddr: { type: "object" },
|
|
9618
|
+
PrimaryPhone: { type: "object" },
|
|
9619
|
+
BillAddr: { type: "object" },
|
|
9620
|
+
Notes: { type: "string" }
|
|
9621
|
+
},
|
|
9622
|
+
required: ["DisplayName"]
|
|
9623
|
+
},
|
|
9624
|
+
request: {
|
|
9625
|
+
method: "POST",
|
|
9626
|
+
path: "customer",
|
|
9627
|
+
query: { minorversion: "70" },
|
|
9628
|
+
body: "args"
|
|
9629
|
+
},
|
|
9630
|
+
cas: "native-idempotency",
|
|
9631
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9632
|
+
},
|
|
9633
|
+
{
|
|
9634
|
+
name: "customers.update",
|
|
9635
|
+
class: "mutation",
|
|
9636
|
+
description: "Sparse-update a QuickBooks customer. Caller must include Id and SyncToken from the prior read.",
|
|
9637
|
+
parameters: {
|
|
9638
|
+
type: "object",
|
|
9639
|
+
properties: {
|
|
9640
|
+
Id: { type: "string" },
|
|
9641
|
+
SyncToken: { type: "string" },
|
|
9642
|
+
sparse: { type: "boolean", default: true },
|
|
9643
|
+
DisplayName: { type: "string" },
|
|
9644
|
+
GivenName: { type: "string" },
|
|
9645
|
+
FamilyName: { type: "string" },
|
|
9646
|
+
CompanyName: { type: "string" },
|
|
9647
|
+
PrimaryEmailAddr: { type: "object" },
|
|
9648
|
+
PrimaryPhone: { type: "object" },
|
|
9649
|
+
BillAddr: { type: "object" },
|
|
9650
|
+
Notes: { type: "string" },
|
|
9651
|
+
Active: { type: "boolean" }
|
|
9652
|
+
},
|
|
9653
|
+
required: ["Id", "SyncToken"]
|
|
9654
|
+
},
|
|
9655
|
+
request: {
|
|
9656
|
+
method: "POST",
|
|
9657
|
+
path: "customer",
|
|
9658
|
+
query: { minorversion: "70" },
|
|
9659
|
+
body: "args"
|
|
9660
|
+
},
|
|
9661
|
+
cas: "optimistic-read-verify",
|
|
9662
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9663
|
+
},
|
|
9664
|
+
{
|
|
9665
|
+
name: "invoices.get",
|
|
9666
|
+
class: "read",
|
|
9667
|
+
description: "Read a QuickBooks invoice by id.",
|
|
9668
|
+
parameters: {
|
|
9669
|
+
type: "object",
|
|
9670
|
+
properties: {
|
|
9671
|
+
invoiceId: { type: "string" },
|
|
9672
|
+
minorversion: { type: "string" }
|
|
9673
|
+
},
|
|
9674
|
+
required: ["invoiceId"]
|
|
9675
|
+
},
|
|
9676
|
+
request: {
|
|
9677
|
+
method: "GET",
|
|
9678
|
+
path: "invoice/{invoiceId}",
|
|
9679
|
+
query: { minorversion: "{minorversion}" }
|
|
9680
|
+
},
|
|
9681
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9682
|
+
},
|
|
9683
|
+
{
|
|
9684
|
+
name: "invoices.create",
|
|
9685
|
+
class: "mutation",
|
|
9686
|
+
description: "Create a QuickBooks invoice. `Line` and `CustomerRef` are required by the API.",
|
|
9687
|
+
parameters: {
|
|
9688
|
+
type: "object",
|
|
9689
|
+
properties: {
|
|
9690
|
+
CustomerRef: { type: "object" },
|
|
9691
|
+
Line: { type: "array", items: { type: "object" } },
|
|
9692
|
+
TxnDate: { type: "string" },
|
|
9693
|
+
DueDate: { type: "string" },
|
|
9694
|
+
CurrencyRef: { type: "object" },
|
|
9695
|
+
BillEmail: { type: "object" },
|
|
9696
|
+
PrivateNote: { type: "string" },
|
|
9697
|
+
CustomerMemo: { type: "object" }
|
|
9698
|
+
},
|
|
9699
|
+
required: ["CustomerRef", "Line"]
|
|
9700
|
+
},
|
|
9701
|
+
request: {
|
|
9702
|
+
method: "POST",
|
|
9703
|
+
path: "invoice",
|
|
9704
|
+
query: { minorversion: "70" },
|
|
9705
|
+
body: "args"
|
|
9706
|
+
},
|
|
9707
|
+
cas: "native-idempotency",
|
|
9708
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9709
|
+
},
|
|
9710
|
+
{
|
|
9711
|
+
name: "invoices.update",
|
|
9712
|
+
class: "mutation",
|
|
9713
|
+
description: "Sparse-update a QuickBooks invoice. Caller must include Id and SyncToken from the prior read.",
|
|
9714
|
+
parameters: {
|
|
9715
|
+
type: "object",
|
|
9716
|
+
properties: {
|
|
9717
|
+
Id: { type: "string" },
|
|
9718
|
+
SyncToken: { type: "string" },
|
|
9719
|
+
sparse: { type: "boolean", default: true },
|
|
9720
|
+
CustomerRef: { type: "object" },
|
|
9721
|
+
Line: { type: "array", items: { type: "object" } },
|
|
9722
|
+
DueDate: { type: "string" },
|
|
9723
|
+
CustomerMemo: { type: "object" },
|
|
9724
|
+
PrivateNote: { type: "string" }
|
|
9725
|
+
},
|
|
9726
|
+
required: ["Id", "SyncToken"]
|
|
9727
|
+
},
|
|
9728
|
+
request: {
|
|
9729
|
+
method: "POST",
|
|
9730
|
+
path: "invoice",
|
|
9731
|
+
query: { minorversion: "70" },
|
|
9732
|
+
body: "args"
|
|
9733
|
+
},
|
|
9734
|
+
cas: "optimistic-read-verify",
|
|
9735
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9736
|
+
},
|
|
9737
|
+
{
|
|
9738
|
+
name: "items.create",
|
|
9739
|
+
class: "mutation",
|
|
9740
|
+
description: "Create a QuickBooks item (product or service).",
|
|
9741
|
+
parameters: {
|
|
9742
|
+
type: "object",
|
|
9743
|
+
properties: {
|
|
9744
|
+
Name: { type: "string" },
|
|
9745
|
+
Type: { type: "string", enum: ["Service", "Inventory", "NonInventory"] },
|
|
9746
|
+
IncomeAccountRef: { type: "object" },
|
|
9747
|
+
ExpenseAccountRef: { type: "object" },
|
|
9748
|
+
UnitPrice: { type: "number" },
|
|
9749
|
+
Description: { type: "string" },
|
|
9750
|
+
Taxable: { type: "boolean" }
|
|
9751
|
+
},
|
|
9752
|
+
required: ["Name", "Type", "IncomeAccountRef"]
|
|
9753
|
+
},
|
|
9754
|
+
request: {
|
|
9755
|
+
method: "POST",
|
|
9756
|
+
path: "item",
|
|
9757
|
+
query: { minorversion: "70" },
|
|
9758
|
+
body: "args"
|
|
9759
|
+
},
|
|
9760
|
+
cas: "native-idempotency",
|
|
9761
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9762
|
+
},
|
|
9763
|
+
{
|
|
9764
|
+
name: "customers.delete",
|
|
9765
|
+
class: "mutation",
|
|
9766
|
+
description: "Mark a QuickBooks customer inactive. QBO does not support hard deletes \u2014 caller must supply Id and SyncToken from the prior read.",
|
|
9767
|
+
parameters: {
|
|
9768
|
+
type: "object",
|
|
9769
|
+
properties: {
|
|
9770
|
+
Id: { type: "string" },
|
|
9771
|
+
SyncToken: { type: "string" },
|
|
9772
|
+
sparse: { type: "boolean", default: true },
|
|
9773
|
+
Active: { type: "boolean", default: false }
|
|
9774
|
+
},
|
|
9775
|
+
required: ["Id", "SyncToken"]
|
|
9776
|
+
},
|
|
9777
|
+
request: {
|
|
9778
|
+
method: "POST",
|
|
9779
|
+
path: "customer",
|
|
9780
|
+
query: { minorversion: "70" },
|
|
9781
|
+
body: "args"
|
|
9782
|
+
},
|
|
9783
|
+
cas: "native-idempotency",
|
|
9784
|
+
externalEffect: true,
|
|
9785
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9786
|
+
},
|
|
9787
|
+
{
|
|
9788
|
+
name: "invoices.delete",
|
|
9789
|
+
class: "mutation",
|
|
9790
|
+
description: "Void a QuickBooks invoice (QBO does not hard-delete invoices). Caller must supply Id and SyncToken.",
|
|
9791
|
+
parameters: {
|
|
9792
|
+
type: "object",
|
|
9793
|
+
properties: {
|
|
9794
|
+
Id: { type: "string" },
|
|
9795
|
+
SyncToken: { type: "string" }
|
|
9796
|
+
},
|
|
9797
|
+
required: ["Id", "SyncToken"]
|
|
9798
|
+
},
|
|
9799
|
+
request: {
|
|
9800
|
+
method: "POST",
|
|
9801
|
+
path: "invoice",
|
|
9802
|
+
query: { operation: "void", minorversion: "70" },
|
|
9803
|
+
body: "args"
|
|
9804
|
+
},
|
|
9805
|
+
cas: "native-idempotency",
|
|
9806
|
+
externalEffect: true,
|
|
9807
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9808
|
+
},
|
|
9809
|
+
{
|
|
9810
|
+
name: "invoices.send",
|
|
9811
|
+
class: "mutation",
|
|
9812
|
+
description: "Email a QuickBooks invoice to the customer (optionally override the recipient with `sendTo`).",
|
|
9813
|
+
parameters: {
|
|
9814
|
+
type: "object",
|
|
9815
|
+
properties: {
|
|
9816
|
+
invoiceId: { type: "string" },
|
|
9817
|
+
sendTo: { type: "string" }
|
|
9818
|
+
},
|
|
9819
|
+
required: ["invoiceId"]
|
|
9820
|
+
},
|
|
9821
|
+
request: {
|
|
9822
|
+
method: "POST",
|
|
9823
|
+
path: "invoice/{invoiceId}/send",
|
|
9824
|
+
query: { sendTo: "{sendTo}", minorversion: "70" }
|
|
9825
|
+
},
|
|
9826
|
+
cas: "native-idempotency",
|
|
9827
|
+
externalEffect: true,
|
|
9828
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9829
|
+
},
|
|
9830
|
+
{
|
|
9831
|
+
name: "bills.create",
|
|
9832
|
+
class: "mutation",
|
|
9833
|
+
description: "Create a QuickBooks vendor bill. `VendorRef` and `Line` are required by the API.",
|
|
9834
|
+
parameters: {
|
|
9835
|
+
type: "object",
|
|
9836
|
+
properties: {
|
|
9837
|
+
VendorRef: { type: "object" },
|
|
9838
|
+
Line: { type: "array", items: { type: "object" } },
|
|
9839
|
+
TxnDate: { type: "string" },
|
|
9840
|
+
DueDate: { type: "string" },
|
|
9841
|
+
CurrencyRef: { type: "object" },
|
|
9842
|
+
PrivateNote: { type: "string" },
|
|
9843
|
+
APAccountRef: { type: "object" }
|
|
9844
|
+
},
|
|
9845
|
+
required: ["VendorRef", "Line"]
|
|
9846
|
+
},
|
|
9847
|
+
request: {
|
|
9848
|
+
method: "POST",
|
|
9849
|
+
path: "bill",
|
|
9850
|
+
query: { minorversion: "70" },
|
|
9851
|
+
body: "args"
|
|
9852
|
+
},
|
|
9853
|
+
cas: "native-idempotency",
|
|
9854
|
+
externalEffect: true,
|
|
9855
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9856
|
+
},
|
|
9857
|
+
{
|
|
9858
|
+
name: "vendors.create",
|
|
9859
|
+
class: "mutation",
|
|
9860
|
+
description: "Create a QuickBooks vendor.",
|
|
9861
|
+
parameters: {
|
|
9862
|
+
type: "object",
|
|
9863
|
+
properties: {
|
|
9864
|
+
DisplayName: { type: "string" },
|
|
9865
|
+
GivenName: { type: "string" },
|
|
9866
|
+
FamilyName: { type: "string" },
|
|
9867
|
+
CompanyName: { type: "string" },
|
|
9868
|
+
PrimaryEmailAddr: { type: "object" },
|
|
9869
|
+
PrimaryPhone: { type: "object" },
|
|
9870
|
+
BillAddr: { type: "object" },
|
|
9871
|
+
TaxIdentifier: { type: "string" },
|
|
9872
|
+
AcctNum: { type: "string" }
|
|
9873
|
+
},
|
|
9874
|
+
required: ["DisplayName"]
|
|
9875
|
+
},
|
|
9876
|
+
request: {
|
|
9877
|
+
method: "POST",
|
|
9878
|
+
path: "vendor",
|
|
9879
|
+
query: { minorversion: "70" },
|
|
9880
|
+
body: "args"
|
|
9881
|
+
},
|
|
9882
|
+
cas: "native-idempotency",
|
|
9883
|
+
externalEffect: true,
|
|
9884
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9885
|
+
},
|
|
9886
|
+
{
|
|
9887
|
+
name: "payments.create",
|
|
9888
|
+
class: "mutation",
|
|
9889
|
+
description: "Record a QuickBooks payment against a customer (and optionally apply to invoices via `Line[].LinkedTxn`).",
|
|
9890
|
+
parameters: {
|
|
9891
|
+
type: "object",
|
|
9892
|
+
properties: {
|
|
9893
|
+
CustomerRef: { type: "object" },
|
|
9894
|
+
TotalAmt: { type: "number" },
|
|
9895
|
+
TxnDate: { type: "string" },
|
|
9896
|
+
PaymentMethodRef: { type: "object" },
|
|
9897
|
+
DepositToAccountRef: { type: "object" },
|
|
9898
|
+
Line: { type: "array", items: { type: "object" } },
|
|
9899
|
+
PrivateNote: { type: "string" }
|
|
9900
|
+
},
|
|
9901
|
+
required: ["CustomerRef", "TotalAmt"]
|
|
9902
|
+
},
|
|
9903
|
+
request: {
|
|
9904
|
+
method: "POST",
|
|
9905
|
+
path: "payment",
|
|
9906
|
+
query: { minorversion: "70" },
|
|
9907
|
+
body: "args"
|
|
9908
|
+
},
|
|
9909
|
+
cas: "native-idempotency",
|
|
9910
|
+
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
9911
|
+
}
|
|
9912
|
+
]
|
|
9913
|
+
});
|
|
9914
|
+
|
|
9484
9915
|
// src/connectors/adapters/sharepoint.ts
|
|
9485
9916
|
var SCOPES11 = [
|
|
9486
9917
|
"https://graph.microsoft.com/Sites.ReadWrite.All",
|
|
@@ -12116,6 +12547,421 @@ async function deleteTemplate(inv, accessToken) {
|
|
|
12116
12547
|
};
|
|
12117
12548
|
}
|
|
12118
12549
|
|
|
12550
|
+
// src/connectors/adapters/xero.ts
|
|
12551
|
+
var xeroConnector = declarativeRestConnector({
|
|
12552
|
+
kind: "xero",
|
|
12553
|
+
displayName: "Xero",
|
|
12554
|
+
description: "Search and update Xero contacts, invoices, and chart-of-account records across authorized organizations.",
|
|
12555
|
+
auth: {
|
|
12556
|
+
kind: "oauth2",
|
|
12557
|
+
authorizationUrl: "https://login.xero.com/identity/connect/authorize",
|
|
12558
|
+
tokenUrl: "https://identity.xero.com/connect/token",
|
|
12559
|
+
// `accounting.reports.read` is a distinct Xero scope — the reports
|
|
12560
|
+
// namespace is not covered by settings/transactions and 403s without it.
|
|
12561
|
+
scopes: [
|
|
12562
|
+
"offline_access",
|
|
12563
|
+
"accounting.contacts",
|
|
12564
|
+
"accounting.transactions",
|
|
12565
|
+
"accounting.settings.read",
|
|
12566
|
+
"accounting.reports.read"
|
|
12567
|
+
],
|
|
12568
|
+
clientIdEnv: "XERO_OAUTH_CLIENT_ID",
|
|
12569
|
+
clientSecretEnv: "XERO_OAUTH_CLIENT_SECRET"
|
|
12570
|
+
},
|
|
12571
|
+
category: "crm",
|
|
12572
|
+
defaultConsistencyModel: "authoritative",
|
|
12573
|
+
baseUrl: "https://api.xero.com",
|
|
12574
|
+
defaultHeaders: { accept: "application/json" },
|
|
12575
|
+
test: { method: "GET", path: "/connections" },
|
|
12576
|
+
capabilities: [
|
|
12577
|
+
{
|
|
12578
|
+
// Every other Xero capability REQUIRES `tenantId`, and a tenant id is an
|
|
12579
|
+
// opaque GUID no caller can know before asking. Without this read the
|
|
12580
|
+
// connector is unusable by an agent: the only place the id appeared was
|
|
12581
|
+
// the health check, which discards its body.
|
|
12582
|
+
name: "tenants.list",
|
|
12583
|
+
class: "read",
|
|
12584
|
+
description: "List the Xero organizations (tenants) this connection is authorized for. Call this FIRST \u2014 every other Xero capability requires the `tenantId` returned here.",
|
|
12585
|
+
parameters: { type: "object", properties: {} },
|
|
12586
|
+
request: { method: "GET", path: "/connections" }
|
|
12587
|
+
},
|
|
12588
|
+
{
|
|
12589
|
+
// Xero's reporting surface, like QBO's, is a separate namespace from the
|
|
12590
|
+
// record endpoints. These are the statements a return or a books review
|
|
12591
|
+
// is actually built from.
|
|
12592
|
+
name: "reports.get",
|
|
12593
|
+
class: "read",
|
|
12594
|
+
description: "Run a Xero accounting report. `reportName` is the Xero report id (ProfitAndLoss, BalanceSheet, TrialBalance, BankSummary, AgedReceivablesByContact, AgedPayablesByContact).",
|
|
12595
|
+
parameters: {
|
|
12596
|
+
type: "object",
|
|
12597
|
+
properties: {
|
|
12598
|
+
tenantId: { type: "string", description: "From tenants.list." },
|
|
12599
|
+
reportName: {
|
|
12600
|
+
type: "string",
|
|
12601
|
+
enum: [
|
|
12602
|
+
"ProfitAndLoss",
|
|
12603
|
+
"BalanceSheet",
|
|
12604
|
+
"TrialBalance",
|
|
12605
|
+
"BankSummary",
|
|
12606
|
+
"AgedReceivablesByContact",
|
|
12607
|
+
"AgedPayablesByContact"
|
|
12608
|
+
]
|
|
12609
|
+
},
|
|
12610
|
+
fromDate: { type: "string", description: "YYYY-MM-DD." },
|
|
12611
|
+
toDate: { type: "string", description: "YYYY-MM-DD." },
|
|
12612
|
+
date: { type: "string", description: "YYYY-MM-DD \u2014 point-in-time reports (BalanceSheet, TrialBalance)." },
|
|
12613
|
+
contactId: { type: "string", description: "Required by the aged receivables/payables reports." }
|
|
12614
|
+
},
|
|
12615
|
+
required: ["tenantId", "reportName"]
|
|
12616
|
+
},
|
|
12617
|
+
request: {
|
|
12618
|
+
method: "GET",
|
|
12619
|
+
path: "/api.xro/2.0/Reports/{reportName}",
|
|
12620
|
+
query: { fromDate: "{fromDate}", toDate: "{toDate}", date: "{date}", contactID: "{contactId}" },
|
|
12621
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12622
|
+
},
|
|
12623
|
+
requiredScopes: ["accounting.reports.read"]
|
|
12624
|
+
},
|
|
12625
|
+
{
|
|
12626
|
+
name: "contacts.search",
|
|
12627
|
+
class: "read",
|
|
12628
|
+
description: "Search Xero contacts in a tenant using the Xero where-clause query language.",
|
|
12629
|
+
parameters: {
|
|
12630
|
+
type: "object",
|
|
12631
|
+
properties: {
|
|
12632
|
+
tenantId: { type: "string", description: "Xero tenant (organization) id from /connections." },
|
|
12633
|
+
where: { type: "string", description: `Xero where clause, e.g. 'Name.Contains("Acme")'.` },
|
|
12634
|
+
order: { type: "string", description: 'Sort expression, e.g. "Name ASC".' },
|
|
12635
|
+
page: { type: "integer", minimum: 1 }
|
|
12636
|
+
},
|
|
12637
|
+
required: ["tenantId"]
|
|
12638
|
+
},
|
|
12639
|
+
request: {
|
|
12640
|
+
method: "GET",
|
|
12641
|
+
path: "/api.xro/2.0/Contacts",
|
|
12642
|
+
query: { where: "{where}", order: "{order}", page: "{page}" },
|
|
12643
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12644
|
+
},
|
|
12645
|
+
requiredScopes: ["accounting.contacts"]
|
|
12646
|
+
},
|
|
12647
|
+
{
|
|
12648
|
+
name: "contacts.get",
|
|
12649
|
+
class: "read",
|
|
12650
|
+
description: "Read a single Xero contact by ContactID.",
|
|
12651
|
+
parameters: {
|
|
12652
|
+
type: "object",
|
|
12653
|
+
properties: {
|
|
12654
|
+
tenantId: { type: "string" },
|
|
12655
|
+
contactId: { type: "string", description: "Xero ContactID (GUID)." }
|
|
12656
|
+
},
|
|
12657
|
+
required: ["tenantId", "contactId"]
|
|
12658
|
+
},
|
|
12659
|
+
request: {
|
|
12660
|
+
method: "GET",
|
|
12661
|
+
path: "/api.xro/2.0/Contacts/{contactId}",
|
|
12662
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12663
|
+
},
|
|
12664
|
+
requiredScopes: ["accounting.contacts"]
|
|
12665
|
+
},
|
|
12666
|
+
{
|
|
12667
|
+
name: "contacts.create",
|
|
12668
|
+
class: "mutation",
|
|
12669
|
+
description: "Create a Xero contact. Pass a Contacts array per the Xero API contract.",
|
|
12670
|
+
parameters: {
|
|
12671
|
+
type: "object",
|
|
12672
|
+
properties: {
|
|
12673
|
+
tenantId: { type: "string" },
|
|
12674
|
+
Contacts: {
|
|
12675
|
+
type: "array",
|
|
12676
|
+
items: {
|
|
12677
|
+
type: "object",
|
|
12678
|
+
properties: {
|
|
12679
|
+
Name: { type: "string" },
|
|
12680
|
+
EmailAddress: { type: "string" },
|
|
12681
|
+
FirstName: { type: "string" },
|
|
12682
|
+
LastName: { type: "string" }
|
|
12683
|
+
},
|
|
12684
|
+
required: ["Name"]
|
|
12685
|
+
}
|
|
12686
|
+
}
|
|
12687
|
+
},
|
|
12688
|
+
required: ["tenantId", "Contacts"]
|
|
12689
|
+
},
|
|
12690
|
+
request: {
|
|
12691
|
+
method: "POST",
|
|
12692
|
+
path: "/api.xro/2.0/Contacts",
|
|
12693
|
+
body: { Contacts: "{Contacts}" },
|
|
12694
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12695
|
+
},
|
|
12696
|
+
cas: "native-idempotency",
|
|
12697
|
+
requiredScopes: ["accounting.contacts"]
|
|
12698
|
+
},
|
|
12699
|
+
{
|
|
12700
|
+
name: "contacts.update",
|
|
12701
|
+
class: "mutation",
|
|
12702
|
+
description: "Update a Xero contact by ContactID.",
|
|
12703
|
+
parameters: {
|
|
12704
|
+
type: "object",
|
|
12705
|
+
properties: {
|
|
12706
|
+
tenantId: { type: "string" },
|
|
12707
|
+
contactId: { type: "string" },
|
|
12708
|
+
fields: { type: "object", description: "Partial Xero Contact payload." }
|
|
12709
|
+
},
|
|
12710
|
+
required: ["tenantId", "contactId", "fields"]
|
|
12711
|
+
},
|
|
12712
|
+
request: {
|
|
12713
|
+
method: "POST",
|
|
12714
|
+
path: "/api.xro/2.0/Contacts/{contactId}",
|
|
12715
|
+
body: "{fields}",
|
|
12716
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12717
|
+
},
|
|
12718
|
+
cas: "optimistic-read-verify",
|
|
12719
|
+
requiredScopes: ["accounting.contacts"]
|
|
12720
|
+
},
|
|
12721
|
+
{
|
|
12722
|
+
name: "invoices.search",
|
|
12723
|
+
class: "read",
|
|
12724
|
+
description: "Search Xero invoices in a tenant.",
|
|
12725
|
+
parameters: {
|
|
12726
|
+
type: "object",
|
|
12727
|
+
properties: {
|
|
12728
|
+
tenantId: { type: "string" },
|
|
12729
|
+
where: { type: "string", description: `Xero where clause, e.g. 'Status=="AUTHORISED"'.` },
|
|
12730
|
+
order: { type: "string", description: 'Sort expression, e.g. "Date DESC".' },
|
|
12731
|
+
page: { type: "integer", minimum: 1 }
|
|
12732
|
+
},
|
|
12733
|
+
required: ["tenantId"]
|
|
12734
|
+
},
|
|
12735
|
+
request: {
|
|
12736
|
+
method: "GET",
|
|
12737
|
+
path: "/api.xro/2.0/Invoices",
|
|
12738
|
+
query: { where: "{where}", order: "{order}", page: "{page}" },
|
|
12739
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12740
|
+
},
|
|
12741
|
+
requiredScopes: ["accounting.transactions"]
|
|
12742
|
+
},
|
|
12743
|
+
{
|
|
12744
|
+
name: "invoices.get",
|
|
12745
|
+
class: "read",
|
|
12746
|
+
description: "Read a single Xero invoice by InvoiceID or InvoiceNumber.",
|
|
12747
|
+
parameters: {
|
|
12748
|
+
type: "object",
|
|
12749
|
+
properties: {
|
|
12750
|
+
tenantId: { type: "string" },
|
|
12751
|
+
invoiceId: { type: "string", description: "Xero InvoiceID (GUID) or InvoiceNumber." }
|
|
12752
|
+
},
|
|
12753
|
+
required: ["tenantId", "invoiceId"]
|
|
12754
|
+
},
|
|
12755
|
+
request: {
|
|
12756
|
+
method: "GET",
|
|
12757
|
+
path: "/api.xro/2.0/Invoices/{invoiceId}",
|
|
12758
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12759
|
+
},
|
|
12760
|
+
requiredScopes: ["accounting.transactions"]
|
|
12761
|
+
},
|
|
12762
|
+
{
|
|
12763
|
+
name: "invoices.create",
|
|
12764
|
+
class: "mutation",
|
|
12765
|
+
description: "Create a Xero invoice (AR or AP). Pass an Invoices array per the Xero API contract.",
|
|
12766
|
+
parameters: {
|
|
12767
|
+
type: "object",
|
|
12768
|
+
properties: {
|
|
12769
|
+
tenantId: { type: "string" },
|
|
12770
|
+
Invoices: {
|
|
12771
|
+
type: "array",
|
|
12772
|
+
items: {
|
|
12773
|
+
type: "object",
|
|
12774
|
+
properties: {
|
|
12775
|
+
Type: { type: "string", enum: ["ACCREC", "ACCPAY"] },
|
|
12776
|
+
Contact: { type: "object" },
|
|
12777
|
+
LineItems: { type: "array", items: { type: "object" } },
|
|
12778
|
+
Date: { type: "string", description: "YYYY-MM-DD." },
|
|
12779
|
+
DueDate: { type: "string", description: "YYYY-MM-DD." },
|
|
12780
|
+
Reference: { type: "string" },
|
|
12781
|
+
Status: { type: "string", enum: ["DRAFT", "SUBMITTED", "AUTHORISED"] }
|
|
12782
|
+
},
|
|
12783
|
+
required: ["Type", "Contact", "LineItems"]
|
|
12784
|
+
}
|
|
12785
|
+
}
|
|
12786
|
+
},
|
|
12787
|
+
required: ["tenantId", "Invoices"]
|
|
12788
|
+
},
|
|
12789
|
+
request: {
|
|
12790
|
+
method: "POST",
|
|
12791
|
+
path: "/api.xro/2.0/Invoices",
|
|
12792
|
+
body: { Invoices: "{Invoices}" },
|
|
12793
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12794
|
+
},
|
|
12795
|
+
cas: "native-idempotency",
|
|
12796
|
+
requiredScopes: ["accounting.transactions"]
|
|
12797
|
+
},
|
|
12798
|
+
{
|
|
12799
|
+
name: "accounts.search",
|
|
12800
|
+
class: "read",
|
|
12801
|
+
description: "List Xero chart-of-account records for a tenant.",
|
|
12802
|
+
parameters: {
|
|
12803
|
+
type: "object",
|
|
12804
|
+
properties: {
|
|
12805
|
+
tenantId: { type: "string" },
|
|
12806
|
+
where: { type: "string", description: `Xero where clause, e.g. 'Type=="REVENUE"'.` },
|
|
12807
|
+
order: { type: "string" }
|
|
12808
|
+
},
|
|
12809
|
+
required: ["tenantId"]
|
|
12810
|
+
},
|
|
12811
|
+
request: {
|
|
12812
|
+
method: "GET",
|
|
12813
|
+
path: "/api.xro/2.0/Accounts",
|
|
12814
|
+
query: { where: "{where}", order: "{order}" },
|
|
12815
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12816
|
+
},
|
|
12817
|
+
requiredScopes: ["accounting.settings.read"]
|
|
12818
|
+
},
|
|
12819
|
+
{
|
|
12820
|
+
name: "contacts.archive",
|
|
12821
|
+
class: "mutation",
|
|
12822
|
+
description: "Archive a Xero contact (sets ContactStatus to ARCHIVED).",
|
|
12823
|
+
parameters: {
|
|
12824
|
+
type: "object",
|
|
12825
|
+
properties: {
|
|
12826
|
+
tenantId: { type: "string" },
|
|
12827
|
+
contactId: { type: "string", description: "Xero ContactID (GUID)." }
|
|
12828
|
+
},
|
|
12829
|
+
required: ["tenantId", "contactId"]
|
|
12830
|
+
},
|
|
12831
|
+
request: {
|
|
12832
|
+
method: "POST",
|
|
12833
|
+
path: "/api.xro/2.0/Contacts/{contactId}",
|
|
12834
|
+
body: { ContactStatus: "ARCHIVED" },
|
|
12835
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12836
|
+
},
|
|
12837
|
+
cas: "native-idempotency",
|
|
12838
|
+
externalEffect: true,
|
|
12839
|
+
requiredScopes: ["accounting.contacts"]
|
|
12840
|
+
},
|
|
12841
|
+
{
|
|
12842
|
+
name: "invoices.delete",
|
|
12843
|
+
class: "mutation",
|
|
12844
|
+
description: "Void or delete a Xero invoice. DRAFT/SUBMITTED invoices accept DELETED, AUTHORISED invoices accept VOIDED.",
|
|
12845
|
+
parameters: {
|
|
12846
|
+
type: "object",
|
|
12847
|
+
properties: {
|
|
12848
|
+
tenantId: { type: "string" },
|
|
12849
|
+
invoiceId: { type: "string", description: "Xero InvoiceID (GUID) or InvoiceNumber." },
|
|
12850
|
+
status: {
|
|
12851
|
+
type: "string",
|
|
12852
|
+
enum: ["VOIDED", "DELETED"],
|
|
12853
|
+
description: "Target status. VOIDED for authorised invoices, DELETED for draft/submitted invoices."
|
|
12854
|
+
}
|
|
12855
|
+
},
|
|
12856
|
+
required: ["tenantId", "invoiceId", "status"]
|
|
12857
|
+
},
|
|
12858
|
+
request: {
|
|
12859
|
+
method: "POST",
|
|
12860
|
+
path: "/api.xro/2.0/Invoices/{invoiceId}",
|
|
12861
|
+
body: { Status: "{status}" },
|
|
12862
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12863
|
+
},
|
|
12864
|
+
cas: "native-idempotency",
|
|
12865
|
+
externalEffect: true,
|
|
12866
|
+
requiredScopes: ["accounting.transactions"]
|
|
12867
|
+
},
|
|
12868
|
+
{
|
|
12869
|
+
name: "invoices.email",
|
|
12870
|
+
class: "mutation",
|
|
12871
|
+
description: "Email a Xero invoice to its contact using the saved template.",
|
|
12872
|
+
parameters: {
|
|
12873
|
+
type: "object",
|
|
12874
|
+
properties: {
|
|
12875
|
+
tenantId: { type: "string" },
|
|
12876
|
+
invoiceId: { type: "string", description: "Xero InvoiceID (GUID) or InvoiceNumber." }
|
|
12877
|
+
},
|
|
12878
|
+
required: ["tenantId", "invoiceId"]
|
|
12879
|
+
},
|
|
12880
|
+
request: {
|
|
12881
|
+
method: "POST",
|
|
12882
|
+
path: "/api.xro/2.0/Invoices/{invoiceId}/Email",
|
|
12883
|
+
body: {},
|
|
12884
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12885
|
+
},
|
|
12886
|
+
cas: "native-idempotency",
|
|
12887
|
+
externalEffect: true,
|
|
12888
|
+
requiredScopes: ["accounting.transactions"]
|
|
12889
|
+
},
|
|
12890
|
+
{
|
|
12891
|
+
name: "payments.create",
|
|
12892
|
+
class: "mutation",
|
|
12893
|
+
description: "Apply a payment to a Xero invoice or credit note. Pass a Payments array per the Xero API contract.",
|
|
12894
|
+
parameters: {
|
|
12895
|
+
type: "object",
|
|
12896
|
+
properties: {
|
|
12897
|
+
tenantId: { type: "string" },
|
|
12898
|
+
Payments: {
|
|
12899
|
+
type: "array",
|
|
12900
|
+
items: {
|
|
12901
|
+
type: "object",
|
|
12902
|
+
properties: {
|
|
12903
|
+
Invoice: { type: "object", description: 'Invoice reference, e.g. { InvoiceID: "..." }.' },
|
|
12904
|
+
CreditNote: { type: "object", description: 'CreditNote reference, e.g. { CreditNoteID: "..." }.' },
|
|
12905
|
+
Account: { type: "object", description: 'Bank account reference, e.g. { Code: "090" }.' },
|
|
12906
|
+
Date: { type: "string", description: "YYYY-MM-DD." },
|
|
12907
|
+
Amount: { type: "number" },
|
|
12908
|
+
Reference: { type: "string" }
|
|
12909
|
+
},
|
|
12910
|
+
required: ["Account", "Date", "Amount"]
|
|
12911
|
+
}
|
|
12912
|
+
}
|
|
12913
|
+
},
|
|
12914
|
+
required: ["tenantId", "Payments"]
|
|
12915
|
+
},
|
|
12916
|
+
request: {
|
|
12917
|
+
method: "POST",
|
|
12918
|
+
path: "/api.xro/2.0/Payments",
|
|
12919
|
+
body: { Payments: "{Payments}" },
|
|
12920
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12921
|
+
},
|
|
12922
|
+
cas: "native-idempotency",
|
|
12923
|
+
externalEffect: true,
|
|
12924
|
+
requiredScopes: ["accounting.transactions"]
|
|
12925
|
+
},
|
|
12926
|
+
{
|
|
12927
|
+
name: "credit-notes.create",
|
|
12928
|
+
class: "mutation",
|
|
12929
|
+
description: "Create a Xero credit note (ACCRECCREDIT or ACCPAYCREDIT). Pass a CreditNotes array per the Xero API contract.",
|
|
12930
|
+
parameters: {
|
|
12931
|
+
type: "object",
|
|
12932
|
+
properties: {
|
|
12933
|
+
tenantId: { type: "string" },
|
|
12934
|
+
CreditNotes: {
|
|
12935
|
+
type: "array",
|
|
12936
|
+
items: {
|
|
12937
|
+
type: "object",
|
|
12938
|
+
properties: {
|
|
12939
|
+
Type: { type: "string", enum: ["ACCRECCREDIT", "ACCPAYCREDIT"] },
|
|
12940
|
+
Contact: { type: "object" },
|
|
12941
|
+
LineItems: { type: "array", items: { type: "object" } },
|
|
12942
|
+
Date: { type: "string", description: "YYYY-MM-DD." },
|
|
12943
|
+
Reference: { type: "string" },
|
|
12944
|
+
Status: { type: "string", enum: ["DRAFT", "SUBMITTED", "AUTHORISED"] }
|
|
12945
|
+
},
|
|
12946
|
+
required: ["Type", "Contact", "LineItems"]
|
|
12947
|
+
}
|
|
12948
|
+
}
|
|
12949
|
+
},
|
|
12950
|
+
required: ["tenantId", "CreditNotes"]
|
|
12951
|
+
},
|
|
12952
|
+
request: {
|
|
12953
|
+
method: "POST",
|
|
12954
|
+
path: "/api.xro/2.0/CreditNotes",
|
|
12955
|
+
body: { CreditNotes: "{CreditNotes}" },
|
|
12956
|
+
headers: { "xero-tenant-id": "{tenantId}" }
|
|
12957
|
+
},
|
|
12958
|
+
cas: "native-idempotency",
|
|
12959
|
+
externalEffect: true,
|
|
12960
|
+
requiredScopes: ["accounting.transactions"]
|
|
12961
|
+
}
|
|
12962
|
+
]
|
|
12963
|
+
});
|
|
12964
|
+
|
|
12119
12965
|
// src/connectors/adapters/factories.ts
|
|
12120
12966
|
function defineFactoryAdapter(factory, envMap) {
|
|
12121
12967
|
const metadataOptions = Object.fromEntries(
|
|
@@ -12217,6 +13063,17 @@ var CONNECTOR_ADAPTER_FACTORIES = [
|
|
|
12217
13063
|
defineFactoryAdapter(twitter, {
|
|
12218
13064
|
clientId: "TWITTER_OAUTH_CLIENT_ID",
|
|
12219
13065
|
clientSecret: "TWITTER_OAUTH_CLIENT_SECRET"
|
|
13066
|
+
}),
|
|
13067
|
+
// Declarative OAuth2 connectors: the manifest already pins clientIdEnv /
|
|
13068
|
+
// clientSecretEnv; the envMap re-pins the same names so registration is
|
|
13069
|
+
// gated on the OAuth app actually being configured (no half-live connector).
|
|
13070
|
+
defineFactoryAdapter(() => quickbooksConnector, {
|
|
13071
|
+
clientId: "QUICKBOOKS_OAUTH_CLIENT_ID",
|
|
13072
|
+
clientSecret: "QUICKBOOKS_OAUTH_CLIENT_SECRET"
|
|
13073
|
+
}),
|
|
13074
|
+
defineFactoryAdapter(() => xeroConnector, {
|
|
13075
|
+
clientId: "XERO_OAUTH_CLIENT_ID",
|
|
13076
|
+
clientSecret: "XERO_OAUTH_CLIENT_SECRET"
|
|
12220
13077
|
})
|
|
12221
13078
|
];
|
|
12222
13079
|
function resolveConnectorAdapterFactoryOptions(definition, envSource) {
|
|
@@ -19315,852 +20172,6 @@ var attioConnector = declarativeRestConnector({
|
|
|
19315
20172
|
]
|
|
19316
20173
|
});
|
|
19317
20174
|
|
|
19318
|
-
// src/connectors/adapters/quickbooks.ts
|
|
19319
|
-
var quickbooksConnector = declarativeRestConnector({
|
|
19320
|
-
kind: "quickbooks",
|
|
19321
|
-
displayName: "QuickBooks",
|
|
19322
|
-
description: "Query QuickBooks Online entities with SQL-like queries and create or update customers, invoices, and items.",
|
|
19323
|
-
auth: {
|
|
19324
|
-
kind: "oauth2",
|
|
19325
|
-
authorizationUrl: "https://appcenter.intuit.com/connect/oauth2",
|
|
19326
|
-
tokenUrl: "https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer",
|
|
19327
|
-
scopes: ["com.intuit.quickbooks.accounting"],
|
|
19328
|
-
clientIdEnv: "QUICKBOOKS_OAUTH_CLIENT_ID",
|
|
19329
|
-
clientSecretEnv: "QUICKBOOKS_OAUTH_CLIENT_SECRET"
|
|
19330
|
-
},
|
|
19331
|
-
category: "commerce",
|
|
19332
|
-
defaultConsistencyModel: "authoritative",
|
|
19333
|
-
baseUrl: { metadataKey: "apiBaseUrl" },
|
|
19334
|
-
defaultHeaders: {
|
|
19335
|
-
accept: "application/json"
|
|
19336
|
-
},
|
|
19337
|
-
// `realmId` is pinned at connect time, not passed per call, so the health
|
|
19338
|
-
// check reads it from connection metadata. Written as `{realmId}` it resolved
|
|
19339
|
-
// against the (empty) test argument map and threw before any request was
|
|
19340
|
-
// made — the connection test could never pass, for any connection.
|
|
19341
|
-
test: { method: "GET", path: "companyinfo/{connection.realmId}", query: { minorversion: "70" } },
|
|
19342
|
-
capabilities: [
|
|
19343
|
-
{
|
|
19344
|
-
// The reports namespace is NOT reachable through `entities.query` — QBO
|
|
19345
|
-
// exposes the accountant-grade statements only under /reports/{name}.
|
|
19346
|
-
// These four are the tax/bookkeeping read surface; without them a tax
|
|
19347
|
-
// agent can enumerate ledger rows but cannot obtain a P&L or a balance
|
|
19348
|
-
// sheet, which is what a return is actually built from.
|
|
19349
|
-
name: "reports.get",
|
|
19350
|
-
class: "read",
|
|
19351
|
-
description: "Run a QuickBooks Online report. `reportName` is the QBO report id (ProfitAndLoss, BalanceSheet, TrialBalance, GeneralLedger, CashFlow, AgedReceivables, AgedPayables).",
|
|
19352
|
-
parameters: {
|
|
19353
|
-
type: "object",
|
|
19354
|
-
properties: {
|
|
19355
|
-
reportName: {
|
|
19356
|
-
type: "string",
|
|
19357
|
-
enum: [
|
|
19358
|
-
"ProfitAndLoss",
|
|
19359
|
-
"BalanceSheet",
|
|
19360
|
-
"TrialBalance",
|
|
19361
|
-
"GeneralLedger",
|
|
19362
|
-
"CashFlow",
|
|
19363
|
-
"AgedReceivables",
|
|
19364
|
-
"AgedPayables"
|
|
19365
|
-
]
|
|
19366
|
-
},
|
|
19367
|
-
start_date: { type: "string", description: "YYYY-MM-DD (inclusive)." },
|
|
19368
|
-
end_date: { type: "string", description: "YYYY-MM-DD (inclusive)." },
|
|
19369
|
-
accounting_method: { type: "string", enum: ["Cash", "Accrual"] },
|
|
19370
|
-
date_macro: { type: "string", description: 'e.g. "Last Fiscal Year" \u2014 alternative to start/end dates.' },
|
|
19371
|
-
summarize_column_by: { type: "string", description: "e.g. Month, Quarter, Year, Total." },
|
|
19372
|
-
minorversion: { type: "string" }
|
|
19373
|
-
},
|
|
19374
|
-
required: ["reportName"]
|
|
19375
|
-
},
|
|
19376
|
-
request: {
|
|
19377
|
-
method: "GET",
|
|
19378
|
-
path: "reports/{reportName}",
|
|
19379
|
-
query: {
|
|
19380
|
-
start_date: "{start_date}",
|
|
19381
|
-
end_date: "{end_date}",
|
|
19382
|
-
accounting_method: "{accounting_method}",
|
|
19383
|
-
date_macro: "{date_macro}",
|
|
19384
|
-
summarize_column_by: "{summarize_column_by}",
|
|
19385
|
-
minorversion: "{minorversion}"
|
|
19386
|
-
}
|
|
19387
|
-
},
|
|
19388
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19389
|
-
},
|
|
19390
|
-
{
|
|
19391
|
-
name: "companyinfo.get",
|
|
19392
|
-
class: "read",
|
|
19393
|
-
description: "Read the connected QuickBooks company profile (legal name, EIN/company id, fiscal year start, country) for the realm this connection was authorized against.",
|
|
19394
|
-
parameters: { type: "object", properties: { minorversion: { type: "string" } } },
|
|
19395
|
-
request: {
|
|
19396
|
-
method: "GET",
|
|
19397
|
-
path: "companyinfo/{connection.realmId}",
|
|
19398
|
-
query: { minorversion: "{minorversion}" }
|
|
19399
|
-
},
|
|
19400
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19401
|
-
},
|
|
19402
|
-
{
|
|
19403
|
-
name: "entities.query",
|
|
19404
|
-
class: "read",
|
|
19405
|
-
description: 'Run a QuickBooks Online query (e.g. "SELECT * FROM Customer WHERE Active = true MAXRESULTS 50").',
|
|
19406
|
-
parameters: {
|
|
19407
|
-
type: "object",
|
|
19408
|
-
properties: {
|
|
19409
|
-
query: { type: "string" },
|
|
19410
|
-
minorversion: { type: "string" }
|
|
19411
|
-
},
|
|
19412
|
-
required: ["query"]
|
|
19413
|
-
},
|
|
19414
|
-
request: {
|
|
19415
|
-
method: "GET",
|
|
19416
|
-
path: "query",
|
|
19417
|
-
query: { query: "{query}", minorversion: "{minorversion}" }
|
|
19418
|
-
},
|
|
19419
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19420
|
-
},
|
|
19421
|
-
{
|
|
19422
|
-
name: "customers.get",
|
|
19423
|
-
class: "read",
|
|
19424
|
-
description: "Read a QuickBooks customer by id.",
|
|
19425
|
-
parameters: {
|
|
19426
|
-
type: "object",
|
|
19427
|
-
properties: {
|
|
19428
|
-
customerId: { type: "string" },
|
|
19429
|
-
minorversion: { type: "string" }
|
|
19430
|
-
},
|
|
19431
|
-
required: ["customerId"]
|
|
19432
|
-
},
|
|
19433
|
-
request: {
|
|
19434
|
-
method: "GET",
|
|
19435
|
-
path: "customer/{customerId}",
|
|
19436
|
-
query: { minorversion: "{minorversion}" }
|
|
19437
|
-
},
|
|
19438
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19439
|
-
},
|
|
19440
|
-
{
|
|
19441
|
-
name: "customers.create",
|
|
19442
|
-
class: "mutation",
|
|
19443
|
-
description: "Create a QuickBooks customer.",
|
|
19444
|
-
parameters: {
|
|
19445
|
-
type: "object",
|
|
19446
|
-
properties: {
|
|
19447
|
-
DisplayName: { type: "string" },
|
|
19448
|
-
GivenName: { type: "string" },
|
|
19449
|
-
FamilyName: { type: "string" },
|
|
19450
|
-
CompanyName: { type: "string" },
|
|
19451
|
-
PrimaryEmailAddr: { type: "object" },
|
|
19452
|
-
PrimaryPhone: { type: "object" },
|
|
19453
|
-
BillAddr: { type: "object" },
|
|
19454
|
-
Notes: { type: "string" }
|
|
19455
|
-
},
|
|
19456
|
-
required: ["DisplayName"]
|
|
19457
|
-
},
|
|
19458
|
-
request: {
|
|
19459
|
-
method: "POST",
|
|
19460
|
-
path: "customer",
|
|
19461
|
-
query: { minorversion: "70" },
|
|
19462
|
-
body: "args"
|
|
19463
|
-
},
|
|
19464
|
-
cas: "native-idempotency",
|
|
19465
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19466
|
-
},
|
|
19467
|
-
{
|
|
19468
|
-
name: "customers.update",
|
|
19469
|
-
class: "mutation",
|
|
19470
|
-
description: "Sparse-update a QuickBooks customer. Caller must include Id and SyncToken from the prior read.",
|
|
19471
|
-
parameters: {
|
|
19472
|
-
type: "object",
|
|
19473
|
-
properties: {
|
|
19474
|
-
Id: { type: "string" },
|
|
19475
|
-
SyncToken: { type: "string" },
|
|
19476
|
-
sparse: { type: "boolean", default: true },
|
|
19477
|
-
DisplayName: { type: "string" },
|
|
19478
|
-
GivenName: { type: "string" },
|
|
19479
|
-
FamilyName: { type: "string" },
|
|
19480
|
-
CompanyName: { type: "string" },
|
|
19481
|
-
PrimaryEmailAddr: { type: "object" },
|
|
19482
|
-
PrimaryPhone: { type: "object" },
|
|
19483
|
-
BillAddr: { type: "object" },
|
|
19484
|
-
Notes: { type: "string" },
|
|
19485
|
-
Active: { type: "boolean" }
|
|
19486
|
-
},
|
|
19487
|
-
required: ["Id", "SyncToken"]
|
|
19488
|
-
},
|
|
19489
|
-
request: {
|
|
19490
|
-
method: "POST",
|
|
19491
|
-
path: "customer",
|
|
19492
|
-
query: { minorversion: "70" },
|
|
19493
|
-
body: "args"
|
|
19494
|
-
},
|
|
19495
|
-
cas: "optimistic-read-verify",
|
|
19496
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19497
|
-
},
|
|
19498
|
-
{
|
|
19499
|
-
name: "invoices.get",
|
|
19500
|
-
class: "read",
|
|
19501
|
-
description: "Read a QuickBooks invoice by id.",
|
|
19502
|
-
parameters: {
|
|
19503
|
-
type: "object",
|
|
19504
|
-
properties: {
|
|
19505
|
-
invoiceId: { type: "string" },
|
|
19506
|
-
minorversion: { type: "string" }
|
|
19507
|
-
},
|
|
19508
|
-
required: ["invoiceId"]
|
|
19509
|
-
},
|
|
19510
|
-
request: {
|
|
19511
|
-
method: "GET",
|
|
19512
|
-
path: "invoice/{invoiceId}",
|
|
19513
|
-
query: { minorversion: "{minorversion}" }
|
|
19514
|
-
},
|
|
19515
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19516
|
-
},
|
|
19517
|
-
{
|
|
19518
|
-
name: "invoices.create",
|
|
19519
|
-
class: "mutation",
|
|
19520
|
-
description: "Create a QuickBooks invoice. `Line` and `CustomerRef` are required by the API.",
|
|
19521
|
-
parameters: {
|
|
19522
|
-
type: "object",
|
|
19523
|
-
properties: {
|
|
19524
|
-
CustomerRef: { type: "object" },
|
|
19525
|
-
Line: { type: "array", items: { type: "object" } },
|
|
19526
|
-
TxnDate: { type: "string" },
|
|
19527
|
-
DueDate: { type: "string" },
|
|
19528
|
-
CurrencyRef: { type: "object" },
|
|
19529
|
-
BillEmail: { type: "object" },
|
|
19530
|
-
PrivateNote: { type: "string" },
|
|
19531
|
-
CustomerMemo: { type: "object" }
|
|
19532
|
-
},
|
|
19533
|
-
required: ["CustomerRef", "Line"]
|
|
19534
|
-
},
|
|
19535
|
-
request: {
|
|
19536
|
-
method: "POST",
|
|
19537
|
-
path: "invoice",
|
|
19538
|
-
query: { minorversion: "70" },
|
|
19539
|
-
body: "args"
|
|
19540
|
-
},
|
|
19541
|
-
cas: "native-idempotency",
|
|
19542
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19543
|
-
},
|
|
19544
|
-
{
|
|
19545
|
-
name: "invoices.update",
|
|
19546
|
-
class: "mutation",
|
|
19547
|
-
description: "Sparse-update a QuickBooks invoice. Caller must include Id and SyncToken from the prior read.",
|
|
19548
|
-
parameters: {
|
|
19549
|
-
type: "object",
|
|
19550
|
-
properties: {
|
|
19551
|
-
Id: { type: "string" },
|
|
19552
|
-
SyncToken: { type: "string" },
|
|
19553
|
-
sparse: { type: "boolean", default: true },
|
|
19554
|
-
CustomerRef: { type: "object" },
|
|
19555
|
-
Line: { type: "array", items: { type: "object" } },
|
|
19556
|
-
DueDate: { type: "string" },
|
|
19557
|
-
CustomerMemo: { type: "object" },
|
|
19558
|
-
PrivateNote: { type: "string" }
|
|
19559
|
-
},
|
|
19560
|
-
required: ["Id", "SyncToken"]
|
|
19561
|
-
},
|
|
19562
|
-
request: {
|
|
19563
|
-
method: "POST",
|
|
19564
|
-
path: "invoice",
|
|
19565
|
-
query: { minorversion: "70" },
|
|
19566
|
-
body: "args"
|
|
19567
|
-
},
|
|
19568
|
-
cas: "optimistic-read-verify",
|
|
19569
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19570
|
-
},
|
|
19571
|
-
{
|
|
19572
|
-
name: "items.create",
|
|
19573
|
-
class: "mutation",
|
|
19574
|
-
description: "Create a QuickBooks item (product or service).",
|
|
19575
|
-
parameters: {
|
|
19576
|
-
type: "object",
|
|
19577
|
-
properties: {
|
|
19578
|
-
Name: { type: "string" },
|
|
19579
|
-
Type: { type: "string", enum: ["Service", "Inventory", "NonInventory"] },
|
|
19580
|
-
IncomeAccountRef: { type: "object" },
|
|
19581
|
-
ExpenseAccountRef: { type: "object" },
|
|
19582
|
-
UnitPrice: { type: "number" },
|
|
19583
|
-
Description: { type: "string" },
|
|
19584
|
-
Taxable: { type: "boolean" }
|
|
19585
|
-
},
|
|
19586
|
-
required: ["Name", "Type", "IncomeAccountRef"]
|
|
19587
|
-
},
|
|
19588
|
-
request: {
|
|
19589
|
-
method: "POST",
|
|
19590
|
-
path: "item",
|
|
19591
|
-
query: { minorversion: "70" },
|
|
19592
|
-
body: "args"
|
|
19593
|
-
},
|
|
19594
|
-
cas: "native-idempotency",
|
|
19595
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19596
|
-
},
|
|
19597
|
-
{
|
|
19598
|
-
name: "customers.delete",
|
|
19599
|
-
class: "mutation",
|
|
19600
|
-
description: "Mark a QuickBooks customer inactive. QBO does not support hard deletes \u2014 caller must supply Id and SyncToken from the prior read.",
|
|
19601
|
-
parameters: {
|
|
19602
|
-
type: "object",
|
|
19603
|
-
properties: {
|
|
19604
|
-
Id: { type: "string" },
|
|
19605
|
-
SyncToken: { type: "string" },
|
|
19606
|
-
sparse: { type: "boolean", default: true },
|
|
19607
|
-
Active: { type: "boolean", default: false }
|
|
19608
|
-
},
|
|
19609
|
-
required: ["Id", "SyncToken"]
|
|
19610
|
-
},
|
|
19611
|
-
request: {
|
|
19612
|
-
method: "POST",
|
|
19613
|
-
path: "customer",
|
|
19614
|
-
query: { minorversion: "70" },
|
|
19615
|
-
body: "args"
|
|
19616
|
-
},
|
|
19617
|
-
cas: "native-idempotency",
|
|
19618
|
-
externalEffect: true,
|
|
19619
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19620
|
-
},
|
|
19621
|
-
{
|
|
19622
|
-
name: "invoices.delete",
|
|
19623
|
-
class: "mutation",
|
|
19624
|
-
description: "Void a QuickBooks invoice (QBO does not hard-delete invoices). Caller must supply Id and SyncToken.",
|
|
19625
|
-
parameters: {
|
|
19626
|
-
type: "object",
|
|
19627
|
-
properties: {
|
|
19628
|
-
Id: { type: "string" },
|
|
19629
|
-
SyncToken: { type: "string" }
|
|
19630
|
-
},
|
|
19631
|
-
required: ["Id", "SyncToken"]
|
|
19632
|
-
},
|
|
19633
|
-
request: {
|
|
19634
|
-
method: "POST",
|
|
19635
|
-
path: "invoice",
|
|
19636
|
-
query: { operation: "void", minorversion: "70" },
|
|
19637
|
-
body: "args"
|
|
19638
|
-
},
|
|
19639
|
-
cas: "native-idempotency",
|
|
19640
|
-
externalEffect: true,
|
|
19641
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19642
|
-
},
|
|
19643
|
-
{
|
|
19644
|
-
name: "invoices.send",
|
|
19645
|
-
class: "mutation",
|
|
19646
|
-
description: "Email a QuickBooks invoice to the customer (optionally override the recipient with `sendTo`).",
|
|
19647
|
-
parameters: {
|
|
19648
|
-
type: "object",
|
|
19649
|
-
properties: {
|
|
19650
|
-
invoiceId: { type: "string" },
|
|
19651
|
-
sendTo: { type: "string" }
|
|
19652
|
-
},
|
|
19653
|
-
required: ["invoiceId"]
|
|
19654
|
-
},
|
|
19655
|
-
request: {
|
|
19656
|
-
method: "POST",
|
|
19657
|
-
path: "invoice/{invoiceId}/send",
|
|
19658
|
-
query: { sendTo: "{sendTo}", minorversion: "70" }
|
|
19659
|
-
},
|
|
19660
|
-
cas: "native-idempotency",
|
|
19661
|
-
externalEffect: true,
|
|
19662
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19663
|
-
},
|
|
19664
|
-
{
|
|
19665
|
-
name: "bills.create",
|
|
19666
|
-
class: "mutation",
|
|
19667
|
-
description: "Create a QuickBooks vendor bill. `VendorRef` and `Line` are required by the API.",
|
|
19668
|
-
parameters: {
|
|
19669
|
-
type: "object",
|
|
19670
|
-
properties: {
|
|
19671
|
-
VendorRef: { type: "object" },
|
|
19672
|
-
Line: { type: "array", items: { type: "object" } },
|
|
19673
|
-
TxnDate: { type: "string" },
|
|
19674
|
-
DueDate: { type: "string" },
|
|
19675
|
-
CurrencyRef: { type: "object" },
|
|
19676
|
-
PrivateNote: { type: "string" },
|
|
19677
|
-
APAccountRef: { type: "object" }
|
|
19678
|
-
},
|
|
19679
|
-
required: ["VendorRef", "Line"]
|
|
19680
|
-
},
|
|
19681
|
-
request: {
|
|
19682
|
-
method: "POST",
|
|
19683
|
-
path: "bill",
|
|
19684
|
-
query: { minorversion: "70" },
|
|
19685
|
-
body: "args"
|
|
19686
|
-
},
|
|
19687
|
-
cas: "native-idempotency",
|
|
19688
|
-
externalEffect: true,
|
|
19689
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19690
|
-
},
|
|
19691
|
-
{
|
|
19692
|
-
name: "vendors.create",
|
|
19693
|
-
class: "mutation",
|
|
19694
|
-
description: "Create a QuickBooks vendor.",
|
|
19695
|
-
parameters: {
|
|
19696
|
-
type: "object",
|
|
19697
|
-
properties: {
|
|
19698
|
-
DisplayName: { type: "string" },
|
|
19699
|
-
GivenName: { type: "string" },
|
|
19700
|
-
FamilyName: { type: "string" },
|
|
19701
|
-
CompanyName: { type: "string" },
|
|
19702
|
-
PrimaryEmailAddr: { type: "object" },
|
|
19703
|
-
PrimaryPhone: { type: "object" },
|
|
19704
|
-
BillAddr: { type: "object" },
|
|
19705
|
-
TaxIdentifier: { type: "string" },
|
|
19706
|
-
AcctNum: { type: "string" }
|
|
19707
|
-
},
|
|
19708
|
-
required: ["DisplayName"]
|
|
19709
|
-
},
|
|
19710
|
-
request: {
|
|
19711
|
-
method: "POST",
|
|
19712
|
-
path: "vendor",
|
|
19713
|
-
query: { minorversion: "70" },
|
|
19714
|
-
body: "args"
|
|
19715
|
-
},
|
|
19716
|
-
cas: "native-idempotency",
|
|
19717
|
-
externalEffect: true,
|
|
19718
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19719
|
-
},
|
|
19720
|
-
{
|
|
19721
|
-
name: "payments.create",
|
|
19722
|
-
class: "mutation",
|
|
19723
|
-
description: "Record a QuickBooks payment against a customer (and optionally apply to invoices via `Line[].LinkedTxn`).",
|
|
19724
|
-
parameters: {
|
|
19725
|
-
type: "object",
|
|
19726
|
-
properties: {
|
|
19727
|
-
CustomerRef: { type: "object" },
|
|
19728
|
-
TotalAmt: { type: "number" },
|
|
19729
|
-
TxnDate: { type: "string" },
|
|
19730
|
-
PaymentMethodRef: { type: "object" },
|
|
19731
|
-
DepositToAccountRef: { type: "object" },
|
|
19732
|
-
Line: { type: "array", items: { type: "object" } },
|
|
19733
|
-
PrivateNote: { type: "string" }
|
|
19734
|
-
},
|
|
19735
|
-
required: ["CustomerRef", "TotalAmt"]
|
|
19736
|
-
},
|
|
19737
|
-
request: {
|
|
19738
|
-
method: "POST",
|
|
19739
|
-
path: "payment",
|
|
19740
|
-
query: { minorversion: "70" },
|
|
19741
|
-
body: "args"
|
|
19742
|
-
},
|
|
19743
|
-
cas: "native-idempotency",
|
|
19744
|
-
requiredScopes: ["com.intuit.quickbooks.accounting"]
|
|
19745
|
-
}
|
|
19746
|
-
]
|
|
19747
|
-
});
|
|
19748
|
-
|
|
19749
|
-
// src/connectors/adapters/xero.ts
|
|
19750
|
-
var xeroConnector = declarativeRestConnector({
|
|
19751
|
-
kind: "xero",
|
|
19752
|
-
displayName: "Xero",
|
|
19753
|
-
description: "Search and update Xero contacts, invoices, and chart-of-account records across authorized organizations.",
|
|
19754
|
-
auth: {
|
|
19755
|
-
kind: "oauth2",
|
|
19756
|
-
authorizationUrl: "https://login.xero.com/identity/connect/authorize",
|
|
19757
|
-
tokenUrl: "https://identity.xero.com/connect/token",
|
|
19758
|
-
// `accounting.reports.read` is a distinct Xero scope — the reports
|
|
19759
|
-
// namespace is not covered by settings/transactions and 403s without it.
|
|
19760
|
-
scopes: [
|
|
19761
|
-
"offline_access",
|
|
19762
|
-
"accounting.contacts",
|
|
19763
|
-
"accounting.transactions",
|
|
19764
|
-
"accounting.settings.read",
|
|
19765
|
-
"accounting.reports.read"
|
|
19766
|
-
],
|
|
19767
|
-
clientIdEnv: "XERO_OAUTH_CLIENT_ID",
|
|
19768
|
-
clientSecretEnv: "XERO_OAUTH_CLIENT_SECRET"
|
|
19769
|
-
},
|
|
19770
|
-
category: "crm",
|
|
19771
|
-
defaultConsistencyModel: "authoritative",
|
|
19772
|
-
baseUrl: "https://api.xero.com",
|
|
19773
|
-
defaultHeaders: { accept: "application/json" },
|
|
19774
|
-
test: { method: "GET", path: "/connections" },
|
|
19775
|
-
capabilities: [
|
|
19776
|
-
{
|
|
19777
|
-
// Every other Xero capability REQUIRES `tenantId`, and a tenant id is an
|
|
19778
|
-
// opaque GUID no caller can know before asking. Without this read the
|
|
19779
|
-
// connector is unusable by an agent: the only place the id appeared was
|
|
19780
|
-
// the health check, which discards its body.
|
|
19781
|
-
name: "tenants.list",
|
|
19782
|
-
class: "read",
|
|
19783
|
-
description: "List the Xero organizations (tenants) this connection is authorized for. Call this FIRST \u2014 every other Xero capability requires the `tenantId` returned here.",
|
|
19784
|
-
parameters: { type: "object", properties: {} },
|
|
19785
|
-
request: { method: "GET", path: "/connections" }
|
|
19786
|
-
},
|
|
19787
|
-
{
|
|
19788
|
-
// Xero's reporting surface, like QBO's, is a separate namespace from the
|
|
19789
|
-
// record endpoints. These are the statements a return or a books review
|
|
19790
|
-
// is actually built from.
|
|
19791
|
-
name: "reports.get",
|
|
19792
|
-
class: "read",
|
|
19793
|
-
description: "Run a Xero accounting report. `reportName` is the Xero report id (ProfitAndLoss, BalanceSheet, TrialBalance, BankSummary, AgedReceivablesByContact, AgedPayablesByContact).",
|
|
19794
|
-
parameters: {
|
|
19795
|
-
type: "object",
|
|
19796
|
-
properties: {
|
|
19797
|
-
tenantId: { type: "string", description: "From tenants.list." },
|
|
19798
|
-
reportName: {
|
|
19799
|
-
type: "string",
|
|
19800
|
-
enum: [
|
|
19801
|
-
"ProfitAndLoss",
|
|
19802
|
-
"BalanceSheet",
|
|
19803
|
-
"TrialBalance",
|
|
19804
|
-
"BankSummary",
|
|
19805
|
-
"AgedReceivablesByContact",
|
|
19806
|
-
"AgedPayablesByContact"
|
|
19807
|
-
]
|
|
19808
|
-
},
|
|
19809
|
-
fromDate: { type: "string", description: "YYYY-MM-DD." },
|
|
19810
|
-
toDate: { type: "string", description: "YYYY-MM-DD." },
|
|
19811
|
-
date: { type: "string", description: "YYYY-MM-DD \u2014 point-in-time reports (BalanceSheet, TrialBalance)." },
|
|
19812
|
-
contactId: { type: "string", description: "Required by the aged receivables/payables reports." }
|
|
19813
|
-
},
|
|
19814
|
-
required: ["tenantId", "reportName"]
|
|
19815
|
-
},
|
|
19816
|
-
request: {
|
|
19817
|
-
method: "GET",
|
|
19818
|
-
path: "/api.xro/2.0/Reports/{reportName}",
|
|
19819
|
-
query: { fromDate: "{fromDate}", toDate: "{toDate}", date: "{date}", contactID: "{contactId}" },
|
|
19820
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
19821
|
-
},
|
|
19822
|
-
requiredScopes: ["accounting.reports.read"]
|
|
19823
|
-
},
|
|
19824
|
-
{
|
|
19825
|
-
name: "contacts.search",
|
|
19826
|
-
class: "read",
|
|
19827
|
-
description: "Search Xero contacts in a tenant using the Xero where-clause query language.",
|
|
19828
|
-
parameters: {
|
|
19829
|
-
type: "object",
|
|
19830
|
-
properties: {
|
|
19831
|
-
tenantId: { type: "string", description: "Xero tenant (organization) id from /connections." },
|
|
19832
|
-
where: { type: "string", description: `Xero where clause, e.g. 'Name.Contains("Acme")'.` },
|
|
19833
|
-
order: { type: "string", description: 'Sort expression, e.g. "Name ASC".' },
|
|
19834
|
-
page: { type: "integer", minimum: 1 }
|
|
19835
|
-
},
|
|
19836
|
-
required: ["tenantId"]
|
|
19837
|
-
},
|
|
19838
|
-
request: {
|
|
19839
|
-
method: "GET",
|
|
19840
|
-
path: "/api.xro/2.0/Contacts",
|
|
19841
|
-
query: { where: "{where}", order: "{order}", page: "{page}" },
|
|
19842
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
19843
|
-
},
|
|
19844
|
-
requiredScopes: ["accounting.contacts"]
|
|
19845
|
-
},
|
|
19846
|
-
{
|
|
19847
|
-
name: "contacts.get",
|
|
19848
|
-
class: "read",
|
|
19849
|
-
description: "Read a single Xero contact by ContactID.",
|
|
19850
|
-
parameters: {
|
|
19851
|
-
type: "object",
|
|
19852
|
-
properties: {
|
|
19853
|
-
tenantId: { type: "string" },
|
|
19854
|
-
contactId: { type: "string", description: "Xero ContactID (GUID)." }
|
|
19855
|
-
},
|
|
19856
|
-
required: ["tenantId", "contactId"]
|
|
19857
|
-
},
|
|
19858
|
-
request: {
|
|
19859
|
-
method: "GET",
|
|
19860
|
-
path: "/api.xro/2.0/Contacts/{contactId}",
|
|
19861
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
19862
|
-
},
|
|
19863
|
-
requiredScopes: ["accounting.contacts"]
|
|
19864
|
-
},
|
|
19865
|
-
{
|
|
19866
|
-
name: "contacts.create",
|
|
19867
|
-
class: "mutation",
|
|
19868
|
-
description: "Create a Xero contact. Pass a Contacts array per the Xero API contract.",
|
|
19869
|
-
parameters: {
|
|
19870
|
-
type: "object",
|
|
19871
|
-
properties: {
|
|
19872
|
-
tenantId: { type: "string" },
|
|
19873
|
-
Contacts: {
|
|
19874
|
-
type: "array",
|
|
19875
|
-
items: {
|
|
19876
|
-
type: "object",
|
|
19877
|
-
properties: {
|
|
19878
|
-
Name: { type: "string" },
|
|
19879
|
-
EmailAddress: { type: "string" },
|
|
19880
|
-
FirstName: { type: "string" },
|
|
19881
|
-
LastName: { type: "string" }
|
|
19882
|
-
},
|
|
19883
|
-
required: ["Name"]
|
|
19884
|
-
}
|
|
19885
|
-
}
|
|
19886
|
-
},
|
|
19887
|
-
required: ["tenantId", "Contacts"]
|
|
19888
|
-
},
|
|
19889
|
-
request: {
|
|
19890
|
-
method: "POST",
|
|
19891
|
-
path: "/api.xro/2.0/Contacts",
|
|
19892
|
-
body: { Contacts: "{Contacts}" },
|
|
19893
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
19894
|
-
},
|
|
19895
|
-
cas: "native-idempotency",
|
|
19896
|
-
requiredScopes: ["accounting.contacts"]
|
|
19897
|
-
},
|
|
19898
|
-
{
|
|
19899
|
-
name: "contacts.update",
|
|
19900
|
-
class: "mutation",
|
|
19901
|
-
description: "Update a Xero contact by ContactID.",
|
|
19902
|
-
parameters: {
|
|
19903
|
-
type: "object",
|
|
19904
|
-
properties: {
|
|
19905
|
-
tenantId: { type: "string" },
|
|
19906
|
-
contactId: { type: "string" },
|
|
19907
|
-
fields: { type: "object", description: "Partial Xero Contact payload." }
|
|
19908
|
-
},
|
|
19909
|
-
required: ["tenantId", "contactId", "fields"]
|
|
19910
|
-
},
|
|
19911
|
-
request: {
|
|
19912
|
-
method: "POST",
|
|
19913
|
-
path: "/api.xro/2.0/Contacts/{contactId}",
|
|
19914
|
-
body: "{fields}",
|
|
19915
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
19916
|
-
},
|
|
19917
|
-
cas: "optimistic-read-verify",
|
|
19918
|
-
requiredScopes: ["accounting.contacts"]
|
|
19919
|
-
},
|
|
19920
|
-
{
|
|
19921
|
-
name: "invoices.search",
|
|
19922
|
-
class: "read",
|
|
19923
|
-
description: "Search Xero invoices in a tenant.",
|
|
19924
|
-
parameters: {
|
|
19925
|
-
type: "object",
|
|
19926
|
-
properties: {
|
|
19927
|
-
tenantId: { type: "string" },
|
|
19928
|
-
where: { type: "string", description: `Xero where clause, e.g. 'Status=="AUTHORISED"'.` },
|
|
19929
|
-
order: { type: "string", description: 'Sort expression, e.g. "Date DESC".' },
|
|
19930
|
-
page: { type: "integer", minimum: 1 }
|
|
19931
|
-
},
|
|
19932
|
-
required: ["tenantId"]
|
|
19933
|
-
},
|
|
19934
|
-
request: {
|
|
19935
|
-
method: "GET",
|
|
19936
|
-
path: "/api.xro/2.0/Invoices",
|
|
19937
|
-
query: { where: "{where}", order: "{order}", page: "{page}" },
|
|
19938
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
19939
|
-
},
|
|
19940
|
-
requiredScopes: ["accounting.transactions"]
|
|
19941
|
-
},
|
|
19942
|
-
{
|
|
19943
|
-
name: "invoices.get",
|
|
19944
|
-
class: "read",
|
|
19945
|
-
description: "Read a single Xero invoice by InvoiceID or InvoiceNumber.",
|
|
19946
|
-
parameters: {
|
|
19947
|
-
type: "object",
|
|
19948
|
-
properties: {
|
|
19949
|
-
tenantId: { type: "string" },
|
|
19950
|
-
invoiceId: { type: "string", description: "Xero InvoiceID (GUID) or InvoiceNumber." }
|
|
19951
|
-
},
|
|
19952
|
-
required: ["tenantId", "invoiceId"]
|
|
19953
|
-
},
|
|
19954
|
-
request: {
|
|
19955
|
-
method: "GET",
|
|
19956
|
-
path: "/api.xro/2.0/Invoices/{invoiceId}",
|
|
19957
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
19958
|
-
},
|
|
19959
|
-
requiredScopes: ["accounting.transactions"]
|
|
19960
|
-
},
|
|
19961
|
-
{
|
|
19962
|
-
name: "invoices.create",
|
|
19963
|
-
class: "mutation",
|
|
19964
|
-
description: "Create a Xero invoice (AR or AP). Pass an Invoices array per the Xero API contract.",
|
|
19965
|
-
parameters: {
|
|
19966
|
-
type: "object",
|
|
19967
|
-
properties: {
|
|
19968
|
-
tenantId: { type: "string" },
|
|
19969
|
-
Invoices: {
|
|
19970
|
-
type: "array",
|
|
19971
|
-
items: {
|
|
19972
|
-
type: "object",
|
|
19973
|
-
properties: {
|
|
19974
|
-
Type: { type: "string", enum: ["ACCREC", "ACCPAY"] },
|
|
19975
|
-
Contact: { type: "object" },
|
|
19976
|
-
LineItems: { type: "array", items: { type: "object" } },
|
|
19977
|
-
Date: { type: "string", description: "YYYY-MM-DD." },
|
|
19978
|
-
DueDate: { type: "string", description: "YYYY-MM-DD." },
|
|
19979
|
-
Reference: { type: "string" },
|
|
19980
|
-
Status: { type: "string", enum: ["DRAFT", "SUBMITTED", "AUTHORISED"] }
|
|
19981
|
-
},
|
|
19982
|
-
required: ["Type", "Contact", "LineItems"]
|
|
19983
|
-
}
|
|
19984
|
-
}
|
|
19985
|
-
},
|
|
19986
|
-
required: ["tenantId", "Invoices"]
|
|
19987
|
-
},
|
|
19988
|
-
request: {
|
|
19989
|
-
method: "POST",
|
|
19990
|
-
path: "/api.xro/2.0/Invoices",
|
|
19991
|
-
body: { Invoices: "{Invoices}" },
|
|
19992
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
19993
|
-
},
|
|
19994
|
-
cas: "native-idempotency",
|
|
19995
|
-
requiredScopes: ["accounting.transactions"]
|
|
19996
|
-
},
|
|
19997
|
-
{
|
|
19998
|
-
name: "accounts.search",
|
|
19999
|
-
class: "read",
|
|
20000
|
-
description: "List Xero chart-of-account records for a tenant.",
|
|
20001
|
-
parameters: {
|
|
20002
|
-
type: "object",
|
|
20003
|
-
properties: {
|
|
20004
|
-
tenantId: { type: "string" },
|
|
20005
|
-
where: { type: "string", description: `Xero where clause, e.g. 'Type=="REVENUE"'.` },
|
|
20006
|
-
order: { type: "string" }
|
|
20007
|
-
},
|
|
20008
|
-
required: ["tenantId"]
|
|
20009
|
-
},
|
|
20010
|
-
request: {
|
|
20011
|
-
method: "GET",
|
|
20012
|
-
path: "/api.xro/2.0/Accounts",
|
|
20013
|
-
query: { where: "{where}", order: "{order}" },
|
|
20014
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
20015
|
-
},
|
|
20016
|
-
requiredScopes: ["accounting.settings.read"]
|
|
20017
|
-
},
|
|
20018
|
-
{
|
|
20019
|
-
name: "contacts.archive",
|
|
20020
|
-
class: "mutation",
|
|
20021
|
-
description: "Archive a Xero contact (sets ContactStatus to ARCHIVED).",
|
|
20022
|
-
parameters: {
|
|
20023
|
-
type: "object",
|
|
20024
|
-
properties: {
|
|
20025
|
-
tenantId: { type: "string" },
|
|
20026
|
-
contactId: { type: "string", description: "Xero ContactID (GUID)." }
|
|
20027
|
-
},
|
|
20028
|
-
required: ["tenantId", "contactId"]
|
|
20029
|
-
},
|
|
20030
|
-
request: {
|
|
20031
|
-
method: "POST",
|
|
20032
|
-
path: "/api.xro/2.0/Contacts/{contactId}",
|
|
20033
|
-
body: { ContactStatus: "ARCHIVED" },
|
|
20034
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
20035
|
-
},
|
|
20036
|
-
cas: "native-idempotency",
|
|
20037
|
-
externalEffect: true,
|
|
20038
|
-
requiredScopes: ["accounting.contacts"]
|
|
20039
|
-
},
|
|
20040
|
-
{
|
|
20041
|
-
name: "invoices.delete",
|
|
20042
|
-
class: "mutation",
|
|
20043
|
-
description: "Void or delete a Xero invoice. DRAFT/SUBMITTED invoices accept DELETED, AUTHORISED invoices accept VOIDED.",
|
|
20044
|
-
parameters: {
|
|
20045
|
-
type: "object",
|
|
20046
|
-
properties: {
|
|
20047
|
-
tenantId: { type: "string" },
|
|
20048
|
-
invoiceId: { type: "string", description: "Xero InvoiceID (GUID) or InvoiceNumber." },
|
|
20049
|
-
status: {
|
|
20050
|
-
type: "string",
|
|
20051
|
-
enum: ["VOIDED", "DELETED"],
|
|
20052
|
-
description: "Target status. VOIDED for authorised invoices, DELETED for draft/submitted invoices."
|
|
20053
|
-
}
|
|
20054
|
-
},
|
|
20055
|
-
required: ["tenantId", "invoiceId", "status"]
|
|
20056
|
-
},
|
|
20057
|
-
request: {
|
|
20058
|
-
method: "POST",
|
|
20059
|
-
path: "/api.xro/2.0/Invoices/{invoiceId}",
|
|
20060
|
-
body: { Status: "{status}" },
|
|
20061
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
20062
|
-
},
|
|
20063
|
-
cas: "native-idempotency",
|
|
20064
|
-
externalEffect: true,
|
|
20065
|
-
requiredScopes: ["accounting.transactions"]
|
|
20066
|
-
},
|
|
20067
|
-
{
|
|
20068
|
-
name: "invoices.email",
|
|
20069
|
-
class: "mutation",
|
|
20070
|
-
description: "Email a Xero invoice to its contact using the saved template.",
|
|
20071
|
-
parameters: {
|
|
20072
|
-
type: "object",
|
|
20073
|
-
properties: {
|
|
20074
|
-
tenantId: { type: "string" },
|
|
20075
|
-
invoiceId: { type: "string", description: "Xero InvoiceID (GUID) or InvoiceNumber." }
|
|
20076
|
-
},
|
|
20077
|
-
required: ["tenantId", "invoiceId"]
|
|
20078
|
-
},
|
|
20079
|
-
request: {
|
|
20080
|
-
method: "POST",
|
|
20081
|
-
path: "/api.xro/2.0/Invoices/{invoiceId}/Email",
|
|
20082
|
-
body: {},
|
|
20083
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
20084
|
-
},
|
|
20085
|
-
cas: "native-idempotency",
|
|
20086
|
-
externalEffect: true,
|
|
20087
|
-
requiredScopes: ["accounting.transactions"]
|
|
20088
|
-
},
|
|
20089
|
-
{
|
|
20090
|
-
name: "payments.create",
|
|
20091
|
-
class: "mutation",
|
|
20092
|
-
description: "Apply a payment to a Xero invoice or credit note. Pass a Payments array per the Xero API contract.",
|
|
20093
|
-
parameters: {
|
|
20094
|
-
type: "object",
|
|
20095
|
-
properties: {
|
|
20096
|
-
tenantId: { type: "string" },
|
|
20097
|
-
Payments: {
|
|
20098
|
-
type: "array",
|
|
20099
|
-
items: {
|
|
20100
|
-
type: "object",
|
|
20101
|
-
properties: {
|
|
20102
|
-
Invoice: { type: "object", description: 'Invoice reference, e.g. { InvoiceID: "..." }.' },
|
|
20103
|
-
CreditNote: { type: "object", description: 'CreditNote reference, e.g. { CreditNoteID: "..." }.' },
|
|
20104
|
-
Account: { type: "object", description: 'Bank account reference, e.g. { Code: "090" }.' },
|
|
20105
|
-
Date: { type: "string", description: "YYYY-MM-DD." },
|
|
20106
|
-
Amount: { type: "number" },
|
|
20107
|
-
Reference: { type: "string" }
|
|
20108
|
-
},
|
|
20109
|
-
required: ["Account", "Date", "Amount"]
|
|
20110
|
-
}
|
|
20111
|
-
}
|
|
20112
|
-
},
|
|
20113
|
-
required: ["tenantId", "Payments"]
|
|
20114
|
-
},
|
|
20115
|
-
request: {
|
|
20116
|
-
method: "POST",
|
|
20117
|
-
path: "/api.xro/2.0/Payments",
|
|
20118
|
-
body: { Payments: "{Payments}" },
|
|
20119
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
20120
|
-
},
|
|
20121
|
-
cas: "native-idempotency",
|
|
20122
|
-
externalEffect: true,
|
|
20123
|
-
requiredScopes: ["accounting.transactions"]
|
|
20124
|
-
},
|
|
20125
|
-
{
|
|
20126
|
-
name: "credit-notes.create",
|
|
20127
|
-
class: "mutation",
|
|
20128
|
-
description: "Create a Xero credit note (ACCRECCREDIT or ACCPAYCREDIT). Pass a CreditNotes array per the Xero API contract.",
|
|
20129
|
-
parameters: {
|
|
20130
|
-
type: "object",
|
|
20131
|
-
properties: {
|
|
20132
|
-
tenantId: { type: "string" },
|
|
20133
|
-
CreditNotes: {
|
|
20134
|
-
type: "array",
|
|
20135
|
-
items: {
|
|
20136
|
-
type: "object",
|
|
20137
|
-
properties: {
|
|
20138
|
-
Type: { type: "string", enum: ["ACCRECCREDIT", "ACCPAYCREDIT"] },
|
|
20139
|
-
Contact: { type: "object" },
|
|
20140
|
-
LineItems: { type: "array", items: { type: "object" } },
|
|
20141
|
-
Date: { type: "string", description: "YYYY-MM-DD." },
|
|
20142
|
-
Reference: { type: "string" },
|
|
20143
|
-
Status: { type: "string", enum: ["DRAFT", "SUBMITTED", "AUTHORISED"] }
|
|
20144
|
-
},
|
|
20145
|
-
required: ["Type", "Contact", "LineItems"]
|
|
20146
|
-
}
|
|
20147
|
-
}
|
|
20148
|
-
},
|
|
20149
|
-
required: ["tenantId", "CreditNotes"]
|
|
20150
|
-
},
|
|
20151
|
-
request: {
|
|
20152
|
-
method: "POST",
|
|
20153
|
-
path: "/api.xro/2.0/CreditNotes",
|
|
20154
|
-
body: { CreditNotes: "{CreditNotes}" },
|
|
20155
|
-
headers: { "xero-tenant-id": "{tenantId}" }
|
|
20156
|
-
},
|
|
20157
|
-
cas: "native-idempotency",
|
|
20158
|
-
externalEffect: true,
|
|
20159
|
-
requiredScopes: ["accounting.transactions"]
|
|
20160
|
-
}
|
|
20161
|
-
]
|
|
20162
|
-
});
|
|
20163
|
-
|
|
20164
20175
|
// src/connectors/adapters/gusto.ts
|
|
20165
20176
|
var gustoConnector = declarativeRestConnector({
|
|
20166
20177
|
kind: "gusto",
|
|
@@ -77932,10 +77943,39 @@ var googleTasksConnector = declarativeRestConnector({
|
|
|
77932
77943
|
description: "List tasks in a task list.",
|
|
77933
77944
|
parameters: {
|
|
77934
77945
|
type: "object",
|
|
77935
|
-
properties: {
|
|
77946
|
+
properties: {
|
|
77947
|
+
tasklistId: { type: "string" },
|
|
77948
|
+
maxResults: { type: "integer" },
|
|
77949
|
+
pageToken: { type: "string" },
|
|
77950
|
+
showCompleted: { type: "boolean" },
|
|
77951
|
+
showDeleted: { type: "boolean" },
|
|
77952
|
+
showHidden: { type: "boolean" },
|
|
77953
|
+
showAssigned: { type: "boolean" },
|
|
77954
|
+
updatedMin: { type: "string" },
|
|
77955
|
+
dueMin: { type: "string" },
|
|
77956
|
+
dueMax: { type: "string" },
|
|
77957
|
+
completedMin: { type: "string" },
|
|
77958
|
+
completedMax: { type: "string" }
|
|
77959
|
+
},
|
|
77936
77960
|
required: ["tasklistId"]
|
|
77937
77961
|
},
|
|
77938
|
-
request: {
|
|
77962
|
+
request: {
|
|
77963
|
+
method: "GET",
|
|
77964
|
+
path: "/lists/{tasklistId}/tasks",
|
|
77965
|
+
query: {
|
|
77966
|
+
maxResults: "{maxResults}",
|
|
77967
|
+
pageToken: "{pageToken}",
|
|
77968
|
+
showCompleted: "{showCompleted}",
|
|
77969
|
+
showDeleted: "{showDeleted}",
|
|
77970
|
+
showHidden: "{showHidden}",
|
|
77971
|
+
showAssigned: "{showAssigned}",
|
|
77972
|
+
updatedMin: "{updatedMin}",
|
|
77973
|
+
dueMin: "{dueMin}",
|
|
77974
|
+
dueMax: "{dueMax}",
|
|
77975
|
+
completedMin: "{completedMin}",
|
|
77976
|
+
completedMax: "{completedMax}"
|
|
77977
|
+
}
|
|
77978
|
+
}
|
|
77939
77979
|
},
|
|
77940
77980
|
{
|
|
77941
77981
|
name: "tasks.get",
|
|
@@ -77946,7 +77986,7 @@ var googleTasksConnector = declarativeRestConnector({
|
|
|
77946
77986
|
properties: { tasklistId: { type: "string" }, taskId: { type: "string" } },
|
|
77947
77987
|
required: ["tasklistId", "taskId"]
|
|
77948
77988
|
},
|
|
77949
|
-
request: { method: "GET", path: "/
|
|
77989
|
+
request: { method: "GET", path: "/lists/{tasklistId}/tasks/{taskId}" }
|
|
77950
77990
|
},
|
|
77951
77991
|
{
|
|
77952
77992
|
name: "tasks.create",
|
|
@@ -77959,14 +77999,16 @@ var googleTasksConnector = declarativeRestConnector({
|
|
|
77959
77999
|
title: { type: "string" },
|
|
77960
78000
|
notes: { type: "string" },
|
|
77961
78001
|
dueDate: { type: "string" },
|
|
77962
|
-
parent: { type: "string" }
|
|
78002
|
+
parent: { type: "string" },
|
|
78003
|
+
previous: { type: "string" }
|
|
77963
78004
|
},
|
|
77964
78005
|
required: ["tasklistId", "title"]
|
|
77965
78006
|
},
|
|
77966
78007
|
request: {
|
|
77967
78008
|
method: "POST",
|
|
77968
|
-
path: "/
|
|
77969
|
-
|
|
78009
|
+
path: "/lists/{tasklistId}/tasks",
|
|
78010
|
+
query: { parent: "{parent}", previous: "{previous}" },
|
|
78011
|
+
body: { title: "{title}", notes: "{notes}", due: "{dueDate}" }
|
|
77970
78012
|
},
|
|
77971
78013
|
cas: "native-idempotency"
|
|
77972
78014
|
},
|
|
@@ -77988,8 +78030,8 @@ var googleTasksConnector = declarativeRestConnector({
|
|
|
77988
78030
|
},
|
|
77989
78031
|
request: {
|
|
77990
78032
|
method: "PATCH",
|
|
77991
|
-
path: "/
|
|
77992
|
-
body: { title: "{title}", notes: "{notes}",
|
|
78033
|
+
path: "/lists/{tasklistId}/tasks/{taskId}",
|
|
78034
|
+
body: { title: "{title}", notes: "{notes}", due: "{dueDate}", status: "{status}" }
|
|
77993
78035
|
},
|
|
77994
78036
|
cas: "etag-if-match"
|
|
77995
78037
|
},
|
|
@@ -78002,7 +78044,7 @@ var googleTasksConnector = declarativeRestConnector({
|
|
|
78002
78044
|
properties: { tasklistId: { type: "string" }, taskId: { type: "string" } },
|
|
78003
78045
|
required: ["tasklistId", "taskId"]
|
|
78004
78046
|
},
|
|
78005
|
-
request: { method: "DELETE", path: "/
|
|
78047
|
+
request: { method: "DELETE", path: "/lists/{tasklistId}/tasks/{taskId}" },
|
|
78006
78048
|
cas: "native-idempotency",
|
|
78007
78049
|
externalEffect: true
|
|
78008
78050
|
},
|
|
@@ -78020,7 +78062,7 @@ var googleTasksConnector = declarativeRestConnector({
|
|
|
78020
78062
|
},
|
|
78021
78063
|
request: {
|
|
78022
78064
|
method: "PATCH",
|
|
78023
|
-
path: "/
|
|
78065
|
+
path: "/lists/{tasklistId}/tasks/{taskId}",
|
|
78024
78066
|
body: { status: "completed" }
|
|
78025
78067
|
},
|
|
78026
78068
|
cas: "native-idempotency",
|
|
@@ -127238,11 +127280,13 @@ export {
|
|
|
127238
127280
|
oneDrive,
|
|
127239
127281
|
outlookMail,
|
|
127240
127282
|
pandadoc,
|
|
127283
|
+
quickbooksConnector,
|
|
127241
127284
|
sharepoint,
|
|
127242
127285
|
slack,
|
|
127243
127286
|
twitterConnector,
|
|
127244
127287
|
twitter,
|
|
127245
127288
|
whatsappBusiness,
|
|
127289
|
+
xeroConnector,
|
|
127246
127290
|
CONNECTOR_ADAPTER_FACTORIES,
|
|
127247
127291
|
resolveConnectorAdapterFactoryOptions,
|
|
127248
127292
|
googleSlidesConnector,
|
|
@@ -127273,8 +127317,6 @@ export {
|
|
|
127273
127317
|
zohoCrmConnector,
|
|
127274
127318
|
zohoDeskConnector,
|
|
127275
127319
|
attioConnector,
|
|
127276
|
-
quickbooksConnector,
|
|
127277
|
-
xeroConnector,
|
|
127278
127320
|
gustoConnector,
|
|
127279
127321
|
bigcommerceConnector,
|
|
127280
127322
|
shopifyConnector,
|
|
@@ -127763,4 +127805,4 @@ export {
|
|
|
127763
127805
|
demandbaseConnector,
|
|
127764
127806
|
adapters_exports
|
|
127765
127807
|
};
|
|
127766
|
-
//# sourceMappingURL=chunk-
|
|
127808
|
+
//# sourceMappingURL=chunk-4DZR436A.js.map
|