integrate-sdk 0.8.59-dev.0 → 0.8.61-dev.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/dist/adapters/auto-routes.js +226 -32
- package/dist/adapters/index.js +223 -29
- package/dist/adapters/nextjs.js +223 -29
- package/dist/adapters/node.js +223 -29
- package/dist/adapters/svelte-kit.js +223 -29
- package/dist/adapters/tanstack-start.js +223 -29
- package/dist/index.js +223 -23
- package/dist/oauth.js +217 -23
- package/dist/server.js +210 -16
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/integrations/airtable-client.d.ts +210 -0
- package/dist/src/integrations/airtable-client.d.ts.map +1 -1
- package/dist/src/integrations/airtable.d.ts +2 -2
- package/dist/src/integrations/airtable.d.ts.map +1 -1
- package/dist/src/integrations/calcom-client.d.ts +334 -0
- package/dist/src/integrations/calcom-client.d.ts.map +1 -1
- package/dist/src/integrations/calcom.d.ts +2 -2
- package/dist/src/integrations/calcom.d.ts.map +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/triggers/index.d.ts +4 -2
- package/dist/src/triggers/index.d.ts.map +1 -1
- package/dist/src/triggers/types.d.ts +109 -0
- package/dist/src/triggers/types.d.ts.map +1 -1
- package/dist/src/triggers/utils.d.ts +20 -0
- package/dist/src/triggers/utils.d.ts.map +1 -1
- package/dist/src/triggers/webhooks.d.ts +28 -0
- package/dist/src/triggers/webhooks.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3446,7 +3446,15 @@ function airtableIntegration(config = {}) {
|
|
|
3446
3446
|
provider: "airtable",
|
|
3447
3447
|
clientId: config.clientId ?? getEnv("AIRTABLE_CLIENT_ID"),
|
|
3448
3448
|
clientSecret: config.clientSecret ?? getEnv("AIRTABLE_CLIENT_SECRET"),
|
|
3449
|
-
scopes: config.scopes || [
|
|
3449
|
+
scopes: config.scopes || [
|
|
3450
|
+
"data.records:read",
|
|
3451
|
+
"data.records:write",
|
|
3452
|
+
"data.recordComments:read",
|
|
3453
|
+
"data.recordComments:write",
|
|
3454
|
+
"schema.bases:read",
|
|
3455
|
+
"schema.bases:write",
|
|
3456
|
+
"webhook:manage"
|
|
3457
|
+
],
|
|
3450
3458
|
redirectUri: config.redirectUri,
|
|
3451
3459
|
config: {
|
|
3452
3460
|
...config
|
|
@@ -3479,7 +3487,22 @@ var init_airtable = __esm(() => {
|
|
|
3479
3487
|
"airtable_get_record",
|
|
3480
3488
|
"airtable_create_record",
|
|
3481
3489
|
"airtable_update_record",
|
|
3482
|
-
"airtable_search_records"
|
|
3490
|
+
"airtable_search_records",
|
|
3491
|
+
"airtable_delete_record",
|
|
3492
|
+
"airtable_create_base",
|
|
3493
|
+
"airtable_create_table",
|
|
3494
|
+
"airtable_update_table",
|
|
3495
|
+
"airtable_create_field",
|
|
3496
|
+
"airtable_update_field",
|
|
3497
|
+
"airtable_list_comments",
|
|
3498
|
+
"airtable_create_comment",
|
|
3499
|
+
"airtable_update_comment",
|
|
3500
|
+
"airtable_delete_comment",
|
|
3501
|
+
"airtable_list_webhooks",
|
|
3502
|
+
"airtable_create_webhook",
|
|
3503
|
+
"airtable_delete_webhook",
|
|
3504
|
+
"airtable_list_webhook_payloads",
|
|
3505
|
+
"airtable_refresh_webhook"
|
|
3483
3506
|
];
|
|
3484
3507
|
});
|
|
3485
3508
|
|
|
@@ -3575,7 +3598,7 @@ function calcomIntegration(config = {}) {
|
|
|
3575
3598
|
provider: "calcom",
|
|
3576
3599
|
clientId: config.clientId ?? getEnv("CALCOM_CLIENT_ID"),
|
|
3577
3600
|
clientSecret: config.clientSecret ?? getEnv("CALCOM_CLIENT_SECRET"),
|
|
3578
|
-
scopes: config.scopes || ["
|
|
3601
|
+
scopes: config.scopes || ["READ_BOOKING", "WRITE_BOOKING", "READ_PROFILE", "WRITE_PROFILE"],
|
|
3579
3602
|
redirectUri: config.redirectUri,
|
|
3580
3603
|
config: {
|
|
3581
3604
|
apiBaseUrl: config.apiBaseUrl || "https://api.cal.com/v1",
|
|
@@ -3606,9 +3629,53 @@ var init_calcom = __esm(() => {
|
|
|
3606
3629
|
"calcom_create_booking",
|
|
3607
3630
|
"calcom_cancel_booking",
|
|
3608
3631
|
"calcom_reschedule_booking",
|
|
3632
|
+
"calcom_update_booking",
|
|
3633
|
+
"calcom_get_booking_recordings",
|
|
3634
|
+
"calcom_get_booking_transcripts",
|
|
3609
3635
|
"calcom_list_event_types",
|
|
3636
|
+
"calcom_get_event_type",
|
|
3637
|
+
"calcom_create_event_type",
|
|
3638
|
+
"calcom_update_event_type",
|
|
3639
|
+
"calcom_delete_event_type",
|
|
3640
|
+
"calcom_list_team_event_types",
|
|
3610
3641
|
"calcom_get_availability",
|
|
3642
|
+
"calcom_get_availability_rule",
|
|
3643
|
+
"calcom_create_availability_rule",
|
|
3644
|
+
"calcom_update_availability_rule",
|
|
3645
|
+
"calcom_delete_availability_rule",
|
|
3611
3646
|
"calcom_list_schedules",
|
|
3647
|
+
"calcom_get_schedule",
|
|
3648
|
+
"calcom_create_schedule",
|
|
3649
|
+
"calcom_update_schedule",
|
|
3650
|
+
"calcom_delete_schedule",
|
|
3651
|
+
"calcom_get_slots",
|
|
3652
|
+
"calcom_list_attendees",
|
|
3653
|
+
"calcom_get_attendee",
|
|
3654
|
+
"calcom_create_attendee",
|
|
3655
|
+
"calcom_update_attendee",
|
|
3656
|
+
"calcom_delete_attendee",
|
|
3657
|
+
"calcom_list_teams",
|
|
3658
|
+
"calcom_get_team",
|
|
3659
|
+
"calcom_create_team",
|
|
3660
|
+
"calcom_update_team",
|
|
3661
|
+
"calcom_delete_team",
|
|
3662
|
+
"calcom_list_memberships",
|
|
3663
|
+
"calcom_get_membership",
|
|
3664
|
+
"calcom_create_membership",
|
|
3665
|
+
"calcom_update_membership",
|
|
3666
|
+
"calcom_delete_membership",
|
|
3667
|
+
"calcom_list_webhooks",
|
|
3668
|
+
"calcom_get_webhook",
|
|
3669
|
+
"calcom_create_webhook",
|
|
3670
|
+
"calcom_update_webhook",
|
|
3671
|
+
"calcom_delete_webhook",
|
|
3672
|
+
"calcom_list_payments",
|
|
3673
|
+
"calcom_get_payment",
|
|
3674
|
+
"calcom_list_users",
|
|
3675
|
+
"calcom_get_user",
|
|
3676
|
+
"calcom_create_user",
|
|
3677
|
+
"calcom_update_user",
|
|
3678
|
+
"calcom_delete_user",
|
|
3612
3679
|
"calcom_get_me"
|
|
3613
3680
|
];
|
|
3614
3681
|
});
|
|
@@ -8236,6 +8303,7 @@ var init_index_browser = () => {};
|
|
|
8236
8303
|
// src/triggers/utils.ts
|
|
8237
8304
|
var exports_utils = {};
|
|
8238
8305
|
__export(exports_utils, {
|
|
8306
|
+
validateStepLimit: () => validateStepLimit,
|
|
8239
8307
|
validateStatusTransition: () => validateStatusTransition,
|
|
8240
8308
|
generateTriggerId: () => generateTriggerId,
|
|
8241
8309
|
extractProviderFromToolName: () => extractProviderFromToolName,
|
|
@@ -8263,6 +8331,15 @@ function validateStatusTransition(currentStatus, targetStatus) {
|
|
|
8263
8331
|
}
|
|
8264
8332
|
return { valid: true };
|
|
8265
8333
|
}
|
|
8334
|
+
function validateStepLimit(stepIndex, maxSteps) {
|
|
8335
|
+
if (stepIndex >= maxSteps) {
|
|
8336
|
+
return {
|
|
8337
|
+
valid: false,
|
|
8338
|
+
error: `Step index ${stepIndex} exceeds maximum of ${maxSteps} steps`
|
|
8339
|
+
};
|
|
8340
|
+
}
|
|
8341
|
+
return { valid: true };
|
|
8342
|
+
}
|
|
8266
8343
|
function calculateHasMore(offset, returnedCount, total) {
|
|
8267
8344
|
return offset + returnedCount < total;
|
|
8268
8345
|
}
|
|
@@ -10270,6 +10347,69 @@ var init_ai = __esm(() => {
|
|
|
10270
10347
|
init_trigger_tools();
|
|
10271
10348
|
});
|
|
10272
10349
|
|
|
10350
|
+
// src/triggers/types.ts
|
|
10351
|
+
var exports_types = {};
|
|
10352
|
+
__export(exports_types, {
|
|
10353
|
+
WEBHOOK_DELIVERY_TIMEOUT_MS: () => WEBHOOK_DELIVERY_TIMEOUT_MS,
|
|
10354
|
+
MAX_TRIGGER_STEPS: () => MAX_TRIGGER_STEPS
|
|
10355
|
+
});
|
|
10356
|
+
var MAX_TRIGGER_STEPS = 20, WEBHOOK_DELIVERY_TIMEOUT_MS = 1e4;
|
|
10357
|
+
|
|
10358
|
+
// src/triggers/webhooks.ts
|
|
10359
|
+
var exports_webhooks = {};
|
|
10360
|
+
__export(exports_webhooks, {
|
|
10361
|
+
signPayload: () => signPayload,
|
|
10362
|
+
deliverWebhooks: () => deliverWebhooks,
|
|
10363
|
+
deliverWebhook: () => deliverWebhook
|
|
10364
|
+
});
|
|
10365
|
+
async function signPayload(payload, secret) {
|
|
10366
|
+
const encoder = new TextEncoder;
|
|
10367
|
+
const data = encoder.encode(JSON.stringify(payload));
|
|
10368
|
+
const key = await crypto.subtle.importKey("raw", encoder.encode(secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
|
|
10369
|
+
const signature = await crypto.subtle.sign("HMAC", key, data);
|
|
10370
|
+
return Array.from(new Uint8Array(signature)).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
10371
|
+
}
|
|
10372
|
+
async function deliverWebhook(webhook, payload, timeoutMs) {
|
|
10373
|
+
const headers = {
|
|
10374
|
+
"Content-Type": "application/json",
|
|
10375
|
+
...webhook.headers
|
|
10376
|
+
};
|
|
10377
|
+
if (webhook.secret) {
|
|
10378
|
+
headers["X-Webhook-Signature"] = await signPayload(payload, webhook.secret);
|
|
10379
|
+
}
|
|
10380
|
+
const controller = new AbortController;
|
|
10381
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
10382
|
+
try {
|
|
10383
|
+
const response = await fetch(webhook.url, {
|
|
10384
|
+
method: "POST",
|
|
10385
|
+
headers,
|
|
10386
|
+
body: JSON.stringify(payload),
|
|
10387
|
+
signal: controller.signal
|
|
10388
|
+
});
|
|
10389
|
+
if (!response.ok) {
|
|
10390
|
+
logger30.warn(`Webhook delivery to ${webhook.url} returned ${response.status}`);
|
|
10391
|
+
}
|
|
10392
|
+
} finally {
|
|
10393
|
+
clearTimeout(timeout);
|
|
10394
|
+
}
|
|
10395
|
+
}
|
|
10396
|
+
async function deliverWebhooks(webhooks, payload, timeoutMs) {
|
|
10397
|
+
if (webhooks.length === 0)
|
|
10398
|
+
return;
|
|
10399
|
+
const results = await Promise.allSettled(webhooks.map((webhook) => deliverWebhook(webhook, payload, timeoutMs)));
|
|
10400
|
+
for (let i = 0;i < results.length; i++) {
|
|
10401
|
+
const result = results[i];
|
|
10402
|
+
if (result.status === "rejected") {
|
|
10403
|
+
logger30.warn(`Webhook delivery to ${webhooks[i].url} failed:`, result.reason);
|
|
10404
|
+
}
|
|
10405
|
+
}
|
|
10406
|
+
}
|
|
10407
|
+
var logger30;
|
|
10408
|
+
var init_webhooks = __esm(() => {
|
|
10409
|
+
init_logger();
|
|
10410
|
+
logger30 = createLogger("Webhooks", "server");
|
|
10411
|
+
});
|
|
10412
|
+
|
|
10273
10413
|
// src/server.ts
|
|
10274
10414
|
var exports_server = {};
|
|
10275
10415
|
__export(exports_server, {
|
|
@@ -10363,7 +10503,7 @@ function createMCPServer(config) {
|
|
|
10363
10503
|
if (integration.oauth) {
|
|
10364
10504
|
const { clientId, clientSecret, redirectUri: integrationRedirectUri, config: oauthConfig } = integration.oauth;
|
|
10365
10505
|
if (!clientId || !clientSecret) {
|
|
10366
|
-
|
|
10506
|
+
logger31.warn(`Warning: Integration "${integration.id}" is missing OAuth credentials. ` + `Provide clientId and clientSecret in the integration configuration.`);
|
|
10367
10507
|
return integration;
|
|
10368
10508
|
}
|
|
10369
10509
|
const redirectUri = integrationRedirectUri || config.redirectUri || getDefaultRedirectUri();
|
|
@@ -10494,7 +10634,7 @@ function createMCPServer(config) {
|
|
|
10494
10634
|
}
|
|
10495
10635
|
return response2;
|
|
10496
10636
|
} catch (error) {
|
|
10497
|
-
|
|
10637
|
+
logger31.error("[MCP Tool Call] Error:", error);
|
|
10498
10638
|
return Response.json({ error: error.message || "Failed to execute tool call" }, { status: error.statusCode || 500 });
|
|
10499
10639
|
}
|
|
10500
10640
|
}
|
|
@@ -10570,7 +10710,7 @@ function createMCPServer(config) {
|
|
|
10570
10710
|
})
|
|
10571
10711
|
});
|
|
10572
10712
|
} catch (scheduleError) {
|
|
10573
|
-
|
|
10713
|
+
logger31.error("[Trigger] Failed to register with scheduler:", scheduleError);
|
|
10574
10714
|
}
|
|
10575
10715
|
return Response.json(created, { status: 201 });
|
|
10576
10716
|
}
|
|
@@ -10605,7 +10745,7 @@ function createMCPServer(config) {
|
|
|
10605
10745
|
body: JSON.stringify({ triggerId })
|
|
10606
10746
|
});
|
|
10607
10747
|
} catch (error) {
|
|
10608
|
-
|
|
10748
|
+
logger31.error("[Trigger] Failed to pause in scheduler:", error);
|
|
10609
10749
|
}
|
|
10610
10750
|
return Response.json(updated);
|
|
10611
10751
|
} else if (subAction === "resume" && method === "POST") {
|
|
@@ -10633,7 +10773,7 @@ function createMCPServer(config) {
|
|
|
10633
10773
|
body: JSON.stringify({ triggerId })
|
|
10634
10774
|
});
|
|
10635
10775
|
} catch (error) {
|
|
10636
|
-
|
|
10776
|
+
logger31.error("[Trigger] Failed to resume in scheduler:", error);
|
|
10637
10777
|
}
|
|
10638
10778
|
return Response.json(updated);
|
|
10639
10779
|
} else if (subAction === "run" && method === "POST") {
|
|
@@ -10726,6 +10866,60 @@ function createMCPServer(config) {
|
|
|
10726
10866
|
if (!trigger) {
|
|
10727
10867
|
return Response.json({ error: "Trigger not found" }, { status: 404 });
|
|
10728
10868
|
}
|
|
10869
|
+
if (body.stepIndex != null) {
|
|
10870
|
+
const { validateStepLimit: validateStepLimit2 } = await Promise.resolve().then(() => (init_utils2(), exports_utils));
|
|
10871
|
+
const { MAX_TRIGGER_STEPS: MAX_TRIGGER_STEPS2 } = await Promise.resolve().then(() => exports_types);
|
|
10872
|
+
const stepValidation = validateStepLimit2(body.stepIndex, MAX_TRIGGER_STEPS2);
|
|
10873
|
+
if (!stepValidation.valid) {
|
|
10874
|
+
return Response.json({ error: stepValidation.error }, { status: 400 });
|
|
10875
|
+
}
|
|
10876
|
+
}
|
|
10877
|
+
if (config.triggers.onComplete) {
|
|
10878
|
+
try {
|
|
10879
|
+
const completeResponse = await config.triggers.onComplete({
|
|
10880
|
+
trigger,
|
|
10881
|
+
request: body,
|
|
10882
|
+
context: context2
|
|
10883
|
+
});
|
|
10884
|
+
if (completeResponse.hasMore) {
|
|
10885
|
+
return Response.json(completeResponse);
|
|
10886
|
+
}
|
|
10887
|
+
const updates2 = {
|
|
10888
|
+
lastRunAt: body.executedAt,
|
|
10889
|
+
runCount: (trigger.runCount || 0) + 1
|
|
10890
|
+
};
|
|
10891
|
+
if (body.success) {
|
|
10892
|
+
updates2.lastResult = body.result;
|
|
10893
|
+
updates2.lastError = undefined;
|
|
10894
|
+
if (trigger.schedule.type === "once") {
|
|
10895
|
+
updates2.status = "completed";
|
|
10896
|
+
}
|
|
10897
|
+
} else {
|
|
10898
|
+
updates2.lastError = body.error;
|
|
10899
|
+
updates2.status = "failed";
|
|
10900
|
+
}
|
|
10901
|
+
await config.triggers.update(triggerId, updates2, context2);
|
|
10902
|
+
if (completeResponse.webhooks && completeResponse.webhooks.length > 0) {
|
|
10903
|
+
const { deliverWebhooks: deliverWebhooks2 } = await Promise.resolve().then(() => (init_webhooks(), exports_webhooks));
|
|
10904
|
+
const { WEBHOOK_DELIVERY_TIMEOUT_MS: WEBHOOK_DELIVERY_TIMEOUT_MS2 } = await Promise.resolve().then(() => exports_types);
|
|
10905
|
+
const steps = body.previousResults || [];
|
|
10906
|
+
const totalDuration = steps.reduce((sum, s) => sum + (s.duration || 0), 0);
|
|
10907
|
+
const payload = {
|
|
10908
|
+
triggerId,
|
|
10909
|
+
success: body.success,
|
|
10910
|
+
steps,
|
|
10911
|
+
totalSteps: steps.length,
|
|
10912
|
+
totalDuration,
|
|
10913
|
+
executedAt: body.executedAt
|
|
10914
|
+
};
|
|
10915
|
+
deliverWebhooks2(completeResponse.webhooks, payload, WEBHOOK_DELIVERY_TIMEOUT_MS2).catch(() => {});
|
|
10916
|
+
}
|
|
10917
|
+
return Response.json(completeResponse);
|
|
10918
|
+
} catch (error) {
|
|
10919
|
+
logger31.error("onComplete callback error:", error);
|
|
10920
|
+
return Response.json({ error: "Internal server error in onComplete callback" }, { status: 500 });
|
|
10921
|
+
}
|
|
10922
|
+
}
|
|
10729
10923
|
const updates = {
|
|
10730
10924
|
lastRunAt: body.executedAt,
|
|
10731
10925
|
runCount: (trigger.runCount || 0) + 1
|
|
@@ -10774,7 +10968,7 @@ function createMCPServer(config) {
|
|
|
10774
10968
|
})
|
|
10775
10969
|
});
|
|
10776
10970
|
} catch (error) {
|
|
10777
|
-
|
|
10971
|
+
logger31.error("[Trigger] Failed to update scheduler:", error);
|
|
10778
10972
|
}
|
|
10779
10973
|
}
|
|
10780
10974
|
return Response.json(updated);
|
|
@@ -10791,14 +10985,14 @@ function createMCPServer(config) {
|
|
|
10791
10985
|
body: JSON.stringify({ triggerId })
|
|
10792
10986
|
});
|
|
10793
10987
|
} catch (error) {
|
|
10794
|
-
|
|
10988
|
+
logger31.error("[Trigger] Failed to unregister from scheduler:", error);
|
|
10795
10989
|
}
|
|
10796
10990
|
return new Response(null, { status: 204 });
|
|
10797
10991
|
}
|
|
10798
10992
|
}
|
|
10799
10993
|
return Response.json({ error: "Invalid trigger route or method" }, { status: 404 });
|
|
10800
10994
|
} catch (error) {
|
|
10801
|
-
|
|
10995
|
+
logger31.error("[Trigger] Error:", error);
|
|
10802
10996
|
return Response.json({ error: error.message || "Failed to process trigger request" }, { status: error.statusCode || 500 });
|
|
10803
10997
|
}
|
|
10804
10998
|
}
|
|
@@ -10824,11 +11018,11 @@ function createMCPServer(config) {
|
|
|
10824
11018
|
const errorRedirectUrl = "/auth-error";
|
|
10825
11019
|
if (error) {
|
|
10826
11020
|
const errorMsg = errorDescription || error;
|
|
10827
|
-
|
|
11021
|
+
logger31.error("[OAuth Redirect] Error:", errorMsg);
|
|
10828
11022
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, webRequest.url));
|
|
10829
11023
|
}
|
|
10830
11024
|
if (!code || !state) {
|
|
10831
|
-
|
|
11025
|
+
logger31.error("[OAuth Redirect] Missing code or state parameter");
|
|
10832
11026
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, webRequest.url));
|
|
10833
11027
|
}
|
|
10834
11028
|
let returnUrl = defaultRedirectUrl;
|
|
@@ -10904,7 +11098,7 @@ function createMCPServer(config) {
|
|
|
10904
11098
|
frontendUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state, tokenData }))}`;
|
|
10905
11099
|
return Response.redirect(frontendUrl);
|
|
10906
11100
|
} catch (error2) {
|
|
10907
|
-
|
|
11101
|
+
logger31.error("[OAuth Backend Callback] Error:", error2);
|
|
10908
11102
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, webRequest.url));
|
|
10909
11103
|
}
|
|
10910
11104
|
} else {
|
|
@@ -11123,7 +11317,7 @@ function toSvelteKitHandler(clientOrHandlerOrOptions, _redirectOptions) {
|
|
|
11123
11317
|
}
|
|
11124
11318
|
};
|
|
11125
11319
|
}
|
|
11126
|
-
var SERVER_LOG_CONTEXT2 = "server",
|
|
11320
|
+
var SERVER_LOG_CONTEXT2 = "server", logger31, globalServerConfig = null, codeVerifierStorage, POST = async (req, context) => {
|
|
11127
11321
|
if (!globalServerConfig) {
|
|
11128
11322
|
return Response.json({ error: "OAuth not configured. Call createMCPServer() in your server initialization file first." }, { status: 500 });
|
|
11129
11323
|
}
|
|
@@ -11171,7 +11365,7 @@ var init_server = __esm(() => {
|
|
|
11171
11365
|
init_anthropic();
|
|
11172
11366
|
init_google();
|
|
11173
11367
|
init_ai();
|
|
11174
|
-
|
|
11368
|
+
logger31 = createLogger("MCPServer", SERVER_LOG_CONTEXT2);
|
|
11175
11369
|
codeVerifierStorage = new Map;
|
|
11176
11370
|
});
|
|
11177
11371
|
|
|
@@ -11684,11 +11878,11 @@ class OAuthHandler {
|
|
|
11684
11878
|
try {
|
|
11685
11879
|
await this.config.removeProviderToken(request.provider, undefined, context);
|
|
11686
11880
|
} catch (error) {
|
|
11687
|
-
|
|
11881
|
+
logger32.error(`Failed to delete token for ${request.provider} from database via removeProviderToken:`, error);
|
|
11688
11882
|
}
|
|
11689
11883
|
}
|
|
11690
11884
|
} catch (error) {
|
|
11691
|
-
|
|
11885
|
+
logger32.error(`Failed to extract context for disconnect:`, error);
|
|
11692
11886
|
}
|
|
11693
11887
|
}
|
|
11694
11888
|
const url = new URL("/oauth/disconnect", this.serverUrl);
|
|
@@ -11748,10 +11942,10 @@ class OAuthHandler {
|
|
|
11748
11942
|
return jsonRpcResponse.result;
|
|
11749
11943
|
}
|
|
11750
11944
|
}
|
|
11751
|
-
var SERVER_LOG_CONTEXT3 = "server",
|
|
11945
|
+
var SERVER_LOG_CONTEXT3 = "server", logger32, MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
|
|
11752
11946
|
var init_base_handler = __esm(() => {
|
|
11753
11947
|
init_logger();
|
|
11754
|
-
|
|
11948
|
+
logger32 = createLogger("OAuthHandler", SERVER_LOG_CONTEXT3);
|
|
11755
11949
|
});
|
|
11756
11950
|
|
|
11757
11951
|
// src/index.ts
|
|
@@ -11764,7 +11958,7 @@ init_nextjs();
|
|
|
11764
11958
|
// src/adapters/nextjs-oauth-redirect.ts
|
|
11765
11959
|
init_logger();
|
|
11766
11960
|
var SERVER_LOG_CONTEXT4 = "server";
|
|
11767
|
-
var
|
|
11961
|
+
var logger33 = createLogger("OAuthRedirect", SERVER_LOG_CONTEXT4);
|
|
11768
11962
|
function createOAuthRedirectHandler(config) {
|
|
11769
11963
|
const defaultRedirectUrl = config?.redirectUrl || "/";
|
|
11770
11964
|
const errorRedirectUrl = config?.errorRedirectUrl || "/auth-error";
|
|
@@ -11776,11 +11970,11 @@ function createOAuthRedirectHandler(config) {
|
|
|
11776
11970
|
const errorDescription = searchParams.get("error_description");
|
|
11777
11971
|
if (error) {
|
|
11778
11972
|
const errorMsg = errorDescription || error;
|
|
11779
|
-
|
|
11973
|
+
logger33.error("[OAuth Redirect] Error:", errorMsg);
|
|
11780
11974
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, req.url));
|
|
11781
11975
|
}
|
|
11782
11976
|
if (!code || !state) {
|
|
11783
|
-
|
|
11977
|
+
logger33.error("[OAuth Redirect] Missing code or state parameter");
|
|
11784
11978
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, req.url));
|
|
11785
11979
|
}
|
|
11786
11980
|
let returnUrl = defaultRedirectUrl;
|
|
@@ -11860,6 +12054,8 @@ init_intercom();
|
|
|
11860
12054
|
init_hubspot();
|
|
11861
12055
|
init_youtube();
|
|
11862
12056
|
init_cursor();
|
|
12057
|
+
init_utils2();
|
|
12058
|
+
init_webhooks();
|
|
11863
12059
|
init_generic();
|
|
11864
12060
|
init_messages();
|
|
11865
12061
|
init_http_session();
|
|
@@ -11922,6 +12118,7 @@ export {
|
|
|
11922
12118
|
youtubeIntegration,
|
|
11923
12119
|
whatsappIntegration,
|
|
11924
12120
|
vercelIntegration,
|
|
12121
|
+
validateStepLimit,
|
|
11925
12122
|
todoistIntegration,
|
|
11926
12123
|
toWebRequest,
|
|
11927
12124
|
toTanStackStartHandler,
|
|
@@ -11955,6 +12152,7 @@ export {
|
|
|
11955
12152
|
gcalIntegration,
|
|
11956
12153
|
fromNodeHeaders,
|
|
11957
12154
|
figmaIntegration,
|
|
12155
|
+
deliverWebhooks,
|
|
11958
12156
|
cursorIntegration,
|
|
11959
12157
|
createTanStackOAuthHandler,
|
|
11960
12158
|
createSimpleIntegration,
|
|
@@ -11965,6 +12163,7 @@ export {
|
|
|
11965
12163
|
clearClientCache,
|
|
11966
12164
|
calcomIntegration,
|
|
11967
12165
|
airtableIntegration,
|
|
12166
|
+
WEBHOOK_DELIVERY_TIMEOUT_MS,
|
|
11968
12167
|
TriggerClient,
|
|
11969
12168
|
ToolCallError,
|
|
11970
12169
|
TokenExpiredError,
|
|
@@ -11973,6 +12172,7 @@ export {
|
|
|
11973
12172
|
OAuthHandler,
|
|
11974
12173
|
MCPMethod,
|
|
11975
12174
|
MCPClientBase,
|
|
12175
|
+
MAX_TRIGGER_STEPS,
|
|
11976
12176
|
IntegrateSDKError,
|
|
11977
12177
|
HttpSessionTransport,
|
|
11978
12178
|
ConnectionError,
|