@oomol-lab/open-connector 1.9.0 → 1.9.1

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.
Files changed (395) hide show
  1. package/assets/open-connector/catalog/apps/agentearth.json +441 -0
  2. package/assets/open-connector/catalog/apps/appgrowing_mcp.json +863 -0
  3. package/assets/open-connector/catalog/apps/arcmira.json +610 -0
  4. package/assets/open-connector/catalog/apps/bainiu.json +654 -0
  5. package/assets/open-connector/catalog/apps/chaport.json +331 -0
  6. package/assets/open-connector/catalog/apps/cnb.json +1408 -0
  7. package/assets/open-connector/catalog/apps/crtsh.json +123 -0
  8. package/assets/open-connector/catalog/apps/eastmoney_miaoxiang.json +406 -0
  9. package/assets/open-connector/catalog/apps/fastmoss_mcp.json +876 -876
  10. package/assets/open-connector/catalog/apps/ftshare.json +1162 -0
  11. package/assets/open-connector/catalog/apps/fusion-api.json +143 -0
  12. package/assets/open-connector/catalog/apps/fxbaogao.json +308 -0
  13. package/assets/open-connector/catalog/apps/github.json +38 -3
  14. package/assets/open-connector/catalog/apps/hrmos_kintai.json +7519 -0
  15. package/assets/open-connector/catalog/apps/humor_api.json +351 -0
  16. package/assets/open-connector/catalog/apps/kaonavi.json +1723 -0
  17. package/assets/open-connector/catalog/apps/linear_mcp.json +882 -22
  18. package/assets/open-connector/catalog/apps/listinggood.json +362 -0
  19. package/assets/open-connector/catalog/apps/notion_mcp.json +338 -1
  20. package/assets/open-connector/catalog/apps/outlook.json +414 -0
  21. package/assets/open-connector/catalog/apps/porteden.json +1258 -0
  22. package/assets/open-connector/catalog/apps/qiuxiaoce.json +915 -0
  23. package/assets/open-connector/catalog/apps/qqmusic.json +1834 -0
  24. package/assets/open-connector/catalog/apps/rakuraku_seisan.json +217 -0
  25. package/assets/open-connector/catalog/apps/redfox.json +9661 -897
  26. package/assets/open-connector/catalog/apps/salesforce.json +4907 -0
  27. package/assets/open-connector/catalog/apps/sansan.json +4594 -0
  28. package/assets/open-connector/catalog/apps/smarthr.json +8071 -0
  29. package/assets/open-connector/catalog/apps/smooth.json +914 -0
  30. package/assets/open-connector/catalog/apps/tapd.json +727 -0
  31. package/assets/open-connector/catalog/apps/tencent_meeting_mcp.json +1301 -0
  32. package/assets/open-connector/catalog/apps/threatfox.json +203 -0
  33. package/assets/open-connector/catalog/apps/tradebee.json +915 -0
  34. package/assets/open-connector/catalog/apps/twittrapi.json +4914 -0
  35. package/assets/open-connector/catalog/apps/urlhaus.json +246 -0
  36. package/assets/open-connector/catalog/apps/weread.json +1514 -0
  37. package/assets/open-connector/catalog/apps/whatsapp.json +12 -0
  38. package/assets/open-connector/catalog/apps/zhiliaobiaoxun.json +812 -0
  39. package/assets/open-connector/catalog/apps-index.json +1 -1
  40. package/package.json +2 -1
  41. package/src/connection-service.js +55 -11
  42. package/src/core/provider-error-codes.d.ts +9 -0
  43. package/src/core/provider-error-codes.js +13 -0
  44. package/src/core/request.d.ts +2 -0
  45. package/src/core/request.js +11 -2
  46. package/src/mail/imap-smtp/protocol.js +4 -3
  47. package/src/oauth/oauth-flow-service.js +1 -0
  48. package/src/oauth/oauth-token.d.ts +2 -0
  49. package/src/providers/17track/runtime.js +17 -20
  50. package/src/providers/action-contracts.generated.d.ts +36 -6
  51. package/src/providers/agentearth/actions.d.ts +2 -0
  52. package/src/providers/agentearth/actions.js +100 -0
  53. package/src/providers/agentearth/executors.d.ts +4 -0
  54. package/src/providers/agentearth/executors.js +109 -0
  55. package/src/providers/appgrowing_mcp/actions.d.ts +2 -0
  56. package/src/providers/appgrowing_mcp/actions.js +175 -0
  57. package/src/providers/appgrowing_mcp/executors.d.ts +4 -0
  58. package/src/providers/appgrowing_mcp/executors.js +66 -0
  59. package/src/providers/arcmira/executors.d.ts +3 -0
  60. package/src/providers/arcmira/executors.js +8 -0
  61. package/src/providers/arcmira/runtime.d.ts +6 -0
  62. package/src/providers/arcmira/runtime.js +41 -0
  63. package/src/providers/bainiu/actions.d.ts +2 -0
  64. package/src/providers/bainiu/actions.js +108 -0
  65. package/src/providers/bainiu/executors.d.ts +4 -0
  66. package/src/providers/bainiu/executors.js +113 -0
  67. package/src/providers/baixiao/executors.js +1 -1
  68. package/src/providers/bing_webmaster/executors.js +1 -1
  69. package/src/providers/chaport/actions.d.ts +2 -0
  70. package/src/providers/chaport/actions.js +70 -0
  71. package/src/providers/chaport/executors.d.ts +4 -0
  72. package/src/providers/chaport/executors.js +128 -0
  73. package/src/providers/clickup/runtime.js +49 -52
  74. package/src/providers/cnb/actions.d.ts +2 -0
  75. package/src/providers/cnb/actions.js +341 -0
  76. package/src/providers/cnb/executors.d.ts +4 -0
  77. package/src/providers/cnb/executors.js +135 -0
  78. package/src/providers/coupontools/runtime.js +11 -14
  79. package/src/providers/crtsh/executors.d.ts +3 -0
  80. package/src/providers/crtsh/executors.js +19 -0
  81. package/src/providers/crtsh/runtime.d.ts +17 -0
  82. package/src/providers/crtsh/runtime.js +84 -0
  83. package/src/providers/eastmoney_miaoxiang/actions.d.ts +2 -0
  84. package/src/providers/eastmoney_miaoxiang/actions.js +95 -0
  85. package/src/providers/eastmoney_miaoxiang/executors.d.ts +4 -0
  86. package/src/providers/eastmoney_miaoxiang/executors.js +81 -0
  87. package/src/providers/fastmoss_mcp/actions-content.d.ts +2 -0
  88. package/src/providers/fastmoss_mcp/actions-content.js +140 -0
  89. package/src/providers/fastmoss_mcp/actions-creator.d.ts +2 -0
  90. package/src/providers/fastmoss_mcp/actions-creator.js +154 -0
  91. package/src/providers/fastmoss_mcp/actions-product.d.ts +2 -0
  92. package/src/providers/fastmoss_mcp/actions-product.js +167 -0
  93. package/src/providers/fastmoss_mcp/actions-research.d.ts +2 -0
  94. package/src/providers/fastmoss_mcp/actions-research.js +174 -0
  95. package/src/providers/fastmoss_mcp/actions-shop.d.ts +2 -0
  96. package/src/providers/fastmoss_mcp/actions-shop.js +142 -0
  97. package/src/providers/fastmoss_mcp/actions.js +11 -12
  98. package/src/providers/fastmoss_mcp/schemas.d.ts +51 -0
  99. package/src/providers/fastmoss_mcp/schemas.js +52 -0
  100. package/src/providers/ftshare/actions.d.ts +2 -0
  101. package/src/providers/ftshare/actions.js +124 -0
  102. package/src/providers/ftshare/executors.d.ts +4 -0
  103. package/src/providers/ftshare/executors.js +102 -0
  104. package/src/providers/fusion-api/operations.js +37 -0
  105. package/src/providers/fxbaogao/actions.d.ts +2 -0
  106. package/src/providers/fxbaogao/actions.js +74 -0
  107. package/src/providers/fxbaogao/executors.d.ts +4 -0
  108. package/src/providers/fxbaogao/executors.js +155 -0
  109. package/src/providers/github/app-installation.d.ts +37 -0
  110. package/src/providers/github/app-installation.js +233 -0
  111. package/src/providers/github/executors.js +93 -15
  112. package/src/providers/github/runtime-repository.js +21 -1
  113. package/src/providers/github/runtime-shared.d.ts +2 -0
  114. package/src/providers/github/runtime-shared.js +1 -0
  115. package/src/providers/googledrive/runtime-request.js +3 -3
  116. package/src/providers/hrmos_kintai/actions.d.ts +2 -0
  117. package/src/providers/hrmos_kintai/actions.js +139 -0
  118. package/src/providers/hrmos_kintai/attendance-actions.d.ts +2 -0
  119. package/src/providers/hrmos_kintai/attendance-actions.js +276 -0
  120. package/src/providers/hrmos_kintai/business-actions.d.ts +2 -0
  121. package/src/providers/hrmos_kintai/business-actions.js +143 -0
  122. package/src/providers/hrmos_kintai/business-schemas.d.ts +4 -0
  123. package/src/providers/hrmos_kintai/business-schemas.js +320 -0
  124. package/src/providers/hrmos_kintai/executors.d.ts +4 -0
  125. package/src/providers/hrmos_kintai/executors.js +61 -0
  126. package/src/providers/hrmos_kintai/export-actions.d.ts +2 -0
  127. package/src/providers/hrmos_kintai/export-actions.js +58 -0
  128. package/src/providers/hrmos_kintai/operations.d.ts +9 -0
  129. package/src/providers/hrmos_kintai/operations.js +278 -0
  130. package/src/providers/hrmos_kintai/runtime.d.ts +10 -0
  131. package/src/providers/hrmos_kintai/runtime.js +217 -0
  132. package/src/providers/hrmos_kintai/schemas.d.ts +10 -0
  133. package/src/providers/hrmos_kintai/schemas.js +70 -0
  134. package/src/providers/humor_api/actions.d.ts +2 -0
  135. package/src/providers/humor_api/actions.js +96 -0
  136. package/src/providers/humor_api/executors.d.ts +4 -0
  137. package/src/providers/humor_api/executors.js +76 -0
  138. package/src/providers/kaonavi/actions.d.ts +4 -0
  139. package/src/providers/kaonavi/actions.js +144 -0
  140. package/src/providers/kaonavi/additional-actions.d.ts +10 -0
  141. package/src/providers/kaonavi/additional-actions.js +203 -0
  142. package/src/providers/kaonavi/executors.d.ts +4 -0
  143. package/src/providers/kaonavi/executors.js +69 -0
  144. package/src/providers/kaonavi/runtime.d.ts +4 -0
  145. package/src/providers/kaonavi/runtime.js +69 -0
  146. package/src/providers/linear_mcp/actions.d.ts +14 -0
  147. package/src/providers/linear_mcp/actions.js +134 -0
  148. package/src/providers/linear_mcp/runtime-mcp.d.ts +7 -1
  149. package/src/providers/linear_mcp/runtime-mcp.js +140 -28
  150. package/src/providers/linkfox/runtime.js +48 -51
  151. package/src/providers/listinggood/actions.d.ts +2 -0
  152. package/src/providers/listinggood/actions.js +95 -0
  153. package/src/providers/listinggood/executors.d.ts +4 -0
  154. package/src/providers/listinggood/executors.js +99 -0
  155. package/src/providers/mcp-tools.d.ts +3 -0
  156. package/src/providers/mcp-tools.js +5 -4
  157. package/src/providers/notion_mcp/executors.js +53 -24
  158. package/src/providers/notion_mcp/mcp-response.d.ts +26 -0
  159. package/src/providers/notion_mcp/mcp-response.js +95 -0
  160. package/src/providers/omise/executors.js +1 -1
  161. package/src/providers/outlook/executors.js +35 -2
  162. package/src/providers/porteden/actions.d.ts +2 -0
  163. package/src/providers/porteden/actions.js +162 -0
  164. package/src/providers/porteden/executors.d.ts +4 -0
  165. package/src/providers/porteden/executors.js +140 -0
  166. package/src/providers/provider-runtime.d.ts +3 -2
  167. package/src/providers/pushover/runtime.js +28 -31
  168. package/src/providers/qianfan/runtime.js +16 -19
  169. package/src/providers/qiuxiaoce/actions.d.ts +2 -0
  170. package/src/providers/qiuxiaoce/actions.js +248 -0
  171. package/src/providers/qiuxiaoce/executors.d.ts +4 -0
  172. package/src/providers/qiuxiaoce/executors.js +76 -0
  173. package/src/providers/qiuxiaoce/routes.d.ts +1 -0
  174. package/src/providers/qiuxiaoce/routes.js +20 -0
  175. package/src/providers/qqmusic/actions.d.ts +2 -0
  176. package/src/providers/qqmusic/actions.js +229 -0
  177. package/src/providers/qqmusic/executors.d.ts +4 -0
  178. package/src/providers/qqmusic/executors.js +92 -0
  179. package/src/providers/qqmusic/report-schema.d.ts +4 -0
  180. package/src/providers/qqmusic/report-schema.js +119 -0
  181. package/src/providers/rakuraku_seisan/actions.d.ts +2 -0
  182. package/src/providers/rakuraku_seisan/actions.js +50 -0
  183. package/src/providers/rakuraku_seisan/executors.d.ts +4 -0
  184. package/src/providers/rakuraku_seisan/executors.js +40 -0
  185. package/src/providers/rakuraku_seisan/runtime.d.ts +8 -0
  186. package/src/providers/rakuraku_seisan/runtime.js +251 -0
  187. package/src/providers/redfox/actions-account.d.ts +2 -0
  188. package/src/providers/redfox/actions-account.js +24 -0
  189. package/src/providers/redfox/actions-autohome.d.ts +2 -0
  190. package/src/providers/redfox/actions-autohome.js +51 -0
  191. package/src/providers/redfox/actions-baijiahao.d.ts +2 -0
  192. package/src/providers/redfox/actions-baijiahao.js +58 -0
  193. package/src/providers/redfox/actions-bilibili.d.ts +2 -0
  194. package/src/providers/redfox/actions-bilibili.js +67 -0
  195. package/src/providers/redfox/actions-dongchedi.d.ts +2 -0
  196. package/src/providers/redfox/actions-dongchedi.js +49 -0
  197. package/src/providers/redfox/actions-douyin.d.ts +2 -0
  198. package/src/providers/redfox/actions-douyin.js +297 -0
  199. package/src/providers/redfox/actions-generation.d.ts +2 -0
  200. package/src/providers/redfox/actions-generation.js +293 -0
  201. package/src/providers/redfox/actions-instagram.d.ts +2 -0
  202. package/src/providers/redfox/actions-instagram.js +49 -0
  203. package/src/providers/redfox/actions-kuaishou.d.ts +2 -0
  204. package/src/providers/redfox/actions-kuaishou.js +53 -0
  205. package/src/providers/redfox/actions-search.d.ts +2 -0
  206. package/src/providers/redfox/actions-search.js +125 -0
  207. package/src/providers/redfox/actions-tiktok.d.ts +2 -0
  208. package/src/providers/redfox/actions-tiktok.js +136 -0
  209. package/src/providers/redfox/actions-tools.d.ts +2 -0
  210. package/src/providers/redfox/actions-tools.js +151 -0
  211. package/src/providers/redfox/actions-toutiao.d.ts +2 -0
  212. package/src/providers/redfox/actions-toutiao.js +68 -0
  213. package/src/providers/redfox/actions-transcription.d.ts +2 -0
  214. package/src/providers/redfox/actions-transcription.js +165 -0
  215. package/src/providers/redfox/actions-wechat-channel.d.ts +2 -0
  216. package/src/providers/redfox/actions-wechat-channel.js +63 -0
  217. package/src/providers/redfox/actions-wechat.d.ts +2 -0
  218. package/src/providers/redfox/actions-wechat.js +302 -0
  219. package/src/providers/redfox/actions-weibo.d.ts +2 -0
  220. package/src/providers/redfox/actions-weibo.js +61 -0
  221. package/src/providers/redfox/actions-x.d.ts +2 -0
  222. package/src/providers/redfox/actions-x.js +126 -0
  223. package/src/providers/redfox/actions-xiaohongshu.d.ts +2 -0
  224. package/src/providers/redfox/actions-xiaohongshu.js +244 -0
  225. package/src/providers/redfox/actions-yiche.d.ts +2 -0
  226. package/src/providers/redfox/actions-yiche.js +59 -0
  227. package/src/providers/redfox/actions-youtube.d.ts +2 -0
  228. package/src/providers/redfox/actions-youtube.js +64 -0
  229. package/src/providers/redfox/actions-zhihu.d.ts +2 -0
  230. package/src/providers/redfox/actions-zhihu.js +26 -0
  231. package/src/providers/redfox/actions.d.ts +2 -0
  232. package/src/providers/redfox/actions.js +49 -0
  233. package/src/providers/redfox/executors.d.ts +2 -14
  234. package/src/providers/redfox/executors.js +28 -551
  235. package/src/providers/redfox/routes.d.ts +11 -0
  236. package/src/providers/redfox/routes.js +329 -0
  237. package/src/providers/redfox/runtime.d.ts +6 -0
  238. package/src/providers/redfox/runtime.js +151 -0
  239. package/src/providers/redfox/schemas.d.ts +9 -0
  240. package/src/providers/redfox/schemas.js +40 -0
  241. package/src/providers/registry.generated.js +30 -0
  242. package/src/providers/salesforce/context.d.ts +16 -0
  243. package/src/providers/salesforce/context.js +58 -0
  244. package/src/providers/salesforce/executors.d.ts +5 -0
  245. package/src/providers/salesforce/executors.js +54 -0
  246. package/src/providers/salesforce/media.d.ts +9 -0
  247. package/src/providers/salesforce/media.js +66 -0
  248. package/src/providers/salesforce/oauth.d.ts +2 -0
  249. package/src/providers/salesforce/oauth.js +89 -0
  250. package/src/providers/salesforce/runtime-analytics.d.ts +2 -0
  251. package/src/providers/salesforce/runtime-analytics.js +60 -0
  252. package/src/providers/salesforce/runtime-automation.d.ts +2 -0
  253. package/src/providers/salesforce/runtime-automation.js +64 -0
  254. package/src/providers/salesforce/runtime-base.d.ts +2 -0
  255. package/src/providers/salesforce/runtime-base.js +51 -0
  256. package/src/providers/salesforce/runtime-bulk.d.ts +2 -0
  257. package/src/providers/salesforce/runtime-bulk.js +98 -0
  258. package/src/providers/salesforce/runtime-data.d.ts +2 -0
  259. package/src/providers/salesforce/runtime-data.js +207 -0
  260. package/src/providers/salesforce/runtime-files.d.ts +2 -0
  261. package/src/providers/salesforce/runtime-files.js +108 -0
  262. package/src/providers/salesforce/transport.d.ts +9 -0
  263. package/src/providers/salesforce/transport.js +65 -0
  264. package/src/providers/sansan/actions.d.ts +2 -0
  265. package/src/providers/sansan/actions.js +165 -0
  266. package/src/providers/sansan/admin-actions.d.ts +2 -0
  267. package/src/providers/sansan/admin-actions.js +181 -0
  268. package/src/providers/sansan/admin.d.ts +2 -0
  269. package/src/providers/sansan/admin.js +42 -0
  270. package/src/providers/sansan/business-actions.d.ts +2 -0
  271. package/src/providers/sansan/business-actions.js +160 -0
  272. package/src/providers/sansan/business.d.ts +2 -0
  273. package/src/providers/sansan/business.js +51 -0
  274. package/src/providers/sansan/executors.d.ts +4 -0
  275. package/src/providers/sansan/executors.js +59 -0
  276. package/src/providers/sansan/file-schema.d.ts +2 -0
  277. package/src/providers/sansan/file-schema.js +8 -0
  278. package/src/providers/sansan/files.d.ts +11 -0
  279. package/src/providers/sansan/files.js +49 -0
  280. package/src/providers/sansan/organization-actions.d.ts +2 -0
  281. package/src/providers/sansan/organization-actions.js +198 -0
  282. package/src/providers/sansan/organization-columns.d.ts +2 -0
  283. package/src/providers/sansan/organization-columns.js +33 -0
  284. package/src/providers/sansan/organization.d.ts +2 -0
  285. package/src/providers/sansan/organization.js +88 -0
  286. package/src/providers/sansan/read.d.ts +2 -0
  287. package/src/providers/sansan/read.js +25 -0
  288. package/src/providers/sansan/request.d.ts +22 -0
  289. package/src/providers/sansan/request.js +94 -0
  290. package/src/providers/sansan/schemas.d.ts +7 -0
  291. package/src/providers/sansan/schemas.js +72 -0
  292. package/src/providers/shopee/runtime.d.ts +33 -29
  293. package/src/providers/shopee/runtime.js +166 -169
  294. package/src/providers/smarthr/actions.d.ts +2 -0
  295. package/src/providers/smarthr/actions.js +286 -0
  296. package/src/providers/smarthr/employee-runtime.d.ts +1 -0
  297. package/src/providers/smarthr/employee-runtime.js +63 -0
  298. package/src/providers/smarthr/employee-schema.d.ts +3 -0
  299. package/src/providers/smarthr/employee-schema.js +222 -0
  300. package/src/providers/smarthr/executors.d.ts +4 -0
  301. package/src/providers/smarthr/executors.js +35 -0
  302. package/src/providers/smarthr/pagination.d.ts +1 -0
  303. package/src/providers/smarthr/pagination.js +84 -0
  304. package/src/providers/smarthr/resource-routes.d.ts +16 -0
  305. package/src/providers/smarthr/resource-routes.js +163 -0
  306. package/src/providers/smarthr/runtime.d.ts +13 -0
  307. package/src/providers/smarthr/runtime.js +242 -0
  308. package/src/providers/smarthr/supplemental-actions.d.ts +2 -0
  309. package/src/providers/smarthr/supplemental-actions.js +541 -0
  310. package/src/providers/smooth/actions.d.ts +2 -0
  311. package/src/providers/smooth/actions.js +138 -0
  312. package/src/providers/smooth/executors.d.ts +4 -0
  313. package/src/providers/smooth/executors.js +102 -0
  314. package/src/providers/tapd/actions.d.ts +8 -0
  315. package/src/providers/tapd/actions.js +89 -0
  316. package/src/providers/tapd/executors.d.ts +4 -0
  317. package/src/providers/tapd/executors.js +137 -0
  318. package/src/providers/teable/runtime.js +12 -15
  319. package/src/providers/tencent_meeting_mcp/actions.d.ts +2 -0
  320. package/src/providers/tencent_meeting_mcp/actions.js +420 -0
  321. package/src/providers/tencent_meeting_mcp/executors.d.ts +4 -0
  322. package/src/providers/tencent_meeting_mcp/executors.js +117 -0
  323. package/src/providers/threatfox/executors.d.ts +4 -0
  324. package/src/providers/threatfox/executors.js +40 -0
  325. package/src/providers/threatfox/runtime.d.ts +15 -0
  326. package/src/providers/threatfox/runtime.js +128 -0
  327. package/src/providers/ticket_tailor/runtime.js +1 -1
  328. package/src/providers/ticketmaster/runtime.js +3 -6
  329. package/src/providers/timelinesai/runtime.js +13 -16
  330. package/src/providers/tradebee/actions.d.ts +2 -0
  331. package/src/providers/tradebee/actions.js +176 -0
  332. package/src/providers/tradebee/executors.d.ts +4 -0
  333. package/src/providers/tradebee/executors.js +83 -0
  334. package/src/providers/twittrapi/executors.d.ts +4 -0
  335. package/src/providers/twittrapi/executors.js +17 -0
  336. package/src/providers/twittrapi/runtime.d.ts +12 -0
  337. package/src/providers/twittrapi/runtime.js +203 -0
  338. package/src/providers/urlhaus/executors.d.ts +4 -0
  339. package/src/providers/urlhaus/executors.js +40 -0
  340. package/src/providers/urlhaus/runtime.d.ts +15 -0
  341. package/src/providers/urlhaus/runtime.js +142 -0
  342. package/src/providers/wangdian/runtime.js +16 -19
  343. package/src/providers/weread/actions.d.ts +2 -0
  344. package/src/providers/weread/actions.js +424 -0
  345. package/src/providers/weread/executors.d.ts +4 -0
  346. package/src/providers/weread/executors.js +98 -0
  347. package/src/providers/whatsapp/runtime.js +6 -1
  348. package/src/providers/workast/runtime.js +12 -17
  349. package/src/providers/youzan/runtime.js +21 -24
  350. package/src/providers/zenkit/runtime.js +13 -19
  351. package/src/providers/zhiliaobiaoxun/actions.d.ts +2 -0
  352. package/src/providers/zhiliaobiaoxun/actions.js +138 -0
  353. package/src/providers/zhiliaobiaoxun/executors.d.ts +4 -0
  354. package/src/providers/zhiliaobiaoxun/executors.js +78 -0
  355. package/src/server/api/auth.d.ts +2 -0
  356. package/src/server/api/auth.js +2 -1
  357. package/src/server/api/console-catalog-routes.d.ts +17 -0
  358. package/src/server/api/console-catalog-routes.js +88 -0
  359. package/src/server/api/console-oauth-routes.d.ts +18 -0
  360. package/src/server/api/console-oauth-routes.js +298 -0
  361. package/src/server/api/docs-routes.d.ts +12 -0
  362. package/src/server/api/docs-routes.js +38 -0
  363. package/src/server/api/http-utils.d.ts +1 -0
  364. package/src/server/api/http-utils.js +8 -0
  365. package/src/server/api/marketplace-routes.d.ts +7 -0
  366. package/src/server/api/marketplace-routes.js +62 -0
  367. package/src/server/api/mcp-routes.d.ts +18 -0
  368. package/src/server/api/mcp-routes.js +37 -0
  369. package/src/server/api/policy-routes.d.ts +13 -0
  370. package/src/server/api/policy-routes.js +50 -0
  371. package/src/server/api/policy-snapshot.d.ts +14 -0
  372. package/src/server/api/policy-snapshot.js +30 -0
  373. package/src/server/api/run-log-routes.d.ts +7 -0
  374. package/src/server/api/run-log-routes.js +70 -0
  375. package/src/server/api/runtime-api.d.ts +0 -7
  376. package/src/server/api/runtime-api.js +0 -13
  377. package/src/server/api/runtime-app-routes.d.ts +10 -0
  378. package/src/server/api/runtime-app-routes.js +72 -0
  379. package/src/server/api/runtime-catalog-routes.d.ts +37 -0
  380. package/src/server/api/runtime-catalog-routes.js +133 -0
  381. package/src/server/api/runtime-execution-routes.d.ts +16 -0
  382. package/src/server/api/runtime-execution-routes.js +198 -0
  383. package/src/server/api/saas-oauth-routes.d.ts +9 -0
  384. package/src/server/api/saas-oauth-routes.js +27 -0
  385. package/src/server/api/saas-project-routes.d.ts +7 -0
  386. package/src/server/api/saas-project-routes.js +16 -0
  387. package/src/server/api/transit-file-routes.d.ts +9 -0
  388. package/src/server/api/transit-file-routes.js +49 -0
  389. package/src/server/api/trigger-routes.d.ts +15 -0
  390. package/src/server/api/trigger-routes.js +48 -0
  391. package/src/server/connect-app.d.ts +1 -0
  392. package/src/server/connect-app.js +3 -1
  393. package/src/server/connect-server.d.ts +3 -54
  394. package/src/server/connect-server.js +95 -1148
  395. package/src/providers/fastmoss_mcp/official-tools.json +0 -2922
