@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
@@ -48,6 +48,6 @@
48
48
  },
49
49
  "repository": {
50
50
  "type": "git",
51
- "url": "git+https://github.com/hasna/open-connectors.git"
51
+ "url": "git+https://github.com/hasna/apps.git"
52
52
  }
53
53
  }
@@ -1,5 +1,5 @@
1
1
  # Together Api Platform API credentials
2
2
  TOGETHER_API_PLATFORM_API_KEY=your-api-key-here
3
3
 
4
- # Optional: override API base URL (default https://api.togetherapiplatform.com/v1)
4
+ # Optional: override API base URL (no default - must be configured)
5
5
  # TOGETHER_API_PLATFORM_BASE_URL=https://api.togetherapiplatform.com/v1
@@ -8,7 +8,7 @@ connect-together-api-platform is a TypeScript connector for the Together Api Pla
8
8
 
9
9
  ## API Reference
10
10
 
11
- - **Base URL**: `https://api.togetherapiplatform.com/v1`
11
+ - **Base URL**: no default (must be configured)
12
12
  - **Auth**: Bearer token (`Authorization: Bearer <api_key>`)
13
13
  - **API Docs**: https://www.ycombinator.com/companies/together-api-platform
14
14
 
@@ -21,7 +21,7 @@ bun install
21
21
  ```bash
22
22
  export TOGETHER_API_PLATFORM_API_KEY=your-api-key
23
23
  # optional
24
- export TOGETHER_API_PLATFORM_BASE_URL=https://api.togetherapiplatform.com/v1
24
+ export TOGETHER_API_PLATFORM_BASE_URL=https://configured.example.com/v1
25
25
  ```
26
26
 
27
27
  Or use the CLI profile/config commands:
@@ -44,26 +44,26 @@ afterEach(() => {
44
44
  describe('TogetherApiPlatformClient', () => {
45
45
  test('listItems calls GET /v1/items with Bearer auth', async () => {
46
46
  const recorded = installFetch(() => ({}));
47
- const client = new TogetherApiPlatformClient({ apiKey: 'together-api-platform-key' });
47
+ const client = new TogetherApiPlatformClient({ apiKey: 'together-api-platform-key', baseUrl: 'https://configured.example.com/v1' });
48
48
  await client.listItems();
49
- expect(recorded[0].url).toBe('https://api.togetherapiplatform.com/v1/items');
49
+ expect(recorded[0].url).toBe('https://configured.example.com/v1/items');
50
50
  expect(recorded[0].method).toBe('GET');
51
51
  expect(authHeader(recorded)).toBe('Bearer together-api-platform-key');
52
52
  });
53
53
 
54
54
  test('getItem calls GET /v1/items/:itemId', async () => {
55
55
  const recorded = installFetch(() => ({}));
56
- const client = new TogetherApiPlatformClient({ apiKey: 'together-api-platform-key' });
56
+ const client = new TogetherApiPlatformClient({ apiKey: 'together-api-platform-key', baseUrl: 'https://configured.example.com/v1' });
57
57
  await client.getItem('item-1');
58
- expect(recorded[0].url).toBe('https://api.togetherapiplatform.com/v1/items/item-1');
58
+ expect(recorded[0].url).toBe('https://configured.example.com/v1/items/item-1');
59
59
  expect(authHeader(recorded)).toBe('Bearer together-api-platform-key');
60
60
  });
61
61
 
62
62
  test('search posts to /v1/search', async () => {
63
63
  const recorded = installFetch(() => ({}));
64
- const client = new TogetherApiPlatformClient({ apiKey: 'test-key' });
64
+ const client = new TogetherApiPlatformClient({ apiKey: 'test-key', baseUrl: 'https://configured.example.com/v1' });
65
65
  await client.search({ q: 'hello' });
66
- expect(recorded[0].url).toBe('https://api.togetherapiplatform.com/v1/search');
66
+ expect(recorded[0].url).toBe('https://configured.example.com/v1/search');
67
67
  expect(recorded[0].method).toBe('POST');
68
68
  });
69
69
 
@@ -78,6 +78,10 @@ describe('TogetherApiPlatformClient', () => {
78
78
  });
79
79
 
80
80
  test('requires API key', () => {
81
- expect(() => new TogetherApiPlatformClient({ apiKey: '' })).toThrow('API key is required');
81
+ expect(() => new TogetherApiPlatformClient({ apiKey: '', baseUrl: 'https://configured.example.com/v1' })).toThrow('API key is required');
82
+ });
83
+
84
+ test('refuses to send without a configured base URL (no default endpoint)', () => {
85
+ expect(() => new TogetherApiPlatformClient({ apiKey: 'test-key' })).toThrow(/baseUrl/);
82
86
  });
83
87
  });
@@ -1,8 +1,6 @@
1
1
  import type { TogetherApiPlatformConfig } from '../types';
2
2
  import { TogetherApiPlatformApiError } from '../types';
3
3
 
4
- const DEFAULT_BASE_URL = 'https://api.togetherapiplatform.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>;
@@ -19,7 +17,10 @@ export class TogetherApiPlatformClient {
19
17
  throw new Error('API key is required');
20
18
  }
21
19
  this.apiKey = config.apiKey;
22
- this.baseUrl = config.baseUrl || DEFAULT_BASE_URL;
20
+ if (!config.baseUrl) {
21
+ throw new Error('baseUrl is required: no default endpoint is configured; set baseUrl (profile, config, or the connector BASE_URL environment variable)');
22
+ }
23
+ this.baseUrl = config.baseUrl;
23
24
  }
24
25
 
25
26
  private buildUrl(path: string, params?: Record<string, string | number | boolean | undefined>): string {
@@ -140,4 +141,3 @@ export class TogetherApiPlatformClient {
140
141
  }
141
142
  }
142
143
 
143
- export { DEFAULT_BASE_URL };
@@ -58,5 +58,5 @@ export class TogetherApiPlatform {
58
58
  }
59
59
  }
