@hasna/connectors 1.4.1 → 1.4.3

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 (499) hide show
  1. package/bin/index.js +1271 -317
  2. package/bin/mcp.js +524 -211
  3. package/bin/serve.js +1208 -256
  4. package/connectors/adobe/package.json +1 -1
  5. package/connectors/aitableai/package.json +1 -1
  6. package/connectors/alchemy/package.json +1 -1
  7. package/connectors/alerty/package.json +1 -1
  8. package/connectors/alienvault/package.json +1 -1
  9. package/connectors/alphamoon/package.json +1 -1
  10. package/connectors/alttextai/package.json +1 -1
  11. package/connectors/amadeus/package.json +1 -1
  12. package/connectors/amadeus/src/api/client.ts +6 -6
  13. package/connectors/amadeus/src/cli/index.ts +6 -6
  14. package/connectors/amadeus/src/utils/output.ts +5 -5
  15. package/connectors/amazon/package.json +1 -1
  16. package/connectors/amilia/package.json +1 -1
  17. package/connectors/amqpsender/package.json +1 -1
  18. package/connectors/announcekit/package.json +1 -1
  19. package/connectors/anthropic/.env.example +1 -1
  20. package/connectors/anyscale/package.json +1 -1
  21. package/connectors/apiary/package.json +1 -1
  22. package/connectors/apiflash/package.json +1 -1
  23. package/connectors/apitemplateio/package.json +1 -1
  24. package/connectors/apptivegrid/package.json +1 -1
  25. package/connectors/assemblyai/package.json +1 -1
  26. package/connectors/autom/package.json +1 -1
  27. package/connectors/automizy/package.json +1 -1
  28. package/connectors/autopilot/package.json +1 -1
  29. package/connectors/awscognito/package.json +1 -1
  30. package/connectors/bamboohr/package.json +1 -1
  31. package/connectors/bannerbear/package.json +1 -1
  32. package/connectors/baseten/package.json +1 -1
  33. package/connectors/box/package.json +1 -1
  34. package/connectors/brevo/package.json +1 -1
  35. package/connectors/calendly/package.json +1 -1
  36. package/connectors/cerebras/package.json +1 -1
  37. package/connectors/chargebee/package.json +1 -1
  38. package/connectors/clearbit/package.json +1 -1
  39. package/connectors/clickbank/README.md +2 -2
  40. package/connectors/cloudflare-workers/package.json +1 -1
  41. package/connectors/coda/package.json +1 -1
  42. package/connectors/coingecko/package.json +1 -1
  43. package/connectors/convertkit/package.json +1 -1
  44. package/connectors/customerio/package.json +1 -1
  45. package/connectors/databricks/package.json +1 -1
  46. package/connectors/datadog/package.json +1 -1
  47. package/connectors/datasoap/README.md +2 -2
  48. package/connectors/datasoap/package.json +1 -1
  49. package/connectors/datumbox/README.md +2 -2
  50. package/connectors/datumbox/package.json +1 -1
  51. package/connectors/dayschedule/README.md +2 -2
  52. package/connectors/dayschedule/package.json +1 -1
  53. package/connectors/deepgram/package.json +1 -1
  54. package/connectors/deepinfra/README.md +2 -2
  55. package/connectors/deepinfra/package.json +1 -1
  56. package/connectors/deepl/README.md +2 -2
  57. package/connectors/deepl/package.json +1 -1
  58. package/connectors/deepseek/package.json +1 -1
  59. package/connectors/demio/README.md +2 -2
  60. package/connectors/demio/package.json +1 -1
  61. package/connectors/descript/README.md +2 -2
  62. package/connectors/descript/package.json +1 -1
  63. package/connectors/detrack/README.md +2 -2
  64. package/connectors/detrack/package.json +1 -1
  65. package/connectors/devcycle/README.md +2 -2
  66. package/connectors/devcycle/package.json +1 -1
  67. package/connectors/dhl/README.md +2 -2
  68. package/connectors/dhl/package.json +1 -1
  69. package/connectors/docusign/package.json +1 -1
  70. package/connectors/dropbox/package.json +1 -1
  71. package/connectors/fal/package.json +1 -1
  72. package/connectors/fathom/package.json +1 -1
  73. package/connectors/fireworks/package.json +1 -1
  74. package/connectors/gitlab/package.json +1 -1
  75. package/connectors/googlechat/README.md +1 -2
  76. package/connectors/googledrive/src/api/client.ts +5 -5
  77. package/connectors/googledrive/src/api/files.ts +11 -11
  78. package/connectors/googledrive/src/api/folders.ts +2 -2
  79. package/connectors/googledrive/src/cli/index.ts +4 -4
  80. package/connectors/googledrive/src/utils/output.ts +3 -3
  81. package/connectors/googleforms/README.md +1 -2
  82. package/connectors/googleperspective/README.md +1 -2
  83. package/connectors/grafana/package.json +1 -1
  84. package/connectors/growbots/README.md +2 -2
  85. package/connectors/growbots/package.json +1 -1
  86. package/connectors/gumroad/package.json +1 -1
  87. package/connectors/gupshup/README.md +2 -2
  88. package/connectors/gupshup/package.json +1 -1
  89. package/connectors/guru/README.md +2 -2
  90. package/connectors/guru/package.json +1 -1
  91. package/connectors/hackernews/README.md +2 -2
  92. package/connectors/hackernews/package.json +1 -1
  93. package/connectors/halopsa/README.md +2 -2
  94. package/connectors/halopsa/package.json +1 -1
  95. package/connectors/handwrytten/README.md +2 -2
  96. package/connectors/handwrytten/package.json +1 -1
  97. package/connectors/hansei/README.md +2 -2
  98. package/connectors/hansei/package.json +1 -1
  99. package/connectors/harrypotterapi/README.md +2 -2
  100. package/connectors/harrypotterapi/package.json +1 -1
  101. package/connectors/harvest/README.md +2 -2
  102. package/connectors/harvest/package.json +1 -1
  103. package/connectors/headlesstesting/README.md +2 -2
  104. package/connectors/headlesstesting/package.json +1 -1
  105. package/connectors/homeassistant/package.json +1 -1
  106. package/connectors/klaviyo/package.json +1 -1
  107. package/connectors/lemonsqueezy/package.json +1 -1
  108. package/connectors/lighthouse/src/api/index.ts +1 -1
  109. package/connectors/linkedin/package.json +1 -1
  110. package/connectors/linkish/README.md +2 -2
  111. package/connectors/linkish/package.json +1 -1
  112. package/connectors/liveagent/README.md +2 -2
  113. package/connectors/liveagent/package.json +1 -1
  114. package/connectors/localazy/README.md +2 -2
  115. package/connectors/localazy/package.json +1 -1
  116. package/connectors/loginradius/README.md +2 -2
  117. package/connectors/loginradius/package.json +1 -1
  118. package/connectors/lokalise/README.md +2 -2
  119. package/connectors/lokalise/package.json +1 -1
  120. package/connectors/lonescale/README.md +2 -2
  121. package/connectors/lonescale/package.json +1 -1
  122. package/connectors/lucidchart/README.md +2 -2
  123. package/connectors/lucidchart/package.json +1 -1
  124. package/connectors/luma/package.json +1 -1
  125. package/connectors/magento2/README.md +2 -2
  126. package/connectors/magento2/package.json +1 -1
  127. package/connectors/mailcheck/README.md +2 -2
  128. package/connectors/mailcheck/package.json +1 -1
  129. package/connectors/mailchimp/package.json +1 -1
  130. package/connectors/mailerlite/README.md +2 -2
  131. package/connectors/mailerlite/package.json +1 -1
  132. package/connectors/mailersend/README.md +2 -2
  133. package/connectors/mailersend/package.json +1 -1
  134. package/connectors/mailify/README.md +2 -2
  135. package/connectors/mailify/package.json +1 -1
  136. package/connectors/mailjet/README.md +2 -2
  137. package/connectors/mailjet/package.json +1 -1
  138. package/connectors/mailmodo/README.md +2 -2
  139. package/connectors/mailmodo/package.json +1 -1
  140. package/connectors/malcore/README.md +2 -2
  141. package/connectors/malcore/package.json +1 -1
  142. package/connectors/mandrill/README.md +2 -2
  143. package/connectors/mandrill/package.json +1 -1
  144. package/connectors/marcomrobot/README.md +2 -2
  145. package/connectors/marcomrobot/package.json +1 -1
  146. package/connectors/marketingmasterio/README.md +2 -2
  147. package/connectors/marketingmasterio/package.json +1 -1
  148. package/connectors/marketplacer/README.md +2 -2
  149. package/connectors/marketplacer/package.json +1 -1
  150. package/connectors/marketstack/README.md +2 -2
  151. package/connectors/marketstack/package.json +1 -1
  152. package/connectors/matrix/README.md +1 -1
  153. package/connectors/matrix/package.json +1 -1
  154. package/connectors/mattermost/README.md +1 -1
  155. package/connectors/mattermost/package.json +1 -1
  156. package/connectors/mautic/README.md +1 -1
  157. package/connectors/mautic/package.json +1 -1
  158. package/connectors/mav/README.md +1 -1
  159. package/connectors/mav/package.json +1 -1
  160. package/connectors/maverick/README.md +1 -1
  161. package/connectors/maverick/package.json +1 -1
  162. package/connectors/mem/README.md +1 -1
  163. package/connectors/mem/package.json +1 -1
  164. package/connectors/messagebird/package.json +1 -1
  165. package/connectors/metabase/README.md +1 -1
  166. package/connectors/metabase/package.json +1 -1
  167. package/connectors/miro/package.json +1 -1
  168. package/connectors/mocean/package.json +1 -1
  169. package/connectors/modal/package.json +1 -1
  170. package/connectors/monday/package.json +1 -1
  171. package/connectors/monicacrm/package.json +1 -1
  172. package/connectors/moonclerk/package.json +1 -1
  173. package/connectors/moonmail/package.json +1 -1
  174. package/connectors/morph/package.json +1 -1
  175. package/connectors/mqtt/package.json +1 -1
  176. package/connectors/msg91/package.json +1 -1
  177. package/connectors/mubert/package.json +1 -1
  178. package/connectors/murf/package.json +1 -1
  179. package/connectors/mux/package.json +1 -1
  180. package/connectors/netlify/package.json +1 -1
  181. package/connectors/okta/package.json +1 -1
  182. package/connectors/paddle/package.json +1 -1
  183. package/connectors/perplexity/package.json +1 -1
  184. package/connectors/pinterest/package.json +1 -1
  185. package/connectors/pipedrive/package.json +1 -1
  186. package/connectors/plaid/package.json +1 -1
  187. package/connectors/quickchart/README.md +2 -2
  188. package/connectors/quintadb/README.md +2 -2
  189. package/connectors/rabbitmq/README.md +2 -2
  190. package/connectors/radar/README.md +2 -2
  191. package/connectors/raindrop/README.md +2 -2
  192. package/connectors/rapid7insightvm/README.md +2 -2
  193. package/connectors/raventools/README.md +2 -2
  194. package/connectors/rawgvideogamesdatabase/README.md +2 -2
  195. package/connectors/rdstationcrm/README.md +2 -2
  196. package/connectors/readai/README.md +2 -2
  197. package/connectors/roboflow/package.json +1 -1
  198. package/connectors/runway/package.json +1 -1
  199. package/connectors/sendgrid/package.json +1 -1
  200. package/connectors/shuffler/package.json +1 -1
  201. package/connectors/sierrainteractive/package.json +1 -1
  202. package/connectors/sifter/package.json +1 -1
  203. package/connectors/signaturit/package.json +1 -1
  204. package/connectors/signl4/package.json +1 -1
  205. package/connectors/simpleem/package.json +1 -1
  206. package/connectors/simplehash/package.json +1 -1
  207. package/connectors/simplekpi/package.json +1 -1
  208. package/connectors/simplelocalize/package.json +1 -1
  209. package/connectors/simplero/package.json +1 -1
  210. package/connectors/smartrecruiters/package.json +1 -1
  211. package/connectors/smtp2go/package.json +1 -1
  212. package/connectors/snowflake/package.json +1 -1
  213. package/connectors/sparkpost/package.json +1 -1
  214. package/connectors/split-in-batches/CLAUDE.md +1 -1
  215. package/connectors/split-in-batches/README.md +1 -1
  216. package/connectors/split-in-batches/src/api/client.test.ts +16 -17
  217. package/connectors/split-in-batches/src/api/client.ts +4 -3
  218. package/connectors/split-in-batches/src/cli/index.ts +1 -1
  219. package/connectors/split-io/package.json +1 -1
  220. package/connectors/split-io/src/api/client.test.ts +20 -0
  221. package/connectors/split-io/src/cli/index.ts +9 -9
  222. package/connectors/spreadsheet-file/.env.example +1 -1
  223. package/connectors/spreadsheet-file/CLAUDE.md +2 -2
  224. package/connectors/spreadsheet-file/README.md +3 -3
  225. package/connectors/spreadsheet-file/src/api/client.test.ts +8 -9
  226. package/connectors/spreadsheet-file/src/api/client.ts +4 -3
  227. package/connectors/spreadsheet-file/src/cli/index.ts +1 -1
  228. package/connectors/sprinklr/package.json +1 -1
  229. package/connectors/sprout-social/package.json +1 -1
  230. package/connectors/square/package.json +1 -1
  231. package/connectors/sse-trigger/.env.example +1 -1
  232. package/connectors/sse-trigger/CLAUDE.md +2 -2
  233. package/connectors/sse-trigger/README.md +1 -1
  234. package/connectors/sse-trigger/package.json +1 -1
  235. package/connectors/sse-trigger/src/api/client.test.ts +12 -8
  236. package/connectors/sse-trigger/src/api/client.ts +4 -3
  237. package/connectors/sse-trigger/src/api/index.ts +1 -1
  238. package/connectors/sse-trigger/src/cli/index.ts +1 -1
  239. package/connectors/sse-trigger/src/index.ts +1 -1
  240. package/connectors/stability-api-platform/AGENTS.md +2 -2
  241. package/connectors/stability-api-platform/CLAUDE.md +1 -1
  242. package/connectors/stability-api-platform/README.md +2 -2
  243. package/connectors/stability-api-platform/src/api/client.test.ts +17 -12
  244. package/connectors/stability-api-platform/src/api/client.ts +4 -3
  245. package/connectors/stability-api-platform/src/api/index.ts +0 -1
  246. package/connectors/stability-api-platform/src/cli/index.ts +1 -1
  247. package/connectors/stability-api-platform/src/index.ts +0 -1
  248. package/connectors/standout/package.json +1 -1
  249. package/connectors/statuspage/package.json +1 -1
  250. package/connectors/stop-and-error/.env.example +1 -1
  251. package/connectors/stop-and-error/CLAUDE.md +1 -1
  252. package/connectors/stop-and-error/README.md +1 -1
  253. package/connectors/stop-and-error/src/api/client.test.ts +12 -8
  254. package/connectors/stop-and-error/src/api/client.ts +4 -3
  255. package/connectors/stop-and-error/src/cli/index.ts +2 -2
  256. package/connectors/stoplight/package.json +1 -1
  257. package/connectors/stoplight-api-platform/package.json +1 -1
  258. package/connectors/strand-ai/CLAUDE.md +1 -1
  259. package/connectors/stripe-financial-connections/.env.example +1 -1
  260. package/connectors/stripe-financial-connections/CLAUDE.md +2 -2
  261. package/connectors/stripe-financial-connections/package.json +1 -1
  262. package/connectors/stripe-financial-connections/src/api/client.test.ts +34 -0
  263. package/connectors/stripe-financial-connections/src/api/client.ts +4 -3
  264. package/connectors/stripe-financial-connections/src/cli/index.ts +1 -1
  265. package/connectors/stripe-terminal/package.json +1 -1
  266. package/connectors/stytch/package.json +1 -1
  267. package/connectors/sucuri-api-platform/.env.example +1 -1
  268. package/connectors/sucuri-api-platform/CLAUDE.md +1 -1
  269. package/connectors/sucuri-api-platform/README.md +2 -2
  270. package/connectors/sucuri-api-platform/src/api/client.test.ts +9 -7
  271. package/connectors/sucuri-api-platform/src/api/client.ts +4 -3
  272. package/connectors/sucuri-api-platform/src/api/index.ts +1 -1
  273. package/connectors/sucuri-api-platform/src/cli/index.ts +1 -1
  274. package/connectors/sucuri-api-platform/src/index.ts +1 -1
  275. package/connectors/sumo-logic/package.json +1 -1
  276. package/connectors/supabase/package.json +1 -1
  277. package/connectors/supabase-api-platform/package.json +1 -1
  278. package/connectors/sysdig/package.json +1 -1
  279. package/connectors/tableau/package.json +1 -1
  280. package/connectors/takecareos/README.md +2 -2
  281. package/connectors/takecareos/package.json +1 -1
  282. package/connectors/telegram/src/api/bot.ts +20 -0
  283. package/connectors/telegram/src/api/client.ts +32 -0
  284. package/connectors/telegram/src/api/files.test.ts +103 -0
  285. package/connectors/telegram/src/api/index.ts +1 -0
  286. package/connectors/telegram/src/api/messages.test.ts +8 -2
  287. package/connectors/telegram/src/cli/files.test.ts +40 -0
  288. package/connectors/telegram/src/cli/files.ts +38 -0
  289. package/connectors/telegram/src/cli/index.ts +27 -30
  290. package/connectors/telegram/src/cli/updates.test.ts +176 -0
  291. package/connectors/telegram/src/cli/updates.ts +95 -0
  292. package/connectors/telegram/src/index.ts +1 -0
  293. package/connectors/telegram/src/types/index.ts +13 -0
  294. package/connectors/terraform-cloud/package.json +1 -1
  295. package/connectors/tettra-api-platform/CLAUDE.md +1 -1
  296. package/connectors/tettra-api-platform/README.md +2 -2
  297. package/connectors/tettra-api-platform/src/api/client.test.ts +7 -8
  298. package/connectors/tettra-api-platform/src/api/client.ts +4 -3
  299. package/connectors/tettra-api-platform/src/api/index.ts +1 -1
  300. package/connectors/tettra-api-platform/src/cli/index.ts +1 -1
  301. package/connectors/tettra-api-platform/src/index.ts +1 -1
  302. package/connectors/textit/package.json +1 -1
  303. package/connectors/thousandeyes/package.json +1 -1
  304. package/connectors/ticket-tailor/package.json +1 -1
  305. package/connectors/ticketsource/package.json +1 -1
  306. package/connectors/tiktokads/README.md +1 -1
  307. package/connectors/time-saved/package.json +1 -1
  308. package/connectors/tipalti/package.json +1 -1
  309. package/connectors/together-api-platform/.env.example +1 -1
  310. package/connectors/together-api-platform/CLAUDE.md +1 -1
  311. package/connectors/together-api-platform/README.md +1 -1
  312. package/connectors/together-api-platform/src/api/client.test.ts +11 -7
  313. package/connectors/together-api-platform/src/api/client.ts +4 -4
  314. package/connectors/together-api-platform/src/api/index.ts +1 -1
  315. package/connectors/together-api-platform/src/cli/index.ts +1 -1
  316. package/connectors/together-api-platform/src/index.ts +1 -1
  317. package/connectors/tomtom/AGENTS.md +1 -1
  318. package/connectors/totp/package.json +1 -1
  319. package/connectors/traverse/package.json +1 -1
  320. package/connectors/travo-ai/package.json +1 -1
  321. package/connectors/travo-real-estate/CLAUDE.md +1 -1
  322. package/connectors/travo-real-estate/README.md +1 -1
  323. package/connectors/travo-real-estate/src/api/client.test.ts +20 -16
  324. package/connectors/travo-real-estate/src/api/client.ts +4 -3
  325. package/connectors/travo-real-estate/src/utils/config.ts +2 -4
  326. package/connectors/tray-api-platform/CLAUDE.md +1 -1
  327. package/connectors/tray-api-platform/src/api/client.test.ts +17 -13
  328. package/connectors/tray-api-platform/src/api/client.ts +4 -3
  329. package/connectors/tray-api-platform/src/api/index.ts +1 -1
  330. package/connectors/tray-api-platform/src/cli/index.ts +1 -1
  331. package/connectors/tray-api-platform/src/index.ts +0 -1
  332. package/connectors/trigger-dev/package.json +1 -1
  333. package/connectors/trigger-dev-api-platform/package.json +1 -1
  334. package/connectors/turbot-pipes/package.json +1 -1
  335. package/connectors/turso/package.json +1 -1
  336. package/connectors/turso-api-platform/CLAUDE.md +1 -1
  337. package/connectors/turso-api-platform/README.md +2 -2
  338. package/connectors/turso-api-platform/package.json +1 -1
  339. package/connectors/turso-api-platform/src/api/client.test.ts +17 -13
  340. package/connectors/turso-api-platform/src/api/client.ts +4 -3
  341. package/connectors/turso-api-platform/src/cli/index.ts +2 -2
  342. package/connectors/twilio-api-platform/CLAUDE.md +1 -1
  343. package/connectors/twilio-api-platform/src/api/client.test.ts +11 -11
  344. package/connectors/twilio-api-platform/src/api/client.ts +4 -3
  345. package/connectors/twilio-api-platform/src/api/index.ts +1 -1
  346. package/connectors/twilio-api-platform/src/cli/index.ts +1 -1
  347. package/connectors/twilio-api-platform/src/index.ts +1 -1
  348. package/connectors/tyk-api-platform/.env.example +1 -1
  349. package/connectors/tyk-api-platform/CLAUDE.md +2 -2
  350. package/connectors/tyk-api-platform/README.md +1 -1
  351. package/connectors/tyk-api-platform/package.json +1 -1
  352. package/connectors/tyk-api-platform/src/api/client.test.ts +14 -15
  353. package/connectors/tyk-api-platform/src/api/client.ts +4 -3
  354. package/connectors/tyk-api-platform/src/api/index.ts +1 -1
  355. package/connectors/tyk-api-platform/src/cli/index.ts +1 -1
  356. package/connectors/tyk-api-platform/src/index.ts +1 -1
  357. package/connectors/umami/package.json +1 -1
  358. package/connectors/unifold/package.json +1 -1
  359. package/connectors/unione/package.json +1 -1
  360. package/connectors/uniprot/README.md +1 -1
  361. package/connectors/uniswap-api/package.json +1 -1
  362. package/connectors/ups/package.json +1 -1
  363. package/connectors/usereframe/package.json +1 -1
  364. package/connectors/vanta/package.json +1 -1
  365. package/connectors/vector-legal/.env.example +1 -1
  366. package/connectors/vector-legal/AGENTS.md +1 -1
  367. package/connectors/vector-legal/CLAUDE.md +1 -1
  368. package/connectors/vector-legal/README.md +1 -1
  369. package/connectors/vector-legal/src/api/client.test.ts +9 -5
  370. package/connectors/vector-legal/src/api/client.ts +4 -3
  371. package/connectors/vector-legal/src/api/index.ts +1 -1
  372. package/connectors/vector-legal/src/cli/index.ts +2 -2
  373. package/connectors/vector-legal/src/index.ts +0 -1
  374. package/connectors/vector-legal-api/CLAUDE.md +1 -1
  375. package/connectors/vector-legal-api/README.md +2 -2
  376. package/connectors/vector-legal-api/src/api/client.test.ts +12 -7
  377. package/connectors/vector-legal-api/src/api/client.ts +4 -3
  378. package/connectors/vector-legal-api/src/api/index.ts +1 -1
  379. package/connectors/vector-legal-api/src/cli/index.ts +1 -1
  380. package/connectors/vector-legal-api/src/index.ts +1 -2
  381. package/connectors/vela/package.json +1 -1
  382. package/connectors/velum-data-quality/.env.example +1 -1
  383. package/connectors/velum-data-quality/CLAUDE.md +1 -1
  384. package/connectors/velum-data-quality/src/api/client.test.ts +15 -16
  385. package/connectors/velum-data-quality/src/api/client.ts +4 -3
  386. package/connectors/velum-data-quality/src/api/index.ts +1 -1
  387. package/connectors/velum-data-quality/src/cli/index.ts +1 -1
  388. package/connectors/velum-data-quality/src/index.ts +0 -1
  389. package/connectors/velum-labs/package.json +1 -1
  390. package/connectors/vercel/package.json +1 -1
  391. package/connectors/vercel-api-platform/.env.example +1 -1
  392. package/connectors/vercel-api-platform/CLAUDE.md +2 -2
  393. package/connectors/vercel-api-platform/README.md +2 -2
  394. package/connectors/vercel-api-platform/src/api/client.test.ts +27 -6
  395. package/connectors/vercel-api-platform/src/api/client.ts +4 -3
  396. package/connectors/vercel-api-platform/src/api/index.ts +1 -1
  397. package/connectors/vercel-api-platform/src/cli/index.ts +2 -2
  398. package/connectors/vercel-api-platform/src/index.ts +0 -1
  399. package/connectors/vercel-blob/package.json +1 -1
  400. package/connectors/vercel-blob-platform/package.json +1 -1
  401. package/connectors/vercel-edge-config/package.json +1 -1
  402. package/connectors/vercel-edge-config-platform/package.json +1 -1
  403. package/connectors/veriphone/README.md +2 -2
  404. package/connectors/vertex-ai/package.json +1 -1
  405. package/connectors/vidyard/package.json +1 -1
  406. package/connectors/vonage/package.json +1 -1
  407. package/connectors/voygr/package.json +1 -1
  408. package/connectors/wait/package.json +1 -1
  409. package/connectors/walmart-marketplace/package.json +1 -1
  410. package/connectors/wato/package.json +1 -1
  411. package/connectors/wave-accounting/CLAUDE.md +1 -1
  412. package/connectors/wave-accounting/package.json +1 -1
  413. package/connectors/wave-accounting/src/utils/auth.ts +1 -1
  414. package/connectors/wayco/package.json +1 -1
  415. package/connectors/weaviate-api-platform/CLAUDE.md +1 -1
  416. package/connectors/weaviate-api-platform/src/api/client.test.ts +32 -7
  417. package/connectors/weaviate-api-platform/src/api/client.ts +4 -3
  418. package/connectors/weaviate-api-platform/src/api/index.ts +1 -1
  419. package/connectors/weaviate-api-platform/src/cli/index.ts +1 -1
  420. package/connectors/weaviate-api-platform/src/index.ts +1 -1
  421. package/connectors/webpagetest/package.json +1 -1
  422. package/connectors/weezevent/package.json +1 -1
  423. package/connectors/wikipedia/src/api/client.ts +1 -1
  424. package/connectors/wildcard/package.json +1 -1
  425. package/connectors/windmill/package.json +1 -1
  426. package/connectors/wise/package.json +1 -1
  427. package/connectors/withai/package.json +1 -1
  428. package/connectors/wiz/CLAUDE.md +1 -1
  429. package/connectors/wiz/package.json +1 -1
  430. package/connectors/wordfence/package.json +1 -1
  431. package/connectors/wordfence-api-platform/package.json +1 -1
  432. package/connectors/workflow-trigger/.env.example +1 -1
  433. package/connectors/workflow-trigger/CLAUDE.md +1 -1
  434. package/connectors/workflow-trigger/README.md +1 -1
  435. package/connectors/workflow-trigger/src/api/client.test.ts +10 -6
  436. package/connectors/workflow-trigger/src/api/client.ts +4 -3
  437. package/connectors/workflow-trigger/src/cli/index.ts +1 -1
  438. package/connectors/workos/package.json +1 -1
  439. package/connectors/write-binary-file/CLAUDE.md +1 -1
  440. package/connectors/write-binary-file/README.md +1 -1
  441. package/connectors/write-binary-file/package.json +1 -1
  442. package/connectors/write-binary-file/src/api/client.test.ts +16 -12
  443. package/connectors/write-binary-file/src/api/client.ts +4 -3
  444. package/connectors/write-binary-file/src/api/index.ts +1 -1
  445. package/connectors/write-binary-file/src/index.ts +1 -1
  446. package/connectors/wubookratechecker/src/api/client.test.ts +34 -0
  447. package/connectors/wubookratechecker/src/api/client.ts +3 -1
  448. package/connectors/wubookratechecker/src/api/index.ts +1 -1
  449. package/connectors/wubookratechecker/src/types/index.ts +1 -1
  450. package/connectors/xai/.env.example +1 -1
  451. package/connectors/xai-api-platform/.env.example +1 -1
  452. package/connectors/xai-api-platform/CLAUDE.md +1 -1
  453. package/connectors/xai-api-platform/README.md +1 -1
  454. package/connectors/xai-api-platform/src/api/client.test.ts +34 -9
  455. package/connectors/xai-api-platform/src/api/client.ts +4 -3
  456. package/connectors/xai-api-platform/src/api/index.ts +1 -1
  457. package/connectors/xai-api-platform/src/cli/index.ts +1 -1
  458. package/connectors/xai-api-platform/src/index.ts +1 -1
  459. package/connectors/xai-api-platform/src/utils/config.ts +3 -4
  460. package/connectors/xai-grok/.env.example +1 -1
  461. package/connectors/xai-grok/src/api/client.test.ts +3 -3
  462. package/connectors/xai-grok/src/cli/index.ts +1 -1
  463. package/connectors/xai-grok/src/utils/config.ts +1 -1
  464. package/connectors/ynab/package.json +1 -1
  465. package/connectors/you-com/README.md +2 -2
  466. package/connectors/you-com/package.json +1 -1
  467. package/connectors/yousign/package.json +1 -1
  468. package/connectors/zapier-api-platform/CLAUDE.md +1 -1
  469. package/connectors/zapier-api-platform/README.md +1 -1
  470. package/connectors/zapier-api-platform/src/api/client.test.ts +19 -14
  471. package/connectors/zapier-api-platform/src/api/client.ts +4 -3
  472. package/connectors/zapier-api-platform/src/api/index.ts +1 -1
  473. package/connectors/zapier-api-platform/src/cli/index.ts +1 -1
  474. package/connectors/zapier-api-platform/src/index.ts +1 -1
  475. package/connectors/zendesk/.env.example +4 -4
  476. package/connectors/zendesk/CLAUDE.md +1 -3
  477. package/connectors/zendesk/Makefile +18 -5
  478. package/connectors/zendesk/README.md +3 -8
  479. package/connectors/zendesk/SCAFFOLD.md +6 -5
  480. package/connectors/zerosettle/package.json +1 -1
  481. package/connectors/zoho-bigin/CLAUDE.md +1 -1
  482. package/connectors/zoho-campaigns/package.json +1 -1
  483. package/connectors/zoho-sign/package.json +1 -1
  484. package/connectors/zoho-subscriptions/CLAUDE.md +1 -1
  485. package/connectors/zohoprojects/CLAUDE.md +1 -1
  486. package/connectors/zolvo/package.json +1 -1
  487. package/connectors/zoom-api/package.json +1 -1
  488. package/connectors/zymbly/README.md +2 -2
  489. package/connectors/zymbly/package.json +1 -1
  490. package/dashboard/dist/assets/index-8uoGZF7B.js +280 -0
  491. package/dashboard/dist/index.html +1 -1
  492. package/dist/db/locks.d.ts +1 -1
  493. package/dist/index.js +17 -15
  494. package/dist/lib/connector-resolver.d.ts +1 -1
  495. package/dist/lib/llm.d.ts +1 -1
  496. package/dist/lib/open-browser.d.ts +18 -0
  497. package/dist/lib/open-browser.test.d.ts +1 -0
  498. package/package.json +6 -4
  499. package/dashboard/dist/assets/index-DlEljRrW.js +0 -285
