@tangle-network/agent-integrations 0.38.0 → 0.40.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/README.md +2 -2
- package/dist/catalog.js +3 -3
- package/dist/{chunk-FC7GL2DI.js → chunk-4GZU3PB5.js} +6 -4
- package/dist/{chunk-FC7GL2DI.js.map → chunk-4GZU3PB5.js.map} +1 -1
- package/dist/{chunk-ZMAMOCJZ.js → chunk-4TI3WXAD.js} +1847 -1595
- package/dist/{chunk-ZMAMOCJZ.js.map → chunk-4TI3WXAD.js.map} +1 -1
- package/dist/{chunk-53NQJZAT.js → chunk-IA5GCKM6.js} +2 -3
- package/dist/chunk-IA5GCKM6.js.map +1 -0
- package/dist/connectors/adapters/index.d.ts +87 -94
- package/dist/connectors/adapters/index.js +7 -11
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +7 -11
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -13
- package/dist/mcp.js +3 -3
- package/dist/registry.js +3 -3
- package/dist/{router-BncoovUh.d.ts → router-S0Dadv2x.d.ts} +10 -0
- package/dist/runtime.js +3 -3
- package/dist/specs.js +1 -1
- package/dist/stripe/index.d.ts +1 -1
- package/dist/webhooks/index.d.ts +14 -3
- package/dist/webhooks/index.js +128 -2
- package/dist/webhooks/index.js.map +1 -1
- package/docs/adapter-triage.md +3 -3
- package/docs/catalog-registry.md +1 -1
- package/package.json +1 -1
- package/dist/chunk-53NQJZAT.js.map +0 -1
package/dist/connectors/index.js
CHANGED
|
@@ -175,6 +175,7 @@ import {
|
|
|
175
175
|
gitlabConnector,
|
|
176
176
|
glideConnector,
|
|
177
177
|
gmail,
|
|
178
|
+
googleAnalyticsConnector,
|
|
178
179
|
googleBigqueryConnector,
|
|
179
180
|
googleCalendar,
|
|
180
181
|
googleCloudStorageConnector,
|
|
@@ -183,6 +184,7 @@ import {
|
|
|
183
184
|
googleDrive,
|
|
184
185
|
googleForms,
|
|
185
186
|
googleGeminiConnector,
|
|
187
|
+
googleMeetConnector,
|
|
186
188
|
googleMyBusinessConnector,
|
|
187
189
|
googleSearchConnector,
|
|
188
190
|
googleSearchConsoleConnector,
|
|
@@ -298,12 +300,8 @@ import {
|
|
|
298
300
|
microsoftDynamicsCrmConnector,
|
|
299
301
|
microsoftExcel365Connector,
|
|
300
302
|
microsoftGraph,
|
|
301
|
-
microsoftOnedriveConnector,
|
|
302
303
|
microsoftOnenoteConnector,
|
|
303
|
-
microsoftOutlookCalendarConnector,
|
|
304
|
-
microsoftOutlookConnector,
|
|
305
304
|
microsoftPowerBiConnector,
|
|
306
|
-
microsoftSharepointConnector,
|
|
307
305
|
microsoftTeams,
|
|
308
306
|
microsoftTodoConnector,
|
|
309
307
|
millionverifierConnector,
|
|
@@ -321,8 +319,8 @@ import {
|
|
|
321
319
|
niftyConnector,
|
|
322
320
|
ninjapipeConnector,
|
|
323
321
|
nocodbConnector,
|
|
322
|
+
notion,
|
|
324
323
|
notionConnector,
|
|
325
|
-
notionDatabase,
|
|
326
324
|
ntfyConnector,
|
|
327
325
|
odooConnector,
|
|
328
326
|
omniCoConnector,
|
|
@@ -497,7 +495,7 @@ import {
|
|
|
497
495
|
zohoCrmConnector,
|
|
498
496
|
zohoDeskConnector,
|
|
499
497
|
zuoraConnector
|
|
500
|
-
} from "../chunk-
|
|
498
|
+
} from "../chunk-4TI3WXAD.js";
|
|
501
499
|
import {
|
|
502
500
|
DEFAULT_SIGNATURE_TOLERANCE_SECONDS,
|
|
503
501
|
firstHeader,
|
|
@@ -706,6 +704,7 @@ export {
|
|
|
706
704
|
gitlabConnector,
|
|
707
705
|
glideConnector,
|
|
708
706
|
gmail,
|
|
707
|
+
googleAnalyticsConnector,
|
|
709
708
|
googleBigqueryConnector,
|
|
710
709
|
googleCalendar,
|
|
711
710
|
googleCloudStorageConnector,
|
|
@@ -714,6 +713,7 @@ export {
|
|
|
714
713
|
googleDrive,
|
|
715
714
|
googleForms,
|
|
716
715
|
googleGeminiConnector,
|
|
716
|
+
googleMeetConnector,
|
|
717
717
|
googleMyBusinessConnector,
|
|
718
718
|
googleSearchConnector,
|
|
719
719
|
googleSearchConsoleConnector,
|
|
@@ -829,12 +829,8 @@ export {
|
|
|
829
829
|
microsoftDynamicsCrmConnector,
|
|
830
830
|
microsoftExcel365Connector,
|
|
831
831
|
microsoftGraph,
|
|
832
|
-
microsoftOnedriveConnector,
|
|
833
832
|
microsoftOnenoteConnector,
|
|
834
|
-
microsoftOutlookCalendarConnector,
|
|
835
|
-
microsoftOutlookConnector,
|
|
836
833
|
microsoftPowerBiConnector,
|
|
837
|
-
microsoftSharepointConnector,
|
|
838
834
|
microsoftTeams,
|
|
839
835
|
microsoftTodoConnector,
|
|
840
836
|
millionverifierConnector,
|
|
@@ -852,8 +848,8 @@ export {
|
|
|
852
848
|
niftyConnector,
|
|
853
849
|
ninjapipeConnector,
|
|
854
850
|
nocodbConnector,
|
|
851
|
+
notion,
|
|
855
852
|
notionConnector,
|
|
856
|
-
notionDatabase,
|
|
857
853
|
ntfyConnector,
|
|
858
854
|
odooConnector,
|
|
859
855
|
omniCoConnector,
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { b as IntegrationErrorCode, I as IntegrationRuntimeError, a as Integrati
|
|
|
12
12
|
export { ConnectFlowOptions, FinishConnectInput, FinishConnectOutput, InMemoryConnectStateStore, StartConnectInput, StartConnectOutput, finishConnectFlow, revokeConnectFlow, startConnectFlow } from './connect/index.js';
|
|
13
13
|
export { ExpressLikeRequest, ExpressLikeResponse, HonoLikeContext, RequireTangleAuthOptions, TangleAuthContext, TangleAuthOutcome, TangleAuthReason, expressTangleAuthMiddleware, extractToken, honoTangleAuthMiddleware, requireTangleAuth } from './middleware/index.js';
|
|
14
14
|
export { DEFAULT_SIGNATURE_TOLERANCE_SECONDS, ExchangeCodeInput, GenericHmacVerifyOptions, InMemoryOAuthFlowStore, OAuthFlowStore, OAuthTokens, ParsedStripeSignatureHeader, PendingOAuthFlow, RefreshInput, SlackVerifyOptions, StartOAuthInput, StartOAuthOutput, StripeVerifyOptions, TwilioVerifyOptions, _resetPendingFlowsForTests, consumePendingFlow, exchangeAuthorizationCode, firstHeader, parseStripeSignatureHeader, refreshAccessToken, startOAuthFlow, verifyHmacSignature, verifySlackSignature, verifyStripeSignature, verifyTwilioSignature } from './connectors/index.js';
|
|
15
|
-
export { DocuSealOptions, EtsyOptions, GmailOptions, GoogleCalendarOptions, GoogleDocsOptions, GoogleDriveOptions, GoogleFormsOptions, GoogleSheetsOptions, HelloSignOptions, HubSpotOptions, MicrosoftCalendarOptions, MicrosoftGraphOptions, MicrosoftTeamsOptions, NotionDatabaseOptions, OneDriveOptions, OutlookMailOptions, PandaDocOptions, RestConnectorSpec, RestCredentialPlacement, RestOperationSpec, RestRequestSpec, SharePointOptions, SlackOptions, TELEGRAM_FILE_DOWNLOAD_ROOT, TwitterOptions, WhatsappBusinessOptions, activecampaignConnector, acumbamailConnector, adobeCreativeCloudConnector, afforaiConnector, agentxConnector, aidbaseConnector, aipriseConnector, airOpsConnector, aircallConnector, airtableConnector, airtopConnector, alaiConnector, altTextAiConnector, alttextifyConnector, amazonBedrockConnector, amazonSecretsManagerConnector, amazonSesConnector, amazonSnsConnector, amazonSqsConnector, amazonTextractConnector, aminosConnector, ampecoConnector, anthropicConnector, apitableConnector, apitemplateIoConnector, apolloConnector, appfollowConnector, asanaConnector, ashbyConnector, asknewsConnector, assemblyaiConnector, attioConnector, auth0Connector, autocallsConnector, avianConnector, avomaConnector, azureAdConnector, azureCommunicationServicesConnector, azureOpenaiConnector, backblazeConnector, bamboohrConnector, barcodeLookupConnector, baremetricsConnector, basecampConnector, beamerConnector, bettermodeConnector, bexioConnector, bigcommerceConnector, biginByZohoConnector, billplzConnector, bitlyConnector, blandAiConnector, blueskyConnector, bolnaConnector, bonjoroConnector, bookedinConnector, boxConnector, braveSearchConnector, brazeConnector, brilliantDirectoriesConnector, browseAiConnector, calComConnector, calendlyConnector, campaignMonitorConnector, cannyConnector, canvaConnector, capsuleCrmConnector, captainDataConnector, cashfreePaymentsConnector, certopusConnector, chainalysisApiConnector, chargebeeConnector, chargekeepConnector, chartlyConnector, chatDataConnector, chatbaseConnector, chatlingConnector, chatnodeConnector, chatwootConnector, checkoutConnector, circleConnector, clearoutConnector, clicdataConnector, clickupConnector, clioConnector, clockifyConnector, clockodoConnector, closeConnector, cloudconvertConnector, cloudinaryConnector, cloutlyConnector, codaConnector, cognitoFormsConnector, cohereConnector, cometapiConnector, comfyicuConnector, confluenceConnector, constantContactConnector, contentfulConnector, convertkitConnector, copperConnector, copyAiConnector, crispConnector, cryptolensConnector, customerIoConnector, customgptConnector, dashworksConnector, datadogConnector, datafuelConnector, datocmsConnector, declarativeRestConnector, deepseekConnector, denserAiConnector, descriptConnector, devinConnector, discordConnector, dittofeedConnector, doctlyConnector, documentproConnector, documergeConnector, docuseal, docusignConnector, dropboxConnector, dubConnector, dumplingAiConnector, dustConnector, easyPeasyAiConnector, ebayConnector, edenAiConnector, elasticEmailConnector, emailitConnector, emailoctopusConnector, enrichlayerConnector, esignaturesConnector, etsyConnector, exaConnector, facebookLeadsConnector, facebookPagesConnector, fathomAnalyticsConnector, fathomConnector, figjamConnector, figmaConnector, filloutFormsConnector, firebaseConnector, fireberryConnector, firecrawlConnector, firefliesAiConnector, flipandoConnector, flowiseConnector, flowluConnector, folkConnector, foreplayCoConnector, formbricksConnector, formstackConnector, fountainConnector, fragmentConnector, frameConnector, freeAgentConnector, freshsalesConnector, freshserviceConnector, frontConnector, gameballConnector, geminiConnector, ghostcmsConnector, gistlyConnector, giteaConnector, githubConnector, gitlabConnector, glideConnector, gmail, googleBigqueryConnector, googleCalendar, googleCloudStorageConnector, googleContactsConnector, googleDocs, googleDrive, googleForms, googleGeminiConnector, googleMyBusinessConnector, googleSearchConnector, googleSearchConsoleConnector, googleSheets, googleSlidesConnector, googleTasksConnector, googleVertexaiConnector, googlechatConnector, gorgiasConnector, gotifyConnector, gptzeroDetectAiConnector, granolaConnector, greenhouseConnector, greenptConnector, greipConnector, griptapeConnector, gristConnector, guideliteConnector, gustoConnector, harvestConnector, hashiCorpVaultConnector, hastewireConnector, heartbeatConnector, hedyConnector, hellosign, helpscoutConnector, heygenConnector, heymarketSmsConnector, housecallProConnector, hubspot, huggingFaceConnector, huggingfaceConnector, humeAiConnector, hunterConnector, hystructConnector, ibmCognoseConnector, imageRouterConnector, imapConnector, influencersClubConnector, insightlyConnector, insightoAiConnector, instaChartsConnector, instantlyAiConnector, instasentConnector, intercomConnector, invoiceninjaConnector, jinaAiConnector, jiraCloudConnector, jiraDataCenterConnector, joggAiConnector, jotformConnector, justInvoiceConnector, kallabotAiConnector, kapsoConnector, kimaiConnector, kissflowConnector, kizeoFormsConnector, klaviyoConnector, klentyConnector, knackConnector, knockConnector, koFiConnector, kommoConnector, kudosityConnector, kustomerConnector, leadConnectorConnector, leapAiConnector, leexiConnector, lemlistConnector, lemonSqueezyConnector, letsCalendarConnector, lettaConnector, leverConnector, lightfunnelsConnector, linearConnector, linkaConnector, linkupConnector, llmrailsConnector, lobstermailConnector, localaiConnector, loftyConnector, logrocketConnector, logsnagConnector, lokaliseConnector, loopsConnector, lucidyaConnector, lushaConnector, luxuryPresenceConnector, magicalApiConnector, mailchainConnector, mailchimpConnector, mailerLiteConnector, mailercheckConnector, mailerooConnector, mailgunConnector, makeConnector, manychatConnector, marketoConnector, mastodonConnector, matomoConnector, matrixConnector, mattermostConnector, mauticConnector, medullarConnector, meetgeekAiConnector, memConnector, messagebirdConnector, metabaseConnector, microsoft365PeopleConnector, microsoft365PlannerConnector, microsoftCalendar, microsoftDynamics365BusinessCentralConnector, microsoftDynamicsCrmConnector, microsoftExcel365Connector, microsoftGraph, microsoftOnedriveConnector, microsoftOnenoteConnector, microsoftOutlookCalendarConnector, microsoftOutlookConnector, microsoftPowerBiConnector, microsoftSharepointConnector, microsoftTeams, microsoftTodoConnector, millionverifierConnector, mindStudioConnector, mindeeConnector, miroConnector, missiveConnector, mixmaxConnector, mixpanelConnector, mollieConnector, mondayConnector, mongodbConnector, n8nConnector, netlifyConnector, niftyConnector, ninjapipeConnector, nocodbConnector, notionConnector, notionDatabase, ntfyConnector, odooConnector, omniCoConnector, omnihrConnector, oneDrive, openPhoneConnector, openRouterConnector, openaiConnector, openmicAiConnector, opnformConnector, opportifyConnector, opsgenieConnector, oracleDatabaseConnector, orimonConnector, outlookMail, paddleConnector, pagerdutyConnector, pandadoc, paperformConnector, parseurConnector, pastefyConnector, paywhirlConnector, pdfmonkeyConnector, peekshotConnector, perplexityAiConnector, personalAiConnector, phonyConnector, pinchPaymentsConnector, pineconeConnector, pipedreamConnector, pipedriveConnector, placidConnector, plausibleConnector, pocketbaseConnector, pollybotAiConnector, postgresConnector, posthogConnector, postizConnector, postmarkConnector, predictLeadsConnector, productboardConnector, proxycurlConnector, pushbulletConnector, pushoverConnector, qawafelConnector, qdrantConnector, quadernoConnector, quickbooksConnector, quickzuConnector, raiaAiConnector, rapidtextAiConnector, reachinboxConnector, recallAiConnector, redditConnector, reoonVerifierConnector, replyIoConnector, retableConnector, retellAiConnector, ripplingConnector, robollyConnector, runwareConnector, saasticConnector, saleorConnector, salesforceConnector, sanityConnector, sardisConnector, savvycalConnector, scrapegraphaiConnector, scrapelessConnector, seekTableConnector, sendgridConnector, sendinblueConnector, sendpulseConnector, senjaConnector, sentryConnector, serpstatConnector, serviceNowConnector, sharepoint, shippoConnector, shopifyConnector, shortIoConnector, signNowConnector, signrequestConnector, simplirouteConnector, simplybookmeConnector, skyprepConnector, slack, slackEventsConnector, smartleadConnector, smartsheetConnector, smartsuiteConnector, smooveConnector, smsmodeConnector, snowflakeConnector, socialkitConnector, squareConnector, stripeConnector, stripePackConnector, stripeWebhookReceiverConnector, supabaseConnector, supadataConnector, swarmnodeConnector, systemeIoConnector, tableauConnector, talkableConnector, tallyConnector, teableConnector, telegramConnector, telnyxConnector, tenzoConnector, textcortexAiConnector, ticktickConnector, timeOpsConnector, timelinesAiConnector, tlDvConnector, todoistConnector, togglTrackConnector, totalcmsConnector, trelloConnector, twentyConnector, twilioConnector, twilioSmsConnector, twinLabsConnector, twitter, twitterConnector, typeformConnector, typefullyConnector, umamiConnector, upgradechatConnector, uscreenConnector, validatedmailsConnector, vapiConnector, vboutConnector, vercelConnector, videoaskConnector, vidlab7Connector, vlmRunConnector, voucheryIoConnector, vtexConnector, vtigerConnector, wafeqConnector, weaviateConnector, webflowConnector, webhookConnector, webscrapingAiConnector, whatConvertsConnector, whatsappBusiness, whatsappConnector, whatsscaleConnector, wonderchatConnector, woocommerceConnector, woodpeckerConnector, wootricConnector, wordpressConnector, workableConnector, workdayConnector, wrikeConnector, writesonicBulkConnector, wufooConnector, xeroConnector, youcanbookmeConnector, youtubeDataConnector, zagomailConnector, zapierConnector, zendeskConnector, zendeskSellConnector, zeplinConnector, zerobounceConnector, zohoBookingsConnector, zohoCrmConnector, zohoDeskConnector, zuoraConnector } from './connectors/adapters/index.js';
|
|
15
|
+
export { DocuSealOptions, EtsyOptions, GmailOptions, GoogleCalendarOptions, GoogleDocsOptions, GoogleDriveOptions, GoogleFormsOptions, GoogleSheetsOptions, HelloSignOptions, HubSpotOptions, MicrosoftCalendarOptions, MicrosoftGraphOptions, MicrosoftTeamsOptions, NotionOptions, OneDriveOptions, OutlookMailOptions, PandaDocOptions, RestConnectorSpec, RestCredentialPlacement, RestOperationSpec, RestRequestSpec, SharePointOptions, SlackOptions, TELEGRAM_FILE_DOWNLOAD_ROOT, TwitterOptions, WhatsappBusinessOptions, activecampaignConnector, acumbamailConnector, adobeCreativeCloudConnector, afforaiConnector, agentxConnector, aidbaseConnector, aipriseConnector, airOpsConnector, aircallConnector, airtableConnector, airtopConnector, alaiConnector, altTextAiConnector, alttextifyConnector, amazonBedrockConnector, amazonSecretsManagerConnector, amazonSesConnector, amazonSnsConnector, amazonSqsConnector, amazonTextractConnector, aminosConnector, ampecoConnector, anthropicConnector, apitableConnector, apitemplateIoConnector, apolloConnector, appfollowConnector, asanaConnector, ashbyConnector, asknewsConnector, assemblyaiConnector, attioConnector, auth0Connector, autocallsConnector, avianConnector, avomaConnector, azureAdConnector, azureCommunicationServicesConnector, azureOpenaiConnector, backblazeConnector, bamboohrConnector, barcodeLookupConnector, baremetricsConnector, basecampConnector, beamerConnector, bettermodeConnector, bexioConnector, bigcommerceConnector, biginByZohoConnector, billplzConnector, bitlyConnector, blandAiConnector, blueskyConnector, bolnaConnector, bonjoroConnector, bookedinConnector, boxConnector, braveSearchConnector, brazeConnector, brilliantDirectoriesConnector, browseAiConnector, calComConnector, calendlyConnector, campaignMonitorConnector, cannyConnector, canvaConnector, capsuleCrmConnector, captainDataConnector, cashfreePaymentsConnector, certopusConnector, chainalysisApiConnector, chargebeeConnector, chargekeepConnector, chartlyConnector, chatDataConnector, chatbaseConnector, chatlingConnector, chatnodeConnector, chatwootConnector, checkoutConnector, circleConnector, clearoutConnector, clicdataConnector, clickupConnector, clioConnector, clockifyConnector, clockodoConnector, closeConnector, cloudconvertConnector, cloudinaryConnector, cloutlyConnector, codaConnector, cognitoFormsConnector, cohereConnector, cometapiConnector, comfyicuConnector, confluenceConnector, constantContactConnector, contentfulConnector, convertkitConnector, copperConnector, copyAiConnector, crispConnector, cryptolensConnector, customerIoConnector, customgptConnector, dashworksConnector, datadogConnector, datafuelConnector, datocmsConnector, declarativeRestConnector, deepseekConnector, denserAiConnector, descriptConnector, devinConnector, discordConnector, dittofeedConnector, doctlyConnector, documentproConnector, documergeConnector, docuseal, docusignConnector, dropboxConnector, dubConnector, dumplingAiConnector, dustConnector, easyPeasyAiConnector, ebayConnector, edenAiConnector, elasticEmailConnector, emailitConnector, emailoctopusConnector, enrichlayerConnector, esignaturesConnector, etsyConnector, exaConnector, facebookLeadsConnector, facebookPagesConnector, fathomAnalyticsConnector, fathomConnector, figjamConnector, figmaConnector, filloutFormsConnector, firebaseConnector, fireberryConnector, firecrawlConnector, firefliesAiConnector, flipandoConnector, flowiseConnector, flowluConnector, folkConnector, foreplayCoConnector, formbricksConnector, formstackConnector, fountainConnector, fragmentConnector, frameConnector, freeAgentConnector, freshsalesConnector, freshserviceConnector, frontConnector, gameballConnector, geminiConnector, ghostcmsConnector, gistlyConnector, giteaConnector, githubConnector, gitlabConnector, glideConnector, gmail, googleAnalyticsConnector, googleBigqueryConnector, googleCalendar, googleCloudStorageConnector, googleContactsConnector, googleDocs, googleDrive, googleForms, googleGeminiConnector, googleMeetConnector, googleMyBusinessConnector, googleSearchConnector, googleSearchConsoleConnector, googleSheets, googleSlidesConnector, googleTasksConnector, googleVertexaiConnector, googlechatConnector, gorgiasConnector, gotifyConnector, gptzeroDetectAiConnector, granolaConnector, greenhouseConnector, greenptConnector, greipConnector, griptapeConnector, gristConnector, guideliteConnector, gustoConnector, harvestConnector, hashiCorpVaultConnector, hastewireConnector, heartbeatConnector, hedyConnector, hellosign, helpscoutConnector, heygenConnector, heymarketSmsConnector, housecallProConnector, hubspot, huggingFaceConnector, huggingfaceConnector, humeAiConnector, hunterConnector, hystructConnector, ibmCognoseConnector, imageRouterConnector, imapConnector, influencersClubConnector, insightlyConnector, insightoAiConnector, instaChartsConnector, instantlyAiConnector, instasentConnector, intercomConnector, invoiceninjaConnector, jinaAiConnector, jiraCloudConnector, jiraDataCenterConnector, joggAiConnector, jotformConnector, justInvoiceConnector, kallabotAiConnector, kapsoConnector, kimaiConnector, kissflowConnector, kizeoFormsConnector, klaviyoConnector, klentyConnector, knackConnector, knockConnector, koFiConnector, kommoConnector, kudosityConnector, kustomerConnector, leadConnectorConnector, leapAiConnector, leexiConnector, lemlistConnector, lemonSqueezyConnector, letsCalendarConnector, lettaConnector, leverConnector, lightfunnelsConnector, linearConnector, linkaConnector, linkupConnector, llmrailsConnector, lobstermailConnector, localaiConnector, loftyConnector, logrocketConnector, logsnagConnector, lokaliseConnector, loopsConnector, lucidyaConnector, lushaConnector, luxuryPresenceConnector, magicalApiConnector, mailchainConnector, mailchimpConnector, mailerLiteConnector, mailercheckConnector, mailerooConnector, mailgunConnector, makeConnector, manychatConnector, marketoConnector, mastodonConnector, matomoConnector, matrixConnector, mattermostConnector, mauticConnector, medullarConnector, meetgeekAiConnector, memConnector, messagebirdConnector, metabaseConnector, microsoft365PeopleConnector, microsoft365PlannerConnector, microsoftCalendar, microsoftDynamics365BusinessCentralConnector, microsoftDynamicsCrmConnector, microsoftExcel365Connector, microsoftGraph, microsoftOnenoteConnector, microsoftPowerBiConnector, microsoftTeams, microsoftTodoConnector, millionverifierConnector, mindStudioConnector, mindeeConnector, miroConnector, missiveConnector, mixmaxConnector, mixpanelConnector, mollieConnector, mondayConnector, mongodbConnector, n8nConnector, netlifyConnector, niftyConnector, ninjapipeConnector, nocodbConnector, notion, notionConnector, ntfyConnector, odooConnector, omniCoConnector, omnihrConnector, oneDrive, openPhoneConnector, openRouterConnector, openaiConnector, openmicAiConnector, opnformConnector, opportifyConnector, opsgenieConnector, oracleDatabaseConnector, orimonConnector, outlookMail, paddleConnector, pagerdutyConnector, pandadoc, paperformConnector, parseurConnector, pastefyConnector, paywhirlConnector, pdfmonkeyConnector, peekshotConnector, perplexityAiConnector, personalAiConnector, phonyConnector, pinchPaymentsConnector, pineconeConnector, pipedreamConnector, pipedriveConnector, placidConnector, plausibleConnector, pocketbaseConnector, pollybotAiConnector, postgresConnector, posthogConnector, postizConnector, postmarkConnector, predictLeadsConnector, productboardConnector, proxycurlConnector, pushbulletConnector, pushoverConnector, qawafelConnector, qdrantConnector, quadernoConnector, quickbooksConnector, quickzuConnector, raiaAiConnector, rapidtextAiConnector, reachinboxConnector, recallAiConnector, redditConnector, reoonVerifierConnector, replyIoConnector, retableConnector, retellAiConnector, ripplingConnector, robollyConnector, runwareConnector, saasticConnector, saleorConnector, salesforceConnector, sanityConnector, sardisConnector, savvycalConnector, scrapegraphaiConnector, scrapelessConnector, seekTableConnector, sendgridConnector, sendinblueConnector, sendpulseConnector, senjaConnector, sentryConnector, serpstatConnector, serviceNowConnector, sharepoint, shippoConnector, shopifyConnector, shortIoConnector, signNowConnector, signrequestConnector, simplirouteConnector, simplybookmeConnector, skyprepConnector, slack, slackEventsConnector, smartleadConnector, smartsheetConnector, smartsuiteConnector, smooveConnector, smsmodeConnector, snowflakeConnector, socialkitConnector, squareConnector, stripeConnector, stripePackConnector, stripeWebhookReceiverConnector, supabaseConnector, supadataConnector, swarmnodeConnector, systemeIoConnector, tableauConnector, talkableConnector, tallyConnector, teableConnector, telegramConnector, telnyxConnector, tenzoConnector, textcortexAiConnector, ticktickConnector, timeOpsConnector, timelinesAiConnector, tlDvConnector, todoistConnector, togglTrackConnector, totalcmsConnector, trelloConnector, twentyConnector, twilioConnector, twilioSmsConnector, twinLabsConnector, twitter, twitterConnector, typeformConnector, typefullyConnector, umamiConnector, upgradechatConnector, uscreenConnector, validatedmailsConnector, vapiConnector, vboutConnector, vercelConnector, videoaskConnector, vidlab7Connector, vlmRunConnector, voucheryIoConnector, vtexConnector, vtigerConnector, wafeqConnector, weaviateConnector, webflowConnector, webhookConnector, webscrapingAiConnector, whatConvertsConnector, whatsappBusiness, whatsappConnector, whatsscaleConnector, wonderchatConnector, woocommerceConnector, woodpeckerConnector, wootricConnector, wordpressConnector, workableConnector, workdayConnector, wrikeConnector, writesonicBulkConnector, wufooConnector, xeroConnector, youcanbookmeConnector, youtubeDataConnector, zagomailConnector, zapierConnector, zendeskConnector, zendeskSellConnector, zeplinConnector, zerobounceConnector, zohoBookingsConnector, zohoCrmConnector, zohoDeskConnector, zuoraConnector } from './connectors/adapters/index.js';
|
|
16
16
|
export { D as DEFAULT_TANGLE_PLATFORM_URL, d as TANGLE_API_KEY_PREFIX, e as TANGLE_SERVICE_TOKEN_PREFIX, b as TangleIdentityClient, T as TangleIdentityOptions, f as TangleIdentityUnreachableError, c as TangleTokenVerifyFailure, g as TangleTokenVerifyResult, a as TangleUserSummary, h as TangleWorkspaceSummary, i as createTangleIdentityClient, t as tangleIdentity } from './tangle-id-BMScmNjp.js';
|
|
17
17
|
export { IntegrationCatalogView, IntegrationToolDefinition, IntegrationToolSearchFilters, IntegrationToolSearchResult, McpToolDefinition, buildIntegrationCatalogView, buildIntegrationToolCatalog, describeIntegrationTool, flattenIntegrationToolDefinition, integrationToolName, parseIntegrationToolName, searchIntegrationTools, toMcpTools } from './catalog.js';
|
|
18
18
|
export { G as GraphqlOperationSpec, I as ImportCatalogOptions, a as McpCatalog, M as McpCatalogTool, O as OpenApiDocument, b as OpenApiOperation, i as importGraphqlConnector, c as importMcpConnector, d as importOpenApiConnector } from './importers-BAVOQvUf.js';
|
package/dist/index.js
CHANGED
|
@@ -119,7 +119,7 @@ import {
|
|
|
119
119
|
validateIntegrationManifest,
|
|
120
120
|
validateProviderPassthroughRequest,
|
|
121
121
|
verifyCapabilityToken
|
|
122
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-4GZU3PB5.js";
|
|
123
123
|
import {
|
|
124
124
|
InMemoryConnectStateStore,
|
|
125
125
|
finishConnectFlow,
|
|
@@ -160,7 +160,7 @@ import {
|
|
|
160
160
|
validateCredentialFormat,
|
|
161
161
|
validateCredentialSet,
|
|
162
162
|
validateIntegrationSpec
|
|
163
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-IA5GCKM6.js";
|
|
164
164
|
import {
|
|
165
165
|
buildIntegrationCoverageConnectors,
|
|
166
166
|
integrationCoverageChecklistMarkdown,
|
|
@@ -343,6 +343,7 @@ import {
|
|
|
343
343
|
gitlabConnector,
|
|
344
344
|
glideConnector,
|
|
345
345
|
gmail,
|
|
346
|
+
googleAnalyticsConnector,
|
|
346
347
|
googleBigqueryConnector,
|
|
347
348
|
googleCalendar,
|
|
348
349
|
googleCloudStorageConnector,
|
|
@@ -351,6 +352,7 @@ import {
|
|
|
351
352
|
googleDrive,
|
|
352
353
|
googleForms,
|
|
353
354
|
googleGeminiConnector,
|
|
355
|
+
googleMeetConnector,
|
|
354
356
|
googleMyBusinessConnector,
|
|
355
357
|
googleSearchConnector,
|
|
356
358
|
googleSearchConsoleConnector,
|
|
@@ -466,12 +468,8 @@ import {
|
|
|
466
468
|
microsoftDynamicsCrmConnector,
|
|
467
469
|
microsoftExcel365Connector,
|
|
468
470
|
microsoftGraph,
|
|
469
|
-
microsoftOnedriveConnector,
|
|
470
471
|
microsoftOnenoteConnector,
|
|
471
|
-
microsoftOutlookCalendarConnector,
|
|
472
|
-
microsoftOutlookConnector,
|
|
473
472
|
microsoftPowerBiConnector,
|
|
474
|
-
microsoftSharepointConnector,
|
|
475
473
|
microsoftTeams,
|
|
476
474
|
microsoftTodoConnector,
|
|
477
475
|
millionverifierConnector,
|
|
@@ -489,8 +487,8 @@ import {
|
|
|
489
487
|
niftyConnector,
|
|
490
488
|
ninjapipeConnector,
|
|
491
489
|
nocodbConnector,
|
|
490
|
+
notion,
|
|
492
491
|
notionConnector,
|
|
493
|
-
notionDatabase,
|
|
494
492
|
ntfyConnector,
|
|
495
493
|
odooConnector,
|
|
496
494
|
omniCoConnector,
|
|
@@ -665,7 +663,7 @@ import {
|
|
|
665
663
|
zohoCrmConnector,
|
|
666
664
|
zohoDeskConnector,
|
|
667
665
|
zuoraConnector
|
|
668
|
-
} from "./chunk-
|
|
666
|
+
} from "./chunk-4TI3WXAD.js";
|
|
669
667
|
import {
|
|
670
668
|
DEFAULT_SIGNATURE_TOLERANCE_SECONDS,
|
|
671
669
|
firstHeader,
|
|
@@ -967,6 +965,7 @@ export {
|
|
|
967
965
|
gitlabConnector,
|
|
968
966
|
glideConnector,
|
|
969
967
|
gmail,
|
|
968
|
+
googleAnalyticsConnector,
|
|
970
969
|
googleBigqueryConnector,
|
|
971
970
|
googleCalendar,
|
|
972
971
|
googleCloudStorageConnector,
|
|
@@ -975,6 +974,7 @@ export {
|
|
|
975
974
|
googleDrive,
|
|
976
975
|
googleForms,
|
|
977
976
|
googleGeminiConnector,
|
|
977
|
+
googleMeetConnector,
|
|
978
978
|
googleMyBusinessConnector,
|
|
979
979
|
googleSearchConnector,
|
|
980
980
|
googleSearchConsoleConnector,
|
|
@@ -1110,12 +1110,8 @@ export {
|
|
|
1110
1110
|
microsoftDynamicsCrmConnector,
|
|
1111
1111
|
microsoftExcel365Connector,
|
|
1112
1112
|
microsoftGraph,
|
|
1113
|
-
microsoftOnedriveConnector,
|
|
1114
1113
|
microsoftOnenoteConnector,
|
|
1115
|
-
microsoftOutlookCalendarConnector,
|
|
1116
|
-
microsoftOutlookConnector,
|
|
1117
1114
|
microsoftPowerBiConnector,
|
|
1118
|
-
microsoftSharepointConnector,
|
|
1119
1115
|
microsoftTeams,
|
|
1120
1116
|
microsoftTodoConnector,
|
|
1121
1117
|
millionverifierConnector,
|
|
@@ -1136,8 +1132,8 @@ export {
|
|
|
1136
1132
|
normalizeGatewayCatalog,
|
|
1137
1133
|
normalizeIntegrationError,
|
|
1138
1134
|
normalizeIntegrationResult,
|
|
1135
|
+
notion,
|
|
1139
1136
|
notionConnector,
|
|
1140
|
-
notionDatabase,
|
|
1141
1137
|
ntfyConnector,
|
|
1142
1138
|
odooConnector,
|
|
1143
1139
|
omniCoConnector,
|
package/dist/mcp.js
CHANGED
|
@@ -2,15 +2,15 @@ import {
|
|
|
2
2
|
IntegrationError,
|
|
3
3
|
createCatalogExecutorProvider,
|
|
4
4
|
importMcpConnector
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4GZU3PB5.js";
|
|
6
6
|
import "./chunk-TC5OMANJ.js";
|
|
7
7
|
import "./chunk-IKCXDQVP.js";
|
|
8
8
|
import "./chunk-H4XYLS7T.js";
|
|
9
9
|
import "./chunk-FAFQZJPZ.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-IA5GCKM6.js";
|
|
11
11
|
import "./chunk-7P2LN4VT.js";
|
|
12
12
|
import "./chunk-376UBTNB.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-4TI3WXAD.js";
|
|
14
14
|
import "./chunk-2TW2QKGZ.js";
|
|
15
15
|
import "./chunk-OMLQCESJ.js";
|
|
16
16
|
import "./chunk-PZ5AY32C.js";
|
package/dist/registry.js
CHANGED
|
@@ -5,15 +5,15 @@ import {
|
|
|
5
5
|
composeIntegrationRegistry,
|
|
6
6
|
inferIntegrationSupportTier,
|
|
7
7
|
summarizeIntegrationRegistry
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-4GZU3PB5.js";
|
|
9
9
|
import "./chunk-TC5OMANJ.js";
|
|
10
10
|
import "./chunk-IKCXDQVP.js";
|
|
11
11
|
import "./chunk-H4XYLS7T.js";
|
|
12
12
|
import "./chunk-FAFQZJPZ.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-IA5GCKM6.js";
|
|
14
14
|
import "./chunk-7P2LN4VT.js";
|
|
15
15
|
import "./chunk-376UBTNB.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-4TI3WXAD.js";
|
|
17
17
|
import "./chunk-2TW2QKGZ.js";
|
|
18
18
|
import "./chunk-OMLQCESJ.js";
|
|
19
19
|
import "./chunk-PZ5AY32C.js";
|
|
@@ -83,6 +83,16 @@ interface WebhookProvider {
|
|
|
83
83
|
headers: WebhookHeaders;
|
|
84
84
|
now?: number;
|
|
85
85
|
}): WebhookEnvelope[] | Promise<WebhookEnvelope[]>;
|
|
86
|
+
/** Optional provider-specific 200 ACK the router returns on a verified
|
|
87
|
+
* delivery, in place of the default `{ received, total }` JSON. Dropbox Sign
|
|
88
|
+
* acknowledges a delivery only when the body is exactly
|
|
89
|
+
* 'Hello API Event Received' and retries otherwise; this lets such a
|
|
90
|
+
* provider declare the body/headers it needs. The frozen status contract is
|
|
91
|
+
* unchanged — only the 200 body/headers are customized. */
|
|
92
|
+
successResponse?: {
|
|
93
|
+
body: string;
|
|
94
|
+
headers?: Record<string, string>;
|
|
95
|
+
};
|
|
86
96
|
}
|
|
87
97
|
interface WebhookIdempotencyStore {
|
|
88
98
|
/** Returns true if this providerEventId has been processed already.
|
package/dist/runtime.js
CHANGED
|
@@ -2,15 +2,15 @@ import {
|
|
|
2
2
|
InMemoryIntegrationGrantStore,
|
|
3
3
|
IntegrationRuntime,
|
|
4
4
|
createIntegrationRuntime
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4GZU3PB5.js";
|
|
6
6
|
import "./chunk-TC5OMANJ.js";
|
|
7
7
|
import "./chunk-IKCXDQVP.js";
|
|
8
8
|
import "./chunk-H4XYLS7T.js";
|
|
9
9
|
import "./chunk-FAFQZJPZ.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-IA5GCKM6.js";
|
|
11
11
|
import "./chunk-7P2LN4VT.js";
|
|
12
12
|
import "./chunk-376UBTNB.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-4TI3WXAD.js";
|
|
14
14
|
import "./chunk-2TW2QKGZ.js";
|
|
15
15
|
import "./chunk-OMLQCESJ.js";
|
|
16
16
|
import "./chunk-PZ5AY32C.js";
|
package/dist/specs.js
CHANGED
package/dist/stripe/index.d.ts
CHANGED
package/dist/webhooks/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { W as WebhookProvider } from '../router-
|
|
2
|
-
export { S as SignatureVerification, a as WebhookEnvelope, b as WebhookHeaders, c as WebhookIdempotencyStore, d as WebhookRouter, e as WebhookRouterOptions, f as WebhookRouterRequest, g as WebhookRouterResponse } from '../router-
|
|
1
|
+
import { W as WebhookProvider } from '../router-S0Dadv2x.js';
|
|
2
|
+
export { S as SignatureVerification, a as WebhookEnvelope, b as WebhookHeaders, c as WebhookIdempotencyStore, d as WebhookRouter, e as WebhookRouterOptions, f as WebhookRouterRequest, g as WebhookRouterResponse } from '../router-S0Dadv2x.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Pre-built `WebhookProvider` implementations for the inbound surfaces
|
|
@@ -32,6 +32,17 @@ declare const gmailWebhookProvider: WebhookProvider;
|
|
|
32
32
|
* the per-channel token (`X-Goog-Channel-Token`) as the shared secret.
|
|
33
33
|
* The router compares it constant-time against the resolved secret. */
|
|
34
34
|
declare const gdriveWebhookProvider: WebhookProvider;
|
|
35
|
+
/** Telegram Bot API webhook provider. Telegram does NOT sign the body — it
|
|
36
|
+
* authenticates by echoing the `secret_token` set at `setWebhook` time in the
|
|
37
|
+
* `X-Telegram-Bot-Api-Secret-Token` header. We compare it constant-time to the
|
|
38
|
+
* per-connection secret. `update_id` is the idempotency anchor. */
|
|
39
|
+
declare const telegramWebhookProvider: WebhookProvider;
|
|
40
|
+
/** Dropbox Sign (HelloSign) webhook provider. There is NO signature header:
|
|
41
|
+
* the body carries `event.event_hash = HMAC_SHA256(apiKey, event_time +
|
|
42
|
+
* event_type)` (hex), so the `secret` here is the account's API key (the
|
|
43
|
+
* caller resolves it from the connection credential). The body is JSON, or a
|
|
44
|
+
* `json=`/multipart `name="json"` form field on older apps. */
|
|
45
|
+
declare const hellosignWebhookProvider: WebhookProvider;
|
|
35
46
|
/** Generic HMAC provider — for the long-tail webhook source where the
|
|
36
47
|
* caller has standardised on a single sha256-of-body scheme. Header
|
|
37
48
|
* `X-Signature` by default; override at provider-build time if needed. */
|
|
@@ -45,4 +56,4 @@ declare function genericHmacWebhookProvider(options: {
|
|
|
45
56
|
parse?: WebhookProvider['parse'];
|
|
46
57
|
}): WebhookProvider;
|
|
47
58
|
|
|
48
|
-
export { WebhookProvider, docusealWebhookProvider, gdriveWebhookProvider, genericHmacWebhookProvider, gmailWebhookProvider, slackWebhookProvider, stripeWebhookProvider };
|
|
59
|
+
export { WebhookProvider, docusealWebhookProvider, gdriveWebhookProvider, genericHmacWebhookProvider, gmailWebhookProvider, hellosignWebhookProvider, slackWebhookProvider, stripeWebhookProvider, telegramWebhookProvider };
|
package/dist/webhooks/index.js
CHANGED
|
@@ -61,6 +61,13 @@ var WebhookRouter = class {
|
|
|
61
61
|
queueMicrotask(() => {
|
|
62
62
|
void this.deliverEach(accepted);
|
|
63
63
|
});
|
|
64
|
+
if (provider.successResponse) {
|
|
65
|
+
return {
|
|
66
|
+
status: 200,
|
|
67
|
+
body: provider.successResponse.body,
|
|
68
|
+
headers: provider.successResponse.headers
|
|
69
|
+
};
|
|
70
|
+
}
|
|
64
71
|
return { status: 200, body: { received: accepted.length, total: events.length } };
|
|
65
72
|
}
|
|
66
73
|
async deliverEach(events) {
|
|
@@ -88,7 +95,7 @@ function errMessage(err) {
|
|
|
88
95
|
}
|
|
89
96
|
|
|
90
97
|
// src/webhooks/providers.ts
|
|
91
|
-
import { createHmac, timingSafeEqual } from "crypto";
|
|
98
|
+
import { createHash, createHmac, timingSafeEqual } from "crypto";
|
|
92
99
|
var stripeWebhookProvider = {
|
|
93
100
|
id: "stripe",
|
|
94
101
|
verifySignature({ rawBody, headers, secret }) {
|
|
@@ -234,6 +241,123 @@ var gdriveWebhookProvider = {
|
|
|
234
241
|
}];
|
|
235
242
|
}
|
|
236
243
|
};
|
|
244
|
+
var TELEGRAM_UPDATE_KEYS = [
|
|
245
|
+
"message",
|
|
246
|
+
"edited_message",
|
|
247
|
+
"channel_post",
|
|
248
|
+
"edited_channel_post",
|
|
249
|
+
"business_connection",
|
|
250
|
+
"business_message",
|
|
251
|
+
"edited_business_message",
|
|
252
|
+
"deleted_business_messages",
|
|
253
|
+
"message_reaction",
|
|
254
|
+
"message_reaction_count",
|
|
255
|
+
"inline_query",
|
|
256
|
+
"chosen_inline_result",
|
|
257
|
+
"callback_query",
|
|
258
|
+
"shipping_query",
|
|
259
|
+
"pre_checkout_query",
|
|
260
|
+
"purchased_paid_media",
|
|
261
|
+
"poll",
|
|
262
|
+
"poll_answer",
|
|
263
|
+
"my_chat_member",
|
|
264
|
+
"chat_member",
|
|
265
|
+
"chat_join_request",
|
|
266
|
+
"chat_boost",
|
|
267
|
+
"removed_chat_boost"
|
|
268
|
+
];
|
|
269
|
+
var telegramWebhookProvider = {
|
|
270
|
+
id: "telegram",
|
|
271
|
+
verifySignature({ headers, secret }) {
|
|
272
|
+
const token = firstHeader(headers, "x-telegram-bot-api-secret-token");
|
|
273
|
+
if (!token) return { valid: false, reason: "missing_telegram_secret_token" };
|
|
274
|
+
const a = Buffer.from(token, "utf-8");
|
|
275
|
+
const b = Buffer.from(secret, "utf-8");
|
|
276
|
+
if (a.length !== b.length) return { valid: false, reason: "invalid_secret_token" };
|
|
277
|
+
return timingSafeEqual(a, b) ? { valid: true } : { valid: false, reason: "invalid_secret_token" };
|
|
278
|
+
},
|
|
279
|
+
parse({ rawBody, headers, now }) {
|
|
280
|
+
const evt = safeJson(rawBody);
|
|
281
|
+
if (!evt || typeof evt !== "object") return [];
|
|
282
|
+
const kind = TELEGRAM_UPDATE_KEYS.find((k) => k in evt) ?? "unknown";
|
|
283
|
+
return [{
|
|
284
|
+
provider: "telegram",
|
|
285
|
+
eventType: `telegram.${kind}`,
|
|
286
|
+
providerEventId: typeof evt.update_id === "number" ? String(evt.update_id) : void 0,
|
|
287
|
+
receivedAt: now ?? Date.now(),
|
|
288
|
+
payload: evt,
|
|
289
|
+
headers: normalizeHeaders(headers)
|
|
290
|
+
}];
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
var hellosignWebhookProvider = {
|
|
294
|
+
id: "hellosign",
|
|
295
|
+
// Dropbox Sign acknowledges a delivery only when the response body is exactly
|
|
296
|
+
// 'Hello API Event Received'; any other body makes it retry the event.
|
|
297
|
+
successResponse: { body: "Hello API Event Received", headers: { "content-type": "text/plain" } },
|
|
298
|
+
verifySignature({ rawBody, secret }) {
|
|
299
|
+
const body = parseHelloSignBody(rawBody);
|
|
300
|
+
const event = body?.event;
|
|
301
|
+
if (!event || typeof event.event_time !== "string" || typeof event.event_type !== "string" || typeof event.event_hash !== "string") {
|
|
302
|
+
return { valid: false, reason: "missing_event_fields" };
|
|
303
|
+
}
|
|
304
|
+
const expected = createHmac("sha256", secret).update(`${event.event_time}${event.event_type}`).digest("hex");
|
|
305
|
+
const a = Buffer.from(event.event_hash.toLowerCase(), "utf-8");
|
|
306
|
+
const b = Buffer.from(expected.toLowerCase(), "utf-8");
|
|
307
|
+
if (a.length !== b.length) return { valid: false, reason: "invalid_signature" };
|
|
308
|
+
return timingSafeEqual(a, b) ? { valid: true } : { valid: false, reason: "invalid_signature" };
|
|
309
|
+
},
|
|
310
|
+
parse({ rawBody, headers, now }) {
|
|
311
|
+
const body = parseHelloSignBody(rawBody);
|
|
312
|
+
const event = body?.event;
|
|
313
|
+
if (!event) return [];
|
|
314
|
+
return [{
|
|
315
|
+
provider: "hellosign",
|
|
316
|
+
eventType: `hellosign.${event.event_type ?? "unknown"}`,
|
|
317
|
+
// Prefer Dropbox Sign's canonical `event.event_id` (stable across
|
|
318
|
+
// redeliveries, correlates with the provider). Fall back to a digest of
|
|
319
|
+
// the parsed body when it's absent: `event_hash` = HMAC(apiKey,
|
|
320
|
+
// event_time + event_type), so two distinct same-type events in the same
|
|
321
|
+
// second share it — the body digest stays distinct across differing
|
|
322
|
+
// events and identical across redeliveries of one event.
|
|
323
|
+
providerEventId: typeof event.event_id === "string" && event.event_id.length > 0 ? event.event_id : createHash("sha256").update(JSON.stringify(body)).digest("hex"),
|
|
324
|
+
receivedAt: now ?? Date.now(),
|
|
325
|
+
payload: body,
|
|
326
|
+
headers: normalizeHeaders(headers)
|
|
327
|
+
}];
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
function parseHelloSignBody(rawBody) {
|
|
331
|
+
try {
|
|
332
|
+
const json = JSON.parse(rawBody);
|
|
333
|
+
if (json && typeof json === "object") return json;
|
|
334
|
+
} catch {
|
|
335
|
+
}
|
|
336
|
+
const formJson = new URLSearchParams(rawBody).get("json");
|
|
337
|
+
if (formJson) {
|
|
338
|
+
try {
|
|
339
|
+
return JSON.parse(formJson);
|
|
340
|
+
} catch {
|
|
341
|
+
return null;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return extractMultipartJsonField(rawBody);
|
|
345
|
+
}
|
|
346
|
+
function extractMultipartJsonField(rawBody) {
|
|
347
|
+
const nameIdx = rawBody.indexOf('name="json"');
|
|
348
|
+
if (nameIdx === -1) return null;
|
|
349
|
+
const afterName = rawBody.slice(nameIdx);
|
|
350
|
+
const sep = /\r?\n\r?\n/.exec(afterName);
|
|
351
|
+
if (!sep) return null;
|
|
352
|
+
const partBody = afterName.slice(sep.index + sep[0].length);
|
|
353
|
+
const end = /\r?\n--/.exec(partBody);
|
|
354
|
+
if (!end) return null;
|
|
355
|
+
try {
|
|
356
|
+
return JSON.parse(partBody.slice(0, end.index));
|
|
357
|
+
} catch {
|
|
358
|
+
return null;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
237
361
|
function genericHmacWebhookProvider(options) {
|
|
238
362
|
const header = options.signatureHeader ?? "x-signature";
|
|
239
363
|
return {
|
|
@@ -280,7 +404,9 @@ export {
|
|
|
280
404
|
gdriveWebhookProvider,
|
|
281
405
|
genericHmacWebhookProvider,
|
|
282
406
|
gmailWebhookProvider,
|
|
407
|
+
hellosignWebhookProvider,
|
|
283
408
|
slackWebhookProvider,
|
|
284
|
-
stripeWebhookProvider
|
|
409
|
+
stripeWebhookProvider,
|
|
410
|
+
telegramWebhookProvider
|
|
285
411
|
};
|
|
286
412
|
//# sourceMappingURL=index.js.map
|