@oomol-lab/open-connector 1.9.0 → 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/agentearth.json +441 -0
- 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/appgrowing_mcp.json +863 -0
- package/assets/open-connector/catalog/apps/arcmira.json +610 -0
- package/assets/open-connector/catalog/apps/asana.json +110 -0
- package/assets/open-connector/catalog/apps/bainiu.json +654 -0
- package/assets/open-connector/catalog/apps/calendly.json +103 -0
- package/assets/open-connector/catalog/apps/chaport.json +331 -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/cnb.json +1408 -0
- package/assets/open-connector/catalog/apps/contextdev.json +20670 -0
- package/assets/open-connector/catalog/apps/crtsh.json +123 -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/eastmoney_miaoxiang.json +406 -0
- package/assets/open-connector/catalog/apps/fastmoss_mcp.json +876 -876
- package/assets/open-connector/catalog/apps/fireflies.json +103 -0
- package/assets/open-connector/catalog/apps/ftshare.json +1162 -0
- package/assets/open-connector/catalog/apps/fundable.json +7926 -0
- package/assets/open-connector/catalog/apps/fusion-api.json +143 -0
- package/assets/open-connector/catalog/apps/fxbaogao.json +308 -0
- package/assets/open-connector/catalog/apps/github.json +38 -3
- package/assets/open-connector/catalog/apps/hrmos_kintai.json +7519 -0
- package/assets/open-connector/catalog/apps/humor_api.json +351 -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/kaonavi.json +1723 -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/linear_mcp.json +882 -22
- package/assets/open-connector/catalog/apps/listinggood.json +362 -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/notion_mcp.json +338 -1
- 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/outlook.json +414 -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/porteden.json +1258 -0
- package/assets/open-connector/catalog/apps/qiuxiaoce.json +915 -0
- package/assets/open-connector/catalog/apps/qqmusic.json +1834 -0
- package/assets/open-connector/catalog/apps/rakuraku_seisan.json +217 -0
- package/assets/open-connector/catalog/apps/redfox.json +9661 -897
- package/assets/open-connector/catalog/apps/resend.json +100 -0
- package/assets/open-connector/catalog/apps/salesforce.json +7275 -0
- package/assets/open-connector/catalog/apps/sansan.json +4594 -0
- 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/smarthr.json +8071 -0
- package/assets/open-connector/catalog/apps/smooth.json +914 -0
- 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/tapd.json +727 -0
- package/assets/open-connector/catalog/apps/tencent_meeting_mcp.json +1301 -0
- package/assets/open-connector/catalog/apps/threatfox.json +203 -0
- package/assets/open-connector/catalog/apps/tinyfish.json +6154 -0
- package/assets/open-connector/catalog/apps/tradebee.json +915 -0
- package/assets/open-connector/catalog/apps/twittrapi.json +4914 -0
- package/assets/open-connector/catalog/apps/typeform.json +90 -1
- package/assets/open-connector/catalog/apps/urlhaus.json +246 -0
- 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/weread.json +1514 -0
- package/assets/open-connector/catalog/apps/whatsapp.json +12 -0
- package/assets/open-connector/catalog/apps/zhiliaobiaoxun.json +812 -0
- package/assets/open-connector/catalog/apps/zoom.json +112 -0
- package/assets/open-connector/catalog/apps-index.json +1 -1
- package/package.json +2 -1
- package/src/connection-service.js +55 -11
- package/src/core/json-schema.d.ts +11 -3
- package/src/core/json-schema.js +13 -3
- package/src/core/provider-error-codes.d.ts +9 -0
- package/src/core/provider-error-codes.js +13 -0
- package/src/core/request.d.ts +2 -0
- package/src/core/request.js +11 -2
- package/src/mail/imap-smtp/protocol.js +4 -3
- package/src/oauth/oauth-flow-service.js +1 -0
- package/src/oauth/oauth-token.d.ts +2 -0
- package/src/providers/17track/runtime.js +17 -20
- package/src/providers/action-contracts.generated.d.ts +58 -11
- package/src/providers/agentearth/actions.d.ts +2 -0
- package/src/providers/agentearth/actions.js +100 -0
- package/src/providers/agentearth/executors.d.ts +4 -0
- package/src/providers/agentearth/executors.js +109 -0
- 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/appgrowing_mcp/actions.d.ts +2 -0
- package/src/providers/appgrowing_mcp/actions.js +175 -0
- package/src/providers/appgrowing_mcp/executors.d.ts +4 -0
- package/src/providers/appgrowing_mcp/executors.js +66 -0
- package/src/providers/arcmira/executors.d.ts +3 -0
- package/src/providers/arcmira/executors.js +8 -0
- package/src/providers/arcmira/runtime.d.ts +6 -0
- package/src/providers/arcmira/runtime.js +41 -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/bainiu/actions.d.ts +2 -0
- package/src/providers/bainiu/actions.js +108 -0
- package/src/providers/bainiu/executors.d.ts +4 -0
- package/src/providers/bainiu/executors.js +113 -0
- package/src/providers/baixiao/executors.js +1 -1
- package/src/providers/bing_webmaster/executors.js +1 -1
- 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/chaport/actions.d.ts +2 -0
- package/src/providers/chaport/actions.js +70 -0
- package/src/providers/chaport/executors.d.ts +4 -0
- package/src/providers/chaport/executors.js +128 -0
- package/src/providers/clickup/executors.d.ts +2 -0
- package/src/providers/clickup/executors.js +2 -0
- package/src/providers/clickup/runtime.js +49 -52
- 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/cnb/actions.d.ts +2 -0
- package/src/providers/cnb/actions.js +341 -0
- package/src/providers/cnb/executors.d.ts +4 -0
- package/src/providers/cnb/executors.js +135 -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/coupontools/runtime.js +11 -14
- package/src/providers/crtsh/executors.d.ts +3 -0
- package/src/providers/crtsh/executors.js +19 -0
- package/src/providers/crtsh/runtime.d.ts +17 -0
- package/src/providers/crtsh/runtime.js +84 -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/eastmoney_miaoxiang/actions.d.ts +2 -0
- package/src/providers/eastmoney_miaoxiang/actions.js +95 -0
- package/src/providers/eastmoney_miaoxiang/executors.d.ts +4 -0
- package/src/providers/eastmoney_miaoxiang/executors.js +81 -0
- package/src/providers/fastmoss_mcp/actions-content.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-content.js +140 -0
- package/src/providers/fastmoss_mcp/actions-creator.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-creator.js +154 -0
- package/src/providers/fastmoss_mcp/actions-product.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-product.js +167 -0
- package/src/providers/fastmoss_mcp/actions-research.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-research.js +174 -0
- package/src/providers/fastmoss_mcp/actions-shop.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-shop.js +142 -0
- package/src/providers/fastmoss_mcp/actions.js +11 -12
- package/src/providers/fastmoss_mcp/schemas.d.ts +51 -0
- package/src/providers/fastmoss_mcp/schemas.js +52 -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/ftshare/actions.d.ts +2 -0
- package/src/providers/ftshare/actions.js +124 -0
- package/src/providers/ftshare/executors.d.ts +4 -0
- package/src/providers/ftshare/executors.js +102 -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/fusion-api/operations.js +37 -0
- package/src/providers/fxbaogao/actions.d.ts +2 -0
- package/src/providers/fxbaogao/actions.js +74 -0
- package/src/providers/fxbaogao/executors.d.ts +4 -0
- package/src/providers/fxbaogao/executors.js +155 -0
- package/src/providers/github/app-installation.d.ts +37 -0
- package/src/providers/github/app-installation.js +233 -0
- package/src/providers/github/executors.js +93 -15
- package/src/providers/github/runtime-repository.js +21 -1
- package/src/providers/github/runtime-shared.d.ts +2 -0
- package/src/providers/github/runtime-shared.js +1 -0
- package/src/providers/gmail/message.d.ts +1 -6
- package/src/providers/gmail/message.js +1 -1
- package/src/providers/googledrive/runtime-request.js +3 -3
- package/src/providers/hrmos_kintai/actions.d.ts +2 -0
- package/src/providers/hrmos_kintai/actions.js +139 -0
- package/src/providers/hrmos_kintai/attendance-actions.d.ts +2 -0
- package/src/providers/hrmos_kintai/attendance-actions.js +276 -0
- package/src/providers/hrmos_kintai/business-actions.d.ts +2 -0
- package/src/providers/hrmos_kintai/business-actions.js +143 -0
- package/src/providers/hrmos_kintai/business-schemas.d.ts +4 -0
- package/src/providers/hrmos_kintai/business-schemas.js +320 -0
- package/src/providers/hrmos_kintai/executors.d.ts +4 -0
- package/src/providers/hrmos_kintai/executors.js +61 -0
- package/src/providers/hrmos_kintai/export-actions.d.ts +2 -0
- package/src/providers/hrmos_kintai/export-actions.js +58 -0
- package/src/providers/hrmos_kintai/operations.d.ts +9 -0
- package/src/providers/hrmos_kintai/operations.js +278 -0
- package/src/providers/hrmos_kintai/runtime.d.ts +10 -0
- package/src/providers/hrmos_kintai/runtime.js +217 -0
- package/src/providers/hrmos_kintai/schemas.d.ts +10 -0
- package/src/providers/hrmos_kintai/schemas.js +70 -0
- package/src/providers/humor_api/actions.d.ts +2 -0
- package/src/providers/humor_api/actions.js +96 -0
- package/src/providers/humor_api/executors.d.ts +4 -0
- package/src/providers/humor_api/executors.js +76 -0
- 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/kaonavi/actions.d.ts +4 -0
- package/src/providers/kaonavi/actions.js +144 -0
- package/src/providers/kaonavi/additional-actions.d.ts +10 -0
- package/src/providers/kaonavi/additional-actions.js +203 -0
- package/src/providers/kaonavi/executors.d.ts +4 -0
- package/src/providers/kaonavi/executors.js +69 -0
- package/src/providers/kaonavi/runtime.d.ts +4 -0
- package/src/providers/kaonavi/runtime.js +69 -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/linear_mcp/actions.d.ts +14 -0
- package/src/providers/linear_mcp/actions.js +134 -0
- package/src/providers/linear_mcp/runtime-mcp.d.ts +7 -1
- package/src/providers/linear_mcp/runtime-mcp.js +140 -28
- package/src/providers/linkfox/runtime.js +48 -51
- package/src/providers/listinggood/actions.d.ts +2 -0
- package/src/providers/listinggood/actions.js +95 -0
- package/src/providers/listinggood/executors.d.ts +4 -0
- package/src/providers/listinggood/executors.js +99 -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/mcp-tools.d.ts +3 -0
- package/src/providers/mcp-tools.js +5 -4
- 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/notion_mcp/executors.js +53 -24
- package/src/providers/notion_mcp/mcp-response.d.ts +26 -0
- package/src/providers/notion_mcp/mcp-response.js +95 -0
- 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/omise/executors.js +1 -1
- 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/outlook/executors.js +35 -2
- 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/porteden/actions.d.ts +2 -0
- package/src/providers/porteden/actions.js +162 -0
- package/src/providers/porteden/executors.d.ts +4 -0
- package/src/providers/porteden/executors.js +140 -0
- package/src/providers/provider-runtime.d.ts +16 -2
- package/src/providers/provider-runtime.js +37 -4
- package/src/providers/pushover/runtime.js +28 -31
- package/src/providers/qianfan/runtime.js +16 -19
- package/src/providers/qiuxiaoce/actions.d.ts +2 -0
- package/src/providers/qiuxiaoce/actions.js +248 -0
- package/src/providers/qiuxiaoce/executors.d.ts +4 -0
- package/src/providers/qiuxiaoce/executors.js +76 -0
- package/src/providers/qiuxiaoce/routes.d.ts +1 -0
- package/src/providers/qiuxiaoce/routes.js +20 -0
- package/src/providers/qqmusic/actions.d.ts +2 -0
- package/src/providers/qqmusic/actions.js +229 -0
- package/src/providers/qqmusic/executors.d.ts +4 -0
- package/src/providers/qqmusic/executors.js +92 -0
- package/src/providers/qqmusic/report-schema.d.ts +4 -0
- package/src/providers/qqmusic/report-schema.js +119 -0
- package/src/providers/rakuraku_seisan/actions.d.ts +2 -0
- package/src/providers/rakuraku_seisan/actions.js +50 -0
- package/src/providers/rakuraku_seisan/executors.d.ts +4 -0
- package/src/providers/rakuraku_seisan/executors.js +40 -0
- package/src/providers/rakuraku_seisan/runtime.d.ts +8 -0
- package/src/providers/rakuraku_seisan/runtime.js +251 -0
- package/src/providers/redfox/actions-account.d.ts +2 -0
- package/src/providers/redfox/actions-account.js +24 -0
- package/src/providers/redfox/actions-autohome.d.ts +2 -0
- package/src/providers/redfox/actions-autohome.js +51 -0
- package/src/providers/redfox/actions-baijiahao.d.ts +2 -0
- package/src/providers/redfox/actions-baijiahao.js +58 -0
- package/src/providers/redfox/actions-bilibili.d.ts +2 -0
- package/src/providers/redfox/actions-bilibili.js +67 -0
- package/src/providers/redfox/actions-dongchedi.d.ts +2 -0
- package/src/providers/redfox/actions-dongchedi.js +49 -0
- package/src/providers/redfox/actions-douyin.d.ts +2 -0
- package/src/providers/redfox/actions-douyin.js +297 -0
- package/src/providers/redfox/actions-generation.d.ts +2 -0
- package/src/providers/redfox/actions-generation.js +293 -0
- package/src/providers/redfox/actions-instagram.d.ts +2 -0
- package/src/providers/redfox/actions-instagram.js +49 -0
- package/src/providers/redfox/actions-kuaishou.d.ts +2 -0
- package/src/providers/redfox/actions-kuaishou.js +53 -0
- package/src/providers/redfox/actions-search.d.ts +2 -0
- package/src/providers/redfox/actions-search.js +125 -0
- package/src/providers/redfox/actions-tiktok.d.ts +2 -0
- package/src/providers/redfox/actions-tiktok.js +136 -0
- package/src/providers/redfox/actions-tools.d.ts +2 -0
- package/src/providers/redfox/actions-tools.js +151 -0
- package/src/providers/redfox/actions-toutiao.d.ts +2 -0
- package/src/providers/redfox/actions-toutiao.js +68 -0
- package/src/providers/redfox/actions-transcription.d.ts +2 -0
- package/src/providers/redfox/actions-transcription.js +165 -0
- package/src/providers/redfox/actions-wechat-channel.d.ts +2 -0
- package/src/providers/redfox/actions-wechat-channel.js +63 -0
- package/src/providers/redfox/actions-wechat.d.ts +2 -0
- package/src/providers/redfox/actions-wechat.js +302 -0
- package/src/providers/redfox/actions-weibo.d.ts +2 -0
- package/src/providers/redfox/actions-weibo.js +61 -0
- package/src/providers/redfox/actions-x.d.ts +2 -0
- package/src/providers/redfox/actions-x.js +126 -0
- package/src/providers/redfox/actions-xiaohongshu.d.ts +2 -0
- package/src/providers/redfox/actions-xiaohongshu.js +244 -0
- package/src/providers/redfox/actions-yiche.d.ts +2 -0
- package/src/providers/redfox/actions-yiche.js +59 -0
- package/src/providers/redfox/actions-youtube.d.ts +2 -0
- package/src/providers/redfox/actions-youtube.js +64 -0
- package/src/providers/redfox/actions-zhihu.d.ts +2 -0
- package/src/providers/redfox/actions-zhihu.js +26 -0
- package/src/providers/redfox/actions.d.ts +2 -0
- package/src/providers/redfox/actions.js +49 -0
- package/src/providers/redfox/executors.d.ts +2 -14
- package/src/providers/redfox/executors.js +28 -551
- package/src/providers/redfox/routes.d.ts +11 -0
- package/src/providers/redfox/routes.js +329 -0
- package/src/providers/redfox/runtime.d.ts +6 -0
- package/src/providers/redfox/runtime.js +151 -0
- package/src/providers/redfox/schemas.d.ts +9 -0
- package/src/providers/redfox/schemas.js +40 -0
- package/src/providers/registry.generated.js +47 -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 +16 -0
- package/src/providers/salesforce/context.js +61 -0
- package/src/providers/salesforce/executors.d.ts +5 -0
- package/src/providers/salesforce/executors.js +64 -0
- package/src/providers/salesforce/media.d.ts +9 -0
- package/src/providers/salesforce/media.js +66 -0
- package/src/providers/salesforce/oauth.d.ts +2 -0
- package/src/providers/salesforce/oauth.js +89 -0
- package/src/providers/salesforce/runtime-analytics.d.ts +2 -0
- package/src/providers/salesforce/runtime-analytics.js +60 -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-automation.d.ts +2 -0
- package/src/providers/salesforce/runtime-automation.js +64 -0
- package/src/providers/salesforce/runtime-base.d.ts +2 -0
- package/src/providers/salesforce/runtime-base.js +62 -0
- package/src/providers/salesforce/runtime-bulk.d.ts +2 -0
- package/src/providers/salesforce/runtime-bulk.js +98 -0
- package/src/providers/salesforce/runtime-chatter.d.ts +2 -0
- package/src/providers/salesforce/runtime-chatter.js +78 -0
- package/src/providers/salesforce/runtime-data.d.ts +2 -0
- package/src/providers/salesforce/runtime-data.js +207 -0
- package/src/providers/salesforce/runtime-files.d.ts +2 -0
- package/src/providers/salesforce/runtime-files.js +108 -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/salesforce/transport.d.ts +9 -0
- package/src/providers/salesforce/transport.js +65 -0
- package/src/providers/sansan/actions.d.ts +2 -0
- package/src/providers/sansan/actions.js +165 -0
- package/src/providers/sansan/admin-actions.d.ts +2 -0
- package/src/providers/sansan/admin-actions.js +181 -0
- package/src/providers/sansan/admin.d.ts +2 -0
- package/src/providers/sansan/admin.js +42 -0
- package/src/providers/sansan/business-actions.d.ts +2 -0
- package/src/providers/sansan/business-actions.js +160 -0
- package/src/providers/sansan/business.d.ts +2 -0
- package/src/providers/sansan/business.js +51 -0
- package/src/providers/sansan/executors.d.ts +4 -0
- package/src/providers/sansan/executors.js +59 -0
- package/src/providers/sansan/file-schema.d.ts +2 -0
- package/src/providers/sansan/file-schema.js +8 -0
- package/src/providers/sansan/files.d.ts +11 -0
- package/src/providers/sansan/files.js +49 -0
- package/src/providers/sansan/organization-actions.d.ts +2 -0
- package/src/providers/sansan/organization-actions.js +198 -0
- package/src/providers/sansan/organization-columns.d.ts +2 -0
- package/src/providers/sansan/organization-columns.js +33 -0
- package/src/providers/sansan/organization.d.ts +2 -0
- package/src/providers/sansan/organization.js +88 -0
- package/src/providers/sansan/read.d.ts +2 -0
- package/src/providers/sansan/read.js +25 -0
- package/src/providers/sansan/request.d.ts +22 -0
- package/src/providers/sansan/request.js +94 -0
- package/src/providers/sansan/schemas.d.ts +7 -0
- package/src/providers/sansan/schemas.js +72 -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/shopee/runtime.d.ts +33 -29
- package/src/providers/shopee/runtime.js +166 -169
- 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/smarthr/actions.d.ts +2 -0
- package/src/providers/smarthr/actions.js +286 -0
- package/src/providers/smarthr/employee-runtime.d.ts +1 -0
- package/src/providers/smarthr/employee-runtime.js +63 -0
- package/src/providers/smarthr/employee-schema.d.ts +3 -0
- package/src/providers/smarthr/employee-schema.js +222 -0
- package/src/providers/smarthr/executors.d.ts +4 -0
- package/src/providers/smarthr/executors.js +35 -0
- package/src/providers/smarthr/pagination.d.ts +1 -0
- package/src/providers/smarthr/pagination.js +84 -0
- package/src/providers/smarthr/resource-routes.d.ts +16 -0
- package/src/providers/smarthr/resource-routes.js +163 -0
- package/src/providers/smarthr/runtime.d.ts +13 -0
- package/src/providers/smarthr/runtime.js +242 -0
- package/src/providers/smarthr/supplemental-actions.d.ts +2 -0
- package/src/providers/smarthr/supplemental-actions.js +541 -0
- package/src/providers/smooth/actions.d.ts +2 -0
- package/src/providers/smooth/actions.js +138 -0
- package/src/providers/smooth/executors.d.ts +4 -0
- package/src/providers/smooth/executors.js +102 -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/tapd/actions.d.ts +8 -0
- package/src/providers/tapd/actions.js +89 -0
- package/src/providers/tapd/executors.d.ts +4 -0
- package/src/providers/tapd/executors.js +137 -0
- package/src/providers/teable/runtime.js +12 -15
- package/src/providers/tencent_meeting_mcp/actions.d.ts +2 -0
- package/src/providers/tencent_meeting_mcp/actions.js +420 -0
- package/src/providers/tencent_meeting_mcp/executors.d.ts +4 -0
- package/src/providers/tencent_meeting_mcp/executors.js +117 -0
- package/src/providers/threatfox/executors.d.ts +4 -0
- package/src/providers/threatfox/executors.js +40 -0
- package/src/providers/threatfox/runtime.d.ts +15 -0
- package/src/providers/threatfox/runtime.js +128 -0
- package/src/providers/ticket_tailor/runtime.js +1 -1
- package/src/providers/ticketmaster/runtime.js +3 -6
- package/src/providers/timelinesai/runtime.js +13 -16
- 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/tradebee/actions.d.ts +2 -0
- package/src/providers/tradebee/actions.js +176 -0
- package/src/providers/tradebee/executors.d.ts +4 -0
- package/src/providers/tradebee/executors.js +83 -0
- package/src/providers/trello/executors.js +5 -2
- package/src/providers/twittrapi/executors.d.ts +4 -0
- package/src/providers/twittrapi/executors.js +17 -0
- package/src/providers/twittrapi/runtime.d.ts +12 -0
- package/src/providers/twittrapi/runtime.js +203 -0
- 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/urlhaus/executors.d.ts +4 -0
- package/src/providers/urlhaus/executors.js +40 -0
- package/src/providers/urlhaus/runtime.d.ts +15 -0
- package/src/providers/urlhaus/runtime.js +142 -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/wangdian/runtime.js +16 -19
- 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/weread/actions.d.ts +2 -0
- package/src/providers/weread/actions.js +424 -0
- package/src/providers/weread/executors.d.ts +4 -0
- package/src/providers/weread/executors.js +98 -0
- package/src/providers/whatsapp/runtime.js +6 -1
- package/src/providers/workast/runtime.js +12 -17
- package/src/providers/youzan/runtime.js +21 -24
- package/src/providers/zenkit/runtime.js +13 -19
- package/src/providers/zhiliaobiaoxun/actions.d.ts +2 -0
- package/src/providers/zhiliaobiaoxun/actions.js +138 -0
- package/src/providers/zhiliaobiaoxun/executors.d.ts +4 -0
- package/src/providers/zhiliaobiaoxun/executors.js +78 -0
- 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/auth.d.ts +2 -0
- package/src/server/api/auth.js +2 -1
- package/src/server/api/console-catalog-routes.d.ts +17 -0
- package/src/server/api/console-catalog-routes.js +88 -0
- package/src/server/api/console-oauth-routes.d.ts +18 -0
- package/src/server/api/console-oauth-routes.js +298 -0
- package/src/server/api/docs-routes.d.ts +12 -0
- package/src/server/api/docs-routes.js +38 -0
- package/src/server/api/http-utils.d.ts +1 -0
- package/src/server/api/http-utils.js +8 -0
- package/src/server/api/marketplace-routes.d.ts +7 -0
- package/src/server/api/marketplace-routes.js +62 -0
- package/src/server/api/mcp-routes.d.ts +18 -0
- package/src/server/api/mcp-routes.js +37 -0
- package/src/server/api/pattern-example.js +35 -1
- package/src/server/api/policy-routes.d.ts +13 -0
- package/src/server/api/policy-routes.js +50 -0
- package/src/server/api/policy-snapshot.d.ts +14 -0
- package/src/server/api/policy-snapshot.js +30 -0
- package/src/server/api/run-log-routes.d.ts +7 -0
- package/src/server/api/run-log-routes.js +70 -0
- package/src/server/api/runtime-api.d.ts +0 -7
- package/src/server/api/runtime-api.js +0 -13
- package/src/server/api/runtime-app-routes.d.ts +10 -0
- package/src/server/api/runtime-app-routes.js +72 -0
- package/src/server/api/runtime-catalog-routes.d.ts +37 -0
- package/src/server/api/runtime-catalog-routes.js +133 -0
- package/src/server/api/runtime-execution-routes.d.ts +16 -0
- package/src/server/api/runtime-execution-routes.js +198 -0
- package/src/server/api/saas-oauth-routes.d.ts +9 -0
- package/src/server/api/saas-oauth-routes.js +27 -0
- package/src/server/api/saas-project-routes.d.ts +7 -0
- package/src/server/api/saas-project-routes.js +16 -0
- package/src/server/api/transit-file-routes.d.ts +9 -0
- package/src/server/api/transit-file-routes.js +49 -0
- package/src/server/api/trigger-routes.d.ts +15 -0
- package/src/server/api/trigger-routes.js +48 -0
- package/src/server/connect-app.d.ts +1 -0
- package/src/server/connect-app.js +4 -1
- package/src/server/connect-server.d.ts +3 -54
- package/src/server/connect-server.js +95 -1148
- 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
- package/src/providers/fastmoss_mcp/official-tools.json +0 -2922
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { JsonSchema } from "../../core/types.ts";
|
|
2
|
+
export declare const orderSchema: JsonSchema;
|
|
3
|
+
export declare const financialPeriodLimitSchema: JsonSchema;
|
|
4
|
+
export declare const endDateSchema: JsonSchema;
|
|
5
|
+
export declare const evmWalletAddressSchema: JsonSchema;
|
|
6
|
+
export declare const polymarketConditionIdSchema: JsonSchema;
|
|
7
|
+
export declare const conditionIdSchema: JsonSchema;
|
|
8
|
+
export declare const fromSchema: JsonSchema;
|
|
9
|
+
export declare const metaSchema: JsonSchema;
|
|
10
|
+
export declare const projectSearchQuerySchema: JsonSchema;
|
|
11
|
+
export declare const dataSchema: JsonSchema;
|
|
12
|
+
export declare const exchangeMarketTypeSchema: JsonSchema;
|
|
13
|
+
export declare const kalshiTickerSchema: JsonSchema;
|
|
14
|
+
export declare const timeRangeSchema: JsonSchema;
|
|
15
|
+
export declare const projectIdSchema: JsonSchema;
|
|
16
|
+
export declare const objectResponseSchema: JsonSchema;
|
|
17
|
+
export declare const arrayResponseSchema: JsonSchema;
|
|
18
|
+
export declare const sqlJobResponseSchema: JsonSchema;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { s } from "../../core/json-schema.js";
|
|
2
|
+
export const orderSchema = s.withExamples(s.withEnum(s.string('Sort order Default: "desc".'), ["asc", "desc"]), ["desc"]);
|
|
3
|
+
export const financialPeriodLimitSchema = s.integer("Maximum financial periods to return Default: 5.", {
|
|
4
|
+
minimum: 1,
|
|
5
|
+
maximum: 100,
|
|
6
|
+
});
|
|
7
|
+
export const endDateSchema = s.withExamples(s.string("Inclusive latest period end date in YYYY-MM-DD format"), ["2024-12-31"]);
|
|
8
|
+
export const evmWalletAddressSchema = s.string("Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.");
|
|
9
|
+
export const polymarketConditionIdSchema = s.withExamples(s.string("Polymarket condition ID"), [
|
|
10
|
+
"0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092",
|
|
11
|
+
]);
|
|
12
|
+
export const conditionIdSchema = s.withExamples(s.string("Market condition identifier"), [
|
|
13
|
+
"0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092",
|
|
14
|
+
]);
|
|
15
|
+
export const fromSchema = s.withExamples(s.string("Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)"), ["2024-01-01"]);
|
|
16
|
+
export const metaSchema = s.object("Upstream response metadata, including pagination cursors, limits, and credits when supplied.", {}, { required: [], additionalProperties: true });
|
|
17
|
+
export const projectSearchQuerySchema = s.withExamples(s.string("Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names."), ["ethereum"]);
|
|
18
|
+
export const dataSchema = s.nullable(s.array("Upstream result data, preserving all provider fields.", {
|
|
19
|
+
description: "Upstream result item, preserving all provider fields.",
|
|
20
|
+
}));
|
|
21
|
+
export const exchangeMarketTypeSchema = s.withExamples(s.withEnum(s.string('Market type: spot for spot trading, swap/perpetual/perp for perpetual contracts Default: "spot".'), ["spot", "swap", "perpetual", "perp"]), ["spot"]);
|
|
22
|
+
export const kalshiTickerSchema = s.withExamples(s.string("Market ticker identifier. Use GET /v1/prediction-market/kalshi/markets or GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers."), ["KXBTC2026250-27JAN01-250000"]);
|
|
23
|
+
export const timeRangeSchema = s.withExamples(s.withEnum(s.string('Window of history to return: `7d`, `30d`, `90d`, `180d`, or `1y`. This endpoint uses `time_range` only — it does NOT accept `interval`. Default: "30d".'), ["7d", "30d", "90d", "180d", "1y"]), ["30d"]);
|
|
24
|
+
export const projectIdSchema = s.withExamples(s.string("Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q."), ["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"]);
|
|
25
|
+
export const objectResponseSchema = s.object("Surf response with the original provider envelope and fields.", {
|
|
26
|
+
$schema: s.string("Response JSON Schema URL."),
|
|
27
|
+
data: s.object("Upstream result data, preserving all provider fields.", {}, { required: [], additionalProperties: true }),
|
|
28
|
+
meta: metaSchema,
|
|
29
|
+
}, { required: [], additionalProperties: true });
|
|
30
|
+
export const arrayResponseSchema = s.object("Surf response with the original provider envelope and fields.", { $schema: s.string("Response JSON Schema URL."), data: dataSchema, meta: metaSchema }, { required: [], additionalProperties: true });
|
|
31
|
+
export const sqlJobResponseSchema = s.object("Surf response with the original provider envelope and fields.", {
|
|
32
|
+
$schema: s.string("Response JSON Schema URL."),
|
|
33
|
+
data: s.object("Upstream result data, preserving all provider fields.", {}, { required: [], additionalProperties: true }),
|
|
34
|
+
meta: metaSchema,
|
|
35
|
+
job_id: s.string("Asynchronous SQL job identifier, promoted from data.job_id."),
|
|
36
|
+
status: s.string("Asynchronous SQL job state, promoted from data.status."),
|
|
37
|
+
}, { required: [], additionalProperties: true });
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
|
|
2
|
+
import type { IntegrationDefinition } from "../../triggers/common/integration.ts";
|
|
3
|
+
export declare const triggers: readonly IntegrationDefinition[];
|
|
2
4
|
export declare const executors: ProviderExecutors;
|
|
3
5
|
export declare const proxy: ProviderProxyExecutor;
|
|
4
6
|
export declare const credentialValidators: CredentialValidators;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { defineApiKeyProviderExecutors, defineProviderProxy } from "../provider-runtime.js";
|
|
2
2
|
import { tallyActionHandlers, tallyApiBaseUrl, validateTallyCredential } from "./runtime.js";
|
|
3
|
+
import { tallyFormResponse } from "./trigger-on-form-response.js";
|
|
3
4
|
const service = "tally";
|
|
5
|
+
export const triggers = [tallyFormResponse];
|
|
4
6
|
export const executors = defineApiKeyProviderExecutors(service, tallyActionHandlers);
|
|
5
7
|
export const proxy = defineProviderProxy({
|
|
6
8
|
service,
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsonSchema as s } from "../../core/json-schema.js";
|
|
2
|
+
export const snapshot = {
|
|
3
|
+
configInputs: [
|
|
4
|
+
{
|
|
5
|
+
handle: "formId",
|
|
6
|
+
jsonSchema: { ...s.string({ minLength: 1, maxLength: 128 }), title: "Form" },
|
|
7
|
+
nullable: false,
|
|
8
|
+
description: "Choose a form accessible to this Connection.",
|
|
9
|
+
},
|
|
10
|
+
],
|
|
11
|
+
definitionVersion: 2,
|
|
12
|
+
description: "Receives new Tally form submissions through a signed, automatically managed webhook.",
|
|
13
|
+
displayName: "Form Response",
|
|
14
|
+
endpoint: {
|
|
15
|
+
body: { allowArray: false, allowEmpty: false, formats: ["json"] },
|
|
16
|
+
methods: ["POST"],
|
|
17
|
+
successStatus: 200,
|
|
18
|
+
},
|
|
19
|
+
key: "tally.on_form_response",
|
|
20
|
+
name: "on_form_response",
|
|
21
|
+
outputs: [
|
|
22
|
+
{
|
|
23
|
+
handle: "response",
|
|
24
|
+
nullable: false,
|
|
25
|
+
jsonSchema: {
|
|
26
|
+
type: "object",
|
|
27
|
+
properties: {
|
|
28
|
+
eventId: s.string(),
|
|
29
|
+
createdAt: s.string(),
|
|
30
|
+
formId: s.string(),
|
|
31
|
+
submissionId: s.string(),
|
|
32
|
+
responseId: s.string(),
|
|
33
|
+
fields: {
|
|
34
|
+
type: "array",
|
|
35
|
+
items: {
|
|
36
|
+
type: "object",
|
|
37
|
+
properties: {
|
|
38
|
+
key: s.string(),
|
|
39
|
+
type: s.string(),
|
|
40
|
+
label: { type: ["string", "null"] },
|
|
41
|
+
value: {},
|
|
42
|
+
options: { type: "array", items: { type: "object" } },
|
|
43
|
+
},
|
|
44
|
+
required: ["key", "type", "label", "value"],
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
required: ["eventId", "createdAt", "formId", "submissionId", "responseId", "fields"],
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
provider: "tally",
|
|
53
|
+
type: "integration",
|
|
54
|
+
};
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { PermanentIntegrationError, TransientIntegrationError } from "../../triggers/common/integration.js";
|
|
2
|
+
import { isJsonObject } from "../../triggers/common/json.js";
|
|
3
|
+
import { bytes, verifyBase64Hmac } from "../../triggers/signature.js";
|
|
4
|
+
import { snapshot } from "./trigger-on-form-response.definition.js";
|
|
5
|
+
export const tallyFormResponse = {
|
|
6
|
+
snapshot,
|
|
7
|
+
initialState: { checkpoint: null, subscription: {} },
|
|
8
|
+
async configOptions(context) {
|
|
9
|
+
if (context.field != "formId")
|
|
10
|
+
throw new PermanentIntegrationError("Unknown Tally configuration field.");
|
|
11
|
+
const options = [];
|
|
12
|
+
for (let page = 1; page <= 100; page++) {
|
|
13
|
+
const result = await request(context, { endpoint: "/forms", method: "GET", query: { page, limit: 100 } });
|
|
14
|
+
success(result);
|
|
15
|
+
const data = pageData(result.data, "items", page);
|
|
16
|
+
for (const form of data.items) {
|
|
17
|
+
if (!isJsonObject(form) || !nonempty(form.id) || typeof form.name != "string")
|
|
18
|
+
throw new TransientIntegrationError("Tally returned an invalid form.");
|
|
19
|
+
options.push({ value: form.id, label: form.name || form.id });
|
|
20
|
+
}
|
|
21
|
+
if (!data.hasMore)
|
|
22
|
+
return options;
|
|
23
|
+
}
|
|
24
|
+
throw new PermanentIntegrationError("The Tally form list exceeds 10000 entries.");
|
|
25
|
+
},
|
|
26
|
+
async receive(context) {
|
|
27
|
+
// Tally signs the parsed JSON serialization rather than transport whitespace.
|
|
28
|
+
if (!(await verifyBase64Hmac(context.callbackSecret, [bytes(JSON.stringify(context.payload))], context.header("tally-signature"))))
|
|
29
|
+
return { outcome: "respond", status: 401, body: "", contentType: "text/plain" };
|
|
30
|
+
const payload = context.payload;
|
|
31
|
+
if (!isJsonObject(payload) || payload.eventType != "FORM_RESPONSE")
|
|
32
|
+
return { outcome: "ignored", reason: "Tally event is not a form response." };
|
|
33
|
+
const data = payload.data;
|
|
34
|
+
if (!isJsonObject(data) || data.formId != context.config.formId)
|
|
35
|
+
return { outcome: "ignored", reason: "Tally form does not match this subscription." };
|
|
36
|
+
if (!nonempty(payload.eventId) ||
|
|
37
|
+
!nonempty(payload.createdAt) ||
|
|
38
|
+
!nonempty(data.submissionId) ||
|
|
39
|
+
!nonempty(data.responseId) ||
|
|
40
|
+
!Array.isArray(data.fields) ||
|
|
41
|
+
data.fields.some((field) => !isJsonObject(field) ||
|
|
42
|
+
!nonempty(field.key) ||
|
|
43
|
+
!nonempty(field.type) ||
|
|
44
|
+
(field.label !== null && typeof field.label != "string") ||
|
|
45
|
+
!("value" in field) ||
|
|
46
|
+
("options" in field &&
|
|
47
|
+
(!Array.isArray(field.options) || field.options.some((option) => !isJsonObject(option))))))
|
|
48
|
+
return { outcome: "respond", status: 400, body: "", contentType: "text/plain" };
|
|
49
|
+
return {
|
|
50
|
+
outcome: "event",
|
|
51
|
+
dedupeKey: payload.eventId,
|
|
52
|
+
outputs: { response: { ...data, eventId: payload.eventId, createdAt: payload.createdAt } },
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
async reconcile(context) {
|
|
56
|
+
const state = context.state;
|
|
57
|
+
if (state == null)
|
|
58
|
+
throw new PermanentIntegrationError("Tally subscription state is missing.");
|
|
59
|
+
const formId = context.config.formId;
|
|
60
|
+
if (!nonempty(formId))
|
|
61
|
+
throw new PermanentIntegrationError("Choose a Tally form.");
|
|
62
|
+
let hookId = nonempty(state.subscription.hookId) ? state.subscription.hookId : undefined;
|
|
63
|
+
if (hookId == null) {
|
|
64
|
+
for (let page = 1; page <= 100; page++) {
|
|
65
|
+
const result = await request(context, { endpoint: "/webhooks", method: "GET", query: { page, limit: 100 } });
|
|
66
|
+
success(result);
|
|
67
|
+
const data = pageData(result.data, "webhooks", page);
|
|
68
|
+
for (const hook of data.items) {
|
|
69
|
+
if (!isJsonObject(hook) || !nonempty(hook.id) || !nonempty(hook.formId) || typeof hook.url != "string")
|
|
70
|
+
throw new TransientIntegrationError("Tally returned an invalid webhook.");
|
|
71
|
+
if (hook.formId == formId && hook.url == context.endpointUrl) {
|
|
72
|
+
if (hookId != null)
|
|
73
|
+
throw new PermanentIntegrationError("Multiple Tally webhooks match this subscription. Remove duplicates before retrying.");
|
|
74
|
+
hookId = hook.id;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (!data.hasMore)
|
|
78
|
+
break;
|
|
79
|
+
if (page == 100)
|
|
80
|
+
throw new PermanentIntegrationError("The Tally webhook list exceeds 10000 entries.");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (!context.active) {
|
|
84
|
+
if (hookId != null) {
|
|
85
|
+
const result = await request(context, {
|
|
86
|
+
endpoint: `/webhooks/${encodeURIComponent(hookId)}`,
|
|
87
|
+
method: "DELETE",
|
|
88
|
+
});
|
|
89
|
+
if (result.status != 404)
|
|
90
|
+
success(result);
|
|
91
|
+
}
|
|
92
|
+
else if (state.subscription.creating === true) {
|
|
93
|
+
throw new PermanentIntegrationError("Tally webhook creation has an uncertain outcome. Verify the remote subscription before cleanup.");
|
|
94
|
+
}
|
|
95
|
+
await state.saveSubscription({}, later(context.now));
|
|
96
|
+
return { outcome: "ready" };
|
|
97
|
+
}
|
|
98
|
+
if (hookId == null) {
|
|
99
|
+
if (state.subscription.creating === true)
|
|
100
|
+
throw new PermanentIntegrationError("Tally webhook creation has an uncertain outcome. Retry after verifying the remote subscription.");
|
|
101
|
+
await state.saveSubscription({ creating: true }, context.now);
|
|
102
|
+
const result = await request(context, {
|
|
103
|
+
endpoint: "/webhooks",
|
|
104
|
+
method: "POST",
|
|
105
|
+
body: {
|
|
106
|
+
formId,
|
|
107
|
+
url: context.endpointUrl,
|
|
108
|
+
eventTypes: ["FORM_RESPONSE"],
|
|
109
|
+
signingSecret: context.callbackSecret,
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
if (result.status >= 400 && result.status < 500)
|
|
113
|
+
await state.saveSubscription({}, context.now);
|
|
114
|
+
success(result);
|
|
115
|
+
if (!isJsonObject(result.data) || !nonempty(result.data.id))
|
|
116
|
+
throw new TransientIntegrationError("Tally webhook creation returned no identity.");
|
|
117
|
+
hookId = result.data.id;
|
|
118
|
+
}
|
|
119
|
+
await state.saveSubscription({ hookId }, context.now);
|
|
120
|
+
const aligned = await request(context, {
|
|
121
|
+
endpoint: `/webhooks/${encodeURIComponent(hookId)}`,
|
|
122
|
+
method: "PATCH",
|
|
123
|
+
body: {
|
|
124
|
+
url: context.endpointUrl,
|
|
125
|
+
eventTypes: ["FORM_RESPONSE"],
|
|
126
|
+
signingSecret: context.callbackSecret,
|
|
127
|
+
isEnabled: true,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
if (aligned.status == 404) {
|
|
131
|
+
await state.saveSubscription({}, context.now);
|
|
132
|
+
return { outcome: "pending" };
|
|
133
|
+
}
|
|
134
|
+
success(aligned);
|
|
135
|
+
await state.saveSubscription({ hookId }, later(context.now));
|
|
136
|
+
return { outcome: "ready" };
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
function nonempty(value) {
|
|
140
|
+
return typeof value == "string" && value.length > 0;
|
|
141
|
+
}
|
|
142
|
+
function pageData(value, field, page) {
|
|
143
|
+
if (!isJsonObject(value) ||
|
|
144
|
+
!Array.isArray(value[field]) ||
|
|
145
|
+
typeof value.hasMore != "boolean" ||
|
|
146
|
+
value.page !== page ||
|
|
147
|
+
(value.hasMore && value[field].length == 0))
|
|
148
|
+
throw new TransientIntegrationError("Tally returned an invalid page.");
|
|
149
|
+
return { items: value[field], hasMore: value.hasMore };
|
|
150
|
+
}
|
|
151
|
+
async function request(context, input) {
|
|
152
|
+
context.signal?.throwIfAborted();
|
|
153
|
+
const result = await context.connector.execute(input, context.signal);
|
|
154
|
+
context.signal?.throwIfAborted();
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
function success(result) {
|
|
158
|
+
if (result.status >= 200 && result.status < 300)
|
|
159
|
+
return;
|
|
160
|
+
if (result.status >= 400 && result.status < 500 && result.status != 429)
|
|
161
|
+
throw new PermanentIntegrationError(`Tally rejected the subscription request (HTTP ${result.status}). Check form access and API key permissions.`);
|
|
162
|
+
throw new TransientIntegrationError(`Tally subscription request failed (HTTP ${result.status}).`);
|
|
163
|
+
}
|
|
164
|
+
function later(now) {
|
|
165
|
+
return new Date(now.getTime() + 24 * 60 * 60 * 1000);
|
|
166
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsonSchema as s } from "../../core/json-schema.js";
|
|
2
|
+
import { defineProviderAction } from "../../core/provider-definition.js";
|
|
3
|
+
export const tapdFamilies = [
|
|
4
|
+
{
|
|
5
|
+
name: "stories",
|
|
6
|
+
path: "stories",
|
|
7
|
+
wrapper: "Story",
|
|
8
|
+
filters: "id, name, status, owner, iteration_id, priority_label, created, modified, custom_field_* and custom_plan_field_*",
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "bugs",
|
|
12
|
+
path: "bugs",
|
|
13
|
+
wrapper: "Bug",
|
|
14
|
+
filters: "id, title, status, severity, current_owner, iteration_id, module, priority_label, created, modified, custom_field_* and custom_plan_field_*",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "tasks",
|
|
18
|
+
path: "tasks",
|
|
19
|
+
wrapper: "Task",
|
|
20
|
+
filters: "id, name, status, owner, story_id, iteration_id, priority_label, created, modified and custom_field_*",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: "iterations",
|
|
24
|
+
path: "iterations",
|
|
25
|
+
wrapper: "Iteration",
|
|
26
|
+
filters: "id, name, status, creator, startdate, enddate, workitem_type_id, plan_app_id, created, modified and custom_field_*",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "wikis",
|
|
30
|
+
path: "tapd_wikis",
|
|
31
|
+
wrapper: "Wiki",
|
|
32
|
+
filters: "name, modifier, creator, note, view_count, created and modified; id is supported only by list_wikis",
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
const workspaceId = s.nonEmptyString("TAPD project ID, supplied as a string to preserve precision.");
|
|
36
|
+
const itemsOutput = s.requiredObject("Requested TAPD records.", {
|
|
37
|
+
items: s.array("Records with the TAPD entity wrapper removed.", s.looseObject("TAPD record, including custom fields and future upstream fields.")),
|
|
38
|
+
});
|
|
39
|
+
export const tapdActions = [
|
|
40
|
+
defineProviderAction("tapd", {
|
|
41
|
+
name: "list_projects",
|
|
42
|
+
operationType: "read",
|
|
43
|
+
requiredScopes: [],
|
|
44
|
+
description: "List all projects in a TAPD company. This endpoint does not paginate.",
|
|
45
|
+
inputSchema: s.requiredObject("Company project query.", {
|
|
46
|
+
company_id: s.nonEmptyString("TAPD company ID."),
|
|
47
|
+
category: s.optional(s.string("Project categories, comma-separated: organization, product, project, mini_project or program.")),
|
|
48
|
+
with_extends: s.optional(s.integer("Set to 1 to include custom project fields.", { minimum: 0, maximum: 1 })),
|
|
49
|
+
}),
|
|
50
|
+
outputSchema: itemsOutput,
|
|
51
|
+
}),
|
|
52
|
+
defineProviderAction("tapd", {
|
|
53
|
+
name: "get_project",
|
|
54
|
+
operationType: "read",
|
|
55
|
+
requiredScopes: [],
|
|
56
|
+
description: "Retrieve a TAPD project by its workspace ID.",
|
|
57
|
+
inputSchema: s.requiredObject("Project lookup.", { workspace_id: workspaceId }),
|
|
58
|
+
outputSchema: s.requiredObject("Project lookup result.", {
|
|
59
|
+
project: s.looseObject("TAPD project, including its ID, name and provider-defined fields."),
|
|
60
|
+
}),
|
|
61
|
+
}),
|
|
62
|
+
];
|
|
63
|
+
for (const family of tapdFamilies) {
|
|
64
|
+
const filters = s.optional(s.record(`Official TAPD query filters, including ${family.filters}. Values use upstream query syntax, such as comma-separated IDs or >2026-01-01 timestamps. Do not pre-encode values. Pagination, fields, order, workspace_id and format cannot be set here.`, s.string("Upstream filter value; use strings for IDs, numbers and date expressions.")));
|
|
65
|
+
tapdActions.push(defineProviderAction("tapd", {
|
|
66
|
+
name: `list_${family.name}`,
|
|
67
|
+
operationType: "read",
|
|
68
|
+
requiredScopes: [],
|
|
69
|
+
description: `Query one page of TAPD ${family.name}. Filter by id to retrieve specific records. Continue with the next page until an empty page is returned.`,
|
|
70
|
+
inputSchema: s.requiredObject("Paginated project records query.", {
|
|
71
|
+
workspace_id: workspaceId,
|
|
72
|
+
filters,
|
|
73
|
+
page: s.optional(s.integer("Page number, starting at 1. Defaults to 1.", { minimum: 1 })),
|
|
74
|
+
limit: s.optional(s.integer("Records per page. Defaults to 30; maximum 200.", { minimum: 1, maximum: 200 })),
|
|
75
|
+
fields: s.optional(s.nonEmptyString("Comma-separated upstream field names to return.")),
|
|
76
|
+
order: s.optional(s.nonEmptyString("Upstream sort expression, for example created desc. Do not URL-encode.")),
|
|
77
|
+
}),
|
|
78
|
+
outputSchema: itemsOutput,
|
|
79
|
+
}), defineProviderAction("tapd", {
|
|
80
|
+
name: `count_${family.name}`,
|
|
81
|
+
operationType: "read",
|
|
82
|
+
requiredScopes: [],
|
|
83
|
+
description: `Count TAPD ${family.name} matching the supplied project and filters.`,
|
|
84
|
+
inputSchema: s.requiredObject("Project records count query.", { workspace_id: workspaceId, filters }),
|
|
85
|
+
outputSchema: s.requiredObject("Matching record count.", {
|
|
86
|
+
count: s.integer("Number of matching records.", { minimum: 0 }),
|
|
87
|
+
}),
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
|
|
2
|
+
export declare const executors: ProviderExecutors;
|
|
3
|
+
export declare const credentialValidators: CredentialValidators;
|
|
4
|
+
export declare const proxy: ProviderProxyExecutor;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { optionalRecord, optionalRawString } from "../../core/cast.js";
|
|
2
|
+
import { requiredInputString, requiredResponseRecord, providerUserAgent, ProviderRequestError, runProviderRequest, isAbortLikeError, basicAuthorizationHeader, defineProviderExecutors, requireApiKeyCredential, defineProviderProxy, mapProviderActionHandlers, readProviderProxyErrorMessage, withRetryAfterSeconds, } from "../provider-runtime.js";
|
|
3
|
+
import { tapdActions, tapdFamilies } from "./actions.js";
|
|
4
|
+
const baseUrl = "https://api.tapd.cn";
|
|
5
|
+
const reservedFilters = new Set(["workspace_id", "page", "limit", "fields", "order", "format"]);
|
|
6
|
+
function authorization(input) {
|
|
7
|
+
const username = requiredInputString(input.values?.apiUser, "apiUser");
|
|
8
|
+
if (username.includes(":"))
|
|
9
|
+
throw new ProviderRequestError(400, "apiUser must not contain a colon", undefined, "invalid_input");
|
|
10
|
+
return basicAuthorizationHeader(`${username}:${requiredInputString(input.apiKey, "API Key")}`);
|
|
11
|
+
}
|
|
12
|
+
function unwrap(value, wrapper) {
|
|
13
|
+
const record = requiredResponseRecord(value, "TAPD record wrapper");
|
|
14
|
+
return requiredResponseRecord(record[wrapper], `TAPD ${wrapper}`);
|
|
15
|
+
}
|
|
16
|
+
async function request({ path, query, auth, fetcher, parentSignal }) {
|
|
17
|
+
return runProviderRequest({ signal: parentSignal, label: "TAPD" }, async (signal) => {
|
|
18
|
+
const url = new URL(path, baseUrl);
|
|
19
|
+
url.search = query.toString();
|
|
20
|
+
const response = await fetcher(url.toString(), {
|
|
21
|
+
method: "GET",
|
|
22
|
+
headers: {
|
|
23
|
+
authorization: auth,
|
|
24
|
+
accept: "application/json",
|
|
25
|
+
"user-agent": providerUserAgent,
|
|
26
|
+
},
|
|
27
|
+
signal,
|
|
28
|
+
});
|
|
29
|
+
let payload;
|
|
30
|
+
try {
|
|
31
|
+
payload = requiredResponseRecord(await response.json(), "TAPD response");
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
if (isAbortLikeError(error))
|
|
35
|
+
throw error;
|
|
36
|
+
throw new ProviderRequestError(response.ok ? 502 : response.status, "TAPD returned an invalid JSON response", undefined, "provider_error");
|
|
37
|
+
}
|
|
38
|
+
if (!response.ok || payload.status !== 1) {
|
|
39
|
+
const detail = path === "/quickstart/testauth" ? undefined : optionalRawString(payload.info);
|
|
40
|
+
throw new ProviderRequestError(response.ok ? 502 : response.status, `TAPD request failed${detail ? `: ${detail}` : ""}`, undefined, "provider_error");
|
|
41
|
+
}
|
|
42
|
+
return payload;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const handlers = mapProviderActionHandlers("tapd", tapdActions, (action) => async (dataInput, context) => {
|
|
46
|
+
const values = dataInput;
|
|
47
|
+
const query = new URLSearchParams();
|
|
48
|
+
const filters = optionalRecord(values.filters) ?? {};
|
|
49
|
+
for (const [key, value] of Object.entries(filters)) {
|
|
50
|
+
if (reservedFilters.has(key))
|
|
51
|
+
throw new ProviderRequestError(400, `filters must not contain ${key}`, undefined, "invalid_input");
|
|
52
|
+
query.set(key, String(value));
|
|
53
|
+
}
|
|
54
|
+
for (const [key, value] of Object.entries(values)) {
|
|
55
|
+
if (key !== "filters" && value != null)
|
|
56
|
+
query.set(key, String(value));
|
|
57
|
+
}
|
|
58
|
+
let path;
|
|
59
|
+
let wrapper;
|
|
60
|
+
const count = action.name.startsWith("count_");
|
|
61
|
+
if (action.name === "list_projects") {
|
|
62
|
+
path = "/workspaces/projects";
|
|
63
|
+
wrapper = "Workspace";
|
|
64
|
+
}
|
|
65
|
+
else if (action.name === "get_project") {
|
|
66
|
+
path = "/workspaces/get_workspace_info";
|
|
67
|
+
wrapper = "Workspace";
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const family = tapdFamilies.find((item) => action.name === `list_${item.name}` || action.name === `count_${item.name}`);
|
|
71
|
+
path = `/${family.path}${count ? "/count" : ""}`;
|
|
72
|
+
wrapper = family.wrapper;
|
|
73
|
+
if (!count) {
|
|
74
|
+
query.set("page", String(values.page ?? 1));
|
|
75
|
+
query.set("limit", String(values.limit ?? 30));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const payload = await request({
|
|
79
|
+
path: path,
|
|
80
|
+
query: query,
|
|
81
|
+
auth: authorization(context),
|
|
82
|
+
fetcher: context.fetcher,
|
|
83
|
+
parentSignal: context.signal,
|
|
84
|
+
});
|
|
85
|
+
if (count) {
|
|
86
|
+
const result = requiredResponseRecord(payload.data, "TAPD count");
|
|
87
|
+
const countValue = typeof result.count === "string" && result.count.trim() !== "" ? Number(result.count) : result.count;
|
|
88
|
+
if (typeof countValue !== "number" || !Number.isInteger(countValue) || countValue < 0)
|
|
89
|
+
throw new ProviderRequestError(502, "TAPD returned an invalid count", undefined, "provider_error");
|
|
90
|
+
return { count: countValue };
|
|
91
|
+
}
|
|
92
|
+
if (action.name === "get_project")
|
|
93
|
+
return { project: unwrap(payload.data, wrapper) };
|
|
94
|
+
if (!Array.isArray(payload.data))
|
|
95
|
+
throw new ProviderRequestError(502, "TAPD returned an invalid record list", undefined, "provider_error");
|
|
96
|
+
return { items: payload.data.map((item) => unwrap(item, wrapper)) };
|
|
97
|
+
});
|
|
98
|
+
export const executors = defineProviderExecutors({
|
|
99
|
+
service: "tapd",
|
|
100
|
+
handlers,
|
|
101
|
+
skipDnsValidation: true,
|
|
102
|
+
async createContext(context, fetcher) {
|
|
103
|
+
const credential = await requireApiKeyCredential(context, "tapd");
|
|
104
|
+
return { apiKey: credential.apiKey, values: credential.values, fetcher, signal: context.signal };
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
export const credentialValidators = {
|
|
108
|
+
async apiKey(input, { fetcher, signal }) {
|
|
109
|
+
await request({
|
|
110
|
+
path: "/quickstart/testauth",
|
|
111
|
+
query: new URLSearchParams(),
|
|
112
|
+
auth: authorization({ apiKey: input.apiKey, values: input.values }),
|
|
113
|
+
fetcher: fetcher,
|
|
114
|
+
parentSignal: signal,
|
|
115
|
+
});
|
|
116
|
+
return {
|
|
117
|
+
profile: { displayName: "TAPD API Account" },
|
|
118
|
+
grantedScopes: [],
|
|
119
|
+
metadata: { apiBaseUrl: baseUrl, validationEndpoint: "/quickstart/testauth" },
|
|
120
|
+
};
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
export const proxy = defineProviderProxy({
|
|
124
|
+
service: "tapd",
|
|
125
|
+
baseUrl,
|
|
126
|
+
auth: { type: "none" },
|
|
127
|
+
skipDnsValidation: true,
|
|
128
|
+
async customizeRequest({ context, headers }) {
|
|
129
|
+
const credential = await requireApiKeyCredential(context, "tapd");
|
|
130
|
+
headers.set("authorization", authorization(credential));
|
|
131
|
+
if (!headers.has("accept"))
|
|
132
|
+
headers.set("accept", "application/json");
|
|
133
|
+
},
|
|
134
|
+
async readError(response) {
|
|
135
|
+
return new ProviderRequestError(response.status, await readProviderProxyErrorMessage(response, "TAPD request failed"), withRetryAfterSeconds(response), "provider_error");
|
|
136
|
+
},
|
|
137
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, nullableString, objectArray, optionalBoolean, optionalInteger, optionalRecord, optionalString, } from "../../core/cast.js";
|
|
2
|
-
import { providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
|
|
2
|
+
import { providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
3
3
|
export const teableApiBaseUrl = "https://app.teable.cn/api";
|
|
4
4
|
const teableCurrentUserPath = "/auth/user";
|
|
5
5
|
export const teableActionHandlers = {
|
|
@@ -47,9 +47,6 @@ async function executeGetCurrentUser(context) {
|
|
|
47
47
|
});
|
|
48
48
|
return parseCurrentUser(payload);
|
|
49
49
|
}
|
|
50
|
-
function providerError(_code, message, status) {
|
|
51
|
-
return new ProviderRequestError(status, message);
|
|
52
|
-
}
|
|
53
50
|
async function executeListSpaces(context) {
|
|
54
51
|
const payload = await teableRequest("/space", {
|
|
55
52
|
...context,
|
|
@@ -160,7 +157,7 @@ async function teableRequest(path, input) {
|
|
|
160
157
|
if (error instanceof ProviderRequestError) {
|
|
161
158
|
throw error;
|
|
162
159
|
}
|
|
163
|
-
throw
|
|
160
|
+
throw providerResponseError(error instanceof Error ? `Teable request failed: ${error.message}` : "Teable request failed");
|
|
164
161
|
}
|
|
165
162
|
if (!response.ok) {
|
|
166
163
|
throw createTeableError(response, payload, input.phase);
|
|
@@ -188,7 +185,7 @@ async function readTeablePayload(response) {
|
|
|
188
185
|
}
|
|
189
186
|
catch (error) {
|
|
190
187
|
if (response.ok) {
|
|
191
|
-
throw
|
|
188
|
+
throw providerResponseError(error instanceof Error ? `Teable returned malformed JSON: ${error.message}` : "Teable returned malformed JSON");
|
|
192
189
|
}
|
|
193
190
|
return text;
|
|
194
191
|
}
|
|
@@ -196,21 +193,21 @@ async function readTeablePayload(response) {
|
|
|
196
193
|
function createTeableError(response, payload, phase) {
|
|
197
194
|
const message = extractTeableErrorMessage(payload) || response.statusText || "Teable request failed";
|
|
198
195
|
if (response.status === 429) {
|
|
199
|
-
return
|
|
196
|
+
return new ProviderRequestError(429, message);
|
|
200
197
|
}
|
|
201
198
|
if (phase === "validate" && (response.status === 401 || response.status === 403)) {
|
|
202
|
-
return
|
|
199
|
+
return providerInputError(message);
|
|
203
200
|
}
|
|
204
201
|
if (phase === "execute" && response.status === 401) {
|
|
205
|
-
return
|
|
202
|
+
return new ProviderRequestError(401, message);
|
|
206
203
|
}
|
|
207
204
|
if (phase === "execute" && response.status === 403) {
|
|
208
|
-
return
|
|
205
|
+
return new ProviderRequestError(403, message);
|
|
209
206
|
}
|
|
210
207
|
if (phase === "execute" && [400, 404, 422].includes(response.status)) {
|
|
211
|
-
return
|
|
208
|
+
return providerInputError(message);
|
|
212
209
|
}
|
|
213
|
-
return
|
|
210
|
+
return new ProviderRequestError(response.status || 500, message);
|
|
214
211
|
}
|
|
215
212
|
function extractTeableErrorMessage(payload) {
|
|
216
213
|
const root = optionalRecord(payload);
|
|
@@ -224,7 +221,7 @@ function parseCurrentUser(payload) {
|
|
|
224
221
|
const id = optionalString(user.id);
|
|
225
222
|
const name = optionalString(user.name);
|
|
226
223
|
if (!id || !name) {
|
|
227
|
-
throw
|
|
224
|
+
throw providerResponseError("Teable current user response did not include id and name");
|
|
228
225
|
}
|
|
229
226
|
return compactObject({
|
|
230
227
|
id,
|
|
@@ -236,7 +233,7 @@ function parseCurrentUser(payload) {
|
|
|
236
233
|
function requireObject(payload, label) {
|
|
237
234
|
const value = optionalRecord(payload);
|
|
238
235
|
if (!value) {
|
|
239
|
-
throw
|
|
236
|
+
throw providerResponseError(`Teable returned an invalid ${label} response`);
|
|
240
237
|
}
|
|
241
238
|
return value;
|
|
242
239
|
}
|
|
@@ -245,7 +242,7 @@ function requireObjectArray(payload, label) {
|
|
|
245
242
|
return objectArray(payload, label);
|
|
246
243
|
}
|
|
247
244
|
catch {
|
|
248
|
-
throw
|
|
245
|
+
throw providerResponseError(`Teable returned an invalid ${label} response`);
|
|
249
246
|
}
|
|
250
247
|
}
|
|
251
248
|
function recordReadSearchParams(input) {
|