@oomol-lab/open-connector 1.9.1 → 1.9.2
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/assets/open-connector/catalog/apps/aisa.json +1946 -56
- package/assets/open-connector/catalog/apps/akta.json +1181 -0
- package/assets/open-connector/catalog/apps/asana.json +110 -0
- package/assets/open-connector/catalog/apps/calendly.json +103 -0
- package/assets/open-connector/catalog/apps/clickup.json +104 -0
- package/assets/open-connector/catalog/apps/cloro.json +9289 -0
- package/assets/open-connector/catalog/apps/contextdev.json +20670 -0
- package/assets/open-connector/catalog/apps/deepseek.json +177 -0
- package/assets/open-connector/catalog/apps/defillama.json +23747 -0
- package/assets/open-connector/catalog/apps/fireflies.json +103 -0
- package/assets/open-connector/catalog/apps/fundable.json +7926 -0
- package/assets/open-connector/catalog/apps/intercom.json +110 -0
- package/assets/open-connector/catalog/apps/jira.json +110 -0
- package/assets/open-connector/catalog/apps/keenable.json +235 -0
- package/assets/open-connector/catalog/apps/kolsprite_mcp.json +1227 -0
- package/assets/open-connector/catalog/apps/litescrape.json +52514 -0
- package/assets/open-connector/catalog/apps/magichour.json +5926 -0
- package/assets/open-connector/catalog/apps/minimax.json +24 -14
- package/assets/open-connector/catalog/apps/notion.json +731 -76
- package/assets/open-connector/catalog/apps/octen.json +5248 -0
- package/assets/open-connector/catalog/apps/openrouter.json +10 -0
- package/assets/open-connector/catalog/apps/orbit.json +3574 -0
- package/assets/open-connector/catalog/apps/pandadoc.json +68 -0
- package/assets/open-connector/catalog/apps/pipedrive.json +86 -0
- package/assets/open-connector/catalog/apps/ploid.json +9802 -0
- package/assets/open-connector/catalog/apps/resend.json +100 -0
- package/assets/open-connector/catalog/apps/salesforce.json +2487 -119
- package/assets/open-connector/catalog/apps/saperly.json +7056 -0
- package/assets/open-connector/catalog/apps/search1api.json +2382 -0
- package/assets/open-connector/catalog/apps/sentry.json +129 -0
- package/assets/open-connector/catalog/apps/slackbot.json +230 -1
- package/assets/open-connector/catalog/apps/surf.json +11378 -0
- package/assets/open-connector/catalog/apps/tally.json +113 -0
- package/assets/open-connector/catalog/apps/tinyfish.json +6154 -0
- package/assets/open-connector/catalog/apps/typeform.json +90 -1
- package/assets/open-connector/catalog/apps/vaquill.json +5944 -0
- package/assets/open-connector/catalog/apps/vercel.json +110 -0
- package/assets/open-connector/catalog/apps/weixin_store.json +1256 -7
- package/assets/open-connector/catalog/apps/zoom.json +112 -0
- package/assets/open-connector/catalog/apps-index.json +1 -1
- package/package.json +1 -1
- package/src/core/json-schema.d.ts +11 -3
- package/src/core/json-schema.js +13 -3
- package/src/providers/action-contracts.generated.d.ts +23 -6
- package/src/providers/aisa/executors.js +238 -6
- package/src/providers/aisa/firecrawl-actions.d.ts +9 -0
- package/src/providers/aisa/firecrawl-actions.js +115 -0
- package/src/providers/akta/actions.d.ts +9 -0
- package/src/providers/akta/actions.js +420 -0
- package/src/providers/akta/executors.d.ts +4 -0
- package/src/providers/akta/executors.js +103 -0
- package/src/providers/asana/executors.d.ts +2 -0
- package/src/providers/asana/executors.js +2 -0
- package/src/providers/asana/trigger-on-task-event.d.ts +2 -0
- package/src/providers/asana/trigger-on-task-event.definition.d.ts +4 -0
- package/src/providers/asana/trigger-on-task-event.definition.js +42 -0
- package/src/providers/asana/trigger-on-task-event.js +160 -0
- package/src/providers/calendly/executors.d.ts +2 -0
- package/src/providers/calendly/executors.js +2 -0
- package/src/providers/calendly/trigger-on-booking-event.d.ts +2 -0
- package/src/providers/calendly/trigger-on-booking-event.definition.d.ts +5 -0
- package/src/providers/calendly/trigger-on-booking-event.definition.js +42 -0
- package/src/providers/calendly/trigger-on-booking-event.js +144 -0
- package/src/providers/clickup/executors.d.ts +2 -0
- package/src/providers/clickup/executors.js +2 -0
- package/src/providers/clickup/trigger-on-task-event.d.ts +2 -0
- package/src/providers/clickup/trigger-on-task-event.definition.d.ts +4 -0
- package/src/providers/clickup/trigger-on-task-event.definition.js +41 -0
- package/src/providers/clickup/trigger-on-task-event.js +94 -0
- package/src/providers/cloro/actions.d.ts +12 -0
- package/src/providers/cloro/actions.js +155 -0
- package/src/providers/cloro/executors.d.ts +4 -0
- package/src/providers/cloro/executors.js +67 -0
- package/src/providers/cloro/inputs.d.ts +10 -0
- package/src/providers/cloro/inputs.js +680 -0
- package/src/providers/contextdev/actions.d.ts +14 -0
- package/src/providers/contextdev/actions.js +647 -0
- package/src/providers/contextdev/executors.d.ts +4 -0
- package/src/providers/contextdev/executors.js +109 -0
- package/src/providers/contextdev/files.d.ts +3 -0
- package/src/providers/contextdev/files.js +49 -0
- package/src/providers/contextdev/input-schemas.d.ts +49 -0
- package/src/providers/contextdev/input-schemas.js +3082 -0
- package/src/providers/contextdev/output-schemas.d.ts +49 -0
- package/src/providers/contextdev/output-schemas.js +1599 -0
- package/src/providers/deepseek/executors.d.ts +0 -5
- package/src/providers/deepseek/executors.js +38 -25
- package/src/providers/defillama/actions.d.ts +24 -0
- package/src/providers/defillama/actions.js +24 -0
- package/src/providers/defillama/dimensions-definitions.d.ts +2 -0
- package/src/providers/defillama/dimensions-definitions.js +1387 -0
- package/src/providers/defillama/ecosystem-definitions.d.ts +2 -0
- package/src/providers/defillama/ecosystem-definitions.js +758 -0
- package/src/providers/defillama/equities-definitions.d.ts +2 -0
- package/src/providers/defillama/equities-definitions.js +733 -0
- package/src/providers/defillama/executors.d.ts +4 -0
- package/src/providers/defillama/executors.js +196 -0
- package/src/providers/defillama/markets-definitions.d.ts +2 -0
- package/src/providers/defillama/markets-definitions.js +624 -0
- package/src/providers/defillama/shared-schemas.d.ts +71 -0
- package/src/providers/defillama/shared-schemas.js +157 -0
- package/src/providers/defillama/tvl-definitions.d.ts +2 -0
- package/src/providers/defillama/tvl-definitions.js +546 -0
- package/src/providers/defillama/yields-definitions.d.ts +2 -0
- package/src/providers/defillama/yields-definitions.js +766 -0
- package/src/providers/feishu_app_bot/trigger-on-event.js +2 -0
- package/src/providers/fireflies/executors.d.ts +2 -0
- package/src/providers/fireflies/executors.js +2 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.d.ts +2 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.definition.d.ts +4 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.definition.js +44 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.js +60 -0
- package/src/providers/fundable/actions.d.ts +8 -0
- package/src/providers/fundable/actions.js +1515 -0
- package/src/providers/fundable/executors.d.ts +4 -0
- package/src/providers/fundable/executors.js +74 -0
- package/src/providers/gmail/message.d.ts +1 -6
- package/src/providers/gmail/message.js +1 -1
- package/src/providers/intercom/executors.d.ts +2 -0
- package/src/providers/intercom/executors.js +2 -0
- package/src/providers/intercom/trigger-on-conversation-event.d.ts +2 -0
- package/src/providers/intercom/trigger-on-conversation-event.definition.d.ts +4 -0
- package/src/providers/intercom/trigger-on-conversation-event.definition.js +42 -0
- package/src/providers/intercom/trigger-on-conversation-event.js +23 -0
- package/src/providers/jira/executors.d.ts +2 -0
- package/src/providers/jira/executors.js +2 -0
- package/src/providers/jira/trigger-on-issue-event.d.ts +2 -0
- package/src/providers/jira/trigger-on-issue-event.definition.d.ts +4 -0
- package/src/providers/jira/trigger-on-issue-event.definition.js +44 -0
- package/src/providers/jira/trigger-on-issue-event.js +116 -0
- package/src/providers/jira/trigger-resource.d.ts +4 -0
- package/src/providers/jira/trigger-resource.js +141 -0
- package/src/providers/keenable/executors.d.ts +4 -0
- package/src/providers/keenable/executors.js +20 -0
- package/src/providers/keenable/runtime.d.ts +26 -0
- package/src/providers/keenable/runtime.js +89 -0
- package/src/providers/kolsprite_mcp/actions.d.ts +2 -0
- package/src/providers/kolsprite_mcp/actions.js +519 -0
- package/src/providers/kolsprite_mcp/executors.d.ts +4 -0
- package/src/providers/kolsprite_mcp/executors.js +89 -0
- package/src/providers/litescrape/actions.d.ts +12 -0
- package/src/providers/litescrape/actions.js +124 -0
- package/src/providers/litescrape/airbnb-schemas.d.ts +2 -0
- package/src/providers/litescrape/airbnb-schemas.js +72 -0
- package/src/providers/litescrape/aliexpress-schemas.d.ts +2 -0
- package/src/providers/litescrape/aliexpress-schemas.js +52 -0
- package/src/providers/litescrape/amazon-schemas.d.ts +2 -0
- package/src/providers/litescrape/amazon-schemas.js +358 -0
- package/src/providers/litescrape/apartments-schemas.d.ts +2 -0
- package/src/providers/litescrape/apartments-schemas.js +45 -0
- package/src/providers/litescrape/apple-schemas.d.ts +2 -0
- package/src/providers/litescrape/apple-schemas.js +215 -0
- package/src/providers/litescrape/ashby-schemas.d.ts +2 -0
- package/src/providers/litescrape/ashby-schemas.js +82 -0
- package/src/providers/litescrape/baidu-schemas.d.ts +2 -0
- package/src/providers/litescrape/baidu-schemas.js +31 -0
- package/src/providers/litescrape/bestbuy-schemas.d.ts +2 -0
- package/src/providers/litescrape/bestbuy-schemas.js +56 -0
- package/src/providers/litescrape/bing-schemas.d.ts +2 -0
- package/src/providers/litescrape/bing-schemas.js +315 -0
- package/src/providers/litescrape/brave-schemas.d.ts +2 -0
- package/src/providers/litescrape/brave-schemas.js +101 -0
- package/src/providers/litescrape/copilot-schemas.d.ts +2 -0
- package/src/providers/litescrape/copilot-schemas.js +590 -0
- package/src/providers/litescrape/duckduckgo-schemas.d.ts +2 -0
- package/src/providers/litescrape/duckduckgo-schemas.js +64 -0
- package/src/providers/litescrape/ebay-schemas.d.ts +2 -0
- package/src/providers/litescrape/ebay-schemas.js +300 -0
- package/src/providers/litescrape/etsy-schemas.d.ts +2 -0
- package/src/providers/litescrape/etsy-schemas.js +52 -0
- package/src/providers/litescrape/eventbrite-schemas.d.ts +2 -0
- package/src/providers/litescrape/eventbrite-schemas.js +43 -0
- package/src/providers/litescrape/executors.d.ts +4 -0
- package/src/providers/litescrape/executors.js +138 -0
- package/src/providers/litescrape/facebook-schemas.d.ts +2 -0
- package/src/providers/litescrape/facebook-schemas.js +283 -0
- package/src/providers/litescrape/glassdoor-schemas.d.ts +2 -0
- package/src/providers/litescrape/glassdoor-schemas.js +147 -0
- package/src/providers/litescrape/google-schemas.d.ts +2 -0
- package/src/providers/litescrape/google-schemas.js +1686 -0
- package/src/providers/litescrape/homedepot-schemas.d.ts +2 -0
- package/src/providers/litescrape/homedepot-schemas.js +58 -0
- package/src/providers/litescrape/homes-schemas.d.ts +2 -0
- package/src/providers/litescrape/homes-schemas.js +45 -0
- package/src/providers/litescrape/ikea-schemas.d.ts +2 -0
- package/src/providers/litescrape/ikea-schemas.js +56 -0
- package/src/providers/litescrape/indeed-schemas.d.ts +2 -0
- package/src/providers/litescrape/indeed-schemas.js +141 -0
- package/src/providers/litescrape/instagram-schemas.d.ts +2 -0
- package/src/providers/litescrape/instagram-schemas.js +234 -0
- package/src/providers/litescrape/kroger-schemas.d.ts +2 -0
- package/src/providers/litescrape/kroger-schemas.js +62 -0
- package/src/providers/litescrape/levels-schemas.d.ts +2 -0
- package/src/providers/litescrape/levels-schemas.js +153 -0
- package/src/providers/litescrape/naver-schemas.d.ts +2 -0
- package/src/providers/litescrape/naver-schemas.js +107 -0
- package/src/providers/litescrape/realtor-schemas.d.ts +2 -0
- package/src/providers/litescrape/realtor-schemas.js +47 -0
- package/src/providers/litescrape/redfin-schemas.d.ts +2 -0
- package/src/providers/litescrape/redfin-schemas.js +112 -0
- package/src/providers/litescrape/shared.d.ts +9 -0
- package/src/providers/litescrape/shared.js +1 -0
- package/src/providers/litescrape/sprouts-schemas.d.ts +2 -0
- package/src/providers/litescrape/sprouts-schemas.js +72 -0
- package/src/providers/litescrape/target-schemas.d.ts +2 -0
- package/src/providers/litescrape/target-schemas.js +56 -0
- package/src/providers/litescrape/tiktok-schemas.d.ts +2 -0
- package/src/providers/litescrape/tiktok-schemas.js +625 -0
- package/src/providers/litescrape/tools.d.ts +2 -0
- package/src/providers/litescrape/tools.js +88 -0
- package/src/providers/litescrape/tripadvisor-schemas.d.ts +2 -0
- package/src/providers/litescrape/tripadvisor-schemas.js +119 -0
- package/src/providers/litescrape/walmart-schemas.d.ts +2 -0
- package/src/providers/litescrape/walmart-schemas.js +52 -0
- package/src/providers/litescrape/wayfair-schemas.d.ts +2 -0
- package/src/providers/litescrape/wayfair-schemas.js +52 -0
- package/src/providers/litescrape/web-schemas.d.ts +2 -0
- package/src/providers/litescrape/web-schemas.js +463 -0
- package/src/providers/litescrape/wholefoods-schemas.d.ts +2 -0
- package/src/providers/litescrape/wholefoods-schemas.js +56 -0
- package/src/providers/litescrape/x-schemas.d.ts +2 -0
- package/src/providers/litescrape/x-schemas.js +128 -0
- package/src/providers/litescrape/yahoo-schemas.d.ts +2 -0
- package/src/providers/litescrape/yahoo-schemas.js +234 -0
- package/src/providers/litescrape/yandex-schemas.d.ts +2 -0
- package/src/providers/litescrape/yandex-schemas.js +179 -0
- package/src/providers/litescrape/yelp-schemas.d.ts +2 -0
- package/src/providers/litescrape/yelp-schemas.js +130 -0
- package/src/providers/litescrape/youtube-schemas.d.ts +2 -0
- package/src/providers/litescrape/youtube-schemas.js +128 -0
- package/src/providers/litescrape/zillow-schemas.d.ts +2 -0
- package/src/providers/litescrape/zillow-schemas.js +128 -0
- package/src/providers/litescrape/ziprecruiter-schemas.d.ts +2 -0
- package/src/providers/litescrape/ziprecruiter-schemas.js +96 -0
- package/src/providers/magichour/actions.d.ts +22 -0
- package/src/providers/magichour/actions.js +308 -0
- package/src/providers/magichour/audio-schemas.d.ts +2 -0
- package/src/providers/magichour/audio-schemas.js +54 -0
- package/src/providers/magichour/executors.d.ts +4 -0
- package/src/providers/magichour/executors.js +115 -0
- package/src/providers/magichour/image-schemas.d.ts +2 -0
- package/src/providers/magichour/image-schemas.js +443 -0
- package/src/providers/magichour/project-schemas.d.ts +8 -0
- package/src/providers/magichour/project-schemas.js +65 -0
- package/src/providers/magichour/shared-schemas.d.ts +8 -0
- package/src/providers/magichour/shared-schemas.js +18 -0
- package/src/providers/magichour/utility-schemas.d.ts +11 -0
- package/src/providers/magichour/utility-schemas.js +150 -0
- package/src/providers/magichour/video-schemas.d.ts +2 -0
- package/src/providers/magichour/video-schemas.js +629 -0
- package/src/providers/magichour/voices.d.ts +1 -0
- package/src/providers/magichour/voices.js +1268 -0
- package/src/providers/minimax/executors.js +19 -4
- package/src/providers/minimax/text-models.d.ts +2 -0
- package/src/providers/minimax/text-models.js +34 -0
- package/src/providers/moneyforward_mcp/manifest.d.ts +0 -2
- package/src/providers/moneyforward_mcp/manifest.js +1 -1
- package/src/providers/notion/executors.js +36 -3
- package/src/providers/octen/actions.d.ts +6 -0
- package/src/providers/octen/actions.js +919 -0
- package/src/providers/octen/executors.d.ts +4 -0
- package/src/providers/octen/executors.js +125 -0
- package/src/providers/octen/inputs.d.ts +2 -0
- package/src/providers/octen/inputs.js +2434 -0
- package/src/providers/octen/research.d.ts +1 -0
- package/src/providers/octen/research.js +86 -0
- package/src/providers/openrouter/executors.js +7 -4
- package/src/providers/orbit/actions.d.ts +2 -0
- package/src/providers/orbit/actions.js +3030 -0
- package/src/providers/orbit/executors.d.ts +4 -0
- package/src/providers/orbit/executors.js +106 -0
- package/src/providers/orbit/routes.d.ts +9 -0
- package/src/providers/orbit/routes.js +170 -0
- package/src/providers/pandadoc/executors.d.ts +2 -0
- package/src/providers/pandadoc/executors.js +2 -0
- package/src/providers/pandadoc/trigger-on-document-event.d.ts +2 -0
- package/src/providers/pandadoc/trigger-on-document-event.definition.d.ts +4 -0
- package/src/providers/pandadoc/trigger-on-document-event.definition.js +33 -0
- package/src/providers/pandadoc/trigger-on-document-event.js +96 -0
- package/src/providers/pipedrive/executors.d.ts +2 -0
- package/src/providers/pipedrive/executors.js +2 -0
- package/src/providers/pipedrive/trigger-on-crm-event.d.ts +2 -0
- package/src/providers/pipedrive/trigger-on-crm-event.definition.d.ts +4 -0
- package/src/providers/pipedrive/trigger-on-crm-event.definition.js +30 -0
- package/src/providers/pipedrive/trigger-on-crm-event.js +101 -0
- package/src/providers/ploid/actions.d.ts +16 -0
- package/src/providers/ploid/actions.js +23 -0
- package/src/providers/ploid/endpoints.json +8440 -0
- package/src/providers/ploid/executors.d.ts +4 -0
- package/src/providers/ploid/executors.js +119 -0
- package/src/providers/provider-runtime.d.ts +13 -0
- package/src/providers/provider-runtime.js +37 -4
- package/src/providers/registry.generated.js +17 -0
- package/src/providers/resend/executors.d.ts +2 -0
- package/src/providers/resend/executors.js +2 -0
- package/src/providers/resend/trigger-on-email-event.d.ts +2 -0
- package/src/providers/resend/trigger-on-email-event.definition.d.ts +4 -0
- package/src/providers/resend/trigger-on-email-event.definition.js +37 -0
- package/src/providers/resend/trigger-on-email-event.js +125 -0
- package/src/providers/salesforce/chatter-routes.d.ts +107 -0
- package/src/providers/salesforce/chatter-routes.js +140 -0
- package/src/providers/salesforce/context.d.ts +2 -2
- package/src/providers/salesforce/context.js +7 -4
- package/src/providers/salesforce/executors.js +10 -0
- package/src/providers/salesforce/runtime-approvals.d.ts +2 -0
- package/src/providers/salesforce/runtime-approvals.js +52 -0
- package/src/providers/salesforce/runtime-base.js +14 -3
- package/src/providers/salesforce/runtime-chatter.d.ts +2 -0
- package/src/providers/salesforce/runtime-chatter.js +78 -0
- package/src/providers/salesforce/runtime-knowledge.d.ts +2 -0
- package/src/providers/salesforce/runtime-knowledge.js +34 -0
- package/src/providers/salesforce/runtime-leads.d.ts +2 -0
- package/src/providers/salesforce/runtime-leads.js +117 -0
- package/src/providers/salesforce/runtime-platform.d.ts +2 -0
- package/src/providers/salesforce/runtime-platform.js +67 -0
- package/src/providers/saperly/actions.d.ts +17 -0
- package/src/providers/saperly/actions.js +869 -0
- package/src/providers/saperly/executors.d.ts +4 -0
- package/src/providers/saperly/executors.js +113 -0
- package/src/providers/saperly/schemas.d.ts +33 -0
- package/src/providers/saperly/schemas.js +601 -0
- package/src/providers/search1api/actions.d.ts +2 -0
- package/src/providers/search1api/actions.js +39 -0
- package/src/providers/search1api/executors.d.ts +4 -0
- package/src/providers/search1api/executors.js +72 -0
- package/src/providers/search1api/runtime.d.ts +3 -0
- package/src/providers/search1api/runtime.js +44 -0
- package/src/providers/search1api/schemas.d.ts +3 -0
- package/src/providers/search1api/schemas.js +1834 -0
- package/src/providers/sentry/executors.d.ts +2 -0
- package/src/providers/sentry/executors.js +2 -0
- package/src/providers/sentry/trigger-on-issue-alert.d.ts +2 -0
- package/src/providers/sentry/trigger-on-issue-alert.definition.d.ts +4 -0
- package/src/providers/sentry/trigger-on-issue-alert.definition.js +64 -0
- package/src/providers/sentry/trigger-on-issue-alert.js +80 -0
- package/src/providers/sf_express/runtime.d.ts +0 -16
- package/src/providers/sf_express/runtime.js +2 -2
- package/src/providers/slack/runtime.d.ts +6 -1
- package/src/providers/slack/runtime.js +21 -0
- package/src/providers/slackbot/actions.js +17 -1
- package/src/providers/slackbot/executors.d.ts +2 -0
- package/src/providers/slackbot/executors.js +5 -1
- package/src/providers/slackbot/trigger-on-event.d.ts +2 -0
- package/src/providers/slackbot/trigger-on-event.definition.d.ts +4 -0
- package/src/providers/slackbot/trigger-on-event.definition.js +57 -0
- package/src/providers/slackbot/trigger-on-event.js +23 -0
- package/src/providers/surf/actions.d.ts +21 -0
- package/src/providers/surf/actions.js +26 -0
- package/src/providers/surf/discovery-definitions.d.ts +2 -0
- package/src/providers/surf/discovery-definitions.js +871 -0
- package/src/providers/surf/equity-definitions.d.ts +2 -0
- package/src/providers/surf/equity-definitions.js +322 -0
- package/src/providers/surf/executors.d.ts +4 -0
- package/src/providers/surf/executors.js +131 -0
- package/src/providers/surf/market-definitions.d.ts +2 -0
- package/src/providers/surf/market-definitions.js +885 -0
- package/src/providers/surf/onchain-definitions.d.ts +2 -0
- package/src/providers/surf/onchain-definitions.js +901 -0
- package/src/providers/surf/prediction-definitions.d.ts +2 -0
- package/src/providers/surf/prediction-definitions.js +683 -0
- package/src/providers/surf/shared-schemas.d.ts +18 -0
- package/src/providers/surf/shared-schemas.js +37 -0
- package/src/providers/tally/executors.d.ts +2 -0
- package/src/providers/tally/executors.js +2 -0
- package/src/providers/tally/trigger-on-form-response.d.ts +2 -0
- package/src/providers/tally/trigger-on-form-response.definition.d.ts +4 -0
- package/src/providers/tally/trigger-on-form-response.definition.js +54 -0
- package/src/providers/tally/trigger-on-form-response.js +166 -0
- package/src/providers/tinyfish/actions.d.ts +6 -0
- package/src/providers/tinyfish/actions.js +19 -0
- package/src/providers/tinyfish/agent-actions.d.ts +2 -0
- package/src/providers/tinyfish/agent-actions.js +268 -0
- package/src/providers/tinyfish/data-actions.d.ts +2 -0
- package/src/providers/tinyfish/data-actions.js +186 -0
- package/src/providers/tinyfish/data-schemas.d.ts +7 -0
- package/src/providers/tinyfish/data-schemas.js +103 -0
- package/src/providers/tinyfish/endpoints.d.ts +14 -0
- package/src/providers/tinyfish/endpoints.js +1 -0
- package/src/providers/tinyfish/executors.d.ts +4 -0
- package/src/providers/tinyfish/executors.js +133 -0
- package/src/providers/tinyfish/management-actions.d.ts +2 -0
- package/src/providers/tinyfish/management-actions.js +524 -0
- package/src/providers/tinyfish/monitor-schemas.d.ts +5 -0
- package/src/providers/tinyfish/monitor-schemas.js +65 -0
- package/src/providers/tinyfish/research-schemas.d.ts +6 -0
- package/src/providers/tinyfish/research-schemas.js +71 -0
- package/src/providers/trello/executors.js +5 -2
- package/src/providers/typeform/executors.d.ts +2 -0
- package/src/providers/typeform/executors.js +2 -0
- package/src/providers/typeform/trigger-on-form-response.d.ts +2 -0
- package/src/providers/typeform/trigger-on-form-response.definition.d.ts +4 -0
- package/src/providers/typeform/trigger-on-form-response.definition.js +40 -0
- package/src/providers/typeform/trigger-on-form-response.js +68 -0
- package/src/providers/vaquill/actions.d.ts +13 -0
- package/src/providers/vaquill/actions.js +529 -0
- package/src/providers/vaquill/executors.d.ts +4 -0
- package/src/providers/vaquill/executors.js +141 -0
- package/src/providers/vaquill/schemas.d.ts +67 -0
- package/src/providers/vaquill/schemas.js +4953 -0
- package/src/providers/vercel/executors.d.ts +2 -0
- package/src/providers/vercel/executors.js +2 -0
- package/src/providers/vercel/trigger-on-deployment-event.d.ts +2 -0
- package/src/providers/vercel/trigger-on-deployment-event.definition.d.ts +5 -0
- package/src/providers/vercel/trigger-on-deployment-event.definition.js +41 -0
- package/src/providers/vercel/trigger-on-deployment-event.js +102 -0
- package/src/providers/weixin_bot/runtime.d.ts +0 -1
- package/src/providers/weixin_bot/runtime.js +1 -1
- package/src/providers/weixin_store/access-token.d.ts +3 -3
- package/src/providers/weixin_store/access-token.js +15 -7
- package/src/providers/weixin_store/executors.js +214 -1
- package/src/providers/zoom/executors.d.ts +2 -0
- package/src/providers/zoom/executors.js +2 -0
- package/src/providers/zoom/trigger-on-recording-ready.d.ts +2 -0
- package/src/providers/zoom/trigger-on-recording-ready.definition.d.ts +4 -0
- package/src/providers/zoom/trigger-on-recording-ready.definition.js +44 -0
- package/src/providers/zoom/trigger-on-recording-ready.js +39 -0
- package/src/server/api/action-example.js +12 -1
- package/src/server/api/pattern-example.js +35 -1
- package/src/server/api/trigger-routes.js +1 -1
- package/src/server/connect-app.js +1 -0
- package/src/triggers/common/integration.d.ts +15 -3
- package/src/triggers/common/integration.js +5 -0
- package/src/triggers/common/proxy.d.ts +7 -0
- package/src/triggers/managed-webhook.d.ts +13 -0
- package/src/triggers/managed-webhook.js +48 -0
- package/src/triggers/request.d.ts +5 -1
- package/src/triggers/request.js +2 -0
- package/src/triggers/resources.d.ts +8 -2
- package/src/triggers/resources.js +31 -0
- package/src/triggers/signature.d.ts +3 -3
- package/src/triggers/signature.js +4 -6
- package/src/triggers/sources/configuration-schema.d.ts +5 -0
- package/src/triggers/sources/configuration-schema.js +118 -0
- package/src/triggers/sources/configuration.d.ts +115 -0
- package/src/triggers/sources/configuration.js +1 -0
- package/src/triggers/sources/definition.d.ts +61 -0
- package/src/triggers/sources/definition.js +3 -0
- package/src/triggers/sources/feishu-demands.d.ts +6 -0
- package/src/triggers/sources/feishu-demands.js +24 -0
- package/src/triggers/sources/feishu-events.d.ts +19 -0
- package/src/triggers/sources/feishu-events.js +108 -0
- package/src/triggers/sources/feishu.d.ts +3 -0
- package/src/triggers/sources/feishu.js +85 -0
- package/src/triggers/sources/fireflies.d.ts +3 -0
- package/src/triggers/sources/fireflies.js +100 -0
- package/src/triggers/sources/intercom.d.ts +3 -0
- package/src/triggers/sources/intercom.js +86 -0
- package/src/triggers/sources/jira.d.ts +3 -0
- package/src/triggers/sources/jira.js +120 -0
- package/src/triggers/sources/operation.d.ts +42 -0
- package/src/triggers/sources/operation.js +146 -0
- package/src/triggers/sources/sentry.d.ts +3 -0
- package/src/triggers/sources/sentry.js +125 -0
- package/src/triggers/sources/signature.d.ts +1 -0
- package/src/triggers/sources/signature.js +10 -0
- package/src/triggers/sources/slack.d.ts +3 -0
- package/src/triggers/sources/slack.js +127 -0
- package/src/triggers/sources/zoom.d.ts +3 -0
- package/src/triggers/sources/zoom.js +113 -0
- package/src/triggers/trigger-runner.d.ts +2 -0
- package/src/triggers/trigger-runner.js +52 -16
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
|
|
2
|
+
export declare const credentialValidators: CredentialValidators;
|
|
3
|
+
export declare const executors: ProviderExecutors;
|
|
4
|
+
export declare const proxy: ProviderProxyExecutor;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
+
import { requiredResponseRecord, runProviderRequest, ProviderRequestError, providerInputError, providerResponseError, defineApiKeyProviderExecutors, defineProviderProxy, } from "../provider-runtime.js";
|
|
3
|
+
import { ploidActions } from "./actions.js";
|
|
4
|
+
import { ploidEndpointByName } from "./actions.js";
|
|
5
|
+
const baseUrl = "https://api.ploid.com";
|
|
6
|
+
async function request(apiKey, name, input, fetcher, parentSignal) {
|
|
7
|
+
const endpoint = ploidEndpointByName.get(name);
|
|
8
|
+
let path = endpoint.path;
|
|
9
|
+
for (const key of endpoint.pathKeys) {
|
|
10
|
+
const value = String(input[key]);
|
|
11
|
+
if (value === "." || value === "..")
|
|
12
|
+
throw providerInputError(`${key} must not be a dot path segment`);
|
|
13
|
+
path = path.replace(`{${key}}`, encodeURIComponent(value));
|
|
14
|
+
}
|
|
15
|
+
const url = new URL(path, baseUrl);
|
|
16
|
+
for (const key of endpoint.queryKeys) {
|
|
17
|
+
if (input[key] !== undefined)
|
|
18
|
+
url.searchParams.set(key, String(input[key]));
|
|
19
|
+
}
|
|
20
|
+
if (name === "export_set")
|
|
21
|
+
url.searchParams.set("format", "json");
|
|
22
|
+
const body = optionalRecord(input.body);
|
|
23
|
+
const data = name === "start_dataset" ? { ...body, mode: "async" } : body;
|
|
24
|
+
const timeoutMs = name === "sync_people_search"
|
|
25
|
+
? 150000
|
|
26
|
+
: name === "create_harness_chat_completion"
|
|
27
|
+
? 100000
|
|
28
|
+
: name === "enrich_person"
|
|
29
|
+
? 90000
|
|
30
|
+
: name === "create_dataset"
|
|
31
|
+
? 70000
|
|
32
|
+
: undefined;
|
|
33
|
+
return runProviderRequest({ label: "Ploid", timeoutMs, signal: parentSignal }, async (signal) => {
|
|
34
|
+
const headers = new Headers({ authorization: `Bearer ${apiKey}`, accept: "application/json" });
|
|
35
|
+
if (data !== undefined)
|
|
36
|
+
headers.set("content-type", "application/json");
|
|
37
|
+
const idempotencyKey = optionalString(input.idempotencyKey);
|
|
38
|
+
if (idempotencyKey !== undefined)
|
|
39
|
+
headers.set("Idempotency-Key", idempotencyKey);
|
|
40
|
+
const response = await fetcher(url, {
|
|
41
|
+
method: endpoint.method,
|
|
42
|
+
headers,
|
|
43
|
+
body: data === undefined ? undefined : JSON.stringify(data),
|
|
44
|
+
signal,
|
|
45
|
+
});
|
|
46
|
+
const text = await response.text();
|
|
47
|
+
let payload;
|
|
48
|
+
if (text.trim()) {
|
|
49
|
+
try {
|
|
50
|
+
payload = JSON.parse(text);
|
|
51
|
+
}
|
|
52
|
+
catch { }
|
|
53
|
+
}
|
|
54
|
+
if (!response.ok) {
|
|
55
|
+
const error = optionalRecord(optionalRecord(payload)?.error);
|
|
56
|
+
const code = optionalString(error?.code);
|
|
57
|
+
const message = optionalString(error?.message);
|
|
58
|
+
const requestId = optionalString(error?.request_id);
|
|
59
|
+
const detail = [code, message, requestId ? `request_id=${requestId}` : undefined].filter(Boolean).join(": ");
|
|
60
|
+
throw new ProviderRequestError(response.status, `Ploid request failed (${response.status})${detail ? `: ${detail}` : ""}`, undefined, code && ["invalid_api_key", "expired_api_key", "revoked_api_key"].includes(code)
|
|
61
|
+
? "authorization_failed"
|
|
62
|
+
: code === "insufficient_scope"
|
|
63
|
+
? "authorization_failed"
|
|
64
|
+
: "provider_error");
|
|
65
|
+
}
|
|
66
|
+
if (name === "enrich_person" &&
|
|
67
|
+
body?.response_format === "markdown" &&
|
|
68
|
+
response.headers.get("content-type")?.includes("text/markdown"))
|
|
69
|
+
return { markdown: text };
|
|
70
|
+
if (name === "delete_monitor" && !text.trim())
|
|
71
|
+
return { success: true };
|
|
72
|
+
if (name === "export_set" && Array.isArray(payload))
|
|
73
|
+
return { items: payload };
|
|
74
|
+
const result = requiredResponseRecord(payload, "Ploid response");
|
|
75
|
+
if (name === "get_person" || name === "get_person_run") {
|
|
76
|
+
if (!("data" in result))
|
|
77
|
+
throw providerResponseError("Ploid person response is missing data");
|
|
78
|
+
const person = optionalRecord(result.data);
|
|
79
|
+
const runId = optionalString(person?.run_id);
|
|
80
|
+
const pendingStatus = optionalString(person?.status);
|
|
81
|
+
if (runId && !pendingStatus)
|
|
82
|
+
throw providerResponseError("Ploid person run is missing status");
|
|
83
|
+
return {
|
|
84
|
+
...result,
|
|
85
|
+
status: runId ? pendingStatus : "completed",
|
|
86
|
+
run_id: runId ?? (name === "get_person_run" ? String(input.id) : undefined),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async function execute(actionName, values, context) {
|
|
93
|
+
const { apiKey, fetcher } = context;
|
|
94
|
+
return request(apiKey, actionName, values, fetcher, context.signal);
|
|
95
|
+
}
|
|
96
|
+
export const credentialValidators = {
|
|
97
|
+
async apiKey(input, { fetcher, signal }) {
|
|
98
|
+
const result = await request(input.apiKey, "get_account_profile", {}, fetcher, signal);
|
|
99
|
+
const profile = requiredResponseRecord(result.data, "Ploid account profile");
|
|
100
|
+
const name = [optionalString(profile.first_name), optionalString(profile.last_name)]
|
|
101
|
+
.filter(Boolean)
|
|
102
|
+
.join(" ")
|
|
103
|
+
.trim();
|
|
104
|
+
return {
|
|
105
|
+
profile: { displayName: name || optionalString(profile.email) || "Ploid API Key" },
|
|
106
|
+
grantedScopes: [],
|
|
107
|
+
metadata: { apiBaseUrl: baseUrl },
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
export const executors = defineApiKeyProviderExecutors("ploid", Object.fromEntries(ploidActions.map((action) => [action.name, (values, context) => execute(action.name, values, context)])));
|
|
112
|
+
export const proxy = defineProviderProxy({
|
|
113
|
+
service: "ploid",
|
|
114
|
+
baseUrl: baseUrl,
|
|
115
|
+
auth: { type: "api_key_authorization", prefix: "Bearer " },
|
|
116
|
+
customizeRequest({ headers }) {
|
|
117
|
+
headers.set("accept", "application/json");
|
|
118
|
+
},
|
|
119
|
+
});
|
|
@@ -419,6 +419,19 @@ export declare function readProviderJsonBody(response: Response, options: ReadPr
|
|
|
419
419
|
* Parse an already-read provider response body as JSON.
|
|
420
420
|
*/
|
|
421
421
|
export declare function parseProviderJsonBodyText(text: string, options: ReadProviderJsonBodyOptions): unknown;
|
|
422
|
+
interface UploadSourceInput {
|
|
423
|
+
url: string;
|
|
424
|
+
fetcher: typeof fetch;
|
|
425
|
+
fieldName: string;
|
|
426
|
+
maximumBytes?: number;
|
|
427
|
+
timeoutMs?: number;
|
|
428
|
+
signal?: AbortSignal;
|
|
429
|
+
}
|
|
430
|
+
/** Download an upload source through public-only egress with a bounded body. */
|
|
431
|
+
export declare function downloadUploadSource(input: UploadSourceInput): Promise<{
|
|
432
|
+
bytes: Uint8Array;
|
|
433
|
+
contentType?: string;
|
|
434
|
+
}>;
|
|
422
435
|
/**
|
|
423
436
|
* Store a provider-hosted file in the local transit file service when enabled.
|
|
424
437
|
*/
|
|
@@ -262,7 +262,7 @@ export async function readProviderProxyResponse(response, options = {}) {
|
|
|
262
262
|
createError: (message) => new ProviderRequestError(413, message),
|
|
263
263
|
});
|
|
264
264
|
const contentType = response.headers.get("content-type") ?? "";
|
|
265
|
-
const normalizedContentType = contentType.toLowerCase();
|
|
265
|
+
const normalizedContentType = contentType.split(";", 1)[0].trim().toLowerCase();
|
|
266
266
|
if (bytes.byteLength === 0) {
|
|
267
267
|
return {
|
|
268
268
|
status: response.status,
|
|
@@ -270,7 +270,19 @@ export async function readProviderProxyResponse(response, options = {}) {
|
|
|
270
270
|
data: null,
|
|
271
271
|
};
|
|
272
272
|
}
|
|
273
|
-
if (normalizedContentType
|
|
273
|
+
if (!normalizedContentType) {
|
|
274
|
+
try {
|
|
275
|
+
return {
|
|
276
|
+
status: response.status,
|
|
277
|
+
headers,
|
|
278
|
+
data: new TextDecoder("utf-8", { fatal: true }).decode(bytes),
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
// Preserve invalid UTF-8 bytes through the base64 fallback.
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
if (normalizedContentType === "application/json" || normalizedContentType.endsWith("+json")) {
|
|
274
286
|
return {
|
|
275
287
|
status: response.status,
|
|
276
288
|
headers,
|
|
@@ -303,9 +315,13 @@ export async function readProviderProxyErrorMessage(response, fallbackMessage) {
|
|
|
303
315
|
return (await readProviderErrorTextBody(response, "proxy error response")) || fallbackMessage;
|
|
304
316
|
}
|
|
305
317
|
function isTextProxyContentType(contentType) {
|
|
306
|
-
const normalized = contentType.toLowerCase();
|
|
318
|
+
const normalized = contentType.split(";", 1)[0].trim().toLowerCase();
|
|
307
319
|
return (normalized.startsWith("text/") ||
|
|
308
|
-
normalized
|
|
320
|
+
normalized === "application/x-ndjson" ||
|
|
321
|
+
normalized === "application/xml" ||
|
|
322
|
+
normalized === "application/xml-external-parsed-entity" ||
|
|
323
|
+
normalized === "application/xml-dtd" ||
|
|
324
|
+
normalized.endsWith("+xml") ||
|
|
309
325
|
normalized.includes("javascript") ||
|
|
310
326
|
normalized.includes("x-www-form-urlencoded"));
|
|
311
327
|
}
|
|
@@ -814,6 +830,23 @@ export function parseProviderJsonBodyText(text, options) {
|
|
|
814
830
|
throw new ProviderRequestError(options.invalidJsonStatus ?? 502, options.invalidJsonMessage, error);
|
|
815
831
|
}
|
|
816
832
|
}
|
|
833
|
+
/** Download an upload source through public-only egress with a bounded body. */
|
|
834
|
+
export async function downloadUploadSource(input) {
|
|
835
|
+
return runProviderRequest({ label: input.fieldName, timeoutMs: input.timeoutMs ?? 15_000, signal: input.signal }, async (signal) => {
|
|
836
|
+
const response = await createProviderFetch({ fetch: input.fetcher })(input.url, { signal });
|
|
837
|
+
if (!response.ok) {
|
|
838
|
+
void response.body?.cancel().catch(() => undefined);
|
|
839
|
+
throw providerInputError(`${input.fieldName} download failed with HTTP ${response.status}`);
|
|
840
|
+
}
|
|
841
|
+
const bytes = await readBoundedResponseBytes(response, {
|
|
842
|
+
maxBytes: input.maximumBytes ?? 20 * 1024 * 1024,
|
|
843
|
+
fieldName: input.fieldName,
|
|
844
|
+
createError: providerInputError,
|
|
845
|
+
signal,
|
|
846
|
+
});
|
|
847
|
+
return { bytes, contentType: response.headers.get("content-type") ?? undefined };
|
|
848
|
+
});
|
|
849
|
+
}
|
|
817
850
|
/**
|
|
818
851
|
* Store a provider-hosted file in the local transit file service when enabled.
|
|
819
852
|
*/
|
|
@@ -44,6 +44,7 @@ export const executorModules = {
|
|
|
44
44
|
aisa: () => import("./aisa/executors.js"),
|
|
45
45
|
aitable_ai: () => import("./aitable_ai/executors.js"),
|
|
46
46
|
aivoov: () => import("./aivoov/executors.js"),
|
|
47
|
+
akta: () => import("./akta/executors.js"),
|
|
47
48
|
alchemy: () => import("./alchemy/executors.js"),
|
|
48
49
|
algo_docs: () => import("./algo_docs/executors.js"),
|
|
49
50
|
algolia: () => import("./algolia/executors.js"),
|
|
@@ -272,6 +273,7 @@ export const executorModules = {
|
|
|
272
273
|
clinicalkey: () => import("./clinicalkey/executors.js"),
|
|
273
274
|
clinicaltrials_gov: () => import("./clinicaltrials_gov/executors.js"),
|
|
274
275
|
clockify: () => import("./clockify/executors.js"),
|
|
276
|
+
cloro: () => import("./cloro/executors.js"),
|
|
275
277
|
close: () => import("./close/executors.js"),
|
|
276
278
|
cloudconvert: () => import("./cloudconvert/executors.js"),
|
|
277
279
|
cloudflare_browser_rendering: () => import("./cloudflare_browser_rendering/executors.js"),
|
|
@@ -316,6 +318,7 @@ export const executorModules = {
|
|
|
316
318
|
contentstack_content_delivery: () => import("./contentstack_content_delivery/executors.js"),
|
|
317
319
|
contentstack_content_management: () => import("./contentstack_content_management/executors.js"),
|
|
318
320
|
context7: () => import("./context7/executors.js"),
|
|
321
|
+
contextdev: () => import("./contextdev/executors.js"),
|
|
319
322
|
control_d: () => import("./control_d/executors.js"),
|
|
320
323
|
convertapi: () => import("./convertapi/executors.js"),
|
|
321
324
|
convex: () => import("./convex/executors.js"),
|
|
@@ -376,6 +379,7 @@ export const executorModules = {
|
|
|
376
379
|
deepgram: () => import("./deepgram/executors.js"),
|
|
377
380
|
deepl: () => import("./deepl/executors.js"),
|
|
378
381
|
deepseek: () => import("./deepseek/executors.js"),
|
|
382
|
+
defillama: () => import("./defillama/executors.js"),
|
|
379
383
|
delighted: () => import("./delighted/executors.js"),
|
|
380
384
|
demio: () => import("./demio/executors.js"),
|
|
381
385
|
demodesk: () => import("./demodesk/executors.js"),
|
|
@@ -547,6 +551,7 @@ export const executorModules = {
|
|
|
547
551
|
ftshare: () => import("./ftshare/executors.js"),
|
|
548
552
|
full_contact: () => import("./full_contact/executors.js"),
|
|
549
553
|
fullenrich: () => import("./fullenrich/executors.js"),
|
|
554
|
+
fundable: () => import("./fundable/executors.js"),
|
|
550
555
|
fundzwatch: () => import("./fundzwatch/executors.js"),
|
|
551
556
|
"fusion-api": () => import("./fusion-api/executors.js"),
|
|
552
557
|
futunn: () => import("./futunn/executors.js"),
|
|
@@ -753,6 +758,7 @@ export const executorModules = {
|
|
|
753
758
|
kaonavi: () => import("./kaonavi/executors.js"),
|
|
754
759
|
karakeep: () => import("./karakeep/executors.js"),
|
|
755
760
|
keen_io: () => import("./keen_io/executors.js"),
|
|
761
|
+
keenable: () => import("./keenable/executors.js"),
|
|
756
762
|
keepa: () => import("./keepa/executors.js"),
|
|
757
763
|
keeper_scim: () => import("./keeper_scim/executors.js"),
|
|
758
764
|
kenjo: () => import("./kenjo/executors.js"),
|
|
@@ -776,6 +782,7 @@ export const executorModules = {
|
|
|
776
782
|
knock: () => import("./knock/executors.js"),
|
|
777
783
|
knowbe4: () => import("./knowbe4/executors.js"),
|
|
778
784
|
kobotoolbox: () => import("./kobotoolbox/executors.js"),
|
|
785
|
+
kolsprite_mcp: () => import("./kolsprite_mcp/executors.js"),
|
|
779
786
|
komari: () => import("./komari/executors.js"),
|
|
780
787
|
kommo: () => import("./kommo/executors.js"),
|
|
781
788
|
kontent_ai: () => import("./kontent_ai/executors.js"),
|
|
@@ -827,6 +834,7 @@ export const executorModules = {
|
|
|
827
834
|
listinggood: () => import("./listinggood/executors.js"),
|
|
828
835
|
listmonk: () => import("./listmonk/executors.js"),
|
|
829
836
|
litellm: () => import("./litellm/executors.js"),
|
|
837
|
+
litescrape: () => import("./litescrape/executors.js"),
|
|
830
838
|
liveagent: () => import("./liveagent/executors.js"),
|
|
831
839
|
livesession: () => import("./livesession/executors.js"),
|
|
832
840
|
livespace: () => import("./livespace/executors.js"),
|
|
@@ -847,6 +855,7 @@ export const executorModules = {
|
|
|
847
855
|
lumos: () => import("./lumos/executors.js"),
|
|
848
856
|
luno: () => import("./luno/executors.js"),
|
|
849
857
|
lusha: () => import("./lusha/executors.js"),
|
|
858
|
+
magichour: () => import("./magichour/executors.js"),
|
|
850
859
|
magileads: () => import("./magileads/executors.js"),
|
|
851
860
|
mailbluster: () => import("./mailbluster/executors.js"),
|
|
852
861
|
mailbox_validator: () => import("./mailbox_validator/executors.js"),
|
|
@@ -984,6 +993,7 @@ export const executorModules = {
|
|
|
984
993
|
ocr_web_service: () => import("./ocr_web_service/executors.js"),
|
|
985
994
|
ocrspace: () => import("./ocrspace/executors.js"),
|
|
986
995
|
octave: () => import("./octave/executors.js"),
|
|
996
|
+
octen: () => import("./octen/executors.js"),
|
|
987
997
|
octopus_deploy: () => import("./octopus_deploy/executors.js"),
|
|
988
998
|
odoo: () => import("./odoo/executors.js"),
|
|
989
999
|
oksign: () => import("./oksign/executors.js"),
|
|
@@ -1019,6 +1029,7 @@ export const executorModules = {
|
|
|
1019
1029
|
opsgenie: () => import("./opsgenie/executors.js"),
|
|
1020
1030
|
optimoroute: () => import("./optimoroute/executors.js"),
|
|
1021
1031
|
oracle_cloud: () => import("./oracle_cloud/executors.js"),
|
|
1032
|
+
orbit: () => import("./orbit/executors.js"),
|
|
1022
1033
|
orcarouter: () => import("./orcarouter/executors.js"),
|
|
1023
1034
|
orcid: () => import("./orcid/executors.js"),
|
|
1024
1035
|
ordinal: () => import("./ordinal/executors.js"),
|
|
@@ -1099,6 +1110,7 @@ export const executorModules = {
|
|
|
1099
1110
|
platerecognizer: () => import("./platerecognizer/executors.js"),
|
|
1100
1111
|
plausible_analytics: () => import("./plausible_analytics/executors.js"),
|
|
1101
1112
|
plisio: () => import("./plisio/executors.js"),
|
|
1113
|
+
ploid: () => import("./ploid/executors.js"),
|
|
1102
1114
|
plunk: () => import("./plunk/executors.js"),
|
|
1103
1115
|
pod_ai: () => import("./pod_ai/executors.js"),
|
|
1104
1116
|
podscribe: () => import("./podscribe/executors.js"),
|
|
@@ -1235,6 +1247,7 @@ export const executorModules = {
|
|
|
1235
1247
|
samcart: () => import("./samcart/executors.js"),
|
|
1236
1248
|
sanity: () => import("./sanity/executors.js"),
|
|
1237
1249
|
sansan: () => import("./sansan/executors.js"),
|
|
1250
|
+
saperly: () => import("./saperly/executors.js"),
|
|
1238
1251
|
satismeter: () => import("./satismeter/executors.js"),
|
|
1239
1252
|
saucelabs: () => import("./saucelabs/executors.js"),
|
|
1240
1253
|
scanmalware: () => import("./scanmalware/executors.js"),
|
|
@@ -1252,6 +1265,7 @@ export const executorModules = {
|
|
|
1252
1265
|
screenshotbase: () => import("./screenshotbase/executors.js"),
|
|
1253
1266
|
screenshotone: () => import("./screenshotone/executors.js"),
|
|
1254
1267
|
search_api: () => import("./search_api/executors.js"),
|
|
1268
|
+
search1api: () => import("./search1api/executors.js"),
|
|
1255
1269
|
seatable: () => import("./seatable/executors.js"),
|
|
1256
1270
|
securitytrails: () => import("./securitytrails/executors.js"),
|
|
1257
1271
|
seedance: () => import("./seedance/executors.js"),
|
|
@@ -1386,6 +1400,7 @@ export const executorModules = {
|
|
|
1386
1400
|
supervisely: () => import("./supervisely/executors.js"),
|
|
1387
1401
|
supportbee: () => import("./supportbee/executors.js"),
|
|
1388
1402
|
surecontact: () => import("./surecontact/executors.js"),
|
|
1403
|
+
surf: () => import("./surf/executors.js"),
|
|
1389
1404
|
survey_monkey: () => import("./survey_monkey/executors.js"),
|
|
1390
1405
|
surveymethods: () => import("./surveymethods/executors.js"),
|
|
1391
1406
|
svix: () => import("./svix/executors.js"),
|
|
@@ -1452,6 +1467,7 @@ export const executorModules = {
|
|
|
1452
1467
|
timelink: () => import("./timelink/executors.js"),
|
|
1453
1468
|
timem_space: () => import("./timem_space/executors.js"),
|
|
1454
1469
|
tinybird: () => import("./tinybird/executors.js"),
|
|
1470
|
+
tinyfish: () => import("./tinyfish/executors.js"),
|
|
1455
1471
|
tinypng: () => import("./tinypng/executors.js"),
|
|
1456
1472
|
tinyurl: () => import("./tinyurl/executors.js"),
|
|
1457
1473
|
tisane: () => import("./tisane/executors.js"),
|
|
@@ -1520,6 +1536,7 @@ export const executorModules = {
|
|
|
1520
1536
|
validemail: () => import("./validemail/executors.js"),
|
|
1521
1537
|
valyu: () => import("./valyu/executors.js"),
|
|
1522
1538
|
vapi: () => import("./vapi/executors.js"),
|
|
1539
|
+
vaquill: () => import("./vaquill/executors.js"),
|
|
1523
1540
|
vatlayer: () => import("./vatlayer/executors.js"),
|
|
1524
1541
|
vbout: () => import("./vbout/executors.js"),
|
|
1525
1542
|
vectera: () => import("./vectera/executors.js"),
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
|
|
2
|
+
import type { IntegrationDefinition } from "../../triggers/common/integration.ts";
|
|
2
3
|
export declare const executors: ProviderExecutors;
|
|
3
4
|
export declare const proxy: ProviderProxyExecutor;
|
|
4
5
|
export declare const credentialValidators: CredentialValidators;
|
|
6
|
+
export declare const triggers: readonly IntegrationDefinition[];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineApiKeyProviderExecutors, defineProviderProxy } from "../provider-runtime.js";
|
|
2
2
|
import { resendActionHandlers, resendApiBaseUrl, validateResendCredential } from "./runtime.js";
|
|
3
|
+
import { resendEmailEvent } from "./trigger-on-email-event.js";
|
|
3
4
|
const service = "resend";
|
|
4
5
|
export const executors = defineApiKeyProviderExecutors(service, resendActionHandlers);
|
|
5
6
|
export const proxy = defineProviderProxy({
|
|
@@ -13,3 +14,4 @@ export const credentialValidators = {
|
|
|
13
14
|
return validateResendCredential(input.apiKey, fetcher, signal);
|
|
14
15
|
},
|
|
15
16
|
};
|
|
17
|
+
export const triggers = [resendEmailEvent];
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsonSchema as s } from "../../core/json-schema.js";
|
|
2
|
+
const events = ["email.received", "email.bounced", "email.complained"];
|
|
3
|
+
export const snapshot = {
|
|
4
|
+
key: "resend.on_email_event",
|
|
5
|
+
provider: "resend",
|
|
6
|
+
name: "on_email_event",
|
|
7
|
+
displayName: "Email Received, Bounced or Complained",
|
|
8
|
+
description: "Receives inbound email, bounce, and complaint notifications. Read message bodies and attachments with Actions.",
|
|
9
|
+
definitionVersion: 2,
|
|
10
|
+
type: "integration",
|
|
11
|
+
endpoint: {
|
|
12
|
+
methods: ["POST"],
|
|
13
|
+
body: { formats: ["json"], allowArray: false, allowEmpty: false },
|
|
14
|
+
successStatus: 200,
|
|
15
|
+
},
|
|
16
|
+
configInputs: [
|
|
17
|
+
{
|
|
18
|
+
handle: "eventTypes",
|
|
19
|
+
jsonSchema: {
|
|
20
|
+
type: "array",
|
|
21
|
+
items: { type: "string", enum: events },
|
|
22
|
+
minItems: 1,
|
|
23
|
+
uniqueItems: true,
|
|
24
|
+
title: "Events",
|
|
25
|
+
},
|
|
26
|
+
nullable: false,
|
|
27
|
+
value: events,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
outputs: [
|
|
31
|
+
{ handle: "event", jsonSchema: { type: "string", enum: events }, nullable: false },
|
|
32
|
+
{ handle: "deliveryId", jsonSchema: s.string(), nullable: false },
|
|
33
|
+
{ handle: "emailId", jsonSchema: s.string(), nullable: false },
|
|
34
|
+
{ handle: "createdAt", jsonSchema: s.string(), nullable: false },
|
|
35
|
+
{ handle: "body", jsonSchema: { type: "object" }, nullable: false },
|
|
36
|
+
],
|
|
37
|
+
};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { PermanentIntegrationError, TransientIntegrationError } from "../../triggers/common/integration.js";
|
|
2
|
+
import { isJsonObject } from "../../triggers/common/json.js";
|
|
3
|
+
import { reconcileManagedWebhook, webhookRequest } from "../../triggers/managed-webhook.js";
|
|
4
|
+
import { bytes, verifyBase64Hmac } from "../../triggers/signature.js";
|
|
5
|
+
import { snapshot } from "./trigger-on-email-event.definition.js";
|
|
6
|
+
function webhook(value) {
|
|
7
|
+
if (!isJsonObject(value) ||
|
|
8
|
+
typeof value.id != "string" ||
|
|
9
|
+
!value.id ||
|
|
10
|
+
typeof value.signing_secret != "string" ||
|
|
11
|
+
!value.signing_secret.startsWith("whsec_"))
|
|
12
|
+
throw new TransientIntegrationError("Resend returned an invalid webhook identity or signing secret.");
|
|
13
|
+
try {
|
|
14
|
+
if (!atob(value.signing_secret.slice(6)).length)
|
|
15
|
+
throw new Error();
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
throw new TransientIntegrationError("Resend returned an invalid webhook signing secret.");
|
|
19
|
+
}
|
|
20
|
+
return { id: value.id, secret: value.signing_secret };
|
|
21
|
+
}
|
|
22
|
+
export const resendEmailEvent = {
|
|
23
|
+
snapshot,
|
|
24
|
+
initialState: { checkpoint: null, subscription: {} },
|
|
25
|
+
async reconcile(context) {
|
|
26
|
+
return reconcileManagedWebhook(context, {
|
|
27
|
+
async find() {
|
|
28
|
+
const found = [];
|
|
29
|
+
let after;
|
|
30
|
+
for (let page = 0; page < 100; page++) {
|
|
31
|
+
const result = await webhookRequest(context, {
|
|
32
|
+
endpoint: "/webhooks",
|
|
33
|
+
method: "GET",
|
|
34
|
+
query: after == null ? { limit: 100 } : { limit: 100, after },
|
|
35
|
+
});
|
|
36
|
+
if (!isJsonObject(result.data) ||
|
|
37
|
+
!Array.isArray(result.data.data) ||
|
|
38
|
+
typeof result.data.has_more != "boolean")
|
|
39
|
+
throw new TransientIntegrationError("Resend returned an invalid webhook page.");
|
|
40
|
+
for (const item of result.data.data) {
|
|
41
|
+
if (!isJsonObject(item) || typeof item.id != "string" || !item.id || typeof item.endpoint != "string")
|
|
42
|
+
throw new TransientIntegrationError("Resend returned an invalid webhook.");
|
|
43
|
+
if (item.endpoint == context.endpointUrl) {
|
|
44
|
+
const detail = await webhookRequest(context, {
|
|
45
|
+
endpoint: `/webhooks/${encodeURIComponent(item.id)}`,
|
|
46
|
+
method: "GET",
|
|
47
|
+
});
|
|
48
|
+
found.push(webhook(detail.data));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (!result.data.has_more)
|
|
52
|
+
return found;
|
|
53
|
+
const last = result.data.data.at(-1);
|
|
54
|
+
if (!isJsonObject(last) || typeof last.id != "string" || !last.id || last.id == after)
|
|
55
|
+
throw new TransientIntegrationError("Resend webhook pagination did not advance.");
|
|
56
|
+
after = last.id;
|
|
57
|
+
}
|
|
58
|
+
throw new PermanentIntegrationError("The Resend webhook list exceeds 10000 entries.");
|
|
59
|
+
},
|
|
60
|
+
async create() {
|
|
61
|
+
const result = await webhookRequest(context, {
|
|
62
|
+
endpoint: "/webhooks",
|
|
63
|
+
method: "POST",
|
|
64
|
+
body: { endpoint: context.endpointUrl, events: context.config.eventTypes },
|
|
65
|
+
});
|
|
66
|
+
return webhook(result.data);
|
|
67
|
+
},
|
|
68
|
+
async align(id) {
|
|
69
|
+
await webhookRequest(context, {
|
|
70
|
+
endpoint: `/webhooks/${encodeURIComponent(id)}`,
|
|
71
|
+
method: "PATCH",
|
|
72
|
+
body: { endpoint: context.endpointUrl, events: context.config.eventTypes, status: "enabled" },
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
async remove(id) {
|
|
76
|
+
await webhookRequest(context, { endpoint: `/webhooks/${encodeURIComponent(id)}`, method: "DELETE" });
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
async receive(context) {
|
|
81
|
+
const secret = context.state?.subscription.secret;
|
|
82
|
+
if (typeof secret != "string")
|
|
83
|
+
return { outcome: "respond", status: 503, body: "", contentType: "text/plain" };
|
|
84
|
+
const id = context.header("svix-id");
|
|
85
|
+
const timestamp = context.header("svix-timestamp");
|
|
86
|
+
const signatures = context.header("svix-signature")?.split(" ") ?? [];
|
|
87
|
+
let valid = false;
|
|
88
|
+
if (id &&
|
|
89
|
+
timestamp &&
|
|
90
|
+
Number.isInteger(Number(timestamp)) &&
|
|
91
|
+
Math.abs(context.now.getTime() / 1000 - Number(timestamp)) <= 300) {
|
|
92
|
+
const key = Uint8Array.from(atob(secret.slice(6)), (character) => character.charCodeAt(0));
|
|
93
|
+
for (const signature of signatures) {
|
|
94
|
+
if (signature.startsWith("v1,") &&
|
|
95
|
+
(await verifyBase64Hmac(key, [bytes(`${id}.${timestamp}.`), context.rawBody], signature.slice(3)))) {
|
|
96
|
+
valid = true;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (!valid)
|
|
102
|
+
return { outcome: "respond", status: 401, body: "", contentType: "text/plain" };
|
|
103
|
+
const body = context.payload;
|
|
104
|
+
if (!isJsonObject(body) ||
|
|
105
|
+
typeof body.type != "string" ||
|
|
106
|
+
!context.config.eventTypes.includes(body.type))
|
|
107
|
+
return { outcome: "ignored", reason: "Resend event does not match." };
|
|
108
|
+
if (!isJsonObject(body.data) ||
|
|
109
|
+
typeof body.data.email_id != "string" ||
|
|
110
|
+
!body.data.email_id ||
|
|
111
|
+
typeof body.created_at != "string")
|
|
112
|
+
return { outcome: "respond", status: 400, body: "", contentType: "text/plain" };
|
|
113
|
+
return {
|
|
114
|
+
outcome: "event",
|
|
115
|
+
dedupeKey: id,
|
|
116
|
+
outputs: {
|
|
117
|
+
event: body.type,
|
|
118
|
+
deliveryId: id,
|
|
119
|
+
emailId: body.data.email_id,
|
|
120
|
+
createdAt: body.created_at,
|
|
121
|
+
body: body.data,
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
},
|
|
125
|
+
};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export declare const chatterFeedRoutes: {
|
|
2
|
+
readonly favorites: {
|
|
3
|
+
readonly path: "/chatter/feeds/favorites/{userId}/{favoriteId}/feed-elements";
|
|
4
|
+
readonly communityRequired: false;
|
|
5
|
+
readonly parameters: readonly ["elementsPerBundle", "page", "pageSize", "recentCommentCount", "sort"];
|
|
6
|
+
};
|
|
7
|
+
readonly filter: {
|
|
8
|
+
readonly path: "/chatter/feeds/filter/{userId}/{keyPrefix}/feed-elements";
|
|
9
|
+
readonly communityRequired: false;
|
|
10
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "q", "recentCommentCount", "sort", "updatedSince"];
|
|
11
|
+
};
|
|
12
|
+
readonly bookmarks: {
|
|
13
|
+
readonly path: "/chatter/feeds/bookmarks/{userId}/feed-elements";
|
|
14
|
+
readonly communityRequired: false;
|
|
15
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "q", "recentCommentCount", "sort"];
|
|
16
|
+
};
|
|
17
|
+
readonly company: {
|
|
18
|
+
readonly path: "/chatter/feeds/company/feed-elements";
|
|
19
|
+
readonly communityRequired: false;
|
|
20
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "q", "recentCommentCount", "sort", "updatedSince"];
|
|
21
|
+
};
|
|
22
|
+
readonly "direct-messages": {
|
|
23
|
+
readonly path: "/chatter/feeds/direct-messages/feed-elements";
|
|
24
|
+
readonly communityRequired: false;
|
|
25
|
+
readonly parameters: readonly ["page", "pageSize", "recentCommentCount", "sort"];
|
|
26
|
+
};
|
|
27
|
+
readonly draft: {
|
|
28
|
+
readonly path: "/chatter/feeds/draft/{userId}/feed-elements";
|
|
29
|
+
readonly communityRequired: false;
|
|
30
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "q", "recentCommentCount", "sort"];
|
|
31
|
+
};
|
|
32
|
+
readonly files: {
|
|
33
|
+
readonly path: "/chatter/feeds/files/{userId}/feed-elements";
|
|
34
|
+
readonly communityRequired: false;
|
|
35
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "q", "recentCommentCount", "sort", "updatedSince"];
|
|
36
|
+
};
|
|
37
|
+
readonly groups: {
|
|
38
|
+
readonly path: "/chatter/feeds/groups/{userId}/feed-elements";
|
|
39
|
+
readonly communityRequired: false;
|
|
40
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "q", "recentCommentCount", "sort", "updatedSince"];
|
|
41
|
+
};
|
|
42
|
+
readonly isolated: {
|
|
43
|
+
readonly path: "/chatter/feeds/isolated/feed-elements";
|
|
44
|
+
readonly communityRequired: false;
|
|
45
|
+
readonly parameters: readonly ["page", "pageSize", "q", "sort"];
|
|
46
|
+
};
|
|
47
|
+
readonly mute: {
|
|
48
|
+
readonly path: "/chatter/feeds/mute/{userId}/feed-elements";
|
|
49
|
+
readonly communityRequired: false;
|
|
50
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "q", "recentCommentCount", "sort"];
|
|
51
|
+
};
|
|
52
|
+
readonly news: {
|
|
53
|
+
readonly path: "/chatter/feeds/news/{userId}/feed-elements";
|
|
54
|
+
readonly communityRequired: false;
|
|
55
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "filter", "page", "pageSize", "q", "recentCommentCount", "sort", "updatedSince"];
|
|
56
|
+
};
|
|
57
|
+
readonly "pending-review": {
|
|
58
|
+
readonly path: "/chatter/feeds/pending-review/feed-elements";
|
|
59
|
+
readonly communityRequired: false;
|
|
60
|
+
readonly parameters: readonly ["page", "pageSize", "q", "sort"];
|
|
61
|
+
};
|
|
62
|
+
readonly people: {
|
|
63
|
+
readonly path: "/chatter/feeds/people/{userId}/feed-elements";
|
|
64
|
+
readonly communityRequired: false;
|
|
65
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "q", "recentCommentCount", "sort", "updatedSince"];
|
|
66
|
+
};
|
|
67
|
+
readonly record: {
|
|
68
|
+
readonly path: "/chatter/feeds/record/{recordId}/feed-elements";
|
|
69
|
+
readonly communityRequired: false;
|
|
70
|
+
readonly parameters: readonly ["customFilter", "density", "elementsPerBundle", "filter", "page", "pageSize", "q", "recentCommentCount", "showInternalOnly", "sort", "threadedCommentsCollapsed", "updatedSince"];
|
|
71
|
+
};
|
|
72
|
+
readonly streams: {
|
|
73
|
+
readonly path: "/chatter/feeds/streams/{streamId}/feed-elements";
|
|
74
|
+
readonly communityRequired: false;
|
|
75
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "recentCommentCount", "sort", "updatedSince"];
|
|
76
|
+
};
|
|
77
|
+
readonly to: {
|
|
78
|
+
readonly path: "/chatter/feeds/to/{userId}/feed-elements";
|
|
79
|
+
readonly communityRequired: false;
|
|
80
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "page", "pageSize", "q", "recentCommentCount", "sort"];
|
|
81
|
+
};
|
|
82
|
+
readonly topics: {
|
|
83
|
+
readonly path: "/chatter/feeds/topics/{topicId}/feed-elements";
|
|
84
|
+
readonly communityRequired: false;
|
|
85
|
+
readonly parameters: readonly ["filter", "page", "pageSize", "sort"];
|
|
86
|
+
};
|
|
87
|
+
readonly "user-profile": {
|
|
88
|
+
readonly path: "/chatter/feeds/user-profile/{userId}/feed-elements";
|
|
89
|
+
readonly communityRequired: false;
|
|
90
|
+
readonly parameters: readonly ["density", "elementsPerBundle", "filter", "page", "pageSize", "q", "recentCommentCount", "sort", "threadedCommentsCollapsed"];
|
|
91
|
+
};
|
|
92
|
+
readonly "direct-message-moderation": {
|
|
93
|
+
readonly path: "/chatter/feeds/direct-message-moderation/feed-elements";
|
|
94
|
+
readonly communityRequired: true;
|
|
95
|
+
readonly parameters: readonly ["page", "pageSize", "q", "sort"];
|
|
96
|
+
};
|
|
97
|
+
readonly home: {
|
|
98
|
+
readonly path: "/chatter/feeds/home/feed-elements";
|
|
99
|
+
readonly communityRequired: true;
|
|
100
|
+
readonly parameters: readonly ["filter", "page", "pageSize", "q", "sort", "threadedCommentsCollapsed"];
|
|
101
|
+
};
|
|
102
|
+
readonly moderation: {
|
|
103
|
+
readonly path: "/chatter/feeds/moderation/feed-elements";
|
|
104
|
+
readonly communityRequired: true;
|
|
105
|
+
readonly parameters: readonly ["page", "pageSize", "q", "sort"];
|
|
106
|
+
};
|
|
107
|
+
};
|