60
60
 
61
- export { TogetherApiPlatformClient, DEFAULT_BASE_URL } from './client';
61
+ export { TogetherApiPlatformClient } from './client';
62
62
  export type { RequestOptions } from './client';
@@ -156,7 +156,7 @@ configCmd.command('show').description('Show config').action(() => {
156
156
  info(`Config dir: ${getConfigDir()}`);
157
157
  const apiKey = getApiKey();
158
158
  info(`API Key: ${apiKey ? apiKey.substring(0, 8) + '...' : chalk.gray('not set')}`);
159
- info(`Base URL: ${getBaseUrl() || chalk.gray('default (https://api.togetherapiplatform.com/v1)')}`);
159
+ info(`Base URL: ${getBaseUrl() || chalk.gray('none configured')}`);
160
160
  });
161
161
 
162
162
  configCmd.command('clear').description('Clear config').action(() => {
@@ -1,6 +1,6 @@
1
1
  export { TogetherApiPlatform } from './api';
2
2
  export * from './types';
3
- export { TogetherApiPlatformClient, DEFAULT_BASE_URL } from './api';
3
+ export { TogetherApiPlatformClient } from './api';
4
4
 
5
5
  export {
6
6
  getApiKey,
@@ -1,6 +1,6 @@
1
1
  # AGENTS.md
2
2
 
3
- TomTom maps and routing connector for open-connectors.
3
+ TomTom maps and routing connector for the connectors monorepo.
4
4
 
5
5
  ## Commands
6
6
 
@@ -48,6 +48,6 @@
48
48
  },
49
49
  "repository": {
50
50
  "type": "git",
51
- "url": "git+https://github.com/hasna/open-connectors.git"
51
+ "url": "git+https://github.com/hasna/apps.git"
52
52
  }
53
53
  }
@@ -48,6 +48,6 @@
48
48
  },
49
49
  "repository": {
50
50
  "type": "git",
51
- "url": "git+https://github.com/hasna/open-connectors.git"
51
+ "url": "git+https://github.com/hasna/apps.git"
52
52
  }
53
53
  }
@@ -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
  }
@@ -6,7 +6,7 @@ Guidance for working with the Travo Data (`travo-real-estate`) connector.
6
6
 
7
7
  REST API connector for Travo Data real estate listings, events, and search.
8
8
 
