@tangle-network/agent-integrations 0.72.0 → 0.73.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/bundled-adapter-manifests.json +1 -1
- package/dist/{adapters-BU09k8Cr.js → adapters-D8TvHRA1.js} +401 -44
- package/dist/{adapters-BU09k8Cr.js.map → adapters-D8TvHRA1.js.map} +1 -1
- package/dist/{bundled-manifest-data-NtJ0vFHc.js → bundled-manifest-data-MdURriam.js} +80 -5
- package/dist/{bundled-manifest-data-NtJ0vFHc.js.map → bundled-manifest-data-MdURriam.js.map} +1 -1
- package/dist/connectors/adapters/index.js +1 -1
- package/dist/connectors/index.js +2 -2
- package/dist/index-udV3gGjx.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/internal/bundled-manifest-runtime.js +1 -1
- package/dist/mcp.js +1 -1
- package/dist/registry.js +1 -1
- package/dist/{specs-D5F9nOWX.js → specs-BYUQOsSC.js} +2 -2
- package/dist/{specs-D5F9nOWX.js.map → specs-BYUQOsSC.js.map} +1 -1
- package/dist/specs.js +1 -1
- package/dist/{src-CzkzOHaa.js → src-c7Ru9_WT.js} +3 -3
- package/dist/{src-CzkzOHaa.js.map → src-c7Ru9_WT.js.map} +1 -1
- package/package.json +1 -1
|
@@ -8056,7 +8056,7 @@ const message = {
|
|
|
8056
8056
|
minLength: 1,
|
|
8057
8057
|
maxLength: 18e3
|
|
8058
8058
|
};
|
|
8059
|
-
const base$
|
|
8059
|
+
const base$12 = declarativeRestConnector({
|
|
8060
8060
|
kind: "contiguity",
|
|
8061
8061
|
displayName: "Contiguity",
|
|
8062
8062
|
category: "crm",
|
|
@@ -8316,14 +8316,14 @@ const base$11 = declarativeRestConnector({
|
|
|
8316
8316
|
]
|
|
8317
8317
|
});
|
|
8318
8318
|
const contiguityConnector = {
|
|
8319
|
-
...base$
|
|
8319
|
+
...base$12,
|
|
8320
8320
|
async executeMutation(inv) {
|
|
8321
|
-
if (inv.capabilityName !== "email.send") return base$
|
|
8321
|
+
if (inv.capabilityName !== "email.send") return base$12.executeMutation(inv);
|
|
8322
8322
|
const { body, contentType, ...args } = inv.args;
|
|
8323
8323
|
if (typeof body !== "string" || !body.length || contentType !== void 0 && contentType !== "text/plain" && contentType !== "text/html") throw new Error("Contiguity email requires a body and supported contentType");
|
|
8324
8324
|
delete args.text;
|
|
8325
8325
|
delete args.html;
|
|
8326
|
-
return base$
|
|
8326
|
+
return base$12.executeMutation({
|
|
8327
8327
|
...inv,
|
|
8328
8328
|
args: {
|
|
8329
8329
|
...args,
|
|
@@ -8835,7 +8835,7 @@ function transcriptResponse(value) {
|
|
|
8835
8835
|
language: "multi"
|
|
8836
8836
|
};
|
|
8837
8837
|
}
|
|
8838
|
-
const base$
|
|
8838
|
+
const base$11 = declarativeRestConnector({
|
|
8839
8839
|
kind: "deepgram",
|
|
8840
8840
|
displayName: "Deepgram",
|
|
8841
8841
|
description: "Transcribe audio to text, synthesize text to speech, and analyze audio content with AI-powered speech recognition.",
|
|
@@ -9079,10 +9079,10 @@ const base$10 = declarativeRestConnector({
|
|
|
9079
9079
|
]
|
|
9080
9080
|
});
|
|
9081
9081
|
const deepgramConnector = {
|
|
9082
|
-
...base$
|
|
9082
|
+
...base$11,
|
|
9083
9083
|
manifest: {
|
|
9084
|
-
...base$
|
|
9085
|
-
capabilities: [...base$
|
|
9084
|
+
...base$11.manifest,
|
|
9085
|
+
capabilities: [...base$11.manifest.capabilities, {
|
|
9086
9086
|
name: "transcription.bytes",
|
|
9087
9087
|
class: "mutation",
|
|
9088
9088
|
cas: "none",
|
|
@@ -9109,7 +9109,7 @@ const deepgramConnector = {
|
|
|
9109
9109
|
}]
|
|
9110
9110
|
},
|
|
9111
9111
|
async executeMutation(inv) {
|
|
9112
|
-
if (inv.capabilityName !== "transcription.bytes") return base$
|
|
9112
|
+
if (inv.capabilityName !== "transcription.bytes") return base$11.executeMutation(inv);
|
|
9113
9113
|
const { bytes, contentType } = privateAudio(inv.args);
|
|
9114
9114
|
if (inv.source.credentials.kind !== "api-key" || !inv.source.credentials.apiKey || /[\u0000-\u0020\u007f]/.test(inv.source.credentials.apiKey)) throw new IntegrationRuntimeError({
|
|
9115
9115
|
code: "provider_auth_failed",
|
|
@@ -10211,7 +10211,7 @@ const echowinConnector = declarativeRestConnector({
|
|
|
10211
10211
|
*/
|
|
10212
10212
|
const ELEVENLABS_BASE_URL = "https://api.elevenlabs.io";
|
|
10213
10213
|
const MAX_SAMPLE_BYTES = 11e6;
|
|
10214
|
-
const base$
|
|
10214
|
+
const base$10 = declarativeRestConnector({
|
|
10215
10215
|
kind: "elevenlabs",
|
|
10216
10216
|
displayName: "ElevenLabs",
|
|
10217
10217
|
description: "Your own ElevenLabs account: text to speech, voices, instant voice clones of your own voice, speech to text, and conversational voice agents.",
|
|
@@ -10328,11 +10328,11 @@ const base$9 = declarativeRestConnector({
|
|
|
10328
10328
|
]
|
|
10329
10329
|
});
|
|
10330
10330
|
const elevenlabsConnector = {
|
|
10331
|
-
...base$
|
|
10331
|
+
...base$10,
|
|
10332
10332
|
manifest: {
|
|
10333
|
-
...base$
|
|
10333
|
+
...base$10.manifest,
|
|
10334
10334
|
capabilities: [
|
|
10335
|
-
...base$
|
|
10335
|
+
...base$10.manifest.capabilities,
|
|
10336
10336
|
{
|
|
10337
10337
|
name: "voices.clone_instant",
|
|
10338
10338
|
class: "mutation",
|
|
@@ -10443,7 +10443,7 @@ const elevenlabsConnector = {
|
|
|
10443
10443
|
]
|
|
10444
10444
|
},
|
|
10445
10445
|
async executeRead(inv) {
|
|
10446
|
-
if (inv.capabilityName !== "speech_to_text") return base$
|
|
10446
|
+
if (inv.capabilityName !== "speech_to_text") return base$10.executeRead(inv);
|
|
10447
10447
|
const audioUrl = httpsUrl(inv.args.audioUrl, "audioUrl");
|
|
10448
10448
|
const form = new FormData();
|
|
10449
10449
|
form.append("model_id", "scribe_v1");
|
|
@@ -10511,7 +10511,7 @@ const elevenlabsConnector = {
|
|
|
10511
10511
|
idempotentReplay: false
|
|
10512
10512
|
};
|
|
10513
10513
|
}
|
|
10514
|
-
return base$
|
|
10514
|
+
return base$10.executeMutation(inv);
|
|
10515
10515
|
}
|
|
10516
10516
|
};
|
|
10517
10517
|
function invalid(message) {
|
|
@@ -51353,7 +51353,7 @@ function mutation$2(name, description, properties, required, path, body) {
|
|
|
51353
51353
|
}
|
|
51354
51354
|
};
|
|
51355
51355
|
}
|
|
51356
|
-
const base$
|
|
51356
|
+
const base$9 = declarativeRestConnector({
|
|
51357
51357
|
kind: "meta-ads",
|
|
51358
51358
|
displayName: "Meta Ads",
|
|
51359
51359
|
description: "Manage Facebook and Instagram paid traffic campaigns, bounded budgets, ad sets, link creatives, delivery status and insights.",
|
|
@@ -51657,9 +51657,9 @@ function prepare$2(inv) {
|
|
|
51657
51657
|
};
|
|
51658
51658
|
}
|
|
51659
51659
|
const metaAdsConnector = {
|
|
51660
|
-
...base$
|
|
51660
|
+
...base$9,
|
|
51661
51661
|
async executeRead(inv) {
|
|
51662
|
-
const result = await base$
|
|
51662
|
+
const result = await base$9.executeRead(prepare$2(inv));
|
|
51663
51663
|
if (isPlainRecord(result.data) && isPlainRecord(result.data.paging)) {
|
|
51664
51664
|
const { next: _next, previous: _previous, ...paging } = result.data.paging;
|
|
51665
51665
|
return {
|
|
@@ -51673,7 +51673,7 @@ const metaAdsConnector = {
|
|
|
51673
51673
|
return result;
|
|
51674
51674
|
},
|
|
51675
51675
|
async executeMutation(inv) {
|
|
51676
|
-
const result = await base$
|
|
51676
|
+
const result = await base$9.executeMutation(prepare$2(inv));
|
|
51677
51677
|
if (result.status !== "committed") return result;
|
|
51678
51678
|
const data = result.data;
|
|
51679
51679
|
if (!(isPlainRecord(data) && !("error" in data) && (inv.capabilityName.includes(".create") ? typeof data.id === "string" && data.id.trim().length > 0 : data.success === true))) throw new Error("meta-ads: missing native mutation receipt; reconcile provider state before retrying");
|
|
@@ -51736,7 +51736,7 @@ function write$5(name, description, path, properties, required, body, method = "
|
|
|
51736
51736
|
}
|
|
51737
51737
|
};
|
|
51738
51738
|
}
|
|
51739
|
-
const base$
|
|
51739
|
+
const base$8 = declarativeRestConnector({
|
|
51740
51740
|
kind: "x-ads",
|
|
51741
51741
|
displayName: "X Ads",
|
|
51742
51742
|
description: "Manage X paid campaigns with total budgets, scheduled line items, targeting, promoted posts, and spend reports.",
|
|
@@ -52014,7 +52014,7 @@ const base$7 = declarativeRestConnector({
|
|
|
52014
52014
|
]
|
|
52015
52015
|
});
|
|
52016
52016
|
const xAdsConnector = {
|
|
52017
|
-
...base$
|
|
52017
|
+
...base$8,
|
|
52018
52018
|
async executeMutation(inv) {
|
|
52019
52019
|
for (const key of [
|
|
52020
52020
|
"totalBudgetMicros",
|
|
@@ -52023,7 +52023,7 @@ const xAdsConnector = {
|
|
|
52023
52023
|
]) if (inv.args[key] !== void 0 && (typeof inv.args[key] !== "string" || !/^[1-9][0-9]*$/.test(inv.args[key]))) throw new Error(`x-ads: ${key} must be positive integer microcurrency`);
|
|
52024
52024
|
if (typeof inv.args.dailyBudgetMicros === "string" && typeof inv.args.totalBudgetMicros === "string" && BigInt(inv.args.dailyBudgetMicros) > BigInt(inv.args.totalBudgetMicros)) throw new Error("x-ads: daily budget exceeds total budget");
|
|
52025
52025
|
if (inv.capabilityName === "lineItems.createTraffic" && !(typeof inv.args.startTime === "string" && typeof inv.args.endTime === "string" && Date.parse(inv.args.endTime) > Date.parse(inv.args.startTime))) throw new Error("x-ads: endTime must be after startTime");
|
|
52026
|
-
const result = await base$
|
|
52026
|
+
const result = await base$8.executeMutation(inv);
|
|
52027
52027
|
if (result.status === "committed") {
|
|
52028
52028
|
const envelope = result.data;
|
|
52029
52029
|
const records = isPlainRecord(envelope) ? Array.isArray(envelope.data) ? envelope.data : [envelope.data] : [];
|
|
@@ -52098,7 +52098,7 @@ function mutation$1(name, description, properties, required, path, body) {
|
|
|
52098
52098
|
}
|
|
52099
52099
|
};
|
|
52100
52100
|
}
|
|
52101
|
-
const base$
|
|
52101
|
+
const base$7 = declarativeRestConnector({
|
|
52102
52102
|
kind: "tiktok-ads",
|
|
52103
52103
|
displayName: "TikTok Ads",
|
|
52104
52104
|
description: "Operate TikTok Marketing API traffic campaigns, lifetime budgets, targeted ad groups, video ads and paid performance reports.",
|
|
@@ -52537,18 +52537,18 @@ async function uploadVideo(inv) {
|
|
|
52537
52537
|
};
|
|
52538
52538
|
}
|
|
52539
52539
|
const tiktokAdsConnector = {
|
|
52540
|
-
...base$
|
|
52540
|
+
...base$7,
|
|
52541
52541
|
async executeRead(inv) {
|
|
52542
52542
|
if (inv.capabilityName === "advertisers.list") return discover(inv);
|
|
52543
52543
|
credentials(inv.source.credentials);
|
|
52544
|
-
const result = await base$
|
|
52544
|
+
const result = await base$7.executeRead(prepare$1(inv));
|
|
52545
52545
|
assertEnvelope$1(result.data);
|
|
52546
52546
|
return result;
|
|
52547
52547
|
},
|
|
52548
52548
|
async executeMutation(inv) {
|
|
52549
52549
|
if (inv.capabilityName === "videos.uploadFromUrl") return uploadVideo(inv);
|
|
52550
52550
|
credentials(inv.source.credentials);
|
|
52551
|
-
const result = await base$
|
|
52551
|
+
const result = await base$7.executeMutation(prepare$1(inv));
|
|
52552
52552
|
if (result.status === "committed") assertMutationReceipt$1(result.data, inv.capabilityName);
|
|
52553
52553
|
return result;
|
|
52554
52554
|
},
|
|
@@ -52709,7 +52709,7 @@ function write$4(name, description, path, properties, required, body, create = f
|
|
|
52709
52709
|
}
|
|
52710
52710
|
};
|
|
52711
52711
|
}
|
|
52712
|
-
const base$
|
|
52712
|
+
const base$6 = declarativeRestConnector({
|
|
52713
52713
|
kind: "linkedin-ads",
|
|
52714
52714
|
displayName: "LinkedIn Ads",
|
|
52715
52715
|
description: "Discover advertiser accounts, prepare lifetime-budget sponsored campaigns, target professional audiences, sponsor existing posts, and measure results.",
|
|
@@ -53045,7 +53045,7 @@ const base$5 = declarativeRestConnector({
|
|
|
53045
53045
|
]
|
|
53046
53046
|
});
|
|
53047
53047
|
const linkedinAdsConnector = {
|
|
53048
|
-
...base$
|
|
53048
|
+
...base$6,
|
|
53049
53049
|
async executeMutation(inv) {
|
|
53050
53050
|
for (const key of ["totalBudget", "bidAmount"]) if (inv.args[key] !== void 0 && (typeof inv.args[key] !== "string" || !new RegExp(money$3.pattern).test(inv.args[key]))) throw new Error(`linkedin-ads: ${key} must be positive decimal currency`);
|
|
53051
53051
|
if (inv.capabilityName === "campaignGroups.create" || inv.capabilityName === "campaigns.createSponsored") {
|
|
@@ -53058,7 +53058,7 @@ const linkedinAdsConnector = {
|
|
|
53058
53058
|
targetingCriteria: nativeTargeting(inv.args.targetingCriteria)
|
|
53059
53059
|
}
|
|
53060
53060
|
};
|
|
53061
|
-
const result = await base$
|
|
53061
|
+
const result = await base$6.executeMutation(inv);
|
|
53062
53062
|
if (result.status === "committed") {
|
|
53063
53063
|
if ([
|
|
53064
53064
|
"campaignGroups.create",
|
|
@@ -53143,7 +53143,7 @@ function write$3(name, description, path, properties, required, data, method = "
|
|
|
53143
53143
|
}
|
|
53144
53144
|
};
|
|
53145
53145
|
}
|
|
53146
|
-
const base$
|
|
53146
|
+
const base$5 = declarativeRestConnector({
|
|
53147
53147
|
kind: "reddit-ads",
|
|
53148
53148
|
displayName: "Reddit Ads",
|
|
53149
53149
|
description: "Prepare lifetime-budget Reddit traffic campaigns, target communities and geographies, create ad creatives, launch or pause, and measure spend and conversions.",
|
|
@@ -53498,13 +53498,13 @@ const base$4 = declarativeRestConnector({
|
|
|
53498
53498
|
]
|
|
53499
53499
|
});
|
|
53500
53500
|
const redditAdsConnector = {
|
|
53501
|
-
...base$
|
|
53501
|
+
...base$5,
|
|
53502
53502
|
async executeMutation(inv) {
|
|
53503
53503
|
if (inv.args.totalBudgetMicros !== void 0 && !(typeof inv.args.totalBudgetMicros === "number" && Number.isSafeInteger(inv.args.totalBudgetMicros) && Number(inv.args.totalBudgetMicros) > 0)) throw new Error("reddit-ads: totalBudgetMicros must be positive safe integer microcurrency");
|
|
53504
53504
|
if (inv.capabilityName === "campaigns.createTraffic" || inv.capabilityName === "adGroups.createTraffic") {
|
|
53505
53505
|
if (!(typeof inv.args.startTime === "string" && typeof inv.args.endTime === "string" && Date.parse(inv.args.endTime) > Date.parse(inv.args.startTime))) throw new Error("reddit-ads: endTime must be after startTime");
|
|
53506
53506
|
}
|
|
53507
|
-
const result = await base$
|
|
53507
|
+
const result = await base$5.executeMutation(inv);
|
|
53508
53508
|
if (result.status === "committed") {
|
|
53509
53509
|
const envelope = result.data;
|
|
53510
53510
|
if (!isPlainRecord(envelope) || envelope.error || envelope.errors || !isPlainRecord(envelope.data) || typeof envelope.data.id !== "string" || !envelope.data.id) throw new Error("reddit-ads: missing native mutation receipt or provider error; reconcile state before retrying");
|
|
@@ -53572,7 +53572,7 @@ function mutation(name, description, properties, required, path, body) {
|
|
|
53572
53572
|
}
|
|
53573
53573
|
};
|
|
53574
53574
|
}
|
|
53575
|
-
const base$
|
|
53575
|
+
const base$4 = declarativeRestConnector({
|
|
53576
53576
|
kind: "snapchat-ads",
|
|
53577
53577
|
displayName: "Snapchat Ads",
|
|
53578
53578
|
description: "Create bounded Snapchat campaigns, targeted ad squads, uploaded media and website creatives; control delivery and read spend and conversions.",
|
|
@@ -53943,21 +53943,21 @@ async function upload(inv) {
|
|
|
53943
53943
|
};
|
|
53944
53944
|
}
|
|
53945
53945
|
const snapchatAdsConnector = {
|
|
53946
|
-
...base$
|
|
53946
|
+
...base$4,
|
|
53947
53947
|
async executeRead(inv) {
|
|
53948
|
-
const result = await base$
|
|
53948
|
+
const result = await base$4.executeRead(prepare(inv));
|
|
53949
53949
|
assertEnvelope(result.data);
|
|
53950
53950
|
return result;
|
|
53951
53951
|
},
|
|
53952
53952
|
async executeMutation(inv) {
|
|
53953
53953
|
if (inv.capabilityName === "media.upload") return upload(inv);
|
|
53954
|
-
const result = await base$
|
|
53954
|
+
const result = await base$4.executeMutation(prepare(inv));
|
|
53955
53955
|
if (result.status === "committed") assertMutationReceipt(result.data, inv.capabilityName);
|
|
53956
53956
|
return result;
|
|
53957
53957
|
},
|
|
53958
53958
|
async test(source) {
|
|
53959
53959
|
try {
|
|
53960
|
-
assertEnvelope((await base$
|
|
53960
|
+
assertEnvelope((await base$4.executeRead({
|
|
53961
53961
|
source,
|
|
53962
53962
|
capabilityName: "accounts.list",
|
|
53963
53963
|
args: {},
|
|
@@ -110482,6 +110482,9 @@ const slackEventsConnector = {
|
|
|
110482
110482
|
//#endregion
|
|
110483
110483
|
//#region src/connectors/adapters/github.ts
|
|
110484
110484
|
const GIT_SHA = "(?:[0-9a-fA-F]{40}|[0-9a-fA-F]{64})";
|
|
110485
|
+
/** The most files one pulls.propose call may write or delete. */
|
|
110486
|
+
const PROPOSE_MAX_FILES = 50;
|
|
110487
|
+
const PLAIN_BRANCH = "^(?!/)(?!.*//)(?!.*\\.\\.)(?!.*@\\{)(?!.*\\.lock$)[A-Za-z0-9._/-]+(?<![/.])$";
|
|
110485
110488
|
const repoParams = {
|
|
110486
110489
|
type: "object",
|
|
110487
110490
|
properties: {
|
|
@@ -110490,7 +110493,7 @@ const repoParams = {
|
|
|
110490
110493
|
},
|
|
110491
110494
|
required: ["owner", "repo"]
|
|
110492
110495
|
};
|
|
110493
|
-
const
|
|
110496
|
+
const githubSpec = {
|
|
110494
110497
|
kind: "github",
|
|
110495
110498
|
displayName: "GitHub",
|
|
110496
110499
|
description: "Search repositories/issues and create or update GitHub issues through a user-scoped token.",
|
|
@@ -111256,7 +111259,7 @@ const githubConnector = declarativeRestConnector({
|
|
|
111256
111259
|
{
|
|
111257
111260
|
name: "git.createTree",
|
|
111258
111261
|
class: "mutation",
|
|
111259
|
-
description: "Step 2 of a draft pull request. Write a tree: `base_tree` plus the changed entries. Each entry is `{ path, mode: \"100644\", type: \"blob\", content }` (use `sha: null` to delete a file). Creates an unreferenced object; nothing is visible until a branch points at a commit using it.",
|
|
111262
|
+
description: "Prefer pulls.propose, which proposes a whole change under one owner approval; each of these low-level steps needs its own. Step 2 of a draft pull request. Write a tree: `base_tree` plus the changed entries. Each entry is `{ path, mode: \"100644\", type: \"blob\", content }` (use `sha: null` to delete a file). Creates an unreferenced object; nothing is visible until a branch points at a commit using it.",
|
|
111260
111263
|
parameters: {
|
|
111261
111264
|
type: "object",
|
|
111262
111265
|
properties: {
|
|
@@ -111322,7 +111325,7 @@ const githubConnector = declarativeRestConnector({
|
|
|
111322
111325
|
{
|
|
111323
111326
|
name: "git.createCommit",
|
|
111324
111327
|
class: "mutation",
|
|
111325
|
-
description: "Step 3 of a draft pull request. Write a commit object for a tree with explicit parents (normally the base branch head). Creates an unreferenced object; it moves no branch. Its `sha` is what git.createRef needs.",
|
|
111328
|
+
description: "Prefer pulls.propose for a pull request (one owner approval for the whole change). Step 3 of a draft pull request. Write a commit object for a tree with explicit parents (normally the base branch head). Creates an unreferenced object; it moves no branch. Its `sha` is what git.createRef needs.",
|
|
111326
111329
|
parameters: {
|
|
111327
111330
|
type: "object",
|
|
111328
111331
|
properties: {
|
|
@@ -111365,7 +111368,7 @@ const githubConnector = declarativeRestConnector({
|
|
|
111365
111368
|
{
|
|
111366
111369
|
name: "git.createRef",
|
|
111367
111370
|
class: "mutation",
|
|
111368
|
-
description: "Step 4 of a draft pull request. Create a NEW branch at a commit: `ref` must be `refs/heads/<new-branch>` and `sha` the commit from git.createCommit. Never moves an existing branch; GitHub returns 422 when the ref already exists. Then pulls.create with `head: \"<new-branch>\"` (no `refs/heads/`) and `draft: true`.",
|
|
111371
|
+
description: "Prefer pulls.propose for a pull request (one owner approval for the whole change). Step 4 of a draft pull request. Create a NEW branch at a commit: `ref` must be `refs/heads/<new-branch>` and `sha` the commit from git.createCommit. Never moves an existing branch; GitHub returns 422 when the ref already exists. Then pulls.create with `head: \"<new-branch>\"` (no `refs/heads/`) and `draft: true`.",
|
|
111369
111372
|
parameters: {
|
|
111370
111373
|
type: "object",
|
|
111371
111374
|
properties: {
|
|
@@ -111462,7 +111465,7 @@ const githubConnector = declarativeRestConnector({
|
|
|
111462
111465
|
{
|
|
111463
111466
|
name: "pulls.create",
|
|
111464
111467
|
class: "mutation",
|
|
111465
|
-
description: "Open a pull request from `head` into `base` on the target repository. Step 5 of a draft pull request: `head` is the branch git.createRef created and `draft: true`.",
|
|
111468
|
+
description: "Open a pull request from `head` into `base` on the target repository. To propose file changes, prefer pulls.propose, which writes the files and opens the draft under one owner approval. Step 5 of a draft pull request: `head` is the branch git.createRef created and `draft: true`.",
|
|
111466
111469
|
parameters: {
|
|
111467
111470
|
type: "object",
|
|
111468
111471
|
properties: {
|
|
@@ -111502,6 +111505,84 @@ const githubConnector = declarativeRestConnector({
|
|
|
111502
111505
|
cas: "native-idempotency",
|
|
111503
111506
|
externalEffect: true
|
|
111504
111507
|
},
|
|
111508
|
+
{
|
|
111509
|
+
name: "pulls.propose",
|
|
111510
|
+
class: "mutation",
|
|
111511
|
+
description: "Propose a change as a draft pull request in ONE call, under one owner approval: write `files` on a NEW branch cut from the head of `base`, commit them, and open a draft pull request from `branch` into `base`. Prefer it over git.createTree, git.createCommit, git.createRef and pulls.create, which each need their own approval. It never moves an existing branch and never merges. Returns the pull request, the commit and each changed file with its line counts.",
|
|
111512
|
+
parameters: {
|
|
111513
|
+
type: "object",
|
|
111514
|
+
additionalProperties: false,
|
|
111515
|
+
properties: {
|
|
111516
|
+
owner: { type: "string" },
|
|
111517
|
+
repo: { type: "string" },
|
|
111518
|
+
base: {
|
|
111519
|
+
type: "string",
|
|
111520
|
+
description: "Branch the pull request merges into, usually the default branch (`main`). A plain branch name."
|
|
111521
|
+
},
|
|
111522
|
+
branch: {
|
|
111523
|
+
type: "string",
|
|
111524
|
+
description: "The NEW branch to create, e.g. `gtm-agent/hero-copy`. It must not exist yet and must differ from `base`."
|
|
111525
|
+
},
|
|
111526
|
+
title: {
|
|
111527
|
+
type: "string",
|
|
111528
|
+
minLength: 1,
|
|
111529
|
+
maxLength: 256
|
|
111530
|
+
},
|
|
111531
|
+
body: {
|
|
111532
|
+
type: "string",
|
|
111533
|
+
description: "Pull request description (markdown)."
|
|
111534
|
+
},
|
|
111535
|
+
commit_message: {
|
|
111536
|
+
type: "string",
|
|
111537
|
+
description: "Commit message; defaults to the title."
|
|
111538
|
+
},
|
|
111539
|
+
files: {
|
|
111540
|
+
type: "array",
|
|
111541
|
+
minItems: 1,
|
|
111542
|
+
maxItems: PROPOSE_MAX_FILES,
|
|
111543
|
+
description: "Every file the change writes or deletes. `{ path, content }` writes the whole new file; `{ path, delete: true }` removes it.",
|
|
111544
|
+
items: {
|
|
111545
|
+
type: "object",
|
|
111546
|
+
additionalProperties: false,
|
|
111547
|
+
properties: {
|
|
111548
|
+
path: {
|
|
111549
|
+
type: "string",
|
|
111550
|
+
description: "Repository-relative path, e.g. `src/routes/_index.tsx`."
|
|
111551
|
+
},
|
|
111552
|
+
content: {
|
|
111553
|
+
type: "string",
|
|
111554
|
+
description: "The complete new file content (UTF-8 text)."
|
|
111555
|
+
},
|
|
111556
|
+
mode: {
|
|
111557
|
+
type: "string",
|
|
111558
|
+
enum: ["100644", "100755"],
|
|
111559
|
+
description: "File mode; `100755` for an executable. Defaults to `100644`."
|
|
111560
|
+
},
|
|
111561
|
+
delete: {
|
|
111562
|
+
type: "boolean",
|
|
111563
|
+
description: "True deletes the file; false or absent writes `content`."
|
|
111564
|
+
}
|
|
111565
|
+
},
|
|
111566
|
+
required: ["path"]
|
|
111567
|
+
}
|
|
111568
|
+
}
|
|
111569
|
+
},
|
|
111570
|
+
required: [
|
|
111571
|
+
"owner",
|
|
111572
|
+
"repo",
|
|
111573
|
+
"base",
|
|
111574
|
+
"branch",
|
|
111575
|
+
"title",
|
|
111576
|
+
"files"
|
|
111577
|
+
]
|
|
111578
|
+
},
|
|
111579
|
+
request: {
|
|
111580
|
+
method: "POST",
|
|
111581
|
+
path: "/repos/{owner}/{repo}/pulls"
|
|
111582
|
+
},
|
|
111583
|
+
cas: "optimistic-read-verify",
|
|
111584
|
+
externalEffect: true
|
|
111585
|
+
},
|
|
111505
111586
|
{
|
|
111506
111587
|
name: "pulls.merge",
|
|
111507
111588
|
class: "mutation",
|
|
@@ -111610,7 +111691,283 @@ const githubConnector = declarativeRestConnector({
|
|
|
111610
111691
|
externalEffect: true
|
|
111611
111692
|
}
|
|
111612
111693
|
]
|
|
111613
|
-
}
|
|
111694
|
+
};
|
|
111695
|
+
const base$3 = declarativeRestConnector(githubSpec);
|
|
111696
|
+
const baseMutation$1 = base$3.executeMutation;
|
|
111697
|
+
const githubConnector = {
|
|
111698
|
+
...base$3,
|
|
111699
|
+
async executeMutation(inv) {
|
|
111700
|
+
if (inv.capabilityName === "pulls.propose") return proposePullRequest(inv);
|
|
111701
|
+
return baseMutation$1(inv);
|
|
111702
|
+
}
|
|
111703
|
+
};
|
|
111704
|
+
const PROPOSE_MAX_FILE_BYTES = 1e6;
|
|
111705
|
+
const PROPOSE_MAX_TOTAL_BYTES = 4e6;
|
|
111706
|
+
/** Branches a repository serves by default; a proposal never creates one. */
|
|
111707
|
+
const DEFAULT_BRANCH_NAMES = /* @__PURE__ */ new Set([
|
|
111708
|
+
"main",
|
|
111709
|
+
"master",
|
|
111710
|
+
"trunk",
|
|
111711
|
+
"default",
|
|
111712
|
+
"head",
|
|
111713
|
+
"develop"
|
|
111714
|
+
]);
|
|
111715
|
+
const PROPOSE_ARGUMENTS = /* @__PURE__ */ new Set([
|
|
111716
|
+
"owner",
|
|
111717
|
+
"repo",
|
|
111718
|
+
"base",
|
|
111719
|
+
"branch",
|
|
111720
|
+
"title",
|
|
111721
|
+
"body",
|
|
111722
|
+
"commit_message",
|
|
111723
|
+
"files"
|
|
111724
|
+
]);
|
|
111725
|
+
const PROPOSE_FILE_FIELDS = /* @__PURE__ */ new Set([
|
|
111726
|
+
"path",
|
|
111727
|
+
"content",
|
|
111728
|
+
"mode",
|
|
111729
|
+
"delete"
|
|
111730
|
+
]);
|
|
111731
|
+
function refuse(field, message) {
|
|
111732
|
+
throw new InvalidCapabilityArgument(`github pulls.propose: invalid argument "${field}": ${message}`, field);
|
|
111733
|
+
}
|
|
111734
|
+
function requiredText(args, field, max = 256) {
|
|
111735
|
+
const value = args[field];
|
|
111736
|
+
if (typeof value !== "string" || !value.trim()) refuse(field, "is required");
|
|
111737
|
+
if (value.length > max) refuse(field, `is longer than ${max} characters`);
|
|
111738
|
+
return value.trim();
|
|
111739
|
+
}
|
|
111740
|
+
function branchName(args, field) {
|
|
111741
|
+
const value = requiredText(args, field, 200);
|
|
111742
|
+
if (new RegExp(`^${GIT_SHA}$`).test(value)) refuse(field, "is a commit sha, not a branch name");
|
|
111743
|
+
if (value.startsWith("refs/")) refuse(field, "pass the bare branch name, not a `refs/` path");
|
|
111744
|
+
if (!new RegExp(PLAIN_BRANCH).test(value) || value.split("/").some((part) => part.startsWith(".") || part.endsWith(".lock"))) refuse(field, "is not a plain git branch name");
|
|
111745
|
+
return value;
|
|
111746
|
+
}
|
|
111747
|
+
function repoPath(value, index) {
|
|
111748
|
+
const field = `files[${index}].path`;
|
|
111749
|
+
if (typeof value !== "string" || !value.trim()) refuse(field, "is required");
|
|
111750
|
+
const path = value.trim();
|
|
111751
|
+
if (path.startsWith("/") || /[\\\0]/.test(path) || path.split("/").some((part) => !part || part === "." || part === "..")) refuse(field, `${JSON.stringify(path.slice(0, 80))} is not a repository-relative path`);
|
|
111752
|
+
if (path === ".git" || path.startsWith(".git/")) refuse(field, "cannot write inside .git");
|
|
111753
|
+
return path;
|
|
111754
|
+
}
|
|
111755
|
+
/** Validate every argument before the first request, so a refusal writes nothing. */
|
|
111756
|
+
function proposeArgs(raw) {
|
|
111757
|
+
for (const key of Object.keys(raw)) if (!PROPOSE_ARGUMENTS.has(key)) refuse(key, "is not an argument of pulls.propose");
|
|
111758
|
+
const base = branchName(raw, "base");
|
|
111759
|
+
const branch = branchName(raw, "branch");
|
|
111760
|
+
if (branch === base) refuse("branch", "must be a new branch, not the base");
|
|
111761
|
+
if (DEFAULT_BRANCH_NAMES.has(branch.toLowerCase())) refuse("branch", `${branch} is a default branch name; name a new branch`);
|
|
111762
|
+
const title = requiredText(raw, "title");
|
|
111763
|
+
const body = raw.body === void 0 ? void 0 : typeof raw.body === "string" ? raw.body : refuse("body", "must be a string");
|
|
111764
|
+
const commitMessage = raw.commit_message === void 0 ? title : requiredText(raw, "commit_message", 4e3);
|
|
111765
|
+
if (!Array.isArray(raw.files) || raw.files.length === 0) refuse("files", "name at least one file");
|
|
111766
|
+
if (raw.files.length > PROPOSE_MAX_FILES) refuse("files", `a proposal changes at most ${PROPOSE_MAX_FILES} files`);
|
|
111767
|
+
const seen = /* @__PURE__ */ new Set();
|
|
111768
|
+
let total = 0;
|
|
111769
|
+
const files = raw.files.map((entry, index) => {
|
|
111770
|
+
if (!entry || typeof entry !== "object" || Array.isArray(entry)) refuse(`files[${index}]`, "must be an object");
|
|
111771
|
+
const file = entry;
|
|
111772
|
+
for (const key of Object.keys(file)) if (!PROPOSE_FILE_FIELDS.has(key)) refuse(`files[${index}].${key}`, "is not a file field");
|
|
111773
|
+
const path = repoPath(file.path, index);
|
|
111774
|
+
if (seen.has(path)) refuse(`files[${index}].path`, `${path} is listed twice`);
|
|
111775
|
+
seen.add(path);
|
|
111776
|
+
const mode = file.mode === void 0 ? "100644" : file.mode;
|
|
111777
|
+
if (mode !== "100644" && mode !== "100755") refuse(`files[${index}].mode`, "must be 100644 or 100755");
|
|
111778
|
+
if (file.delete !== void 0 && typeof file.delete !== "boolean") refuse(`files[${index}].delete`, "must be true or false");
|
|
111779
|
+
if (file.delete === true) {
|
|
111780
|
+
if (file.content !== void 0) refuse(`files[${index}]`, "a deleted file carries no content");
|
|
111781
|
+
return {
|
|
111782
|
+
path,
|
|
111783
|
+
mode,
|
|
111784
|
+
delete: true
|
|
111785
|
+
};
|
|
111786
|
+
}
|
|
111787
|
+
if (typeof file.content !== "string") refuse(`files[${index}].content`, "is required unless delete is true");
|
|
111788
|
+
const bytes = new TextEncoder().encode(file.content).length;
|
|
111789
|
+
if (bytes > PROPOSE_MAX_FILE_BYTES) refuse(`files[${index}].content`, `is larger than ${PROPOSE_MAX_FILE_BYTES} bytes`);
|
|
111790
|
+
total += bytes;
|
|
111791
|
+
return {
|
|
111792
|
+
path,
|
|
111793
|
+
content: file.content,
|
|
111794
|
+
mode,
|
|
111795
|
+
delete: false
|
|
111796
|
+
};
|
|
111797
|
+
});
|
|
111798
|
+
if (total > PROPOSE_MAX_TOTAL_BYTES) refuse("files", `the change is larger than ${PROPOSE_MAX_TOTAL_BYTES} bytes`);
|
|
111799
|
+
return {
|
|
111800
|
+
owner: requiredText(raw, "owner", 100),
|
|
111801
|
+
repo: requiredText(raw, "repo", 100),
|
|
111802
|
+
base,
|
|
111803
|
+
branch,
|
|
111804
|
+
title,
|
|
111805
|
+
...body !== void 0 ? { body } : {},
|
|
111806
|
+
commitMessage,
|
|
111807
|
+
files
|
|
111808
|
+
};
|
|
111809
|
+
}
|
|
111810
|
+
function field(value, ...path) {
|
|
111811
|
+
let current = value;
|
|
111812
|
+
for (const key of path) {
|
|
111813
|
+
if (!current || typeof current !== "object") return void 0;
|
|
111814
|
+
current = current[key];
|
|
111815
|
+
}
|
|
111816
|
+
return current;
|
|
111817
|
+
}
|
|
111818
|
+
function shaOf(value, what, ...path) {
|
|
111819
|
+
const sha = field(value, ...path);
|
|
111820
|
+
if (typeof sha !== "string" || !new RegExp(`^${GIT_SHA}$`).test(sha)) throw new Error(`github pulls.propose: GitHub returned no ${what}`);
|
|
111821
|
+
return sha;
|
|
111822
|
+
}
|
|
111823
|
+
/**
|
|
111824
|
+
* Write the files on a new branch and open a draft pull request, as one call:
|
|
111825
|
+
* read the base head, write a tree, commit it on that head, create the branch,
|
|
111826
|
+
* open the draft, and read its file list. The branch is new (GitHub refuses
|
|
111827
|
+
* an existing ref), so the call never moves an existing branch.
|
|
111828
|
+
*/
|
|
111829
|
+
async function proposePullRequest(inv) {
|
|
111830
|
+
const args = proposeArgs(inv.args);
|
|
111831
|
+
const at = (request, values) => executeRestRequest(githubSpec, request, {
|
|
111832
|
+
...inv,
|
|
111833
|
+
args: {
|
|
111834
|
+
owner: args.owner,
|
|
111835
|
+
repo: args.repo,
|
|
111836
|
+
...values
|
|
111837
|
+
}
|
|
111838
|
+
});
|
|
111839
|
+
const head = await at({
|
|
111840
|
+
method: "GET",
|
|
111841
|
+
path: "/repos/{owner}/{repo}/branches/{branch}"
|
|
111842
|
+
}, { branch: args.base });
|
|
111843
|
+
if (head.outcome) return mutationResultFromTransport(githubSpec.displayName, head);
|
|
111844
|
+
const parent = shaOf(head.data, "base head commit", "commit", "sha");
|
|
111845
|
+
const tree = await at({
|
|
111846
|
+
method: "POST",
|
|
111847
|
+
path: "/repos/{owner}/{repo}/git/trees",
|
|
111848
|
+
body: {
|
|
111849
|
+
base_tree: "{base_tree}",
|
|
111850
|
+
tree: "{tree}"
|
|
111851
|
+
}
|
|
111852
|
+
}, {
|
|
111853
|
+
base_tree: shaOf(head.data, "base tree", "commit", "commit", "tree", "sha"),
|
|
111854
|
+
tree: args.files.map((file) => file.delete ? {
|
|
111855
|
+
path: file.path,
|
|
111856
|
+
mode: file.mode,
|
|
111857
|
+
type: "blob",
|
|
111858
|
+
sha: null
|
|
111859
|
+
} : {
|
|
111860
|
+
path: file.path,
|
|
111861
|
+
mode: file.mode,
|
|
111862
|
+
type: "blob",
|
|
111863
|
+
content: file.content
|
|
111864
|
+
})
|
|
111865
|
+
});
|
|
111866
|
+
if (tree.outcome) return mutationResultFromTransport(githubSpec.displayName, tree);
|
|
111867
|
+
const commit = await at({
|
|
111868
|
+
method: "POST",
|
|
111869
|
+
path: "/repos/{owner}/{repo}/git/commits",
|
|
111870
|
+
body: {
|
|
111871
|
+
message: "{message}",
|
|
111872
|
+
tree: "{tree}",
|
|
111873
|
+
parents: "{parents}"
|
|
111874
|
+
}
|
|
111875
|
+
}, {
|
|
111876
|
+
message: args.commitMessage,
|
|
111877
|
+
tree: shaOf(tree.data, "tree", "sha"),
|
|
111878
|
+
parents: [parent]
|
|
111879
|
+
});
|
|
111880
|
+
if (commit.outcome) return mutationResultFromTransport(githubSpec.displayName, commit);
|
|
111881
|
+
const commitSha = shaOf(commit.data, "commit", "sha");
|
|
111882
|
+
let ref;
|
|
111883
|
+
try {
|
|
111884
|
+
ref = await at({
|
|
111885
|
+
method: "POST",
|
|
111886
|
+
path: "/repos/{owner}/{repo}/git/refs",
|
|
111887
|
+
body: {
|
|
111888
|
+
ref: "{ref}",
|
|
111889
|
+
sha: "{sha}"
|
|
111890
|
+
}
|
|
111891
|
+
}, {
|
|
111892
|
+
ref: `refs/heads/${args.branch}`,
|
|
111893
|
+
sha: commitSha
|
|
111894
|
+
});
|
|
111895
|
+
} catch (error) {
|
|
111896
|
+
if (error instanceof Error && / HTTP 422: /.test(error.message) && /already exists/i.test(error.message)) refuse("branch", `${args.branch} already exists in ${args.owner}/${args.repo}; name a new branch`);
|
|
111897
|
+
throw error;
|
|
111898
|
+
}
|
|
111899
|
+
if (ref.outcome) return mutationResultFromTransport(githubSpec.displayName, ref);
|
|
111900
|
+
const created = `branch ${args.branch} at commit ${commitSha} exists in ${args.owner}/${args.repo}`;
|
|
111901
|
+
let pull;
|
|
111902
|
+
try {
|
|
111903
|
+
pull = await at({
|
|
111904
|
+
method: "POST",
|
|
111905
|
+
path: "/repos/{owner}/{repo}/pulls",
|
|
111906
|
+
body: {
|
|
111907
|
+
title: "{title}",
|
|
111908
|
+
head: "{head}",
|
|
111909
|
+
base: "{base}",
|
|
111910
|
+
body: "{body}",
|
|
111911
|
+
draft: true
|
|
111912
|
+
}
|
|
111913
|
+
}, {
|
|
111914
|
+
title: args.title,
|
|
111915
|
+
head: args.branch,
|
|
111916
|
+
base: args.base,
|
|
111917
|
+
...args.body !== void 0 ? { body: args.body } : {}
|
|
111918
|
+
});
|
|
111919
|
+
} catch (error) {
|
|
111920
|
+
throw new Error(`github pulls.propose: ${created}, but opening the pull request failed; call pulls.create with head ${args.branch}. ${error instanceof Error ? error.message : String(error)}`);
|
|
111921
|
+
}
|
|
111922
|
+
if (pull.outcome) throw new Error(`github pulls.propose: ${created}, but GitHub ${pull.outcome === "rate-limited" ? "throttled" : "refused"} opening the pull request; call pulls.create with head ${args.branch}. ${(pull.message ?? "").slice(0, 300)}`.trim());
|
|
111923
|
+
const number = field(pull.data, "number");
|
|
111924
|
+
if (typeof number !== "number") throw new Error(`github pulls.propose: ${created}, but GitHub returned no pull request number`);
|
|
111925
|
+
let files = args.files.map((file) => ({
|
|
111926
|
+
path: file.path,
|
|
111927
|
+
status: file.delete ? "removed" : "modified",
|
|
111928
|
+
additions: 0,
|
|
111929
|
+
deletions: 0
|
|
111930
|
+
}));
|
|
111931
|
+
try {
|
|
111932
|
+
const listed = await at({
|
|
111933
|
+
method: "GET",
|
|
111934
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/files",
|
|
111935
|
+
query: { per_page: "100" }
|
|
111936
|
+
}, { pull_number: number });
|
|
111937
|
+
if (!listed.outcome && Array.isArray(listed.data)) files = listed.data.flatMap((entry) => {
|
|
111938
|
+
const path = field(entry, "filename");
|
|
111939
|
+
return typeof path === "string" ? [{
|
|
111940
|
+
path,
|
|
111941
|
+
status: String(field(entry, "status") ?? "modified"),
|
|
111942
|
+
additions: Number(field(entry, "additions") ?? 0),
|
|
111943
|
+
deletions: Number(field(entry, "deletions") ?? 0)
|
|
111944
|
+
}] : [];
|
|
111945
|
+
});
|
|
111946
|
+
} catch {}
|
|
111947
|
+
return {
|
|
111948
|
+
status: "committed",
|
|
111949
|
+
data: {
|
|
111950
|
+
pullRequest: {
|
|
111951
|
+
number,
|
|
111952
|
+
url: String(field(pull.data, "html_url") ?? `https://github.com/${args.owner}/${args.repo}/pull/${number}`),
|
|
111953
|
+
title: String(field(pull.data, "title") ?? args.title),
|
|
111954
|
+
state: String(field(pull.data, "state") ?? "open"),
|
|
111955
|
+
draft: field(pull.data, "draft") !== false
|
|
111956
|
+
},
|
|
111957
|
+
repository: `${args.owner}/${args.repo}`,
|
|
111958
|
+
base: args.base,
|
|
111959
|
+
branch: args.branch,
|
|
111960
|
+
commit: {
|
|
111961
|
+
sha: commitSha,
|
|
111962
|
+
url: `https://github.com/${args.owner}/${args.repo}/commit/${commitSha}`
|
|
111963
|
+
},
|
|
111964
|
+
files
|
|
111965
|
+
},
|
|
111966
|
+
etagAfter: pull.etag,
|
|
111967
|
+
committedAt: Date.now(),
|
|
111968
|
+
idempotentReplay: false
|
|
111969
|
+
};
|
|
111970
|
+
}
|
|
111614
111971
|
//#endregion
|
|
111615
111972
|
//#region src/connectors/adapters/gitlab.ts
|
|
111616
111973
|
const gitlabConnector = declarativeRestConnector({
|
|
@@ -195702,4 +196059,4 @@ var adapters_exports = /* @__PURE__ */ __exportAll({
|
|
|
195702
196059
|
//#endregion
|
|
195703
196060
|
export { vboutConnector as $, googleGeminiConnector as $a, hubspot as $c, codyConnector as $d, captainDataConnector as $i, docuseal as $l, mauticConnector as $n, zohoInvoiceConnector as $o, fragmentConnector as $r, rabbitMqConnector as $s, predictLeadsConnector as $t, tenzoConnector as $u, contactoutConnector as A, amazonSesConnector as Aa, microsoftDynamicsCrmConnector as Ac, adobeCreativeCloudConnector as Ad, cryptolensConnector as Ai, gongConnector as Al, knockConnector as An, firebaseConnector as Ao, kapsoConnector as Ar, squareConnector as As, serpstatConnector as At, azureAdConnector as Au, workableConnector as B, afforaiConnector as Ba, leadConnectorConnector as Bc, excelFilesConnector as Bd, clearoutConnector as Bi, folkConnector as Bl, griptapeConnector as Bn, matrixConnector as Bo, housecallProConnector as Br, sftpConnector as Bs, robollyConnector as Bt, amazonLambdaConnector as Bu, warmlyConnector as C, similarwebConnector as Ca, mastodonConnector as Cc, cloudconvertConnector as Cd, oneloginConnector as Cf, dittofeedConnector as Ci, tiktokAdsConnector as Cl, odooConnector as Cn, supabaseConnector as Co, leapAiConnector as Cr, twentyConnector as Cs, smartsheetConnector as Ct, boxConnector as Cu, wizaConnector as D, ampecoConnector as Da, microsoftTeams as Dc, bigcommerceConnector as Dd, createPhonyConnector as Df, denserAiConnector as Di, googleAnalyticsConnector as Dl, medullarConnector as Dn, metabaseConnector as Do, klentyConnector as Dr, ticktickConnector as Ds, signrequestConnector as Dt, azureServiceBusConnector as Du, commonRoomConnector as E, appfollowConnector as Ea, microsoftOnenoteConnector as Ec, canvaConnector as Ed, declarativeRestConnector as Ef, devinConnector as Ei, googleAdsConnector as El, mindStudioConnector as En, mysqlConnector as Eo, knackConnector as Er, tlDvConnector as Es, shortIoConnector as Et, basecampConnector as Eu, amplemarketConnector as F, amazonSecretsManagerConnector as Fa, makeConnector as Fc, gammaConnector as Fd, crispConnector as Fi, googleErrorReason as Fl, ibmCognoseConnector as Fn, baserowConnector as Fo, jinaAiConnector as Fr, shippoConnector as Fs, scrapelessConnector as Ft, attioConnector as Fu, whatsappConnector as G, smooveConnector as Ga, jotformConnector as Gc, duckdbConnector as Gd, chatDataConnector as Gi, firefliesAiConnector as Gl, googleVertexaiConnector as Gn, marketoConnector as Go, guideliteConnector as Gr, recallAiConnector as Gs, reachinboxConnector as Gt, aircallConnector as Gu, woodpeckerConnector as H, airOpsConnector as Ha, kafkaConnector as Hc, echowinConnector as Hd, clockifyConnector as Hi, filloutFormsConnector as Hl, gptzeroDetectAiConnector as Hn, smartleadConnector as Ho, hashiCorpVaultConnector as Hr, rssConnector as Hs, retableConnector as Ht, amazonEventBridgeConnector as Hu, zeplinConnector as I, amazonBedrockConnector as Ia, createLinkedinConnector as Ic, flowParserConnector as Id, comfyicuConnector as Ii, googleTestFailureReason as Il, hystructConnector as In, airtableConnector as Io, imageRouterConnector as Ir, sharepoint as Is, scrapegraphaiConnector as It, asanaConnector as Iu, wafeqConnector as J, qdrantConnector as Ja, invoiceninjaConnector as Jc, deepgramConnector as Jd, chatlingConnector as Ji, etsyConnector as Jl, mixpanelConnector as Jn, klaviyoConnector as Jo, googleSearchConnector as Jr, createRedshiftConnector as Js, quadernoConnector as Jt, zoominfoConnector as Ju, webscrapingAiConnector as K, greenhouseConnector as Ka, jiraCloudConnector as Kc, digitalPilotConnector as Kd, chartlyConnector as Ki, fireberryConnector as Kl, exaConnector as Kn, mailchimpConnector as Ko, greipConnector as Kr, createPostgresConnector as Ks, rapidtextAiConnector as Kt, adobeSignConnector as Ku, youcanbookmeConnector as L, aipriseConnector as La, linkedinConnector as Lc, fellowConnector as Ld, cometapiConnector as Li, frontConnector as Ll, humeAiConnector as Ln, TELEGRAM_FILE_DOWNLOAD_ROOT as Lo, instantlyAiConnector as Lr, savvycalConnector as Ls, sardisConnector as Lt, amazonSqsConnector as Lu, saleshandyConnector as M, altTextAiConnector as Ma, microsoftCalendar as Mc, giftbitConnector as Md, copyAiConnector as Mi, classifyGoogleError as Ml, instasentConnector as Mn, digitalOceanConnector as Mo, joggAiConnector as Mr, sageIntacctConnector as Ms, sendinblueConnector as Mt, avomaConnector as Mu, lagrowthmachineConnector as N, alaiConnector as Na, microsoft365PlannerConnector as Nc, generatebannersConnector as Nd, dashworksConnector as Ni, classifyGoogleReason as Nl, insightoAiConnector as Nn, discourseConnector as No, justInvoiceConnector as Nr, slack as Ns, skyprepConnector as Nt, acuitySchedulingConnector as Nu, snovIoConnector as O, apitemplateIoConnector as Oa, microsoftGraph as Oc, bexioConnector as Od, phonyConnector as Of, deepseekConnector as Oi, googleCalendar as Ol, mailchainConnector as On, hightouchConnector as Oo, kissflowConnector as Or, tallyConnector as Os, serviceNowConnector as Ot, azureEventGridConnector as Ou, heyreachConnector as P, airtopConnector as Pa, microsoft365PeopleConnector as Pc, genderApiConnector as Pd, convertkitConnector as Pi, googleApiError as Pl, imapConnector as Pn, datadogConnector as Po, jiraDataCenterConnector as Pr, signNowConnector as Ps, seekTableConnector as Pt, auth0Connector as Pu, vidlab7Connector as Q, geminiConnector as Qa, httpConnector as Qc, contextualAiConnector as Qd, certopusConnector as Qi, docusignConnector as Ql, memConnector as Qn, zohoMailConnector as Qo, gameballConnector as Qr, createRabbitMqConnector as Qs, productboardConnector as Qt, vercelConnector as Qu, wufooConnector as R, acumbamailConnector as Ra, linearConnector as Rc, featheryConnector as Rd, cohereConnector as Ri, freshsalesConnector as Rl, hedyConnector as Rn, telegramConnector as Ro, huggingFaceConnector as Rr, saleorConnector as Rs, saasticConnector as Rt, amazonSnsConnector as Ru, autoboundConnector as S, semrushConnector as Sa, meetgeekAiConnector as Sc, constantContactConnector as Sd, pingIdentityConnector as Sf, documergeConnector as Si, linkedinAdsConnector as Sl, omniCoConnector as Sn, builtwithConnector as So, kommoConnector as Sr, typeformConnector as Ss, smartsuiteConnector as St, baremetricsConnector as Su, leadfeederConnector as T, apitableConnector as Ta, microsoftPowerBiConnector as Tc, clicdataConnector as Td, oktaConnector as Tf, descriptConnector as Ti, metaAdsConnector as Tl, nocodbConnector as Tn, createMySqlConnector as To, koFiConnector as Tr, todoistConnector as Ts, simplirouteConnector as Tt, backblazeConnector as Tu, wonderchatConnector as U, kustomerConnector as Ua, publicKafkaSocketFactory as Uc, dripConnector as Ud, clockodoConnector as Ui, figmaConnector as Ul, gotifyConnector as Un, salesloftConnector as Uo, heygenConnector as Ur, ringcentralConnector as Us, replyIoConnector as Ut, amplitudeConnector as Uu, woocommerceConnector as V, agentxConnector as Va, createKafkaConnector as Vc, elevenlabsConnector as Vd, cloutlyConnector as Vi, flowluConnector as Vl, gristConnector as Vn, chatwootConnector as Vo, heymarketSmsConnector as Vr, salesforceConnector as Vs, retellAiConnector as Vt, amazonCloudWatchConnector as Vu, whatsscaleConnector as W, activecampaignConnector as Wa, justcallConnector as Wc, docsbotConnector as Wd, chatnodeConnector as Wi, figjamConnector as Wl, glideConnector as Wn, outreachConnector as Wo, hastewireConnector as Wr, rampConnector as Ws, reoonVerifierConnector as Wt, affinityConnector as Wu, vtexConnector as X, weaviateConnector as Xa, instagramBusinessConnector as Xc, couchbaseConnector as Xd, cannyConnector as Xi, dropboxConnector as Xl, mindeeConnector as Xn, brazeConnector as Xo, ghostcmsConnector as Xr, createRedisConnector as Xs, pushoverConnector as Xt, wootricConnector as Xu, vtigerConnector as Y, pineconeConnector as Ya, insightlyConnector as Yc, dappierConnector as Yd, chargekeepConnector as Yi, ebayConnector as Yl, mixmaxConnector as Yn, customerIoConnector as Yo, gistlyConnector as Yr, redshiftConnector as Ys, qawafelConnector as Yt, workdayConnector as Yu, vlmRunConnector as Z, huggingfaceConnector as Za, intercomConnector as Zc, contiguityConnector as Zd, chainalysisApiConnector as Zi, dialpadConnector as Zl, millionverifierConnector as Zn, apolloConnector as Zo, freshserviceConnector as Zr, redisConnector as Zs, proxycurlConnector as Zt, videoaskConnector as Zu, zenrowsConnector as _, avianConnector as _a, createMongoDbConnector as _c, giteaConnector as _d, anyhookWebsocketConnector as _f, elasticEmailConnector as _i, createAmazonAdsConnector as _l, opnformConnector as _n, zerobounceConnector as _o, linkaConnector as _r, twilioSmsConnector as _s, stripeConnector as _t, calCom as _u, linqWhatsappConnector as a, bolnaConnector as aa, paddleConnector as ac, reddit as ad, chaindeskConnector as af, flipandoConnector as ai, googleTasksConnector as al, placidConnector as an, zendeskSellConnector as ao, lucidyaConnector as ar, cloudbedsConnector as as, twilioConnector as at, recurlyConnector as au, leadmagicConnector as b, clayConnector as ba, miroConnector as bc, discordConnector as bd, actualbudgetConnector as bf, dumplingAiConnector as bi, snapchatAdsConnector as bl, openRouterConnector as bn, hunterConnector as bo, lettaConnector as br, twitter as bs, socialkitConnector as bt, billComConnector as bu, getresponseConnector as c, bitlyConnector as ca, oneSpanSignConnector as cc, paychexConnector as cd, cartloomConnector as cf, enrichlayerConnector as ci, googleSearchConsoleConnector as cl, peekshotConnector as cn, facebookPagesConnector as co, lushaConnector as cr, zendeskConnector as cs, totalcmsConnector as ct, contentfulConnector as cu, nooksConnector as d, beamerConnector as da, ninjapipeConnector as dc, niftyConnector as dd, bikaConnector as df, esignaturesConnector as di, googleForms as dl, paywhirlConnector as dn, slackEventsConnector as do, logrocketConnector as dr, wrikeConnector as ds, timeOpsConnector as dt, cloudinaryConnector as du, braveSearchConnector as ea, quickbooksConnector as ec, teableConnector as ed, clickfunnelsConnector as ef, frameConnector as ei, helpscoutConnector as el, posthogConnector as en, anthropicConnector as eo, messagebirdConnector as er, zohoCampaignsConnector as es, uscreenConnector as et, chessComConnector as eu, signwellConnector as f, azureOpenaiConnector as fa, netsuiteConnector as fc, netlifyConnector as fd, beehiivConnector as ff, emailitConnector as fi, googleDrive as fl, pinchPaymentsConnector as fn, stripeWebhookReceiverConnector as fo, lokaliseConnector as fr, wordpressConnector as fs, textcortexAiConnector as ft, cloudflareConnector as fu, oceanIoConnector as g, asknewsConnector as ga, mycaseConnector as gc, gustoConnector as gd, apifyConnector as gf, edenAiConnector as gi, googleCloudStorageConnector as gl, orimonConnector as gn, resolveConnectorAdapterFactoryOptions as go, localaiConnector as gr, voucheryIoConnector as gs, systemeIoConnector as gt, calendlyConnector as gu, seamlessAiConnector as h, azureCommunicationServicesConnector as ha, notionConnector as hc, instaChartsConnector as hd, askHandleConnector as hf, easyPeasyAiConnector as hi, googlePubSubConnector as hl, oracleDatabaseConnector as hn, CONNECTOR_ADAPTER_FACTORIES as ho, lobstermailConnector as hr, whatsappBusiness as hs, tableauConnector as ht, capsuleCrmConnector as hu, resendConnector as i, bookedinConnector as ia, plaidConnector as ic, ripplingConnector as id, chatAidConnector as if, formbricksConnector as ii, googlechatConnector as il, plausibleConnector as in, sendgridConnector as io, matomoConnector as ir, pricelabsConnector as is, upgradechatConnector as it, taxjarConnector as iu, bettercontactConnector as j, alttextifyConnector as ja, microsoftDynamics365BusinessCentralConnector as jc, modelslabConnector as jd, datafuelConnector as ji, gmail as jl, kallabotAiConnector as jn, clicksendConnector as jo, kizeoFormsConnector as jr, shopifyConnector as js, senjaConnector as jt, avalaraConnector as ju, findymailConnector as k, amazonTextractConnector as ka, microsoftExcel365Connector as kc, adpConnector as kd, customgptConnector as ki, gorgiasConnector as kl, loopsConnector as kn, googleBigqueryConnector as ko, kimaiConnector as kr, stripePackConnector as ks, tregConnector as kt, azureBlobStorageConnector as ku, factorsAiConnector as l, blandAiConnector as la, oneDrive as lc, pagerdutyConnector as ld, cambAiConnector as lf, fathomAnalyticsConnector as li, googleMyBusinessConnector as ll, pdfmonkeyConnector as ln, gitlabConnector as lo, loftyConnector as lr, zapierConnector as ls, togglTrackConnector as lt, confluenceConnector as lu, usergemsConnector as m, autocallsConnector as ma, notion as mc, leverConnector as md, bannerbearConnector as mf, dustConnector as mi, googleContactsConnector as ml, paperformConnector as mn, webhookConnector as mo, llmrailsConnector as mr, xeroConnector as ms, talkableConnector as mt, closeConnector as mu, sendblueConnector as n, brilliantDirectoriesConnector as na, pipedriveConnector as nc, sendpulseConnector as nd, claudeConnector as nf, fountainConnector as ni, hellosign as nl, pollybotAiConnector as nn, sentryConnector as no, mailgunConnector as nr, zohoCrmConnector as ns, validatedmailsConnector as nt, circleConnector as nu, linqConnector as o, blueskyConnector as oa, pandadoc as oc, redditConnector as od, chainAwareConnector as of, flowiseConnector as oi, googleSlidesConnector as ol, personalAiConnector as on, zagomailConnector as oo, luxuryPresenceConnector as or, zohoBookingsConnector as os, twinLabsConnector as ot, chargebeeConnector as ou, polytomicConnector as p, barcodeLookupConnector as pa, n8nConnector as pc, lightfunnelsConnector as pd, base44Connector as pf, emailoctopusConnector as pi, googleDocs as pl, pastefyConnector as pn, gtmAgentConnector as po, magicalApiConnector as pr, webflowConnector as ps, telnyxConnector as pt, clickupConnector as pu, whatConvertsConnector as q, bamboohrConnector as qa, ironcladConnector as qc, detectingAiConnector as qd, chatbaseConnector as qi, fathomConnector as ql, missiveConnector as qn, lemlistConnector as qo, greenptConnector as qr, postgresConnector as qs, raiaAiConnector as qt, zuoraConnector as qu, clerkConnector as r, browseAiConnector as ra, pipedreamConnector as rc, sanityConnector as rd, chatsistantConnector as rf, foreplayCoConnector as ri, granolaConnector as rl, pocketbaseConnector as rn, postmarkConnector as ro, manychatConnector as rr, zohoDeskConnector as rs, vapiConnector as rt, cashfreePaymentsConnector as ru, inkboxConnector as s, bonjoroConnector as sa, outlookMail as sc, pushbulletConnector as sd, csvFilesConnector as sf, facebookLeadsConnector as si, googleSheets as sl, perplexityAiConnector as sn, quickzuConnector as so, mailerLiteConnector as sr, zoomConnector as ss, typefullyConnector as st, copperConnector as su, adapters_exports as t, campaignMonitorConnector as ta, parquetFilesConnector as tc, snowflakeConnector as td, clearoutphoneConnector as tf, mailercheckConnector as ti, harvestConnector as tl, postizConnector as tn, openaiConnector as to, mailerooConnector as tr, zohoBooksConnector as ts, umamiConnector as tt, checkoutConnector as tu, modjoConnector as u, bettermodeConnector as ua, openPhoneConnector as uc, opsgenieConnector as ud, buttondownConnector as uf, firecrawlConnector as ui, googleMeetConnector as ul, parseurConnector as un, githubConnector as uo, logsnagConnector as ur, youtubeDataConnector as us, timelinesAiConnector as ut, codaConnector as uu, phantombusterConnector as v, assemblyaiConnector as va, mongodbConnector as vc, freeAgentConnector as vd, airparserConnector as vf, documentproConnector as vi, createMicrosoftAdsConnector as vl, openmicAiConnector as vn, theirstackConnector as vo, letsCalendarConnector as vr, tiktok as vs, swarmnodeConnector as vt, calComConnector as vu, serperConnector as w, aminosConnector as wa, microsoftTodoConnector as wc, clioConnector as wd, clientCredentialsRestConnector as wf, datocmsConnector as wi, xAdsConnector as wl, ntfyConnector as wn, segmentConnector as wo, kudosityConnector as wr, trelloConnector as ws, simplybookmeConnector as wt, biginByZohoConnector as wu, crustdataConnector as x, cognismConnector as xa, mollieConnector as xc, demandbaseConnector as xd, scimConnector as xf, doctlyConnector as xi, redditAdsConnector as xl, omnihrConnector as xn, fullenrichConnector as xo, leexiConnector as xr, twitterConnector as xs, smsmodeConnector as xt, brexConnector as xu, brightdataConnector as y, ashbyConnector as ya, mondayConnector as yc, formstackConnector as yd, aianswerConnector as yf, dubConnector as yi, pinterestAdsConnector as yl, opportifyConnector as yn, neverbounceConnector as yo, linkupConnector as yr, tiktokConnector as ys, supadataConnector as yt, billplzConnector as yu, writesonicBulkConnector as z, aidbaseConnector as za, lemonSqueezyConnector as zc, everhourConnector as zd, cognitoFormsConnector as zi, freshdeskConnector as zl, heartbeatConnector as zn, mattermostConnector as zo, influencersClubConnector as zr, createSftpConnector as zs, runwareConnector as zt, amazonS3Connector as zu };
|
|
195704
196061
|
|
|
195705
|
-
//# sourceMappingURL=adapters-
|
|
196062
|
+
//# sourceMappingURL=adapters-D8TvHRA1.js.map
|