@@ -1,556 +1,33 @@
1
- import { compactObject, optionalBoolean, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, mapProviderActionSources, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
3
- const service = "redfox";
4
- const redfoxApiBaseUrl = "https://redfox.hk";
5
- const redfoxValidationPath = "/story/api/gzhData/searchArticle";
6
- const redfoxDefaultSuccessCodes = [2000];
7
- const redfoxTiktokSuccessCodes = [2000, 200];
8
- const redfoxEndpoints = {
9
- search_douyin_works: {
10
- path: "/story/api/dyData/searchArticle",
11
- buildBody: buildSearchBody,
12
- },
13
- search_douyin_users: {
14
- path: "/story/api/dyData/searchUser",
15
- buildBody: buildSearchBody,
16
- },
17
- get_douyin_work: {
18
- path: "/story/api/dyData/queryWork",
19
- buildBody(input) {
20
- return {
21
- workId: readOptionalString(input.workId),
22
- workUrl: readOptionalString(input.workUrl),
23
- };
24
- },
25
- },
26
- get_douyin_user: {
27
- path: "/story/api/dyData/queryUser",
28
- buildBody(input) {
29
- return {
30
- accountId: readRequiredString(input.accountId, "accountId"),
31
- };
32
- },
33
- },
34
- list_douyin_user_works: {
35
- path: "/story/api/dyData/queryWorkList",
36
- buildBody(input) {
37
- const accountId = readOptionalString(input.accountId);
38
- const authorUrl = readOptionalString(input.authorUrl);
39
- const secUserId = readOptionalString(input.secUserId);
40
- return {
41
- accountId,
42
- authorUrl,
43
- secUserId,
44
- offset: readOptionalInteger(input.offset, "offset"),
45
- sortType: readOptionalString(input.sortType),
46
- };
47
- },
48
- },
49
- search_douyin_ai_creations: {
50
- path: "/story/api/parseWork/queryDyAiMsgs",
51
- buildBody: buildAiCreationSearchBody,
52
- },
53
- search_xiaohongshu_works: {
54
- path: "/story/api/xhs/search/keywordSearchWork",
55
- responseMode: "direct",
56
- buildBody(input) {
57
- return {
58
- keyword: readRequiredString(input.keyword, "keyword"),
59
- noteTime: readOptionalString(input.noteTime),
60
- sort: readOptionalString(input.sort),
61
- page: readOptionalPositiveInteger(input.page, "page"),
62
- noteType: readOptionalString(input.noteType),
63
- };
64
- },
65
- },
66
- search_xiaohongshu_users: {
67
- path: "/story/api/xhsUser/searchUser",
68
- buildBody: buildSearchBody,
69
- },
70
- get_xiaohongshu_work: {
71
- path: "/story/api/xhsUser/queryWorkDetail",
72
- buildBody(input) {
73
- return {
74
- workId: readOptionalString(input.workId),
75
- workLink: readOptionalString(input.workLink),
76
- };
77
- },
78
- },
79
- get_xiaohongshu_user: {
80
- path: "/story/api/xhsUser/queryAccountDetail",
81
- buildBody(input) {
82
- return {
83
- accountId: readRequiredString(input.accountId, "accountId"),
84
- userId: readOptionalString(input.userId),
85
- };
86
- },
87
- },
88
- search_xiaohongshu_ai_creations: {
89
- path: "/story/api/parseWork/queryXhsAiMsgs",
90
- buildBody(input) {
91
- return {
92
- keyword: readRequiredString(input.keyword, "keyword"),
93
- pageNum: readOptionalPositiveInteger(input.pageNum, "pageNum"),
94
- pageSize: readOptionalPositiveInteger(input.pageSize, "pageSize"),
95
- source: readOptionalString(input.source),
96
- startTime: readRequiredString(input.startTime, "startTime"),
97
- endTime: readRequiredString(input.endTime, "endTime"),
98
- };
99
- },
100
- },
101
- search_wechat_articles: {
102
- path: "/story/api/gzhData/searchArticle",
103
- buildBody: buildSearchBody,
104
- },
105
- search_wechat_accounts: {
106
- path: "/story/api/gzhData/searchUser",
107
- buildBody: buildSearchBody,
108
- },
109
- get_wechat_article: {
110
- path: "/story/api/gzhData/queryWork",
111
- buildBody(input) {
112
- return {
113
- workUuid: readRequiredString(input.workUuid, "workUuid"),
114
- };
115
- },
116
- },
117
- get_wechat_article_by_url: {
118
- path: "/story/api/gzhData/queryArticleDetail",
119
- buildBody(input) {
120
- return {
121
- url: readRequiredString(input.url, "url"),
122
- };
123
- },
124
- },
125
- get_wechat_account: {
126
- path: "/story/api/gzhData/queryUser",
127
- buildBody(input) {
128
- return {
129
- account: readRequiredString(input.account, "account"),
130
- accountName: readOptionalString(input.accountName),
131
- };
132
- },
133
- },
134
- list_wechat_account_articles: {
135
- path: "/story/api/gzhData/queryWorkList",
136
- buildBody(input) {
137
- return {
138
- account: readRequiredString(input.account, "account"),
139
- accountName: readOptionalString(input.accountName),
140
- offset: readOptionalInteger(input.offset, "offset"),
141
- sortType: readOptionalString(input.sortType),
142
- publishTimeStart: readOptionalString(input.publishTimeStart),
143
- publishTimeEnd: readOptionalString(input.publishTimeEnd),
144
- };
145
- },
146
- },
147
- search_wechat_ai_creations: {
148
- path: "/story/api/parseWork/queryAiMsgs",
149
- buildBody(input) {
150
- return {
151
- keyword: readRequiredString(input.keyword, "keyword"),
152
- pageNum: readRequiredPositiveInteger(input.pageNum, "pageNum"),
153
- pageSize: readRequiredPositiveInteger(input.pageSize, "pageSize"),
154
- startTime: readOptionalString(input.startTime),
155
- endTime: readOptionalString(input.endTime),
156
- };
157
- },
158
- },
159
- search_bilibili_works: {
160
- path: "/story/api/bili/data/workSearch",
161
- buildBody(input) {
162
- return {
163
- keyword: readRequiredString(input.keyword, "keyword"),
164
- exactMatch: optionalBoolean(input.exactMatch),
165
- page: readRequiredString(input.page, "page"),
166
- pageSize: readOptionalPositiveInteger(input.pageSize, "pageSize"),
167
- order: readOptionalString(input.order),
168
- };
169
- },
170
- },
171
- search_bilibili_users: {
172
- path: "/story/api/bili/data/accountSearch",
173
- buildBody(input) {
174
- return {
175
- keyword: readRequiredString(input.keyword, "keyword"),
176
- page: readRequiredString(input.page, "page"),
177
- pageSize: readOptionalPositiveInteger(input.pageSize, "pageSize"),
178
- order: readOptionalString(input.order),
179
- };
180
- },
181
- },
182
- get_bilibili_work: {
183
- path: "/story/api/bili/data/workDetail",
184
- buildBody(input) {
185
- return {
186
- bvId: readOptionalString(input.bvId),
187
- workUrl: readOptionalString(input.workUrl),
188
- };
189
- },
190
- },
191
- get_bilibili_user: {
192
- path: "/story/api/bili/data/accountDetail",
193
- buildBody(input) {
194
- return { mid: readRequiredString(input.mid, "mid") };
195
- },
196
- },
197
- list_bilibili_user_works: {
198
- path: "/story/api/bili/data/accountWorkList",
199
- buildBody(input) {
200
- const mid = readOptionalString(input.mid);
201
- const accountUrl = readOptionalString(input.accountUrl);
202
- return {
203
- mid,
204
- accountUrl,
205
- page: readOptionalPositiveInteger(input.page, "page"),
206
- pageSize: readOptionalPositiveInteger(input.pageSize, "pageSize"),
207
- order: readOptionalString(input.order),
208
- };
209
- },
210
- },
211
- search_wechat_channel_works: {
212
- path: "/story/api/sphAllData/searchWork",
213
- buildBody(input) {
214
- return {
215
- keyword: readRequiredString(input.keyword, "keyword"),
216
- sort: readOptionalString(input.sort),
217
- page: readOptionalPositiveInteger(input.page, "page"),
218
- size: readOptionalPositiveInteger(input.size, "size"),
219
- exactMatch: optionalBoolean(input.exactMatch),
220
- };
221
- },
222
- },
223
- search_wechat_channel_users: {
224
- path: "/story/api/sphAllData/searchUser",
225
- buildBody(input) {
226
- return buildAccountNameSearchBody(input);
227
- },
228
- },
229
- get_wechat_channel_work: {
230
- path: "/story/api/sphAllData/queryWorkDetail",
231
- buildBody(input) {
232
- return { videoId: readRequiredString(input.videoId, "videoId") };
233
- },
234
- },
235
- list_wechat_channel_user_works: {
236
- path: "/story/api/sphAllData/queryWorkList",
237
- buildBody(input) {
238
- return {
239
- nickname: readRequiredString(input.nickname, "nickname"),
240
- page: readOptionalPositiveInteger(input.page, "page"),
241
- size: readOptionalPositiveInteger(input.size, "size"),
242
- };
243
- },
244
- },
245
- search_kuaishou_works: {
246
- path: "/story/api/ksAllData/searchWork",
247
- buildBody(input) {
248
- return {
249
- keyword: readRequiredString(input.keyword, "keyword"),
250
- page: readOptionalPositiveInteger(input.page, "page"),
251
- size: readOptionalPositiveInteger(input.size, "size"),
252
- sort: readOptionalString(input.sort),
253
- };
254
- },
255
- },
256
- search_kuaishou_users: {
257
- path: "/story/api/ksAllData/searchUser",
258
- buildBody: buildAccountNameSearchBody,
259
- },
260
- get_kuaishou_work: {
261
- path: "/story/api/ksAllData/queryWorkDetail",
262
- buildBody(input) {
263
- return { photoId: readRequiredString(input.photoId, "photoId") };
264
- },
265
- },
266
- list_kuaishou_user_works: {
267
- path: "/story/api/ksAllData/queryWorkList",
268
- buildBody(input) {
269
- const kwaiId = readOptionalString(input.kwaiId);
270
- const threeXId = readOptionalString(input.threeXId);
271
- return {
272
- kwaiId,
273
- threeXId,
274
- page: readOptionalPositiveInteger(input.page, "page"),
275
- size: readOptionalPositiveInteger(input.size, "size"),
276
- };
277
- },
278
- },
279
- search_toutiao_works: {
280
- path: "/story/api/toutiao/searchWork",
281
- buildBody(input) {
282
- return {
283
- keyword: readRequiredString(input.keyword, "keyword"),
284
- offset: readRequiredString(input.offset, "offset"),
285
- };
286
- },
287
- },
288
- search_toutiao_users: {
289
- path: "/story/api/toutiao/searchAccount",
290
- responseMode: "direct",
291
- buildBody(input) {
292
- return {
293
- name: readRequiredString(input.name, "name"),
294
- offset: readOptionalString(input.offset),
295
- searchId: readOptionalString(input.searchId),
296
- };
297
- },
298
- },
299
- get_toutiao_work: {
300
- path: "/story/api/toutiao/workDetail",
301
- buildBody(input) {
302
- return { opusId: readRequiredString(input.opusId, "opusId") };
303
- },
304
- },
305
- list_toutiao_work_comments: {
306
- path: "/story/api/toutiao/workComment",
307
- responseMode: "direct",
308
- buildBody(input) {
309
- return {
310
- opusId: readRequiredString(input.opusId, "opusId"),
311
- offset: readOptionalString(input.offset),
312
- };
313
- },
314
- },
315
- list_toutiao_user_works: {
316
- path: "/story/api/toutiao/userWorkList",
317
- buildBody(input) {
318
- return {
319
- category: readRequiredString(input.category, "category"),
320
- token: readRequiredString(input.token, "token"),
321
- offset: readRequiredString(input.offset, "offset"),
322
- };
323
- },
324
- },
325
- search_tiktok_users: {
326
- path: "/story/api/deepSearch/tk/searchUser",
327
- successCodes: redfoxTiktokSuccessCodes,
328
- buildBody(input) {
329
- return {
330
- keyword: readRequiredString(input.keyword, "keyword"),
331
- cursor: readRequiredNonNegativeInteger(input.cursor, "cursor"),
332
- };
333
- },
334
- },
335
- };
336
- export const redfoxActionHandlers = mapProviderActionSources(service, redfoxEndpoints, (_actionName, endpoint) => (input, context) => requestRedfoxJson({
337
- apiKey: context.apiKey,
338
- path: endpoint.path,
339
- body: endpoint.buildBody(input),
340
- successCodes: endpoint.successCodes,
341
- responseMode: endpoint.responseMode,
342
- context,
343
- mode: "execute",
344
- }));
345
- export const executors = defineApiKeyProviderExecutors(service, redfoxActionHandlers);
1
+ import { defineApiKeyProviderExecutors, defineProviderProxy, mapProviderActionHandlers, ProviderRequestError, readProviderProxyErrorMessage, withRetryAfterSeconds, } from "../provider-runtime.js";
2
+ import { redfoxActions } from "./actions.js";
3
+ import { redfoxRoutes } from "./routes.js";
4
+ import { executeRedfoxAction, validateRedfoxCredential, redfoxApiBaseUrl } from "./runtime.js";
5
+ const handlers = mapProviderActionHandlers("redfox", redfoxActions, (action) => async (input, context) => {
6
+ const values = { ...input };
7
+ for (const [name, schema] of Object.entries(action.inputSchema.properties)) {
8
+ if (values[name] === undefined && schema.default !== undefined)
9
+ values[name] = structuredClone(schema.default);
10
+ }
11
+ return executeRedfoxAction(redfoxRoutes[action.name], values, context);
12
+ });
13
+ export const executors = defineApiKeyProviderExecutors("redfox", handlers, {
14
+ skipDnsValidation: true,
15
+ });
346
16
  export const credentialValidators = {
347
- async apiKey(input, options) {
348
- await requestRedfoxJson({
349
- apiKey: input.apiKey,
350
- path: redfoxValidationPath,
351
- body: { keyword: "test", offset: 0, sortType: "_0" },
352
- context: { fetcher: options.fetcher, signal: options.signal },
353
- mode: "validate",
354
- });
355
- return {
356
- profile: {
357
- accountId: "redfox-api-key",
358
- displayName: "RedFoxHub API Key",
359
- grantedScopes: [],
360
- },
361
- grantedScopes: [],
362
- metadata: {
363
- apiBaseUrl: redfoxApiBaseUrl,
364
- validationEndpoint: redfoxValidationPath,
365
- },
366
- };
17
+ apiKey(input, { fetcher, signal }) {
18
+ return validateRedfoxCredential(input.values, fetcher, signal);
367
19
  },
368
20
  };
369
- async function requestRedfoxJson(input) {
370
- let response;
371
- let payload;
372
- try {
373
- response = await input.context.fetcher(new URL(input.path, redfoxApiBaseUrl), {
374
- method: "POST",
375
- headers: redfoxHeaders(input.apiKey),
376
- body: JSON.stringify(compactObject(input.body)),
377
- signal: input.context.signal,
378
- });
379
- payload = await readRedfoxJson(response);
380
- }
381
- catch (error) {
382
- if (error instanceof ProviderRequestError) {
383
- throw error;
384
- }
385
- throw new ProviderRequestError(502, error instanceof Error ? `RedFoxHub request failed: ${error.message}` : "RedFoxHub request failed");
386
- }
387
- if (!response.ok) {
388
- throw createRedfoxHttpError(response.status, payload, input.mode);
389
- }
390
- if (input.responseMode === "direct" && !hasRedfoxBusinessCode(payload))
391
- return { code: 2000, msg: "成功", data: payload };
392
- const normalized = normalizeRedfoxPayload(payload);
393
- if (!isRedfoxSuccessCode(normalized.code, input.successCodes)) {
394
- throw createRedfoxBusinessError(normalized, input.mode);
395
- }
396
- return normalized;
397
- }
398
- function hasRedfoxBusinessCode(payload) {
399
- const record = optionalRecord(payload);
400
- return record != null && "code" in record;
401
- }
402
- function isRedfoxSuccessCode(code, successCodes = redfoxDefaultSuccessCodes) {
403
- return successCodes.includes(code);
404
- }
405
- function redfoxHeaders(apiKey) {
406
- return {
407
- accept: "application/json",
408
- "content-type": "application/json",
409
- REDFOX_API_KEY: apiKey,
410
- "user-agent": providerUserAgent,
411
- };
412
- }
413
- async function readRedfoxJson(response) {
414
- const text = await response.text();
415
- if (text.trim() === "") {
416
- return null;
417
- }
418
- try {
419
- return JSON.parse(text);
420
- }
421
- catch {
422
- throw new ProviderRequestError(502, "RedFoxHub returned invalid JSON");
423
- }
424
- }
425
- function normalizeRedfoxPayload(payload) {
426
- const record = optionalRecord(payload);
427
- if (!record) {
428
- throw new ProviderRequestError(502, "RedFoxHub returned an invalid response");
429
- }
430
- return {
431
- code: readCode(record.code),
432
- msg: optionalString(record.msg) ?? "",
433
- data: record.data,
434
- };
435
- }
436
- function readCode(value) {
437
- if (typeof value === "number" && Number.isInteger(value)) {
438
- return value;
439
- }
440
- if (typeof value === "string" && value.trim() !== "") {
441
- const parsed = Number(value);
442
- if (Number.isInteger(parsed)) {
443
- return parsed;
444
- }
445
- }
446
- throw new ProviderRequestError(502, "RedFoxHub response did not include code");
447
- }
448
- function createRedfoxHttpError(status, payload, mode) {
449
- const message = extractRedfoxMessage(payload) ?? `RedFoxHub request failed with ${status || 500}`;
450
- return mapRedfoxStatus(status, message, mode);
451
- }
452
- function createRedfoxBusinessError(payload, mode) {
453
- const message = payload.msg || `RedFoxHub returned business code ${payload.code}`;
454
- return mapRedfoxStatus(payload.code, message, mode, 502);
455
- }
456
- function mapRedfoxStatus(status, message, mode, fallbackStatus = status || 500) {
457
- if (status === 429) {
458
- return new ProviderRequestError(429, message);
459
- }
460
- if (mode === "validate" && (status === 401 || status === 403)) {
461
- return new ProviderRequestError(401, message);
462
- }
463
- if (mode === "execute" && (status === 401 || status === 403)) {
464
- return new ProviderRequestError(401, message);
465
- }
466
- if ([400, 404, 422].includes(status)) {
467
- return new ProviderRequestError(400, message);
468
- }
469
- return new ProviderRequestError(fallbackStatus >= 500 ? 502 : fallbackStatus, message);
470
- }
471
- function extractRedfoxMessage(payload) {
472
- if (typeof payload === "string" && payload.trim()) {
473
- return payload;
474
- }
475
- const record = optionalRecord(payload);
476
- if (!record) {
477
- return undefined;
478
- }
479
- return optionalString(record.msg) ?? optionalString(record.message) ?? optionalString(record.error);
480
- }
481
- function buildSearchBody(input) {
482
- return {
483
- keyword: readRequiredString(input.keyword, "keyword"),
484
- offset: readOptionalInteger(input.offset, "offset"),
485
- sortType: readOptionalString(input.sortType),
486
- };
487
- }
488
- function buildAiCreationSearchBody(input) {
489
- return {
490
- keyword: readRequiredString(input.keyword, "keyword"),
491
- pageNum: readOptionalPositiveInteger(input.pageNum, "pageNum"),
492
- pageSize: readOptionalPositiveInteger(input.pageSize, "pageSize"),
493
- startTime: readOptionalString(input.startTime),
494
- endTime: readOptionalString(input.endTime),
495
- };
496
- }
497
- function buildAccountNameSearchBody(input) {
498
- return {
499
- accountName: readRequiredString(input.accountName, "accountName"),
500
- page: readOptionalPositiveInteger(input.page, "page"),
501
- pageSize: readOptionalPositiveInteger(input.pageSize, "pageSize"),
502
- };
503
- }
504
- function readRequiredString(value, fieldName) {
505
- const result = readOptionalString(value);
506
- if (result === undefined) {
507
- throw new ProviderRequestError(400, `${fieldName} is required`);
508
- }
509
- return result;
510
- }
511
21
  export const proxy = defineProviderProxy({
512
- service,
513
- baseUrl: "https://redfox.hk",
514
- auth: { type: "api_key_header", name: "redfox_api_key" },
22
+ service: "redfox",
23
+ baseUrl: redfoxApiBaseUrl,
24
+ auth: { type: "api_key_header", name: "REDFOX_API_KEY" },
25
+ skipDnsValidation: true,
26
+ customizeRequest({ headers }) {
27
+ if (!headers.has("accept"))
28
+ headers.set("accept", "application/json");
29
+ },
30
+ async readError(response) {
31
+ return new ProviderRequestError(response.status, await readProviderProxyErrorMessage(response, "RedFoxHub request failed"), withRetryAfterSeconds(response), "provider_error");
32
+ },
515
33
  });
516
- function readOptionalString(value) {
517
- if (typeof value !== "string") {
518
- return undefined;
519
- }
520
- const trimmed = value.trim();
521
- return trimmed === "" ? undefined : trimmed;
522
- }
523
- function readOptionalInteger(value, fieldName) {
524
- if (value == null || value === "") {
525
- return undefined;
526
- }
527
- const parsed = Number(value);
528
- if (!Number.isInteger(parsed) || parsed < 0) {
529
- throw new ProviderRequestError(400, `${fieldName} must be a non-negative integer`);
530
- }
531
- return parsed;
532
- }
533
- function readRequiredNonNegativeInteger(value, fieldName) {
534
- const result = readOptionalInteger(value, fieldName);
535
- if (result === undefined) {
536
- throw new ProviderRequestError(400, `${fieldName} is required`);
537
- }
538
- return result;
539
- }
540
- function readOptionalPositiveInteger(value, fieldName) {
541
- if (value == null || value === "") {
542
- return undefined;
543
- }
544
- const parsed = Number(value);
545
- if (!Number.isInteger(parsed) || parsed <= 0) {
546
- throw new ProviderRequestError(400, `${fieldName} must be a positive integer`);
547
- }
548
- return parsed;
549
- }
550
- function readRequiredPositiveInteger(value, fieldName) {
551
- const result = readOptionalPositiveInteger(value, fieldName);
552
- if (result === undefined) {
553
- throw new ProviderRequestError(400, `${fieldName} is required`);
554
- }
555
- return result;
556
- }
@@ -0,0 +1,11 @@
1
+ export interface RedfoxRoute {
2
+ path: string;
3
+ method?: "GET" | "POST";
4
+ credentialQuery?: boolean;
5
+ directResponse?: boolean;
6
+ successCodes?: readonly number[];
7
+ validateImageRoles?: boolean;
8
+ taskRole?: "submit" | "result";
9
+ parseImageUrls?: boolean;
10
+ }
11
+ export declare const redfoxRoutes: Record<string, RedfoxRoute>;