9
- - **Base URL**: `https://api.travo-real-estate.com/v1`
9
+ - **Base URL**: no default (must be configured)
10
10
  - **Auth**: Bearer token (`Authorization: Bearer <api_key>`)
11
11
  - **Category**: Data & Analytics
12
12
 
@@ -1,6 +1,6 @@
1
1
  # Travo Data Connector
2
2
 
3
- TypeScript CLI and library for the [Travo Data](https://api.travo-real-estate.com/v1) real estate API.
3
+ TypeScript CLI and library for the [Travo Data](configured.example.com/v1) real estate API.
4
4
 
5
5
  ## Install
6
6
 
@@ -15,11 +15,11 @@ describe('ConnectorClient', () => {
15
15
  });
16
16
 
17
17
  test('requires apiKey', () => {
18
- expect(() => new ConnectorClient({ apiKey: '' })).toThrow('API key is required');
18
+ expect(() => new ConnectorClient({ apiKey: '', baseUrl: 'https://configured.example.com/v1' })).toThrow('API key is required');
19
19
  });
20
20
 
21
21
  test('creates client with valid config', () => {
22
- const client = new ConnectorClient({ apiKey: 'travo-real-estate-key' });
22
+ const client = new ConnectorClient({ apiKey: 'travo-real-estate-key', baseUrl: 'https://configured.example.com/v1' });
23
23
  expect(client.getApiKeyPreview()).toBe('travo-...-key');
24
24
  });
25
25
 
@@ -33,12 +33,12 @@ describe('ConnectorClient', () => {
33
33
  });
34
34
 
35
35
  test('builds default listings URL', () => {
36
- const client = new ConnectorClient({ apiKey: 'key' });
37
- expect(client.buildRequestUrl('/listings')).toBe('https://api.travo-real-estate.com/v1/listings');
36
+ const client = new ConnectorClient({ apiKey: 'key', baseUrl: 'https://configured.example.com/v1' });
37
+ expect(client.buildRequestUrl('/listings')).toBe('https://configured.example.com/v1/listings');
38
38
  });
39
39
 
40
40
  test('sends Bearer authorization header', async () => {
41
- const client = new ConnectorClient({ apiKey: 'travo-real-estate-key' });
41
+ const client = new ConnectorClient({ apiKey: 'travo-real-estate-key', baseUrl: 'https://configured.example.com/v1' });
42
42
  const captured: Array<{ url: string; init?: RequestInit }> = [];
43
43
 
44
44
  globalThis.fetch = mock(async (input: string | URL | Request, init?: RequestInit) => {
@@ -50,12 +50,12 @@ describe('ConnectorClient', () => {
50
50
  }) as any;
51
51
 
52
52
  await client.get('/listings');
53
- expect(captured[0]?.url).toBe('https://api.travo-real-estate.com/v1/listings');
53
+ expect(captured[0]?.url).toBe('https://configured.example.com/v1/listings');
54
54
  expect(new Headers(captured[0]?.init?.headers).get('Authorization')).toBe('Bearer travo-real-estate-key');
55
55
  });
56
56
 
57
57
  test('GET listing by ID uses encoded path', async () => {
58
- const client = new ConnectorClient({ apiKey: 'travo-real-estate-key' });
58
+ const client = new ConnectorClient({ apiKey: 'travo-real-estate-key', baseUrl: 'https://configured.example.com/v1' });
59
59
  const captured: string[] = [];
60
60
 
61
61
  globalThis.fetch = mock(async (input: string | URL | Request) => {
@@ -64,11 +64,11 @@ describe('ConnectorClient', () => {
64
64
  }) as any;
65
65
 
66
66
  await client.get('/listings/item-1');
67
- expect(captured[0]).toBe('https://api.travo-real-estate.com/v1/listings/item-1');
67
+ expect(captured[0]).toBe('https://configured.example.com/v1/listings/item-1');
68
68
  });
69
69
 
70
70
  test('GET events endpoint', async () => {
71
- const client = new ConnectorClient({ apiKey: 'travo-real-estate-key' });
71
+ const client = new ConnectorClient({ apiKey: 'travo-real-estate-key', baseUrl: 'https://configured.example.com/v1' });
72
72
  const captured: string[] = [];
73
73
 
74
74
  globalThis.fetch = mock(async (input: string | URL | Request) => {
@@ -77,11 +77,11 @@ describe('ConnectorClient', () => {
77
77
  }) as any;
78
78
 
79
79
  await client.get('/events', { limit: 10 });
80
- expect(captured[0]).toBe('https://api.travo-real-estate.com/v1/events?limit=10');
80
+ expect(captured[0]).toBe('https://configured.example.com/v1/events?limit=10');
81
81
  });
82
82
 
83
83
  test('POST search endpoint', async () => {
84
- const client = new ConnectorClient({ apiKey: 'travo-real-estate-key' });
84
+ const client = new ConnectorClient({ apiKey: 'travo-real-estate-key', baseUrl: 'https://configured.example.com/v1' });
85
85
  const captured: Array<{ url: string; init?: RequestInit }> = [];
86
86
 
87
87
  globalThis.fetch = mock(async (input: string | URL | Request, init?: RequestInit) => {
@@ -93,13 +93,13 @@ describe('ConnectorClient', () => {
93
93
  }) as any;
94
94
 
95
95
  await client.post('/search', { query: 'apartment' });
96
- expect(captured[0]?.url).toBe('https://api.travo-real-estate.com/v1/search');
96
+ expect(captured[0]?.url).toBe('https://configured.example.com/v1/search');
97
97
  expect(captured[0]?.init?.method).toBe('POST');
98
98
  expect(captured[0]?.init?.body).toBe(JSON.stringify({ query: 'apartment' }));
99
99
  });
100
100
 
101
101
  test('throws ConnectorApiError on HTTP error', async () => {
102
- const client = new ConnectorClient({ apiKey: 'travo-real-estate-key' });
102
+ const client = new ConnectorClient({ apiKey: 'travo-real-estate-key', baseUrl: 'https://configured.example.com/v1' });
103
103
 
104
104
  globalThis.fetch = mock(async () =>
105
105
  new Response('Unauthorized', { status: 401, statusText: 'Unauthorized' })
@@ -128,7 +128,7 @@ describe('TravoRealEstate', () => {
128
128
  });
129
129
 
130
130
  test('listListings and getListing hit expected paths', async () => {
131
- const connector = new TravoRealEstate({ apiKey: 'travo-real-estate-key' });
131
+ const connector = new TravoRealEstate({ apiKey: 'travo-real-estate-key', baseUrl: 'https://configured.example.com/v1' });
132
132
  const captured: string[] = [];
133
133
 
134
134
  globalThis.fetch = mock(async (input: string | URL | Request) => {
@@ -139,8 +139,8 @@ describe('TravoRealEstate', () => {
139
139
  await connector.listListings();
140
140
  await connector.getListing('item-1');
141
141
 
142
- expect(captured[0]).toBe('https://api.travo-real-estate.com/v1/listings');
143
- expect(captured[1]).toBe('https://api.travo-real-estate.com/v1/listings/item-1');
142
+ expect(captured[0]).toBe('https://configured.example.com/v1/listings');
143
+ expect(captured[1]).toBe('https://configured.example.com/v1/listings/item-1');
144
144
  });
145
145
  });
146
146
 
@@ -151,4 +151,8 @@ describe('ConnectorApiError', () => {
151
151
  expect(err.responseBody).toBe('{"error":"invalid_key"}');
152
152
  expect(err.name).toBe('ConnectorApiError');
153
153
  });
154
+
155
+ test('refuses to send without a configured base URL (no default endpoint)', () => {
156
+ expect(() => new ConnectorClient({ apiKey: 'test-key' })).toThrow(/baseUrl/);
157
+ });
154
158
  });
@@ -1,8 +1,6 @@
1
1
  import type { ConnectorConfig, QueryParams, RawRequestOptions } from '../types';
2
2
  import { ConnectorApiError, parseApiError } from '../types';
3
3
 
4
- export const DEFAULT_BASE_URL = 'https://api.travo-real-estate.com/v1';
5
-
6
4
  export interface RequestOptions {
7
5
  method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
8
6
  params?: QueryParams;
@@ -21,7 +19,10 @@ export class ConnectorClient {
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?: QueryParams): string {
@@ -4,7 +4,6 @@ import { join } from 'path';
4
4
 
5
5
  const CONNECTOR_NAME = 'connect-travo-real-estate';
6
6
  const DEFAULT_PROFILE = 'default';
7
- const DEFAULT_BASE_URL = 'https://api.travo-real-estate.com/v1';
8
7
 
9
8
  export interface ProfileConfig {
10
9
  apiKey?: string;
@@ -146,8 +145,8 @@ export function setApiKey(apiKey: string): void {
146
145
  saveProfile(config);
147
146
  }
148
147
 
149
- export function getBaseUrl(): string {
150
- return process.env.TRAVO_REAL_ESTATE_BASE_URL || loadProfile().baseUrl || DEFAULT_BASE_URL;
148
+ export function getBaseUrl(): string | undefined {
149
+ return process.env.TRAVO_REAL_ESTATE_BASE_URL || loadProfile().baseUrl;
151
150
  }
152
151
 
153
152
  export function setBaseUrl(baseUrl: string): void {
@@ -168,4 +167,3 @@ export function getActiveProfileName(): string {
168
167
  return getCurrentProfile();
169
168
  }
170
169
 
171
- export { DEFAULT_BASE_URL };
@@ -4,7 +4,7 @@ Tray API Platform connector — customer runtime REST API for items, events, and
4
4
 
5
5
  ## API Details
6
6
 
7
- - **Base URL**: `https://api.trayapiplatform.com/v1` (tenant-specific override supported)
7
+ - **Base URL**: no default (must be configured) (tenant-specific override supported)
8
8
  - **Auth**: API key via Bearer token (`Authorization: Bearer <api_key>`)
9
9
  - **Not** the tray.io iPaaS or Tray Platform workspace management API
10
10
 
@@ -1,6 +1,6 @@
1
1
  import { afterEach, describe, expect, test } from 'bun:test';
2
+ import { ConnectorClient } from './client';
2
3
  import { Connector } from './index';
3
- import { DEFAULT_BASE_URL } from './client';
4
4
 
5
5
  const realFetch = globalThis.fetch;
6
6
 
@@ -62,12 +62,12 @@ describe('Tray API Platform client', () => {
62
62
  test('listItems sends Bearer auth and GET /items', async () => {
63
63
  const recorded = installFetch((entry) => {
64
64
  expect(entry.method).toBe('GET');
65
- expect(entry.url).toBe(`${DEFAULT_BASE_URL}/items`);
65
+ expect(entry.url).toBe(`https://configured.example.com/v1/items`);
66
66
  expect(entry.headers.authorization).toBe('Bearer test-api-key');
67
67
  return { items: [] };
68
68
  });
69
69
 
70
- const connector = new Connector({ apiKey: 'test-api-key' });
70
+ const connector = new Connector({ apiKey: 'test-api-key', baseUrl: 'https://configured.example.com/v1' });
71
71
  const result = await connector.items.list();
72
72
  expect(result).toEqual({ items: [] });
73
73
  expect(recorded).toHaveLength(1);
@@ -76,12 +76,12 @@ describe('Tray API Platform client', () => {
76
76
  test('getItem encodes item ID and calls GET /items/:id', async () => {
77
77
  const recorded = installFetch((entry) => {
78
78
  expect(entry.method).toBe('GET');
79
- expect(entry.url).toBe(`${DEFAULT_BASE_URL}/items/item%2F123`);
79
+ expect(entry.url).toBe(`https://configured.example.com/v1/items/item%2F123`);
80
80
  expect(entry.headers.authorization).toBe('Bearer test-api-key');
81
81
  return { id: 'item/123' };
82
82
  });
83
83
 
84
- const connector = new Connector({ apiKey: 'test-api-key' });
84
+ const connector = new Connector({ apiKey: 'test-api-key', baseUrl: 'https://configured.example.com/v1' });
85
85
  const result = await connector.items.get('item/123');
86
86
  expect(result).toEqual({ id: 'item/123' });
87
87
  expect(recorded).toHaveLength(1);
@@ -90,12 +90,12 @@ describe('Tray API Platform client', () => {
90
90
  test('createItem POSTs JSON body to /items', async () => {
91
91
  const recorded = installFetch((entry) => {
92
92
  expect(entry.method).toBe('POST');
93
- expect(entry.url).toBe(`${DEFAULT_BASE_URL}/items`);
93
+ expect(entry.url).toBe(`https://configured.example.com/v1/items`);
94
94
  expect(entry.body).toBe(JSON.stringify({ name: 'widget' }));
95
95
  return { id: 'new-item' };
96
96
  });
97
97
 
98
- const connector = new Connector({ apiKey: 'test-api-key' });
98
+ const connector = new Connector({ apiKey: 'test-api-key', baseUrl: 'https://configured.example.com/v1' });
99
99
  await connector.items.create({ name: 'widget' });
100
100
  expect(recorded).toHaveLength(1);
101
101
  });
@@ -117,12 +117,12 @@ describe('Tray API Platform client', () => {
117
117
  test('listEvents sends GET /events', async () => {
118
118
  const recorded = installFetch((entry) => {
119
119
  expect(entry.method).toBe('GET');
120
- expect(entry.url).toBe(`${DEFAULT_BASE_URL}/events`);
120
+ expect(entry.url).toBe(`https://configured.example.com/v1/events`);
121
121
  expect(entry.headers.authorization).toBe('Bearer test-api-key');
122
122
  return { events: [] };
123
123
  });
124
124
 
125
- const connector = new Connector({ apiKey: 'test-api-key' });
125
+ const connector = new Connector({ apiKey: 'test-api-key', baseUrl: 'https://configured.example.com/v1' });
126
126
  const result = await connector.events.list();
127
127
  expect(result).toEqual({ events: [] });
128
128
  expect(recorded).toHaveLength(1);
@@ -131,12 +131,12 @@ describe('Tray API Platform client', () => {
131
131
  test('search POSTs JSON body to /search', async () => {
132
132
  const recorded = installFetch((entry) => {
133
133
  expect(entry.method).toBe('POST');
134
- expect(entry.url).toBe(`${DEFAULT_BASE_URL}/search`);
134
+ expect(entry.url).toBe(`https://configured.example.com/v1/search`);
135
135
  expect(entry.body).toBe(JSON.stringify({ query: 'widget' }));
136
136
  return { results: [] };
137
137
  });
138
138
 
139
- const connector = new Connector({ apiKey: 'test-api-key' });
139
+ const connector = new Connector({ apiKey: 'test-api-key', baseUrl: 'https://configured.example.com/v1' });
140
140
  const result = await connector.search.search({ query: 'widget' });
141
141
  expect(result).toEqual({ results: [] });
142
142
  expect(recorded).toHaveLength(1);
@@ -145,12 +145,12 @@ describe('Tray API Platform client', () => {
145
145
  test('rawRequest supports custom path and method', async () => {
146
146
  const recorded = installFetch((entry) => {
147
147
  expect(entry.method).toBe('POST');
148
- expect(entry.url).toBe(`${DEFAULT_BASE_URL}/custom/path`);
148
+ expect(entry.url).toBe(`https://configured.example.com/v1/custom/path`);
149
149
  expect(entry.body).toBe(JSON.stringify({ action: 'ping' }));
150
150
  return { ok: true };
151
151
  });
152
152
 
153
- const connector = new Connector({ apiKey: 'test-api-key' });
153
+ const connector = new Connector({ apiKey: 'test-api-key', baseUrl: 'https://configured.example.com/v1' });
154
154
  const result = await connector.rawRequest({
155
155
  method: 'POST',
156
156
  path: '/custom/path',
@@ -163,4 +163,8 @@ describe('Tray API Platform client', () => {
163
163
  test('requires API key', () => {
164
164
  expect(() => new Connector({})).toThrow('API key or token is required');
165
165
  });
166
+
167
+ test('refuses to send without a configured base URL (no default endpoint)', () => {
168
+ expect(() => new ConnectorClient({ apiKey: 'test-key' })).toThrow(/baseUrl/);
169
+ });
166
170
  });
@@ -1,8 +1,6 @@
1
1
  import type { ConnectorConfig, ListQueryParams } from '../types';
2
2
  import { ConnectorApiError, parseApiError } from '../types';
3
3
 
4
- export const DEFAULT_BASE_URL = 'https://api.trayapiplatform.com/v1';
5
-
6
4
  export interface RequestOptions {
7
5
  method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
8
6
  params?: ListQueryParams;
@@ -22,7 +20,10 @@ export class ConnectorClient {
22
20
  throw new Error('API key or token is required');
23
21
  }
24
22
  this.apiKey = key;
25
- this.baseUrl = (config.baseUrl || DEFAULT_BASE_URL).replace(/\/+$/, '');
23
+ if (!config.baseUrl) {
24
+ throw new Error('baseUrl is required: no default endpoint is configured; set baseUrl (profile, config, or the connector BASE_URL environment variable)');
25
+ }
26
+ this.baseUrl = config.baseUrl.replace(/\/+$/, '');
26
27
  }
27
28
 
28
29
  getBaseUrl(): string {
@@ -43,7 +43,7 @@ export class Connector {
43
43
  }
44
44
  }
45
45
 
46
- export { ConnectorClient, DEFAULT_BASE_URL } from './client';
46
+ export { ConnectorClient } from './client';
47
47
  export { ItemsApi } from './items';
48
48
  export { EventsApi } from './events';
49
49
  export { SearchApi } from './search';
@@ -219,7 +219,7 @@ configCmd
219
219
  console.log(chalk.bold(`Active Profile: ${profileName}`));
220
220
  info(`Config directory: ${getConfigDir()}`);
221
221
  info(`API Key: ${apiKey ? `${apiKey.substring(0, 8)}...` : chalk.gray('not set')}`);
222
- info(`Base URL: ${baseUrl || chalk.gray('https://api.trayapiplatform.com/v1 (default)')}`);
222
+ info(`Base URL: ${baseUrl || chalk.gray('none configured')}`);
223
223
  });
224
224
 
225
225
  configCmd
@@ -2,7 +2,6 @@ export { Connector } from './api';
2
2
  export * from './types';
3
3
  export {
4
4
  ConnectorClient,
5
- DEFAULT_BASE_URL,
6
5
  ItemsApi,
7
6
  EventsApi,
8
7
  SearchApi,
@@ -53,6 +53,6 @@
53
53
  },
54
54
  "repository": {
55
55
  "type": "git",
56
- "url": "git+https://github.com/hasna/open-connectors.git"
56
+ "url": "git+https://github.com/hasna/apps.git"
57
57
  }
58
58
  }
@@ -45,6 +45,6 @@
45
45
  },
46
46
  "repository": {
47
47
  "type": "git",
48
- "url": "git+https://github.com/hasna/open-connectors.git"
48
+ "url": "git+https://github.com/hasna/apps.git"
49
49
  }
50
50
  }
@@ -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
  }
@@ -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
  }
@@ -20,7 +20,7 @@ bun test
20
20
 
21
21
  Bearer token via `Authorization: Bearer <api_key>` header.
22
22
 
23
- Default base URL: `https://api.tursoapiplatform.com/v1`
23
+ Default base URL: none (must be configured)
24
24
 
25
25
  Credentials stored in `~/.hasna/connectors/connect-turso-api-platform/profiles/`.
26
26
 
@@ -1,6 +1,6 @@
1
1
  # Turso Api Platform Connector
2
2
 
3
- TypeScript connector and CLI for the [Turso Api Platform](https://api.tursoapiplatform.com) REST API.
3
+ TypeScript connector and CLI for the [Turso Api Platform](configured.example.com/v1) REST API.
4
4
 
5
5
  ## Features
6
6
 
@@ -19,7 +19,7 @@ bun install
19
19
 
20
20
  ```bash
21
21
  connect-turso-api-platform auth set-key <api-key>
22
- connect-turso-api-platform auth set-base-url https://api.tursoapiplatform.com/v1
22
+ connect-turso-api-platform auth set-base-url configured.example.com/v1
23
23
  connect-turso-api-platform auth status
24
24
  ```
25
25
 
@@ -46,6 +46,6 @@
46
46
  },
47
47
  "repository": {
48
48
  "type": "git",
49
- "url": "git+https://github.com/hasna/open-connectors.git"
49
+ "url": "git+https://github.com/hasna/apps.git"
50
50
  }
51
51
  }