@@ -501,14 +501,14 @@ segmentsCmd
501
501
  });
502
502
 
503
503
  segmentsCmd
504
- .command('keys <segmentName> <environmentName>')
504
+ .command('keys <segmentName> <environmentId>')
505
505
  .description('List keys in a segment')
506
506
  .option('--limit <limit>', 'Limit', parseInt)
507
507
  .option('--offset <offset>', 'Offset', parseInt)
508
- .action(async function(this: Command, segmentName: string, environmentName: string, opts) {
508
+ .action(async function(this: Command, segmentName: string, environmentId: string, opts) {
509
509
  try {
510
510
  const client = getClient();
511
- const result = await client.getSegmentKeys(segmentName, environmentName, {
511
+ const result = await client.getSegmentKeys(segmentName, environmentId, {
512
512
  limit: opts.limit,
513
513
  offset: opts.offset,
514
514
  });
@@ -520,14 +520,14 @@ segmentsCmd
520
520
  });
521
521
 
522
522
  segmentsCmd
523
- .command('add-keys <segmentName> <environmentName>')
523
+ .command('add-keys <segmentName> <environmentId>')
524
524
  .description('Add keys to a segment')
525
525
  .requiredOption('--keys <keys...>', 'Keys to add')
526
526
  .option('--comment <comment>', 'Change comment')
527
- .action(async function(this: Command, segmentName: string, environmentName: string, opts) {
527
+ .action(async function(this: Command, segmentName: string, environmentId: string, opts) {
528
528
  try {
529
529
  const client = getClient();
530
- const result = await client.addKeysToSegment(segmentName, environmentName, opts.keys, opts.comment);
530
+ const result = await client.addKeysToSegment(segmentName, environmentId, opts.keys, opts.comment);
531
531
  print(result, getFormat(this));
532
532
  success(`Added ${opts.keys.length} key(s) to ${segmentName}`);
533
533
  } catch (err) {
@@ -537,13 +537,13 @@ segmentsCmd
537
537
  });
538
538
 
539
539
  segmentsCmd
540
- .command('remove-keys <segmentName> <environmentName>')
540
+ .command('remove-keys <segmentName> <environmentId>')
541
541
  .description('Remove keys from a segment')
542
542
  .requiredOption('--keys <keys...>', 'Keys to remove')
543
- .action(async function(this: Command, segmentName: string, environmentName: string, opts) {
543
+ .action(async function(this: Command, segmentName: string, environmentId: string, opts) {
544
544
  try {
545
545
  const client = getClient();
546
- await client.removeKeysFromSegment(segmentName, environmentName, opts.keys);
546
+ await client.removeKeysFromSegment(segmentName, environmentId, opts.keys);
547
547
  success(`Removed ${opts.keys.length} key(s) from ${segmentName}`);
548
548
  } catch (err) {
549
549
  error(String(err));
@@ -1,5 +1,5 @@
1
1
  # SpreadsheetFile API credentials (Bearer token)
2
2
  SPREADSHEET_FILE_API_KEY=your-api-key-here
3
3
 
4
- # Optional: override API base URL (default: https://api.spreadsheet-file.com/v1)
4
+ # Optional: override API base URL (no default - must be configured)
5
5
  # SPREADSHEET_FILE_BASE_URL=https://api.spreadsheet-file.com/v1
@@ -33,7 +33,7 @@ Environment variables:
33
33
 
34
34
  ## API Details
35
35
 
36
- - **Base URL**: `https://api.spreadsheet-file.com/v1`
36
+ - **Base URL**: no default (must be configured)
37
37
  - **Auth**: `Authorization: Bearer <api_key>`
38
38
  - **Endpoints**:
39
39
  - `GET /files` - List files
@@ -75,7 +75,7 @@ Profile JSON structure:
75
75
  ```json
76
76
  {
77
77
  "apiKey": "your-api-key",
78
- "baseUrl": "https://api.spreadsheet-file.com/v1"
78
+ "baseUrl": "configured.example.com/v1"
79
79
  }
80
80
  ```
81
81
 
@@ -1,6 +1,6 @@
1
1
  # connect-spreadsheet-file
2
2
 
3
- TypeScript connector for the [SpreadsheetFile API](https://api.spreadsheet-file.com/v1) — spreadsheet workflow node operations.
3
+ TypeScript connector for the [SpreadsheetFile API](configured.example.com/v1) — spreadsheet workflow node operations.
4
4
 
5
5
  ## Features
6
6
 
@@ -26,7 +26,7 @@ Set credentials via environment variables or CLI profile:
26
26
  ```bash
27
27
  export SPREADSHEET_FILE_API_KEY=your-api-key
28
28
  # optional
29
- export SPREADSHEET_FILE_BASE_URL=https://api.spreadsheet-file.com/v1
29
+ export SPREADSHEET_FILE_BASE_URL=https://configured.example.com/v1
30
30
  ```
31
31
 
32
32
  Or use the CLI:
@@ -71,7 +71,7 @@ const file = await client.files.get('file-id');
71
71
 
72
72
  ## API
73
73
 
74
- - Base URL: `https://api.spreadsheet-file.com/v1`
74
+ - Base URL: `configured.example.com/v1`
75
75
  - Auth: `Authorization: Bearer <api_key>`
76
76
 
77
77
  ## License
@@ -1,11 +1,11 @@
1
1
  import { describe, test, expect, mock, beforeEach, afterEach } from 'bun:test';
2
- import { ConnectorClient, DEFAULT_BASE_URL } from './client';
2
+ import { ConnectorClient } from './client';
3
3
  import { ConnectorApiError } from '../types';
4
4
 
5
5
  describe('ConnectorClient', () => {
6
6
  const mockConfig = {
7
7
  apiKey: 'test-api-key-12345',
8
- baseUrl: 'https://api.spreadsheet-file.com/v1',
8
+ baseUrl: 'https://configured.example.com/v1',
9
9
  };
10
10
 
11
11
  describe('constructor', () => {
@@ -18,10 +18,9 @@ describe('ConnectorClient', () => {
18
18
  expect(client).toBeInstanceOf(ConnectorClient);
19
19
  });
20
20
 
21
- test('uses default base URL when not provided', () => {
22
- const client = new ConnectorClient({ apiKey: 'test-key' });
23
- expect(client.getBaseUrl()).toBe(DEFAULT_BASE_URL);
24
- });
21
+ test('refuses to send without a configured base URL (no default endpoint)', () => {
22
+ expect(() => new ConnectorClient({ apiKey: 'test-key' })).toThrow(/baseUrl/);
23
+ });
25
24
  });
26
25
 
27
26
  describe('getApiKeyPreview', () => {
@@ -31,7 +30,7 @@ describe('ConnectorClient', () => {
31
30
  });
32
31
 
33
32
  test('returns *** for short keys', () => {
34
- const client = new ConnectorClient({ apiKey: 'short' });
33
+ const client = new ConnectorClient({ apiKey: 'short', baseUrl: 'https://configured.example.com/v1' });
35
34
  expect(client.getApiKeyPreview()).toBe('***');
36
35
  });
37
36
  });
@@ -64,7 +63,7 @@ describe('ConnectorClient', () => {
64
63
 
65
64
  expect(global.fetch).toHaveBeenCalledTimes(1);
66
65
  const [url, options] = (global.fetch as ReturnType<typeof mock>).mock.calls[0];
67
- expect(url).toBe('https://api.spreadsheet-file.com/v1/files');
66
+ expect(url).toBe('https://configured.example.com/v1/files');
68
67
  expect(options.method).toBe('GET');
69
68
  expect(options.headers.Authorization).toBe('Bearer test-api-key-12345');
70
69
  expect(options.headers.Accept).toBe('application/json');
@@ -101,7 +100,7 @@ describe('ConnectorClient', () => {
101
100
  await client.get('/files/file%2Fwith%2Fslash');
102
101
 
103
102
  const [url] = (global.fetch as ReturnType<typeof mock>).mock.calls[0];
104
- expect(url).toBe('https://api.spreadsheet-file.com/v1/files/file%2Fwith%2Fslash');
103
+ expect(url).toBe('https://configured.example.com/v1/files/file%2Fwith%2Fslash');
105
104
  });
106
105
 
107
106
  test('post() makes POST request with JSON body', async () => {
@@ -1,8 +1,6 @@
1
1
  import type { ConnectorConfig, OutputFormat } from '../types';
2
2
  import { ConnectorApiError, parseApiError } from '../types';
3
3
 
4
- export const DEFAULT_BASE_URL = 'https://api.spreadsheet-file.com/v1';
5
-
6
4
  export interface RequestOptions {
7
5
  method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
8
6
  params?: Record<string, string | number | boolean | undefined>;
@@ -23,7 +21,10 @@ export class ConnectorClient {
23
21
  throw new Error('SpreadsheetFile API key is required');
24
22
  }
25
23
  this.apiKey = key;
26
- this.baseUrl = config.baseUrl || DEFAULT_BASE_URL;
24
+ if (!config.baseUrl) {
25
+ throw new Error('baseUrl is required: no default endpoint is configured; set baseUrl (profile, config, or the connector BASE_URL environment variable)');
26
+ }
27
+ this.baseUrl = config.baseUrl;
27
28
  }
28
29
 
29
30
  private buildUrl(path: string, params?: Record<string, string | number | boolean | undefined>): string {
@@ -199,7 +199,7 @@ configCmd
199
199
  console.log(chalk.bold(`Active Profile: ${profileName}`));
200
200
  info(`Config directory: ${getConfigDir()}`);
201
201
  info(`API Key: ${apiKey ? `${apiKey.substring(0, 8)}...` : chalk.gray('not set')}`);
202
- info(`Base URL: ${baseUrl || chalk.gray('https://api.spreadsheet-file.com/v1 (default)')}`);
202
+ info(`Base URL: ${baseUrl || chalk.gray('none configured')}`);
203
203
  });
204
204
 
205
205
  configCmd
@@ -52,6 +52,6 @@
52
52
  },
53
53
  "repository": {
54
54
  "type": "git",
55
- "url": "git+https://github.com/hasna/open-connectors.git"
55
+ "url": "git+https://github.com/hasna/apps.git"
56
56
  }
57
57
  }
@@ -47,6 +47,6 @@
47
47
  },
48
48
  "repository": {
49
49
  "type": "git",
50
- "url": "git+https://github.com/hasna/open-connectors.git"
50
+ "url": "git+https://github.com/hasna/apps.git"
51
51
  }
52
52
  }
@@ -47,6 +47,6 @@
47
47
  },
48
48
  "repository": {
49
49
  "type": "git",
50
- "url": "git+https://github.com/hasna/open-connectors.git"
50
+ "url": "git+https://github.com/hasna/apps.git"
51
51
  }
52
52
  }
@@ -1,5 +1,5 @@
1
1
  # SseTrigger API credentials
2
2
  SSE_TRIGGER_API_KEY=your-api-key-here
3
3
 
4
- # Optional: override API base URL (default https://api.sse-trigger.com/v1)
4
+ # Optional: override API base URL (no default - must be configured)
5
5
  # SSE_TRIGGER_BASE_URL=https://api.sse-trigger.com/v1
@@ -24,7 +24,7 @@ bun run dev raw request --path /streams
24
24
 
25
25
  ## API Details
26
26
 
27
- - **Base URL**: `https://api.sse-trigger.com/v1`
27
+ - **Base URL**: no default (must be configured)
28
28
  - **Auth**: Bearer token (`Authorization: Bearer <api_key>`)
29
29
  - **Endpoints**:
30
30
  - `GET /streams` — list streams
@@ -54,7 +54,7 @@ Profile JSON:
54
54
  ```json
55
55
  {
56
56
  "apiKey": "your-key",
57
- "baseUrl": "https://api.sse-trigger.com/v1"
57
+ "baseUrl": "configured.example.com/v1"
58
58
  }
59
59
  ```
60
60
 
@@ -24,7 +24,7 @@ bun run dev streams list
24
24
  | Variable | Description |
25
25
  |----------|-------------|
26
26
  | `SSE_TRIGGER_API_KEY` | API key (overrides profile) |
27
- | `SSE_TRIGGER_BASE_URL` | Override base URL (default `https://api.sse-trigger.com/v1`) |
27
+ | `SSE_TRIGGER_BASE_URL` | Override base URL (no default - must be configured) |
28
28
 
29
29
  ## CLI Commands
30
30
 
@@ -47,6 +47,6 @@
47
47
  },
48
48
  "repository": {
49
49
  "type": "git",
50
- "url": "git+https://github.com/hasna/open-connectors.git"
50
+ "url": "git+https://github.com/hasna/apps.git"
51
51
  }
52
52
  }
@@ -1,6 +1,6 @@
1
1
  import { afterEach, describe, expect, test } from 'bun:test';
2
+ import { SseTriggerClient } from './client';
2
3
  import { SseTrigger } from './index';
3
- import { DEFAULT_BASE_URL } from './client';
4
4
 
5
5
  const realFetch = globalThis.fetch;
6
6
 
@@ -42,26 +42,26 @@ afterEach(() => {
42
42
  describe('SseTriggerClient', () => {
43
43
  test('listStreams sends Bearer auth to /streams', async () => {
44
44
  const recorded = installFetch(() => ({ streams: [] }));
45
- const client = new SseTrigger({ apiKey: 'sse-trigger-key' });
45
+ const client = new SseTrigger({ apiKey: 'sse-trigger-key', baseUrl: 'https://configured.example.com/v1' });
46
46
  await client.listStreams();
47
- expect(recorded[0].url).toBe(`${DEFAULT_BASE_URL}/streams`);
47
+ expect(recorded[0].url).toBe(`https://configured.example.com/v1/streams`);
48
48
  expect(recorded[0].method).toBe('GET');
49
49
  expect(new Headers(recorded[0].headers).get('Authorization')).toBe('Bearer sse-trigger-key');
50
50
  });
51
51
 
52
52
  test('getStream encodes stream id in URL path', async () => {
53
53
  const recorded = installFetch(() => ({ id: 'item-1' }));
54
- const client = new SseTrigger({ apiKey: 'sse-trigger-key' });
54
+ const client = new SseTrigger({ apiKey: 'sse-trigger-key', baseUrl: 'https://configured.example.com/v1' });
55
55
  await client.getStream('item-1');
56
- expect(recorded[0].url).toBe(`${DEFAULT_BASE_URL}/streams/item-1`);
56
+ expect(recorded[0].url).toBe(`https://configured.example.com/v1/streams/item-1`);
57
57
  expect(new Headers(recorded[0].headers).get('Authorization')).toBe('Bearer sse-trigger-key');
58
58
  });
59
59
 
60
60
  test('createStream POSTs JSON body to /streams', async () => {
61
61
  const recorded = installFetch(() => ({ id: 'new-stream' }));
62
- const client = new SseTrigger({ apiKey: 'sse-trigger-key' });
62
+ const client = new SseTrigger({ apiKey: 'sse-trigger-key', baseUrl: 'https://configured.example.com/v1' });
63
63
  await client.createStream({ name: 'workflow' });
64
- expect(recorded[0].url).toBe(`${DEFAULT_BASE_URL}/streams`);
64
+ expect(recorded[0].url).toBe(`https://configured.example.com/v1/streams`);
65
65
  expect(recorded[0].method).toBe('POST');
66
66
  expect(JSON.parse(recorded[0].body ?? '{}')).toEqual({ name: 'workflow' });
67
67
  });
@@ -74,6 +74,10 @@ describe('SseTriggerClient', () => {
74
74
  });
75
75
 
76
76
  test('requires API key', () => {
77
- expect(() => new SseTrigger({ apiKey: '' })).toThrow('API key is required');
77
+ expect(() => new SseTrigger({ apiKey: '', baseUrl: 'https://configured.example.com/v1' })).toThrow('API key is required');
78
+ });
79
+
80
+ test('refuses to send without a configured base URL (no default endpoint)', () => {
81
+ expect(() => new SseTriggerClient({ apiKey: 'test-key' })).toThrow(/baseUrl/);
78
82
  });
79
83
  });
@@ -1,8 +1,6 @@
1
1
  import type { SseTriggerConfig } from '../types';
2
2
  import { SseTriggerApiError, parseApiError } from '../types';
3
3
 
4
- export const DEFAULT_BASE_URL = 'https://api.sse-trigger.com/v1';
5
-
6
4
  export interface RequestOptions {
7
5
  method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
8
6
  params?: Record<string, string | number | boolean | undefined>;
@@ -21,7 +19,10 @@ export class SseTriggerClient {
21
19
  throw new Error('API key is required');
22
20
  }
23
21
  this.apiKey = config.apiKey;
24
- this.baseUrl = (config.baseUrl || DEFAULT_BASE_URL).replace(/\/$/, '');
22
+ if (!config.baseUrl) {
23
+ throw new Error('baseUrl is required: no default endpoint is configured; set baseUrl (profile, config, or the connector BASE_URL environment variable)');
24
+ }
25
+ this.baseUrl = config.baseUrl.replace(/\/$/, '');
25
26
  }
26
27
 
27
28
  private buildUrl(path: string, params?: Record<string, string | number | boolean | undefined>): string {
@@ -63,7 +63,7 @@ export class SseTrigger {
63
63
  }
64
64
  }
65
65
 
66
- export { SseTriggerClient, DEFAULT_BASE_URL } from './client';
66
+ export { SseTriggerClient } from './client';
67
67
  export { StreamsApi } from './streams';
68
68
  export { EventsApi } from './events';
69
69
  export { SearchApi } from './search';
@@ -173,7 +173,7 @@ configCmd.command('show').description('Show current configuration').action(() =>
173
173
  console.log(chalk.bold(`Active Profile: ${profileName}`));
174
174
  info(`Config directory: ${getConfigDir()}`);
175
175
  info(`API Key: ${apiKey ? `${apiKey.substring(0, 8)}...` : chalk.gray('not set')}`);
176
- info(`Base URL: ${baseUrl || chalk.gray('default (https://api.sse-trigger.com/v1)')}`);
176
+ info(`Base URL: ${baseUrl || chalk.gray('none configured')}`);
177
177
  });
178
178
 
179
179
  configCmd.command('clear').description('Clear configuration for active profile').action(() => {
@@ -1,6 +1,6 @@
1
1
  export { SseTrigger } from './api';
2
2
  export * from './types';
3
- export { SseTriggerClient, DEFAULT_BASE_URL } from './api';
3
+ export { SseTriggerClient } from './api';
4
4
 
5
5
  export {
6
6
  getApiKey,
@@ -1,6 +1,6 @@
1
1
  # AGENTS.md
2
2
 
3
- Stability Api Platform connector for open-connectors.
3
+ Stability Api Platform connector for the connectors monorepo.
4
4
 
5
5
  ## Auth
6
6
 
@@ -8,7 +8,7 @@ Bearer API key (`STABILITY_API_PLATFORM_API_KEY`). Dashboard auth type: apikey/b
8
8
 
9
9
  ## Endpoints
10
10
 
11
- Base URL: `https://api.stabilityapiplatform.com/v1`
11
+ Base URL: no default (must be configured)
12
12
 
13
13
  Operations: list/create/get items, list events, search, raw request.
14
14
 
@@ -1,6 +1,6 @@
1
1
  # CLAUDE.md
2
2
 
3
- Stability Api Platform connector — Bearer token REST client for `https://api.stabilityapiplatform.com/v1`.
3
+ Stability Api Platform connector — Bearer token REST client for `configured.example.com/v1`.
4
4
 
5
5
  ## Commands
6
6
 
@@ -1,6 +1,6 @@
1
1
  # connect-stability-api-platform
2
2
 
3
- TypeScript connector for the [Stability Api Platform](https://api.stabilityapiplatform.com) REST API — items, events, search, and raw API access.
3
+ TypeScript connector for the [Stability Api Platform](configured.example.com/v1) REST API — items, events, search, and raw API access.
4
4
 
5
5
  ## Install
6
6
 
@@ -32,7 +32,7 @@ const items = await client.listItems();
32
32
  | Variable | Description |
33
33
  |----------|-------------|
34
34
  | `STABILITY_API_PLATFORM_API_KEY` | Bearer API key |
35
- | `STABILITY_API_PLATFORM_BASE_URL` | Optional base URL override (default `https://api.stabilityapiplatform.com/v1`) |
35
+ | `STABILITY_API_PLATFORM_BASE_URL` | Optional base URL override (no default - must be configured) |
36
36
 
37
37
  ## Configuration
38
38
 
@@ -1,5 +1,6 @@
1
1
  import { afterEach, describe, expect, test } from 'bun:test';
2
- import { StabilityApiPlatform, DEFAULT_BASE_URL } from './index';
2
+ import { ConnectorClient } from './client';
3
+ import { StabilityApiPlatform } from './index';
3
4
 
4
5
  const realFetch = globalThis.fetch;
5
6
 
@@ -45,60 +46,60 @@ afterEach(() => {
45
46
 
46
47
  describe('StabilityApiPlatform client', () => {
47
48
  test('requires api key', () => {
48
- expect(() => new StabilityApiPlatform({ apiKey: '' })).toThrow('API key is required');
49
+ expect(() => new StabilityApiPlatform({ apiKey: '', baseUrl: 'https://configured.example.com/v1' })).toThrow('API key is required');
49
50
  });
50
51
 
51
52
  test('listItems sends bearer auth to /v1/items', async () => {
52
53
  const recorded = installFetch();
53
- const client = new StabilityApiPlatform({ apiKey: 'stability-api-platform-key' });
54
+ const client = new StabilityApiPlatform({ apiKey: 'stability-api-platform-key', baseUrl: 'https://configured.example.com/v1' });
54
55
 
55
56
  await client.listItems();
56
57
 
57
58
  expect(recorded).toHaveLength(1);
58
- expect(recorded[0].url).toBe(`${DEFAULT_BASE_URL}/items`);
59
+ expect(recorded[0].url).toBe(`https://configured.example.com/v1/items`);
59
60
  expect(recorded[0].method).toBe('GET');
60
61
  expect(recorded[0].headers.get('Authorization')).toBe('Bearer stability-api-platform-key');
61
62
  });
62
63
 
63
64
  test('getItem encodes item id in URL path', async () => {
64
65
  const recorded = installFetch();
65
- const client = new StabilityApiPlatform({ apiKey: 'stability-api-platform-key' });
66
+ const client = new StabilityApiPlatform({ apiKey: 'stability-api-platform-key', baseUrl: 'https://configured.example.com/v1' });
66
67
 
67
68
  await client.getItem('item-1');
68
69
 
69
70
  expect(recorded).toHaveLength(1);
70
- expect(recorded[0].url).toBe(`${DEFAULT_BASE_URL}/items/item-1`);
71
+ expect(recorded[0].url).toBe(`https://configured.example.com/v1/items/item-1`);
71
72
  expect(recorded[0].headers.get('Authorization')).toBe('Bearer stability-api-platform-key');
72
73
  });
73
74
 
74
75
  test('createItem POSTs JSON body to /items', async () => {
75
76
  const recorded = installFetch();
76
- const client = new StabilityApiPlatform({ apiKey: 'test-key' });
77
+ const client = new StabilityApiPlatform({ apiKey: 'test-key', baseUrl: 'https://configured.example.com/v1' });
77
78
 
78
79
  await client.createItem({ name: 'widget' });
79
80
 
80
- expect(recorded[0].url).toBe(`${DEFAULT_BASE_URL}/items`);
81
+ expect(recorded[0].url).toBe(`https://configured.example.com/v1/items`);
81
82
  expect(recorded[0].method).toBe('POST');
82
83
  expect(JSON.parse(recorded[0].body!)).toEqual({ name: 'widget' });
83
84
  });
84
85
 
85
86
  test('listEvents GETs /events', async () => {
86
87
  const recorded = installFetch();
87
- const client = new StabilityApiPlatform({ apiKey: 'test-key' });
88
+ const client = new StabilityApiPlatform({ apiKey: 'test-key', baseUrl: 'https://configured.example.com/v1' });
88
89
 
89
90
  await client.listEvents({ limit: 5 });
90
91
 
91
- expect(recorded[0].url).toBe(`${DEFAULT_BASE_URL}/events?limit=5`);
92
+ expect(recorded[0].url).toBe(`https://configured.example.com/v1/events?limit=5`);
92
93
  expect(recorded[0].method).toBe('GET');
93
94
  });
94
95
 
95
96
  test('search POSTs to /search', async () => {
96
97
  const recorded = installFetch();
97
- const client = new StabilityApiPlatform({ apiKey: 'test-key' });
98
+ const client = new StabilityApiPlatform({ apiKey: 'test-key', baseUrl: 'https://configured.example.com/v1' });
98
99
 
99
100
  await client.search({ q: 'hello' });
100
101
 
101
- expect(recorded[0].url).toBe(`${DEFAULT_BASE_URL}/search`);
102
+ expect(recorded[0].url).toBe(`https://configured.example.com/v1/search`);
102
103
  expect(recorded[0].method).toBe('POST');
103
104
  expect(JSON.parse(recorded[0].body!)).toEqual({ q: 'hello' });
104
105
  });
@@ -121,4 +122,8 @@ describe('StabilityApiPlatform client', () => {
121
122
 
122
123
  if (original) process.env.STABILITY_API_PLATFORM_API_KEY = original;
123
124
  });
125
+
126
+ test('refuses to send without a configured base URL (no default endpoint)', () => {
127
+ expect(() => new ConnectorClient({ apiKey: 'test-key' })).toThrow(/baseUrl/);
128
+ });
124
129
  });
@@ -1,8 +1,6 @@
1
1
  import type { ConnectorConfig, ListQueryParams, RawRequestOptions } from '../types';
2
2
  import { ConnectorApiError } from '../types';
3
3
 
4
- export const DEFAULT_BASE_URL = 'https://api.stabilityapiplatform.com/v1';
5
-
6
4
  export interface RequestOptions {
7
5
  method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
8
6
  params?: ListQueryParams;
@@ -23,7 +21,10 @@ export class ConnectorClient {
23
21
  throw new Error('API key is required');
24
22
  }
25
23
  this.apiKey = config.apiKey;
26
- this.baseUrl = (config.baseUrl || DEFAULT_BASE_URL).replace(/\/+$/, '');
24
+ if (!config.baseUrl) {
25
+ throw new Error('baseUrl is required: no default endpoint is configured; set baseUrl (profile, config, or the connector BASE_URL environment variable)');
26
+ }
27
+ this.baseUrl = config.baseUrl.replace(/\/+$/, '');
27
28
  }
28
29
 
29
30
  private buildUrl(path: string, params?: ListQueryParams): string {
@@ -55,6 +55,5 @@ export class StabilityApiPlatform {
55
55
  export {
56
56
  ConnectorClient,
57
57
  StabilityApiPlatformClient,
58
- DEFAULT_BASE_URL,
59
58
  encodePathSegment,
60
59
  } from './client';
@@ -191,7 +191,7 @@ configCmd
191
191
  console.log(chalk.bold(`Active Profile: ${profileName}`));
192
192
  info(`Config directory: ${getConfigDir()}`);
193
193
  info(`API Key: ${apiKey ? `${apiKey.substring(0, 8)}...` : chalk.gray('not set')}`);
194
- info(`Base URL: ${baseUrl || chalk.gray('https://api.stabilityapiplatform.com/v1 (default)')}`);
194
+ info(`Base URL: ${baseUrl || chalk.gray('none configured')}`);
195
195
  });
196
196
 
197
197
  configCmd
@@ -3,7 +3,6 @@ export * from './types';
3
3
  export {
4
4
  ConnectorClient,
5
5
  StabilityApiPlatformClient,
6
- DEFAULT_BASE_URL,
7
6
  encodePathSegment,
8
7
  } from './api';
9
8
  export {
@@ -44,6 +44,6 @@
44
44
  },
45
45
  "repository": {
46
46
  "type": "git",
47
- "url": "git+https://github.com/hasna/open-connectors.git"
47
+ "url": "git+https://github.com/hasna/apps.git"
48
48
  }
49
49
  }
@@ -49,6 +49,6 @@
49
49
  },
50
50
  "repository": {
51
51
  "type": "git",
52
- "url": "git+https://github.com/hasna/open-connectors.git"
52
+ "url": "git+https://github.com/hasna/apps.git"
53
53
  }
54
54
  }
@@ -2,5 +2,5 @@
2
2
 
3
3
  STOP_AND_ERROR_API_KEY=your-api-key-here
4
4
 
5
- # Optional: Override API base URL (default https://api.stop-and-error.com/v1)
5
+ # Optional: Override API base URL (no default - must be configured)
6
6
  # STOP_AND_ERROR_BASE_URL=https://api.stop-and-error.com/v1
@@ -31,7 +31,7 @@ Credentials can be set via:
31
31
  - Profile configuration: `stop-and-error config set-key <key>`
32
32
 
33
33
  Optional base URL override:
34
- - `STOP_AND_ERROR_BASE_URL` (default `https://api.stop-and-error.com/v1`)
34
+ - `STOP_AND_ERROR_BASE_URL` (no default - must be configured)
35
35
 
36
36
  ## API Endpoints
37
37
 
@@ -15,7 +15,7 @@ Set credentials via environment variables or CLI profile:
15
15
  ```bash
16
16
  export STOP_AND_ERROR_API_KEY=your-api-key
17
17
  # optional
18
- export STOP_AND_ERROR_BASE_URL=https://api.stop-and-error.com/v1
18
+ export STOP_AND_ERROR_BASE_URL=https://configured.example.com/v1
19
19
  ```
20
20
 
21
21
  Or use the CLI: