@hasna/connectors 1.3.24 → 1.3.26

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 (695) hide show
  1. package/bin/index.js +911 -143
  2. package/bin/mcp.js +2804 -1815
  3. package/bin/serve.js +1200 -430
  4. package/connectors/{connect-yousign → connect-cloudflare}/bun.lock +3 -3
  5. package/connectors/connect-gmail/bin/index.js +7027 -0
  6. package/connectors/connect-googledrive/bin/index.js +5958 -0
  7. package/connectors/connect-imessage/bin/.gitkeep +2 -0
  8. package/connectors/connect-imessage/bin/index.js +3016 -0
  9. package/connectors/connect-imessage/bun.lock +32 -0
  10. package/connectors/connect-imessage/package.json +46 -0
  11. package/connectors/connect-imessage/src/api/client.ts +139 -0
  12. package/connectors/connect-imessage/src/api/conversations.ts +49 -0
  13. package/connectors/connect-imessage/src/api/health.ts +16 -0
  14. package/connectors/connect-imessage/src/api/index.ts +62 -0
  15. package/connectors/connect-imessage/src/api/messages.ts +119 -0
  16. package/connectors/connect-imessage/src/cli/index.ts +258 -0
  17. package/connectors/connect-imessage/src/index.ts +26 -0
  18. package/connectors/connect-imessage/src/types/index.ts +134 -0
  19. package/connectors/connect-imessage/src/utils/config.ts +219 -0
  20. package/connectors/connect-imessage/src/utils/output.ts +121 -0
  21. package/connectors/connect-imessage/tsconfig.json +16 -0
  22. package/dashboard/dist/assets/index-ClBXkNbL.css +1 -0
  23. package/dashboard/dist/assets/index-DvfmyAO4.js +284 -0
  24. package/dashboard/dist/index.html +2 -2
  25. package/dist/core/connectors/gmail.d.ts +5 -0
  26. package/dist/core/connectors/googledrive.d.ts +6 -0
  27. package/dist/core/connectors/internal-operations.test.d.ts +1 -0
  28. package/dist/core/connectors/internal-runtime.test.d.ts +1 -0
  29. package/dist/core/errors.test.d.ts +1 -0
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js +1075 -89
  32. package/dist/lib/runner-auth.test.d.ts +1 -0
  33. package/dist/lib/runner.d.ts +31 -0
  34. package/dist/lib/test-endpoints.test.d.ts +1 -0
  35. package/dist/lib/workflow-runner.d.ts +7 -0
  36. package/dist/server/auth-exchange.test.d.ts +1 -0
  37. package/dist/server/auth-refresh.test.d.ts +1 -0
  38. package/dist/server/auth.d.ts +1 -0
  39. package/package.json +1 -1
  40. package/connectors/connect-yousign/node_modules/@types/bun/LICENSE +0 -21
  41. package/connectors/connect-yousign/node_modules/@types/bun/README.md +0 -20
  42. package/connectors/connect-yousign/node_modules/@types/bun/index.d.ts +0 -1
  43. package/connectors/connect-yousign/node_modules/@types/bun/package.json +0 -53
  44. package/connectors/connect-yousign/node_modules/@types/node/LICENSE +0 -21
  45. package/connectors/connect-yousign/node_modules/@types/node/README.md +0 -15
  46. package/connectors/connect-yousign/node_modules/@types/node/assert/strict.d.ts +0 -105
  47. package/connectors/connect-yousign/node_modules/@types/node/assert.d.ts +0 -955
  48. package/connectors/connect-yousign/node_modules/@types/node/async_hooks.d.ts +0 -623
  49. package/connectors/connect-yousign/node_modules/@types/node/buffer.buffer.d.ts +0 -466
  50. package/connectors/connect-yousign/node_modules/@types/node/buffer.d.ts +0 -1810
  51. package/connectors/connect-yousign/node_modules/@types/node/child_process.d.ts +0 -1433
  52. package/connectors/connect-yousign/node_modules/@types/node/cluster.d.ts +0 -486
  53. package/connectors/connect-yousign/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
  54. package/connectors/connect-yousign/node_modules/@types/node/console.d.ts +0 -151
  55. package/connectors/connect-yousign/node_modules/@types/node/constants.d.ts +0 -20
  56. package/connectors/connect-yousign/node_modules/@types/node/crypto.d.ts +0 -4065
  57. package/connectors/connect-yousign/node_modules/@types/node/dgram.d.ts +0 -564
  58. package/connectors/connect-yousign/node_modules/@types/node/diagnostics_channel.d.ts +0 -576
  59. package/connectors/connect-yousign/node_modules/@types/node/dns/promises.d.ts +0 -503
  60. package/connectors/connect-yousign/node_modules/@types/node/dns.d.ts +0 -922
  61. package/connectors/connect-yousign/node_modules/@types/node/domain.d.ts +0 -166
  62. package/connectors/connect-yousign/node_modules/@types/node/events.d.ts +0 -1047
  63. package/connectors/connect-yousign/node_modules/@types/node/fs/promises.d.ts +0 -1329
  64. package/connectors/connect-yousign/node_modules/@types/node/fs.d.ts +0 -4678
  65. package/connectors/connect-yousign/node_modules/@types/node/globals.d.ts +0 -150
  66. package/connectors/connect-yousign/node_modules/@types/node/globals.typedarray.d.ts +0 -101
  67. package/connectors/connect-yousign/node_modules/@types/node/http.d.ts +0 -2188
  68. package/connectors/connect-yousign/node_modules/@types/node/http2.d.ts +0 -2480
  69. package/connectors/connect-yousign/node_modules/@types/node/https.d.ts +0 -405
  70. package/connectors/connect-yousign/node_modules/@types/node/index.d.ts +0 -115
  71. package/connectors/connect-yousign/node_modules/@types/node/inspector/promises.d.ts +0 -41
  72. package/connectors/connect-yousign/node_modules/@types/node/inspector.d.ts +0 -269
  73. package/connectors/connect-yousign/node_modules/@types/node/inspector.generated.d.ts +0 -4401
  74. package/connectors/connect-yousign/node_modules/@types/node/module.d.ts +0 -757
  75. package/connectors/connect-yousign/node_modules/@types/node/net.d.ts +0 -933
  76. package/connectors/connect-yousign/node_modules/@types/node/os.d.ts +0 -507
  77. package/connectors/connect-yousign/node_modules/@types/node/package.json +0 -155
  78. package/connectors/connect-yousign/node_modules/@types/node/path/posix.d.ts +0 -8
  79. package/connectors/connect-yousign/node_modules/@types/node/path/win32.d.ts +0 -8
  80. package/connectors/connect-yousign/node_modules/@types/node/path.d.ts +0 -187
  81. package/connectors/connect-yousign/node_modules/@types/node/perf_hooks.d.ts +0 -643
  82. package/connectors/connect-yousign/node_modules/@types/node/process.d.ts +0 -2175
  83. package/connectors/connect-yousign/node_modules/@types/node/punycode.d.ts +0 -117
  84. package/connectors/connect-yousign/node_modules/@types/node/querystring.d.ts +0 -152
  85. package/connectors/connect-yousign/node_modules/@types/node/quic.d.ts +0 -910
  86. package/connectors/connect-yousign/node_modules/@types/node/readline/promises.d.ts +0 -161
  87. package/connectors/connect-yousign/node_modules/@types/node/readline.d.ts +0 -542
  88. package/connectors/connect-yousign/node_modules/@types/node/repl.d.ts +0 -415
  89. package/connectors/connect-yousign/node_modules/@types/node/sea.d.ts +0 -162
  90. package/connectors/connect-yousign/node_modules/@types/node/sqlite.d.ts +0 -1065
  91. package/connectors/connect-yousign/node_modules/@types/node/stream/consumers.d.ts +0 -38
  92. package/connectors/connect-yousign/node_modules/@types/node/stream/promises.d.ts +0 -211
  93. package/connectors/connect-yousign/node_modules/@types/node/stream/web.d.ts +0 -296
  94. package/connectors/connect-yousign/node_modules/@types/node/stream.d.ts +0 -1770
  95. package/connectors/connect-yousign/node_modules/@types/node/string_decoder.d.ts +0 -67
  96. package/connectors/connect-yousign/node_modules/@types/node/test/reporters.d.ts +0 -96
  97. package/connectors/connect-yousign/node_modules/@types/node/test.d.ts +0 -2275
  98. package/connectors/connect-yousign/node_modules/@types/node/timers/promises.d.ts +0 -108
  99. package/connectors/connect-yousign/node_modules/@types/node/timers.d.ts +0 -159
  100. package/connectors/connect-yousign/node_modules/@types/node/tls.d.ts +0 -1203
  101. package/connectors/connect-yousign/node_modules/@types/node/trace_events.d.ts +0 -197
  102. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -462
  103. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +0 -71
  104. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -36
  105. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/index.d.ts +0 -117
  106. package/connectors/connect-yousign/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +0 -72
  107. package/connectors/connect-yousign/node_modules/@types/node/ts5.7/index.d.ts +0 -117
  108. package/connectors/connect-yousign/node_modules/@types/node/tty.d.ts +0 -250
  109. package/connectors/connect-yousign/node_modules/@types/node/url.d.ts +0 -541
  110. package/connectors/connect-yousign/node_modules/@types/node/util/types.d.ts +0 -558
  111. package/connectors/connect-yousign/node_modules/@types/node/util.d.ts +0 -1687
  112. package/connectors/connect-yousign/node_modules/@types/node/v8.d.ts +0 -988
  113. package/connectors/connect-yousign/node_modules/@types/node/vm.d.ts +0 -1208
  114. package/connectors/connect-yousign/node_modules/@types/node/wasi.d.ts +0 -202
  115. package/connectors/connect-yousign/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -59
  116. package/connectors/connect-yousign/node_modules/@types/node/web-globals/blob.d.ts +0 -23
  117. package/connectors/connect-yousign/node_modules/@types/node/web-globals/console.d.ts +0 -9
  118. package/connectors/connect-yousign/node_modules/@types/node/web-globals/crypto.d.ts +0 -39
  119. package/connectors/connect-yousign/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  120. package/connectors/connect-yousign/node_modules/@types/node/web-globals/encoding.d.ts +0 -11
  121. package/connectors/connect-yousign/node_modules/@types/node/web-globals/events.d.ts +0 -106
  122. package/connectors/connect-yousign/node_modules/@types/node/web-globals/fetch.d.ts +0 -69
  123. package/connectors/connect-yousign/node_modules/@types/node/web-globals/importmeta.d.ts +0 -13
  124. package/connectors/connect-yousign/node_modules/@types/node/web-globals/messaging.d.ts +0 -23
  125. package/connectors/connect-yousign/node_modules/@types/node/web-globals/navigator.d.ts +0 -25
  126. package/connectors/connect-yousign/node_modules/@types/node/web-globals/performance.d.ts +0 -45
  127. package/connectors/connect-yousign/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  128. package/connectors/connect-yousign/node_modules/@types/node/web-globals/streams.d.ts +0 -115
  129. package/connectors/connect-yousign/node_modules/@types/node/web-globals/timers.d.ts +0 -44
  130. package/connectors/connect-yousign/node_modules/@types/node/web-globals/url.d.ts +0 -24
  131. package/connectors/connect-yousign/node_modules/@types/node/worker_threads.d.ts +0 -717
  132. package/connectors/connect-yousign/node_modules/@types/node/zlib.d.ts +0 -682
  133. package/connectors/connect-yousign/node_modules/bun-types/CLAUDE.md +0 -105
  134. package/connectors/connect-yousign/node_modules/bun-types/README.md +0 -33
  135. package/connectors/connect-yousign/node_modules/bun-types/bun.d.ts +0 -8481
  136. package/connectors/connect-yousign/node_modules/bun-types/bun.ns.d.ts +0 -5
  137. package/connectors/connect-yousign/node_modules/bun-types/bundle.d.ts +0 -74
  138. package/connectors/connect-yousign/node_modules/bun-types/deprecated.d.ts +0 -184
  139. package/connectors/connect-yousign/node_modules/bun-types/devserver.d.ts +0 -187
  140. package/connectors/connect-yousign/node_modules/bun-types/docs/README.md +0 -28
  141. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/bytecode.mdx +0 -447
  142. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/css.mdx +0 -1024
  143. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/esbuild.mdx +0 -304
  144. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/executables.mdx +0 -1318
  145. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/fullstack.mdx +0 -1086
  146. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/hot-reloading.mdx +0 -229
  147. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/html-static.mdx +0 -498
  148. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/index.mdx +0 -1840
  149. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/loaders.mdx +0 -451
  150. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/macros.mdx +0 -328
  151. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/minifier.mdx +0 -1286
  152. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/plugins.mdx +0 -477
  153. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/standalone-html.mdx +0 -314
  154. package/connectors/connect-yousign/node_modules/bun-types/docs/feedback.mdx +0 -75
  155. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-array.mdx +0 -29
  156. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-blob.mdx +0 -26
  157. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-buffer.mdx +0 -27
  158. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-string.mdx +0 -17
  159. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-typedarray.mdx +0 -41
  160. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-arraybuffer.mdx +0 -16
  161. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-dataview.mdx +0 -16
  162. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-stream.mdx +0 -16
  163. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-string.mdx +0 -17
  164. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-typedarray.mdx +0 -16
  165. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-arraybuffer.mdx +0 -16
  166. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-blob.mdx +0 -16
  167. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-readablestream.mdx +0 -43
  168. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-string.mdx +0 -27
  169. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-typedarray.mdx +0 -16
  170. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/dataview-to-string.mdx +0 -17
  171. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-arraybuffer.mdx +0 -27
  172. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-blob.mdx +0 -18
  173. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-buffer.mdx +0 -16
  174. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-dataview.mdx +0 -16
  175. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-readablestream.mdx +0 -43
  176. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-string.mdx +0 -18
  177. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/aws-lambda.mdx +0 -204
  178. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/digital-ocean.mdx +0 -161
  179. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/google-cloud-run.mdx +0 -194
  180. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/railway.mdx +0 -145
  181. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/render.mdx +0 -82
  182. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/vercel.mdx +0 -97
  183. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/astro.mdx +0 -82
  184. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/discordjs.mdx +0 -80
  185. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/docker.mdx +0 -151
  186. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/drizzle.mdx +0 -195
  187. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/elysia.mdx +0 -31
  188. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/express.mdx +0 -43
  189. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/gel.mdx +0 -261
  190. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/hono.mdx +0 -47
  191. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/mongoose.mdx +0 -92
  192. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/neon-drizzle.mdx +0 -234
  193. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/neon-serverless-postgres.mdx +0 -60
  194. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/nextjs.mdx +0 -103
  195. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/nuxt.mdx +0 -96
  196. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/pm2.mdx +0 -55
  197. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/prisma-postgres.mdx +0 -169
  198. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/prisma.mdx +0 -164
  199. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/qwik.mdx +0 -114
  200. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/react.mdx +0 -52
  201. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/remix.mdx +0 -97
  202. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/sentry.mdx +0 -54
  203. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/solidstart.mdx +0 -62
  204. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/ssr-react.mdx +0 -49
  205. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/stric.mdx +0 -54
  206. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/sveltekit.mdx +0 -138
  207. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/systemd.mdx +0 -114
  208. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/tanstack-start.mdx +0 -791
  209. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/upstash.mdx +0 -87
  210. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/vite.mdx +0 -77
  211. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/html-rewriter/extract-links.mdx +0 -71
  212. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/html-rewriter/extract-social-meta.mdx +0 -97
  213. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/cluster.mdx +0 -69
  214. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/fetch-unix.mdx +0 -35
  215. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/fetch.mdx +0 -26
  216. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/file-uploads.mdx +0 -97
  217. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/hot.mdx +0 -28
  218. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/proxy.mdx +0 -50
  219. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/server.mdx +0 -48
  220. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/simple.mdx +0 -20
  221. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/stream-file.mdx +0 -50
  222. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/stream-iterator.mdx +0 -49
  223. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/stream-node-streams-in-bun.mdx +0 -22
  224. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/tls.mdx +0 -32
  225. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/index.mdx +0 -10
  226. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-dev.mdx +0 -28
  227. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-git.mdx +0 -40
  228. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-optional.mdx +0 -27
  229. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-peer.mdx +0 -45
  230. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-tarball.mdx +0 -35
  231. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add.mdx +0 -44
  232. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/azure-artifacts.mdx +0 -76
  233. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/cicd.mdx +0 -43
  234. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/custom-registry.mdx +0 -32
  235. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/from-npm-install-to-bun-install.mdx +0 -230
  236. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/git-diff-bun-lockfile.mdx +0 -48
  237. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/jfrog-artifactory.mdx +0 -28
  238. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/npm-alias.mdx +0 -25
  239. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/registry-scope.mdx +0 -40
  240. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/trusted.mdx +0 -52
  241. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/workspaces.mdx +0 -70
  242. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/yarnlock.mdx +0 -51
  243. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/argv.mdx +0 -66
  244. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/ctrl-c.mdx +0 -18
  245. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/ipc.mdx +0 -69
  246. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/nanoseconds.mdx +0 -15
  247. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/os-signals.mdx +0 -31
  248. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/spawn-stderr.mdx +0 -34
  249. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/spawn-stdout.mdx +0 -28
  250. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/spawn.mdx +0 -43
  251. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/stdin.mdx +0 -62
  252. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/arraybuffer.mdx +0 -30
  253. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/buffer.mdx +0 -21
  254. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/exists.mdx +0 -18
  255. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/json.mdx +0 -19
  256. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/mime.mdx +0 -22
  257. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/stream.mdx +0 -28
  258. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/string.mdx +0 -24
  259. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/uint8array.mdx +0 -23
  260. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/watch.mdx +0 -66
  261. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/build-time-constants.mdx +0 -295
  262. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/cicd.mdx +0 -45
  263. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/codesign-macos-executable.mdx +0 -61
  264. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/define-constant.mdx +0 -149
  265. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/delete-directory.mdx +0 -39
  266. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/delete-file.mdx +0 -21
  267. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/heap-snapshot.mdx +0 -28
  268. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-html.mdx +0 -15
  269. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-json.mdx +0 -46
  270. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-json5.mdx +0 -74
  271. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-toml.mdx +0 -32
  272. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-yaml.mdx +0 -104
  273. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/read-env.mdx +0 -37
  274. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/set-env.mdx +0 -51
  275. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/shell.mdx +0 -42
  276. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/timezone.mdx +0 -38
  277. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/tsconfig-paths.mdx +0 -31
  278. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/typescript.mdx +0 -51
  279. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/vscode-debugger.mdx +0 -47
  280. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/web-debugger.mdx +0 -103
  281. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-arraybuffer.mdx +0 -13
  282. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-blob.mdx +0 -13
  283. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-json.mdx +0 -14
  284. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-string.mdx +0 -14
  285. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-uint8array.mdx +0 -13
  286. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-array.mdx +0 -16
  287. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-arraybuffer.mdx +0 -16
  288. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-blob.mdx +0 -16
  289. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-buffer.mdx +0 -17
  290. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-json.mdx +0 -16
  291. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-string.mdx +0 -16
  292. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-typedarray.mdx +0 -24
  293. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/bail.mdx +0 -24
  294. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/concurrent-test-glob.mdx +0 -146
  295. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/coverage-threshold.mdx +0 -67
  296. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/coverage.mdx +0 -49
  297. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/happy-dom.mdx +0 -73
  298. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/migrate-from-jest.mdx +0 -125
  299. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/mock-clock.mdx +0 -50
  300. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/mock-functions.mdx +0 -70
  301. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/rerun-each.mdx +0 -16
  302. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/run-tests.mdx +0 -116
  303. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/skip-tests.mdx +0 -43
  304. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/snapshot.mdx +0 -102
  305. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/spy-on.mdx +0 -49
  306. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/svelte-test.mdx +0 -113
  307. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/testing-library.mdx +0 -93
  308. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/timeout.mdx +0 -17
  309. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/todo-tests.mdx +0 -74
  310. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/update-snapshots.mdx +0 -49
  311. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/watch-mode.mdx +0 -24
  312. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/base64.mdx +0 -17
  313. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/deep-equals.mdx +0 -41
  314. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/deflate.mdx +0 -20
  315. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/detect-bun.mdx +0 -28
  316. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/entrypoint.mdx +0 -19
  317. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/escape-html.mdx +0 -24
  318. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/file-url-to-path.mdx +0 -16
  319. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/gzip.mdx +0 -20
  320. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/hash-a-password.mdx +0 -56
  321. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/import-meta-dir.mdx +0 -15
  322. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/import-meta-file.mdx +0 -15
  323. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/import-meta-path.mdx +0 -15
  324. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/javascript-uuid.mdx +0 -25
  325. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/main.mdx +0 -43
  326. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/path-to-file-url.mdx +0 -16
  327. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/sleep.mdx +0 -24
  328. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/upgrade.mdx +0 -93
  329. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/version.mdx +0 -23
  330. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/which-path-to-executable-bin.mdx +0 -17
  331. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/compression.mdx +0 -33
  332. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/context.mdx +0 -79
  333. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/pubsub.mdx +0 -43
  334. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/simple.mdx +0 -38
  335. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/append.mdx +0 -54
  336. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/basic.mdx +0 -46
  337. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/blob.mdx +0 -30
  338. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/cat.mdx +0 -19
  339. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/file-cp.mdx +0 -18
  340. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/filesink.mdx +0 -54
  341. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/response.mdx +0 -19
  342. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/stdout.mdx +0 -23
  343. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/stream.mdx +0 -19
  344. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/unlink.mdx +0 -18
  345. package/connectors/connect-yousign/node_modules/bun-types/docs/index.mdx +0 -133
  346. package/connectors/connect-yousign/node_modules/bun-types/docs/installation.mdx +0 -372
  347. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/bunx.mdx +0 -91
  348. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/catalogs.mdx +0 -292
  349. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/add.mdx +0 -179
  350. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/audit.mdx +0 -60
  351. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/info.mdx +0 -70
  352. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/install.mdx +0 -591
  353. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/link.mdx +0 -61
  354. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/outdated.mdx +0 -197
  355. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/patch.mdx +0 -69
  356. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/pm.mdx +0 -323
  357. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/publish.mdx +0 -131
  358. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/remove.mdx +0 -16
  359. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/update.mdx +0 -140
  360. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/why.mdx +0 -84
  361. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/filter.mdx +0 -127
  362. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/global-cache.mdx +0 -72
  363. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/isolated-installs.mdx +0 -220
  364. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/lifecycle.mdx +0 -64
  365. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/lockfile.mdx +0 -64
  366. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/npmrc.mdx +0 -245
  367. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/overrides.mdx +0 -83
  368. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/scopes-registries.mdx +0 -35
  369. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/security-scanner-api.mdx +0 -95
  370. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/workspaces.mdx +0 -115
  371. package/connectors/connect-yousign/node_modules/bun-types/docs/project/benchmarking.mdx +0 -296
  372. package/connectors/connect-yousign/node_modules/bun-types/docs/project/bindgen.mdx +0 -223
  373. package/connectors/connect-yousign/node_modules/bun-types/docs/project/building-windows.mdx +0 -143
  374. package/connectors/connect-yousign/node_modules/bun-types/docs/project/contributing.mdx +0 -366
  375. package/connectors/connect-yousign/node_modules/bun-types/docs/project/feedback.mdx +0 -20
  376. package/connectors/connect-yousign/node_modules/bun-types/docs/project/license.mdx +0 -78
  377. package/connectors/connect-yousign/node_modules/bun-types/docs/project/roadmap.mdx +0 -8
  378. package/connectors/connect-yousign/node_modules/bun-types/docs/quickstart.mdx +0 -251
  379. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/archive.mdx +0 -452
  380. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/auto-install.mdx +0 -97
  381. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/binary-data.mdx +0 -846
  382. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/bun-apis.mdx +0 -59
  383. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/bunfig.mdx +0 -754
  384. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/c-compiler.mdx +0 -204
  385. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/child-process.mdx +0 -659
  386. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/color.mdx +0 -267
  387. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/console.mdx +0 -67
  388. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/cookies.mdx +0 -454
  389. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/debugger.mdx +0 -335
  390. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/environment-variables.mdx +0 -231
  391. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/ffi.mdx +0 -567
  392. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/file-io.mdx +0 -306
  393. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/file-system-router.mdx +0 -118
  394. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/file-types.mdx +0 -482
  395. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/glob.mdx +0 -181
  396. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/globals.mdx +0 -72
  397. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/hashing.mdx +0 -315
  398. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/html-rewriter.mdx +0 -333
  399. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/cookies.mdx +0 -79
  400. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/error-handling.mdx +0 -40
  401. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/metrics.mdx +0 -36
  402. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/routing.mdx +0 -289
  403. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/server.mdx +0 -645
  404. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/tls.mdx +0 -101
  405. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/websockets.mdx +0 -414
  406. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/index.mdx +0 -223
  407. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/json5.mdx +0 -271
  408. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/jsonl.mdx +0 -188
  409. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/jsx.mdx +0 -115
  410. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/markdown.mdx +0 -344
  411. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/module-resolution.mdx +0 -374
  412. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/dns.mdx +0 -111
  413. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/fetch.mdx +0 -484
  414. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/tcp.mdx +0 -239
  415. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/udp.mdx +0 -180
  416. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/node-api.mdx +0 -19
  417. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/nodejs-compat.mdx +0 -468
  418. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/plugins.mdx +0 -419
  419. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/redis.mdx +0 -583
  420. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/repl.mdx +0 -176
  421. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/s3.mdx +0 -881
  422. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/secrets.mdx +0 -340
  423. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/semver.mdx +0 -57
  424. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/shell.mdx +0 -637
  425. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/sql.mdx +0 -1404
  426. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/sqlite.mdx +0 -721
  427. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/streams.mdx +0 -232
  428. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/templating/create.mdx +0 -269
  429. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/templating/init.mdx +0 -58
  430. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/transpiler.mdx +0 -288
  431. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/typescript.mdx +0 -58
  432. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/utils.mdx +0 -1010
  433. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/watch-mode.mdx +0 -161
  434. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/web-apis.mdx +0 -29
  435. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/workers.mdx +0 -314
  436. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/yaml.mdx +0 -469
  437. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/add.mdx +0 -166
  438. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/build.mdx +0 -197
  439. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/bunx.mdx +0 -49
  440. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/feedback.mdx +0 -17
  441. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/init.mdx +0 -84
  442. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/install.mdx +0 -173
  443. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/link.mdx +0 -163
  444. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/outdated.mdx +0 -140
  445. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/patch.mdx +0 -171
  446. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/publish.mdx +0 -198
  447. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/remove.mdx +0 -146
  448. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/run.mdx +0 -305
  449. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/test.mdx +0 -105
  450. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/update.mdx +0 -144
  451. package/connectors/connect-yousign/node_modules/bun-types/docs/test/code-coverage.mdx +0 -409
  452. package/connectors/connect-yousign/node_modules/bun-types/docs/test/configuration.mdx +0 -520
  453. package/connectors/connect-yousign/node_modules/bun-types/docs/test/dates-times.mdx +0 -129
  454. package/connectors/connect-yousign/node_modules/bun-types/docs/test/discovery.mdx +0 -90
  455. package/connectors/connect-yousign/node_modules/bun-types/docs/test/dom.mdx +0 -226
  456. package/connectors/connect-yousign/node_modules/bun-types/docs/test/index.mdx +0 -409
  457. package/connectors/connect-yousign/node_modules/bun-types/docs/test/lifecycle.mdx +0 -366
  458. package/connectors/connect-yousign/node_modules/bun-types/docs/test/mocks.mdx +0 -637
  459. package/connectors/connect-yousign/node_modules/bun-types/docs/test/reporters.mdx +0 -126
  460. package/connectors/connect-yousign/node_modules/bun-types/docs/test/runtime-behavior.mdx +0 -342
  461. package/connectors/connect-yousign/node_modules/bun-types/docs/test/snapshots.mdx +0 -434
  462. package/connectors/connect-yousign/node_modules/bun-types/docs/test/writing-tests.mdx +0 -672
  463. package/connectors/connect-yousign/node_modules/bun-types/docs/typescript.mdx +0 -54
  464. package/connectors/connect-yousign/node_modules/bun-types/extensions.d.ts +0 -40
  465. package/connectors/connect-yousign/node_modules/bun-types/fetch.d.ts +0 -79
  466. package/connectors/connect-yousign/node_modules/bun-types/ffi.d.ts +0 -1154
  467. package/connectors/connect-yousign/node_modules/bun-types/globals.d.ts +0 -2067
  468. package/connectors/connect-yousign/node_modules/bun-types/html-rewriter.d.ts +0 -186
  469. package/connectors/connect-yousign/node_modules/bun-types/index.d.ts +0 -32
  470. package/connectors/connect-yousign/node_modules/bun-types/jsc.d.ts +0 -233
  471. package/connectors/connect-yousign/node_modules/bun-types/jsx.d.ts +0 -11
  472. package/connectors/connect-yousign/node_modules/bun-types/overrides.d.ts +0 -376
  473. package/connectors/connect-yousign/node_modules/bun-types/package.json +0 -37
  474. package/connectors/connect-yousign/node_modules/bun-types/redis.d.ts +0 -3352
  475. package/connectors/connect-yousign/node_modules/bun-types/s3.d.ts +0 -1335
  476. package/connectors/connect-yousign/node_modules/bun-types/security.d.ts +0 -101
  477. package/connectors/connect-yousign/node_modules/bun-types/serve.d.ts +0 -1296
  478. package/connectors/connect-yousign/node_modules/bun-types/shell.d.ts +0 -380
  479. package/connectors/connect-yousign/node_modules/bun-types/sql.d.ts +0 -887
  480. package/connectors/connect-yousign/node_modules/bun-types/sqlite.d.ts +0 -1322
  481. package/connectors/connect-yousign/node_modules/bun-types/test-globals.d.ts +0 -22
  482. package/connectors/connect-yousign/node_modules/bun-types/test.d.ts +0 -2392
  483. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/branding.d.ts +0 -283
  484. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/index.d.ts +0 -1207
  485. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/messages.d.ts +0 -395
  486. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/overloads.d.ts +0 -669
  487. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/utils.d.ts +0 -431
  488. package/connectors/connect-yousign/node_modules/bun-types/wasm.d.ts +0 -193
  489. package/connectors/connect-yousign/node_modules/chalk/license +0 -9
  490. package/connectors/connect-yousign/node_modules/chalk/package.json +0 -83
  491. package/connectors/connect-yousign/node_modules/chalk/readme.md +0 -297
  492. package/connectors/connect-yousign/node_modules/chalk/source/index.d.ts +0 -325
  493. package/connectors/connect-yousign/node_modules/chalk/source/index.js +0 -225
  494. package/connectors/connect-yousign/node_modules/chalk/source/utilities.js +0 -33
  495. package/connectors/connect-yousign/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +0 -236
  496. package/connectors/connect-yousign/node_modules/chalk/source/vendor/ansi-styles/index.js +0 -223
  497. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/browser.d.ts +0 -1
  498. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/browser.js +0 -34
  499. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/index.d.ts +0 -55
  500. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/index.js +0 -190
  501. package/connectors/connect-yousign/node_modules/commander/LICENSE +0 -22
  502. package/connectors/connect-yousign/node_modules/commander/Readme.md +0 -1157
  503. package/connectors/connect-yousign/node_modules/commander/esm.mjs +0 -16
  504. package/connectors/connect-yousign/node_modules/commander/index.js +0 -24
  505. package/connectors/connect-yousign/node_modules/commander/lib/argument.js +0 -149
  506. package/connectors/connect-yousign/node_modules/commander/lib/command.js +0 -2509
  507. package/connectors/connect-yousign/node_modules/commander/lib/error.js +0 -39
  508. package/connectors/connect-yousign/node_modules/commander/lib/help.js +0 -520
  509. package/connectors/connect-yousign/node_modules/commander/lib/option.js +0 -330
  510. package/connectors/connect-yousign/node_modules/commander/lib/suggestSimilar.js +0 -101
  511. package/connectors/connect-yousign/node_modules/commander/package-support.json +0 -16
  512. package/connectors/connect-yousign/node_modules/commander/package.json +0 -84
  513. package/connectors/connect-yousign/node_modules/commander/typings/esm.d.mts +0 -3
  514. package/connectors/connect-yousign/node_modules/commander/typings/index.d.ts +0 -969
  515. package/connectors/connect-yousign/node_modules/typescript/LICENSE.txt +0 -55
  516. package/connectors/connect-yousign/node_modules/typescript/README.md +0 -50
  517. package/connectors/connect-yousign/node_modules/typescript/SECURITY.md +0 -41
  518. package/connectors/connect-yousign/node_modules/typescript/ThirdPartyNoticeText.txt +0 -193
  519. package/connectors/connect-yousign/node_modules/typescript/bin/tsc +0 -2
  520. package/connectors/connect-yousign/node_modules/typescript/bin/tsserver +0 -2
  521. package/connectors/connect-yousign/node_modules/typescript/lib/_tsc.js +0 -133818
  522. package/connectors/connect-yousign/node_modules/typescript/lib/_tsserver.js +0 -659
  523. package/connectors/connect-yousign/node_modules/typescript/lib/_typingsInstaller.js +0 -222
  524. package/connectors/connect-yousign/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
  525. package/connectors/connect-yousign/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
  526. package/connectors/connect-yousign/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
  527. package/connectors/connect-yousign/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
  528. package/connectors/connect-yousign/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
  529. package/connectors/connect-yousign/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
  530. package/connectors/connect-yousign/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
  531. package/connectors/connect-yousign/node_modules/typescript/lib/lib.d.ts +0 -22
  532. package/connectors/connect-yousign/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
  533. package/connectors/connect-yousign/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
  534. package/connectors/connect-yousign/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
  535. package/connectors/connect-yousign/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
  536. package/connectors/connect-yousign/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
  537. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
  538. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
  539. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
  540. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
  541. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
  542. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
  543. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
  544. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
  545. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
  546. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
  547. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
  548. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
  549. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
  550. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
  551. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
  552. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
  553. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
  554. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
  555. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
  556. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
  557. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
  558. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
  559. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
  560. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
  561. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
  562. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
  563. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
  564. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
  565. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
  566. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
  567. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
  568. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
  569. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
  570. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
  571. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
  572. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
  573. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
  574. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
  575. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
  576. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
  577. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
  578. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
  579. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
  580. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
  581. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
  582. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
  583. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
  584. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
  585. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
  586. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
  587. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
  588. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
  589. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
  590. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
  591. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
  592. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
  593. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
  594. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
  595. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
  596. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
  597. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
  598. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
  599. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
  600. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
  601. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
  602. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
  603. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
  604. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
  605. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
  606. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
  607. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
  608. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
  609. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
  610. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
  611. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
  612. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
  613. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es6.d.ts +0 -23
  614. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
  615. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
  616. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
  617. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
  618. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
  619. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
  620. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
  621. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
  622. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
  623. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
  624. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
  625. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
  626. package/connectors/connect-yousign/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
  627. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
  628. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
  629. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
  630. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
  631. package/connectors/connect-yousign/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
  632. package/connectors/connect-yousign/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
  633. package/connectors/connect-yousign/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
  634. package/connectors/connect-yousign/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
  635. package/connectors/connect-yousign/node_modules/typescript/lib/tsc.js +0 -8
  636. package/connectors/connect-yousign/node_modules/typescript/lib/tsserver.js +0 -8
  637. package/connectors/connect-yousign/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
  638. package/connectors/connect-yousign/node_modules/typescript/lib/tsserverlibrary.js +0 -21
  639. package/connectors/connect-yousign/node_modules/typescript/lib/typesMap.json +0 -497
  640. package/connectors/connect-yousign/node_modules/typescript/lib/typescript.d.ts +0 -11437
  641. package/connectors/connect-yousign/node_modules/typescript/lib/typescript.js +0 -200276
  642. package/connectors/connect-yousign/node_modules/typescript/lib/typingsInstaller.js +0 -8
  643. package/connectors/connect-yousign/node_modules/typescript/lib/watchGuard.js +0 -53
  644. package/connectors/connect-yousign/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -2122
  645. package/connectors/connect-yousign/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -2122
  646. package/connectors/connect-yousign/node_modules/typescript/package.json +0 -120
  647. package/connectors/connect-yousign/node_modules/undici-types/LICENSE +0 -21
  648. package/connectors/connect-yousign/node_modules/undici-types/README.md +0 -6
  649. package/connectors/connect-yousign/node_modules/undici-types/agent.d.ts +0 -32
  650. package/connectors/connect-yousign/node_modules/undici-types/api.d.ts +0 -43
  651. package/connectors/connect-yousign/node_modules/undici-types/balanced-pool.d.ts +0 -30
  652. package/connectors/connect-yousign/node_modules/undici-types/cache-interceptor.d.ts +0 -173
  653. package/connectors/connect-yousign/node_modules/undici-types/cache.d.ts +0 -36
  654. package/connectors/connect-yousign/node_modules/undici-types/client-stats.d.ts +0 -15
  655. package/connectors/connect-yousign/node_modules/undici-types/client.d.ts +0 -108
  656. package/connectors/connect-yousign/node_modules/undici-types/connector.d.ts +0 -34
  657. package/connectors/connect-yousign/node_modules/undici-types/content-type.d.ts +0 -21
  658. package/connectors/connect-yousign/node_modules/undici-types/cookies.d.ts +0 -30
  659. package/connectors/connect-yousign/node_modules/undici-types/diagnostics-channel.d.ts +0 -74
  660. package/connectors/connect-yousign/node_modules/undici-types/dispatcher.d.ts +0 -276
  661. package/connectors/connect-yousign/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -22
  662. package/connectors/connect-yousign/node_modules/undici-types/errors.d.ts +0 -161
  663. package/connectors/connect-yousign/node_modules/undici-types/eventsource.d.ts +0 -66
  664. package/connectors/connect-yousign/node_modules/undici-types/fetch.d.ts +0 -211
  665. package/connectors/connect-yousign/node_modules/undici-types/formdata.d.ts +0 -108
  666. package/connectors/connect-yousign/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  667. package/connectors/connect-yousign/node_modules/undici-types/global-origin.d.ts +0 -7
  668. package/connectors/connect-yousign/node_modules/undici-types/h2c-client.d.ts +0 -73
  669. package/connectors/connect-yousign/node_modules/undici-types/handlers.d.ts +0 -15
  670. package/connectors/connect-yousign/node_modules/undici-types/header.d.ts +0 -160
  671. package/connectors/connect-yousign/node_modules/undici-types/index.d.ts +0 -88
  672. package/connectors/connect-yousign/node_modules/undici-types/interceptors.d.ts +0 -73
  673. package/connectors/connect-yousign/node_modules/undici-types/mock-agent.d.ts +0 -68
  674. package/connectors/connect-yousign/node_modules/undici-types/mock-call-history.d.ts +0 -111
  675. package/connectors/connect-yousign/node_modules/undici-types/mock-client.d.ts +0 -27
  676. package/connectors/connect-yousign/node_modules/undici-types/mock-errors.d.ts +0 -12
  677. package/connectors/connect-yousign/node_modules/undici-types/mock-interceptor.d.ts +0 -94
  678. package/connectors/connect-yousign/node_modules/undici-types/mock-pool.d.ts +0 -27
  679. package/connectors/connect-yousign/node_modules/undici-types/package.json +0 -55
  680. package/connectors/connect-yousign/node_modules/undici-types/patch.d.ts +0 -29
  681. package/connectors/connect-yousign/node_modules/undici-types/pool-stats.d.ts +0 -19
  682. package/connectors/connect-yousign/node_modules/undici-types/pool.d.ts +0 -41
  683. package/connectors/connect-yousign/node_modules/undici-types/proxy-agent.d.ts +0 -29
  684. package/connectors/connect-yousign/node_modules/undici-types/readable.d.ts +0 -68
  685. package/connectors/connect-yousign/node_modules/undici-types/retry-agent.d.ts +0 -8
  686. package/connectors/connect-yousign/node_modules/undici-types/retry-handler.d.ts +0 -125
  687. package/connectors/connect-yousign/node_modules/undici-types/round-robin-pool.d.ts +0 -41
  688. package/connectors/connect-yousign/node_modules/undici-types/snapshot-agent.d.ts +0 -109
  689. package/connectors/connect-yousign/node_modules/undici-types/util.d.ts +0 -18
  690. package/connectors/connect-yousign/node_modules/undici-types/utility.d.ts +0 -7
  691. package/connectors/connect-yousign/node_modules/undici-types/webidl.d.ts +0 -341
  692. package/connectors/connect-yousign/node_modules/undici-types/websocket.d.ts +0 -186
  693. package/dashboard/dist/assets/index-CSlS3oNV.css +0 -1
  694. package/dashboard/dist/assets/index-NCasN7x4.js +0 -284
  695. /package/dist/{server/server.test.d.ts → core/builtins.test.d.ts} +0 -0
package/bin/serve.js CHANGED
@@ -10009,7 +10009,7 @@ var init_promotions = __esm(() => {
10009
10009
  });
10010
10010
 
10011
10011
  // src/server/serve.ts
10012
- import { existsSync as existsSync15, readdirSync as readdirSync9, readFileSync as readFileSync7, writeFileSync as writeFileSync6, mkdirSync as mkdirSync10 } from "fs";
10012
+ import { existsSync as existsSync17, readdirSync as readdirSync11, readFileSync as readFileSync9, writeFileSync as writeFileSync8, mkdirSync as mkdirSync12 } from "fs";
10013
10013
 
10014
10014
  // src/db/agents.ts
10015
10015
  init_database();
@@ -10188,7 +10188,8 @@ init_scheduler();
10188
10188
 
10189
10189
  // src/lib/workflow-runner.ts
10190
10190
  init_strip();
10191
- import { spawn as spawn2 } from "child_process";
10191
+ import { spawn as nodeSpawn } from "child_process";
10192
+ var spawnImpl = nodeSpawn;
10192
10193
  async function runStep(step, previousOutput) {
10193
10194
  return new Promise((resolve) => {
10194
10195
  const args = [...step.args ?? []];
@@ -10196,7 +10197,7 @@ async function runStep(step, previousOutput) {
10196
10197
  args.push("--input", previousOutput.trim().slice(0, 4096));
10197
10198
  }
10198
10199
  const cmdArgs = ["run", step.connector, step.command, ...args, "--format", "json"];
10199
- const proc = spawn2("connectors", cmdArgs, { shell: false });
10200
+ const proc = spawnImpl("connectors", cmdArgs, { shell: false });
10200
10201
  let output = "";
10201
10202
  proc.stdout.on("data", (d) => {
10202
10203
  output += d.toString();
@@ -10239,12 +10240,12 @@ async function runWorkflow(workflow) {
10239
10240
 
10240
10241
  // src/server/serve.ts
10241
10242
  init_database();
10242
- import { join as join16, dirname as dirname8, extname, basename } from "path";
10243
+ import { join as join18, dirname as dirname8, extname, basename as basename3 } from "path";
10243
10244
  import { fileURLToPath as fileURLToPath6 } from "url";
10244
10245
 
10245
10246
  // src/lib/registry.ts
10246
- import { existsSync as existsSync10, readFileSync as readFileSync4 } from "fs";
10247
- import { join as join11, dirname as dirname5 } from "path";
10247
+ import { existsSync as existsSync12, readFileSync as readFileSync6 } from "fs";
10248
+ import { join as join13, dirname as dirname5 } from "path";
10248
10249
  import { fileURLToPath as fileURLToPath3 } from "url";
10249
10250
 
10250
10251
  // src/core/errors.ts
@@ -10259,7 +10260,7 @@ class ConnectorDefinitionError extends Error {
10259
10260
 
10260
10261
  // src/core/connector.ts
10261
10262
  var CONNECTOR_NAME_RE = /^[a-z0-9-]+$/;
10262
- var OPERATION_NAME_RE = /^[a-z0-9:_-]+$/;
10263
+ var OPERATION_NAME_RE = /^[A-Za-z0-9:._-]+$/;
10263
10264
  function defineConnector(definition) {
10264
10265
  const { meta, auth, operations } = definition;
10265
10266
  if (!CONNECTOR_NAME_RE.test(meta.name)) {
@@ -15157,10 +15158,731 @@ var githubConnector = defineConnector({
15157
15158
  }
15158
15159
  }
15159
15160
  });
15161
+
15162
+ // src/core/connectors/gmail.ts
15163
+ import { existsSync as existsSync8, mkdirSync as mkdirSync6, readFileSync as readFileSync3, readdirSync as readdirSync5, writeFileSync as writeFileSync3 } from "fs";
15164
+ import { homedir as homedir8 } from "os";
15165
+ import { basename, join as join9 } from "path";
15166
+ var GMAIL_API_BASE = "https://gmail.googleapis.com/gmail/v1";
15167
+ var TOKEN_URL = "https://oauth2.googleapis.com/token";
15168
+ var REFRESH_BUFFER_MS = 5 * 60 * 1000;
15169
+ var listMessagesSchema = exports_external2.object({
15170
+ max: exports_external2.coerce.number().int().positive().max(500).optional(),
15171
+ maxResults: exports_external2.coerce.number().int().positive().max(500).optional(),
15172
+ pageToken: exports_external2.string().optional(),
15173
+ query: exports_external2.string().optional(),
15174
+ q: exports_external2.string().optional(),
15175
+ label: exports_external2.string().optional(),
15176
+ labelIds: exports_external2.union([exports_external2.string(), exports_external2.array(exports_external2.string())]).optional(),
15177
+ includeSpamTrash: exports_external2.boolean().optional()
15178
+ });
15179
+ var messageIdSchema = exports_external2.object({
15180
+ args: exports_external2.array(exports_external2.union([exports_external2.string(), exports_external2.number(), exports_external2.boolean()])).optional(),
15181
+ messageId: exports_external2.string().optional()
15182
+ });
15183
+ var readMessageSchema = messageIdSchema.extend({
15184
+ body: exports_external2.boolean().optional(),
15185
+ html: exports_external2.boolean().optional(),
15186
+ format: exports_external2.enum(["full", "metadata", "minimal", "raw"]).optional()
15187
+ });
15188
+ var attachmentListSchema = messageIdSchema;
15189
+ var attachmentDownloadSchema = messageIdSchema.extend({
15190
+ attachmentId: exports_external2.string().optional(),
15191
+ filename: exports_external2.string().optional(),
15192
+ mimeType: exports_external2.string().optional(),
15193
+ dir: exports_external2.string().optional(),
15194
+ outputDir: exports_external2.string().optional()
15195
+ });
15196
+ var historyListSchema = exports_external2.object({
15197
+ startHistoryId: exports_external2.string(),
15198
+ historyTypes: exports_external2.union([exports_external2.string(), exports_external2.array(exports_external2.string())]).optional(),
15199
+ labelId: exports_external2.string().optional(),
15200
+ maxResults: exports_external2.coerce.number().int().positive().max(500).optional(),
15201
+ pageToken: exports_external2.string().optional()
15202
+ });
15203
+ var replySchema = messageIdSchema.extend({
15204
+ body: exports_external2.string(),
15205
+ html: exports_external2.boolean().optional(),
15206
+ isHtml: exports_external2.boolean().optional(),
15207
+ cc: exports_external2.union([exports_external2.string(), exports_external2.array(exports_external2.string())]).optional(),
15208
+ bcc: exports_external2.union([exports_external2.string(), exports_external2.array(exports_external2.string())]).optional()
15209
+ });
15210
+ var gmailConnector = defineConnector({
15211
+ meta: {
15212
+ name: "gmail",
15213
+ displayName: "Gmail",
15214
+ description: "Profile-aware Gmail mailbox operations for sync, labels, attachments, history, and replies.",
15215
+ category: "communication",
15216
+ tags: ["google", "gmail", "email", "mailbox"]
15217
+ },
15218
+ auth: {
15219
+ type: "oauth2",
15220
+ supportsProfiles: true,
15221
+ fields: [
15222
+ { key: "clientId", env: "GMAIL_CLIENT_ID", label: "OAuth client ID" },
15223
+ { key: "clientSecret", env: "GMAIL_CLIENT_SECRET", label: "OAuth client secret", secret: true }
15224
+ ]
15225
+ },
15226
+ createContext: ({ profile }) => ({ profile: profile || "default" }),
15227
+ operations: {
15228
+ "profiles.list": {
15229
+ summary: "List configured Gmail profiles.",
15230
+ execute: () => ({ profiles: listProfiles() })
15231
+ },
15232
+ "profile.get": {
15233
+ summary: "Get the authenticated Gmail profile.",
15234
+ execute: async ({ context }) => requestJson(context.profile, "/users/me/profile", {})
15235
+ },
15236
+ "messages.list": {
15237
+ summary: "List Gmail messages.",
15238
+ inputSchema: listMessagesSchema,
15239
+ execute: async ({ context }, input) => {
15240
+ const labelIds = normalizeStringArray(input.labelIds ?? input.label);
15241
+ return requestJson(context.profile, "/users/me/messages", {
15242
+ maxResults: input.maxResults ?? input.max ?? 50,
15243
+ pageToken: input.pageToken,
15244
+ q: input.q ?? input.query,
15245
+ labelIds: labelIds.length > 0 ? labelIds.join(",") : undefined,
15246
+ includeSpamTrash: input.includeSpamTrash
15247
+ });
15248
+ }
15249
+ },
15250
+ "messages.read": {
15251
+ summary: "Read a Gmail message with optional extracted body.",
15252
+ inputSchema: readMessageSchema,
15253
+ execute: async ({ context }, input) => {
15254
+ const messageId = getMessageId(input);
15255
+ const message = await requestJson(context.profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: input.format ?? "full" });
15256
+ const headers = headersToObject(message.payload?.headers ?? []);
15257
+ return {
15258
+ ...message,
15259
+ from: headers.From ?? headers.from ?? "",
15260
+ to: headers.To ?? headers.to ?? "",
15261
+ cc: headers.Cc ?? headers.cc ?? "",
15262
+ subject: headers.Subject ?? headers.subject ?? "",
15263
+ date: headers.Date ?? headers.date ?? "",
15264
+ body: input.body ? extractBody(message, Boolean(input.html)) : undefined,
15265
+ size: message.sizeEstimate
15266
+ };
15267
+ }
15268
+ },
15269
+ "messages.getRaw": {
15270
+ summary: "Read raw base64url Gmail message content.",
15271
+ inputSchema: messageIdSchema,
15272
+ execute: async ({ context }, input) => {
15273
+ const messageId = getMessageId(input);
15274
+ return requestJson(context.profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: "raw" });
15275
+ }
15276
+ },
15277
+ "messages.mark-read": {
15278
+ summary: "Mark a message as read.",
15279
+ inputSchema: messageIdSchema,
15280
+ execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), undefined, ["UNREAD"])
15281
+ },
15282
+ "messages.mark-unread": {
15283
+ summary: "Mark a message as unread.",
15284
+ inputSchema: messageIdSchema,
15285
+ execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), ["UNREAD"], undefined)
15286
+ },
15287
+ "messages.archive": {
15288
+ summary: "Archive a message by removing the INBOX label.",
15289
+ inputSchema: messageIdSchema,
15290
+ execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), undefined, ["INBOX"])
15291
+ },
15292
+ "messages.star": {
15293
+ summary: "Star a message.",
15294
+ inputSchema: messageIdSchema,
15295
+ execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), ["STARRED"], undefined)
15296
+ },
15297
+ "messages.reply": {
15298
+ summary: "Reply to a Gmail message in the same thread.",
15299
+ inputSchema: replySchema,
15300
+ execute: async ({ context }, input) => replyToMessage(context.profile, getMessageId(input), input)
15301
+ },
15302
+ "attachments.list": {
15303
+ summary: "List Gmail message attachments.",
15304
+ inputSchema: attachmentListSchema,
15305
+ execute: async ({ context }, input) => {
15306
+ const message = await requestJson(context.profile, `/users/me/messages/${encodeURIComponent(getMessageId(input))}`, { format: "full" });
15307
+ return collectAttachments(message.payload);
15308
+ }
15309
+ },
15310
+ "attachments.download": {
15311
+ summary: "Download one or all Gmail message attachments to disk.",
15312
+ inputSchema: attachmentDownloadSchema,
15313
+ execute: async ({ context }, input) => downloadAttachments(context.profile, input)
15314
+ },
15315
+ "labels.list": {
15316
+ summary: "List Gmail labels.",
15317
+ execute: async ({ context }) => requestJson(context.profile, "/users/me/labels", {})
15318
+ },
15319
+ "history.list": {
15320
+ summary: "List Gmail mailbox history from a history id.",
15321
+ inputSchema: historyListSchema,
15322
+ execute: async ({ context }, input) => requestJson(context.profile, "/users/me/history", {
15323
+ startHistoryId: input.startHistoryId,
15324
+ historyTypes: normalizeStringArray(input.historyTypes).join(",") || undefined,
15325
+ labelId: input.labelId,
15326
+ maxResults: input.maxResults,
15327
+ pageToken: input.pageToken
15328
+ })
15329
+ }
15330
+ }
15331
+ });
15332
+ async function modifyMessage(profile, messageId, addLabelIds, removeLabelIds) {
15333
+ return requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}/modify`, {}, {
15334
+ method: "POST",
15335
+ body: {
15336
+ addLabelIds: addLabelIds ?? [],
15337
+ removeLabelIds: removeLabelIds ?? []
15338
+ }
15339
+ });
15340
+ }
15341
+ async function replyToMessage(profile, messageId, input) {
15342
+ const original = await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: "full" });
15343
+ const headers = headersToObject(original.payload?.headers ?? []);
15344
+ const subject = normalizeReplySubject(headers.Subject ?? headers.subject ?? "");
15345
+ const to = headers.From ?? headers.from ?? "";
15346
+ const messageIdHeader = headers["Message-ID"] ?? headers["Message-Id"] ?? headers["message-id"] ?? "";
15347
+ const references = [headers.References ?? headers.references, messageIdHeader].filter(Boolean).join(" ");
15348
+ const raw = buildRawEmail({
15349
+ to,
15350
+ cc: normalizeStringArray(input.cc),
15351
+ bcc: normalizeStringArray(input.bcc),
15352
+ subject,
15353
+ body: input.body,
15354
+ isHtml: Boolean(input.html ?? input.isHtml),
15355
+ inReplyTo: messageIdHeader,
15356
+ references
15357
+ });
15358
+ return requestJson(profile, "/users/me/messages/send", {}, {
15359
+ method: "POST",
15360
+ body: {
15361
+ raw: Buffer.from(raw).toString("base64url"),
15362
+ threadId: original.threadId
15363
+ }
15364
+ });
15365
+ }
15366
+ async function downloadAttachments(profile, input) {
15367
+ const messageId = getMessageId(input);
15368
+ const outputDir = input.dir ?? input.outputDir ?? join9(configDirs()[0], "attachments", messageId);
15369
+ mkdirSync6(outputDir, { recursive: true });
15370
+ const attachments = input.attachmentId && input.filename ? [{
15371
+ attachmentId: input.attachmentId,
15372
+ filename: input.filename,
15373
+ mimeType: input.mimeType ?? "application/octet-stream",
15374
+ size: 0
15375
+ }] : collectAttachments((await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: "full" })).payload);
15376
+ const downloaded = [];
15377
+ for (const attachment of attachments) {
15378
+ const data = await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}/attachments/${encodeURIComponent(attachment.attachmentId)}`, {});
15379
+ const filename = safeFilename(attachment.filename);
15380
+ const path = join9(outputDir, filename);
15381
+ const buffer = Buffer.from(data.data, "base64url");
15382
+ writeFileSync3(path, buffer);
15383
+ downloaded.push({
15384
+ filename,
15385
+ path,
15386
+ size: buffer.length,
15387
+ mimeType: attachment.mimeType
15388
+ });
15389
+ }
15390
+ return downloaded;
15391
+ }
15392
+ async function requestJson(profile, path, params, options = {}) {
15393
+ const token = await getValidAccessToken(profile);
15394
+ const url = new URL(`${GMAIL_API_BASE}${path}`);
15395
+ for (const [key, value] of Object.entries(params)) {
15396
+ if (value !== undefined && value !== null && value !== "")
15397
+ url.searchParams.append(key, String(value));
15398
+ }
15399
+ const response = await fetch(url, {
15400
+ method: options.method ?? "GET",
15401
+ headers: {
15402
+ Authorization: `Bearer ${token}`,
15403
+ Accept: "application/json",
15404
+ ...options.body ? { "Content-Type": "application/json" } : {}
15405
+ },
15406
+ body: options.body ? JSON.stringify(options.body) : undefined
15407
+ });
15408
+ const text = await response.text();
15409
+ const data = text ? JSON.parse(text) : {};
15410
+ if (!response.ok) {
15411
+ const error = data;
15412
+ throw new Error(`Gmail request failed (${response.status}): ${error.error?.message ?? response.statusText}`);
15413
+ }
15414
+ return data;
15415
+ }
15416
+ async function getValidAccessToken(profile) {
15417
+ if (process.env.GMAIL_ACCESS_TOKEN)
15418
+ return process.env.GMAIL_ACCESS_TOKEN;
15419
+ const tokens = loadTokens(profile);
15420
+ if (!tokens?.accessToken && !tokens?.refreshToken) {
15421
+ throw new Error(`Gmail profile "${profile}" is not authenticated. Run: connectors auth gmail`);
15422
+ }
15423
+ if (tokens.accessToken && (!tokens.expiresAt || Date.now() < tokens.expiresAt - REFRESH_BUFFER_MS))
15424
+ return tokens.accessToken;
15425
+ if (!tokens.refreshToken)
15426
+ return tokens.accessToken ?? "";
15427
+ return (await refreshAccessToken(profile, tokens)).accessToken ?? "";
15428
+ }
15429
+ async function refreshAccessToken(profile, currentTokens) {
15430
+ const credentials = loadCredentials(profile);
15431
+ if (!credentials.clientId || !credentials.clientSecret)
15432
+ throw new Error("Gmail OAuth credentials are not configured. Run: connectors auth gmail");
15433
+ if (!currentTokens.refreshToken)
15434
+ throw new Error(`Gmail profile "${profile}" has no refresh token. Run: connectors auth gmail`);
15435
+ const response = await fetch(TOKEN_URL, {
15436
+ method: "POST",
15437
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
15438
+ body: new URLSearchParams({
15439
+ client_id: credentials.clientId,
15440
+ client_secret: credentials.clientSecret,
15441
+ refresh_token: currentTokens.refreshToken,
15442
+ grant_type: "refresh_token"
15443
+ })
15444
+ });
15445
+ const data = await response.json().catch(() => ({}));
15446
+ if (!response.ok || !data.access_token)
15447
+ throw new Error(`Gmail token refresh failed: ${data.error_description || data.error || response.statusText}`);
15448
+ const tokens = {
15449
+ accessToken: data.access_token,
15450
+ refreshToken: currentTokens.refreshToken,
15451
+ expiresAt: Date.now() + (data.expires_in ?? 3600) * 1000,
15452
+ tokenType: data.token_type ?? currentTokens.tokenType,
15453
+ scope: data.scope ?? currentTokens.scope
15454
+ };
15455
+ saveTokens(profile, tokens);
15456
+ return tokens;
15457
+ }
15458
+ function listProfiles() {
15459
+ const profiles = new Set;
15460
+ for (const baseDir of configDirs()) {
15461
+ const profilesDir = join9(baseDir, "profiles");
15462
+ if (!existsSync8(profilesDir))
15463
+ continue;
15464
+ for (const entry of readdirSync5(profilesDir, { withFileTypes: true })) {
15465
+ if (entry.isDirectory())
15466
+ profiles.add(entry.name);
15467
+ if (entry.isFile() && entry.name.endsWith(".json"))
15468
+ profiles.add(basename(entry.name, ".json"));
15469
+ }
15470
+ }
15471
+ return Array.from(profiles).sort((a, b) => a.localeCompare(b));
15472
+ }
15473
+ function loadCredentials(profile) {
15474
+ const envClientId = process.env.GMAIL_CLIENT_ID ?? process.env.GOOGLE_CLIENT_ID;
15475
+ const envClientSecret = process.env.GMAIL_CLIENT_SECRET ?? process.env.GOOGLE_CLIENT_SECRET;
15476
+ if (envClientId && envClientSecret)
15477
+ return { clientId: envClientId, clientSecret: envClientSecret };
15478
+ for (const baseDir of configDirs()) {
15479
+ const credentials = {
15480
+ ...readJson(join9(baseDir, "credentials.json")),
15481
+ ...readJson(join9(baseDir, "profiles", profile, "config.json"))
15482
+ };
15483
+ if (credentials.clientId || credentials.clientSecret)
15484
+ return credentials;
15485
+ }
15486
+ return {};
15487
+ }
15488
+ function loadTokens(profile) {
15489
+ for (const baseDir of configDirs()) {
15490
+ const fromProfile = readJson(join9(baseDir, "profiles", profile, "tokens.json"));
15491
+ if (fromProfile)
15492
+ return fromProfile;
15493
+ const flat = readJson(join9(baseDir, "profiles", `${profile}.json`));
15494
+ if (flat)
15495
+ return flat.tokens ?? (flat.accessToken || flat.refreshToken ? flat : null);
15496
+ }
15497
+ return null;
15498
+ }
15499
+ function saveTokens(profile, tokens) {
15500
+ const baseDir = configDirs().find((dir) => existsSync8(dir)) ?? configDirs()[0];
15501
+ const profileDir = join9(baseDir, "profiles", profile);
15502
+ mkdirSync6(profileDir, { recursive: true });
15503
+ writeFileSync3(join9(profileDir, "tokens.json"), JSON.stringify(tokens, null, 2), { mode: 384 });
15504
+ }
15505
+ function configDirs() {
15506
+ const explicit = process.env.HASNA_GMAIL_CONNECTOR_DIR ?? process.env.GMAIL_CONNECTOR_DIR;
15507
+ if (explicit)
15508
+ return [explicit];
15509
+ const baseDir = process.env.HASNA_CONNECTORS_DIR ?? join9(homedir8(), ".hasna", "connectors");
15510
+ return [join9(baseDir, "connect-gmail"), join9(baseDir, "gmail")];
15511
+ }
15512
+ function readJson(path) {
15513
+ if (!existsSync8(path))
15514
+ return null;
15515
+ try {
15516
+ return JSON.parse(readFileSync3(path, "utf8"));
15517
+ } catch {
15518
+ return null;
15519
+ }
15520
+ }
15521
+ function getMessageId(input) {
15522
+ const id = input.messageId ?? (input.args?.[0] != null ? String(input.args[0]) : undefined);
15523
+ if (!id)
15524
+ throw new Error("Gmail messageId is required");
15525
+ return id;
15526
+ }
15527
+ function headersToObject(headers) {
15528
+ const out = {};
15529
+ for (const header of headers)
15530
+ out[header.name] = header.value;
15531
+ return out;
15532
+ }
15533
+ function extractBody(message, preferHtml = false) {
15534
+ if (!message.payload)
15535
+ return "";
15536
+ const targetType = preferHtml ? "text/html" : "text/plain";
15537
+ const parts = [];
15538
+ collectTextParts(message.payload, parts);
15539
+ return parts.find((part) => part.mimeType === targetType)?.data ?? parts.find((part) => part.mimeType.startsWith("text/"))?.data ?? "";
15540
+ }
15541
+ function collectTextParts(part, results) {
15542
+ const mimeType = (part.mimeType ?? "").split(";")[0].trim().toLowerCase();
15543
+ if (part.body?.data && mimeType.startsWith("text/")) {
15544
+ results.push({ mimeType, data: Buffer.from(part.body.data, "base64url").toString("utf8") });
15545
+ }
15546
+ for (const child of part.parts ?? [])
15547
+ collectTextParts(child, results);
15548
+ }
15549
+ function collectAttachments(part, attachments = []) {
15550
+ if (!part)
15551
+ return attachments;
15552
+ if (part.body?.attachmentId && part.filename) {
15553
+ attachments.push({
15554
+ attachmentId: part.body.attachmentId,
15555
+ filename: part.filename,
15556
+ mimeType: part.mimeType ?? "application/octet-stream",
15557
+ size: part.body.size ?? 0,
15558
+ partId: part.partId
15559
+ });
15560
+ }
15561
+ for (const child of part.parts ?? [])
15562
+ collectAttachments(child, attachments);
15563
+ return attachments;
15564
+ }
15565
+ function normalizeStringArray(value) {
15566
+ if (!value)
15567
+ return [];
15568
+ return Array.isArray(value) ? value : value.split(",").map((item) => item.trim()).filter(Boolean);
15569
+ }
15570
+ function normalizeReplySubject(subject) {
15571
+ return subject.toLowerCase().startsWith("re:") ? subject : `Re: ${subject}`;
15572
+ }
15573
+ function buildRawEmail(input) {
15574
+ const headers = [
15575
+ `To: ${input.to}`,
15576
+ input.cc.length ? `Cc: ${input.cc.join(", ")}` : "",
15577
+ input.bcc.length ? `Bcc: ${input.bcc.join(", ")}` : "",
15578
+ `Subject: ${input.subject}`,
15579
+ input.inReplyTo ? `In-Reply-To: ${input.inReplyTo}` : "",
15580
+ input.references ? `References: ${input.references}` : "",
15581
+ "MIME-Version: 1.0",
15582
+ `Content-Type: ${input.isHtml ? "text/html" : "text/plain"}; charset=UTF-8`
15583
+ ].filter(Boolean);
15584
+ return `${headers.join(`\r
15585
+ `)}\r
15586
+ \r
15587
+ ${input.body}`;
15588
+ }
15589
+ function safeFilename(filename) {
15590
+ return basename(filename.replace(/[\u00A0\u2000-\u200B\u202F\u205F\u3000]/g, " ")).replace(/[\/\\]/g, "_");
15591
+ }
15592
+
15593
+ // src/core/connectors/googledrive.ts
15594
+ import { existsSync as existsSync9, mkdirSync as mkdirSync7, readFileSync as readFileSync4, readdirSync as readdirSync6, writeFileSync as writeFileSync4 } from "fs";
15595
+ import { homedir as homedir9 } from "os";
15596
+ import { basename as basename2, join as join10 } from "path";
15597
+ var DRIVE_API_BASE = "https://www.googleapis.com/drive/v3";
15598
+ var TOKEN_URL2 = "https://oauth2.googleapis.com/token";
15599
+ var REFRESH_BUFFER_MS2 = 5 * 60 * 1000;
15600
+ var DEFAULT_FILE_FIELDS = [
15601
+ "id",
15602
+ "name",
15603
+ "mimeType",
15604
+ "parents",
15605
+ "version",
15606
+ "md5Checksum",
15607
+ "size",
15608
+ "modifiedTime",
15609
+ "createdTime",
15610
+ "trashed",
15611
+ "webViewLink",
15612
+ "webContentLink"
15613
+ ].join(",");
15614
+ var DEFAULT_EXPORT_FORMATS = {
15615
+ document: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
15616
+ spreadsheet: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
15617
+ presentation: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
15618
+ drawing: "image/png"
15619
+ };
15620
+ var EXPORT_EXTENSIONS = {
15621
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ".docx",
15622
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ".xlsx",
15623
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation": ".pptx",
15624
+ "application/pdf": ".pdf",
15625
+ "text/plain": ".txt",
15626
+ "text/csv": ".csv",
15627
+ "image/png": ".png",
15628
+ "image/jpeg": ".jpg",
15629
+ "image/svg+xml": ".svg"
15630
+ };
15631
+ var listFilesSchema = exports_external2.object({
15632
+ pageSize: exports_external2.coerce.number().int().positive().max(1000).optional(),
15633
+ pageToken: exports_external2.string().optional(),
15634
+ q: exports_external2.string().optional(),
15635
+ fields: exports_external2.string().optional(),
15636
+ orderBy: exports_external2.string().optional(),
15637
+ corpora: exports_external2.enum(["user", "drive", "allDrives"]).optional(),
15638
+ driveId: exports_external2.string().optional(),
15639
+ supportsAllDrives: exports_external2.boolean().optional(),
15640
+ includeItemsFromAllDrives: exports_external2.boolean().optional()
15641
+ });
15642
+ var listDrivesSchema = exports_external2.object({
15643
+ pageSize: exports_external2.coerce.number().int().positive().max(100).optional(),
15644
+ pageToken: exports_external2.string().optional(),
15645
+ q: exports_external2.string().optional()
15646
+ });
15647
+ var fileIdSchema = exports_external2.object({
15648
+ fileId: exports_external2.string(),
15649
+ fields: exports_external2.string().optional()
15650
+ });
15651
+ var downloadSchema = exports_external2.object({
15652
+ fileId: exports_external2.string(),
15653
+ file: exports_external2.object({
15654
+ id: exports_external2.string(),
15655
+ name: exports_external2.string(),
15656
+ mimeType: exports_external2.string()
15657
+ }).optional(),
15658
+ exportMimeType: exports_external2.string().optional()
15659
+ });
15660
+ var googleDriveConnector = defineConnector({
15661
+ meta: {
15662
+ name: "googledrive",
15663
+ displayName: "Google Drive",
15664
+ description: "Profile-aware Google Drive discovery and file download operations.",
15665
+ category: "storage",
15666
+ tags: ["google", "drive", "files", "storage"]
15667
+ },
15668
+ auth: {
15669
+ type: "oauth2",
15670
+ supportsProfiles: true,
15671
+ fields: [
15672
+ { key: "clientId", env: "GOOGLE_CLIENT_ID", label: "OAuth client ID" },
15673
+ { key: "clientSecret", env: "GOOGLE_CLIENT_SECRET", label: "OAuth client secret", secret: true }
15674
+ ]
15675
+ },
15676
+ createContext: ({ profile }) => ({ profile: profile || "default" }),
15677
+ operations: {
15678
+ "profiles.list": {
15679
+ summary: "List configured Google Drive profiles.",
15680
+ execute: () => ({ profiles: listProfiles2() })
15681
+ },
15682
+ "files.list": {
15683
+ summary: "List Google Drive files.",
15684
+ inputSchema: listFilesSchema,
15685
+ execute: async ({ context }, input) => requestJson2(context.profile, "/files", {
15686
+ pageSize: input.pageSize ?? 1000,
15687
+ pageToken: input.pageToken,
15688
+ q: input.q,
15689
+ fields: input.fields ?? `nextPageToken,files(${DEFAULT_FILE_FIELDS})`,
15690
+ orderBy: input.orderBy ?? "modifiedTime desc",
15691
+ corpora: input.corpora,
15692
+ driveId: input.driveId,
15693
+ supportsAllDrives: input.supportsAllDrives ?? true,
15694
+ includeItemsFromAllDrives: input.includeItemsFromAllDrives ?? false
15695
+ })
15696
+ },
15697
+ "files.get": {
15698
+ summary: "Get Google Drive file metadata.",
15699
+ inputSchema: fileIdSchema,
15700
+ execute: async ({ context }, input) => requestJson2(context.profile, `/files/${encodeURIComponent(input.fileId)}`, {
15701
+ fields: input.fields ?? DEFAULT_FILE_FIELDS,
15702
+ supportsAllDrives: true
15703
+ })
15704
+ },
15705
+ "files.download": {
15706
+ summary: "Download or export a Google Drive file as base64 content.",
15707
+ inputSchema: downloadSchema,
15708
+ execute: async ({ context }, input) => {
15709
+ const file = input.file ?? await requestJson2(context.profile, `/files/${encodeURIComponent(input.fileId)}`, { fields: DEFAULT_FILE_FIELDS, supportsAllDrives: true });
15710
+ const exportMimeType = file.mimeType.startsWith("application/vnd.google-apps.") ? input.exportMimeType ?? defaultExportMimeType(file.mimeType) : undefined;
15711
+ const data = await requestBinary(context.profile, exportMimeType ? `/files/${encodeURIComponent(file.id)}/export` : `/files/${encodeURIComponent(file.id)}`, exportMimeType ? { mimeType: exportMimeType, supportsAllDrives: true } : { alt: "media", supportsAllDrives: true });
15712
+ const mimeType = exportMimeType ?? file.mimeType ?? "application/octet-stream";
15713
+ return {
15714
+ dataBase64: Buffer.from(data).toString("base64"),
15715
+ filename: exportMimeType ? `${file.name}${extensionForMimeType(exportMimeType)}` : file.name,
15716
+ mimeType
15717
+ };
15718
+ }
15719
+ },
15720
+ "drives.list": {
15721
+ summary: "List Google shared drives.",
15722
+ inputSchema: listDrivesSchema,
15723
+ execute: async ({ context }, input) => requestJson2(context.profile, "/drives", {
15724
+ pageSize: input.pageSize ?? 100,
15725
+ pageToken: input.pageToken,
15726
+ q: input.q
15727
+ })
15728
+ }
15729
+ }
15730
+ });
15731
+ async function requestJson2(profile, path, params) {
15732
+ const response = await request(profile, path, params);
15733
+ const text = await response.text();
15734
+ return text ? JSON.parse(text) : {};
15735
+ }
15736
+ async function requestBinary(profile, path, params) {
15737
+ return (await request(profile, path, params)).arrayBuffer();
15738
+ }
15739
+ async function request(profile, path, params) {
15740
+ const token = await getValidAccessToken2(profile);
15741
+ const url = new URL(`${DRIVE_API_BASE}${path}`);
15742
+ for (const [key, value] of Object.entries(params)) {
15743
+ if (value !== undefined && value !== null && value !== "")
15744
+ url.searchParams.set(key, String(value));
15745
+ }
15746
+ const response = await fetch(url, { headers: { Authorization: `Bearer ${token}`, Accept: "application/json" } });
15747
+ if (!response.ok) {
15748
+ const body = await response.text().catch(() => "");
15749
+ throw new Error(`Google Drive request failed (${response.status}): ${extractGoogleError(body) || response.statusText}`);
15750
+ }
15751
+ return response;
15752
+ }
15753
+ async function getValidAccessToken2(profile) {
15754
+ if (process.env.GOOGLE_ACCESS_TOKEN)
15755
+ return process.env.GOOGLE_ACCESS_TOKEN;
15756
+ const tokens = loadTokens2(profile);
15757
+ if (!tokens?.accessToken && !tokens?.refreshToken) {
15758
+ throw new Error(`Google Drive profile "${profile}" is not authenticated. Run: connectors auth googledrive`);
15759
+ }
15760
+ if (tokens.accessToken && (!tokens.expiresAt || Date.now() < tokens.expiresAt - REFRESH_BUFFER_MS2))
15761
+ return tokens.accessToken;
15762
+ if (!tokens.refreshToken)
15763
+ return tokens.accessToken ?? "";
15764
+ return (await refreshAccessToken2(profile, tokens)).accessToken ?? "";
15765
+ }
15766
+ async function refreshAccessToken2(profile, currentTokens) {
15767
+ const credentials = loadCredentials2(profile);
15768
+ if (!credentials.clientId || !credentials.clientSecret)
15769
+ throw new Error("Google Drive OAuth credentials are not configured. Run: connectors auth googledrive");
15770
+ if (!currentTokens.refreshToken)
15771
+ throw new Error(`Google Drive profile "${profile}" has no refresh token. Run: connectors auth googledrive`);
15772
+ const response = await fetch(TOKEN_URL2, {
15773
+ method: "POST",
15774
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
15775
+ body: new URLSearchParams({
15776
+ client_id: credentials.clientId,
15777
+ client_secret: credentials.clientSecret,
15778
+ refresh_token: currentTokens.refreshToken,
15779
+ grant_type: "refresh_token"
15780
+ })
15781
+ });
15782
+ const data = await response.json().catch(() => ({}));
15783
+ if (!response.ok || !data.access_token)
15784
+ throw new Error(`Google Drive token refresh failed: ${data.error_description || data.error || response.statusText}`);
15785
+ const tokens = {
15786
+ accessToken: data.access_token,
15787
+ refreshToken: currentTokens.refreshToken,
15788
+ expiresAt: Date.now() + (data.expires_in ?? 3600) * 1000,
15789
+ tokenType: data.token_type ?? currentTokens.tokenType,
15790
+ scope: data.scope ?? currentTokens.scope
15791
+ };
15792
+ saveTokens2(profile, tokens);
15793
+ return tokens;
15794
+ }
15795
+ function listProfiles2() {
15796
+ const profiles = new Set;
15797
+ for (const baseDir of configDirs2()) {
15798
+ const profilesDir = join10(baseDir, "profiles");
15799
+ if (!existsSync9(profilesDir))
15800
+ continue;
15801
+ for (const entry of readdirSync6(profilesDir, { withFileTypes: true })) {
15802
+ if (entry.isDirectory())
15803
+ profiles.add(entry.name);
15804
+ if (entry.isFile() && entry.name.endsWith(".json"))
15805
+ profiles.add(basename2(entry.name, ".json"));
15806
+ }
15807
+ }
15808
+ return Array.from(profiles).sort((a, b) => a.localeCompare(b));
15809
+ }
15810
+ function loadCredentials2(profile) {
15811
+ const envClientId = process.env.GOOGLE_CLIENT_ID;
15812
+ const envClientSecret = process.env.GOOGLE_CLIENT_SECRET;
15813
+ if (envClientId && envClientSecret)
15814
+ return { clientId: envClientId, clientSecret: envClientSecret };
15815
+ for (const baseDir of configDirs2()) {
15816
+ const credentials = {
15817
+ ...readJson2(join10(baseDir, "credentials.json")),
15818
+ ...readJson2(join10(baseDir, "profiles", profile, "config.json"))
15819
+ };
15820
+ if (credentials.clientId || credentials.clientSecret)
15821
+ return credentials;
15822
+ }
15823
+ return {};
15824
+ }
15825
+ function loadTokens2(profile) {
15826
+ for (const baseDir of configDirs2()) {
15827
+ const fromProfile = readJson2(join10(baseDir, "profiles", profile, "tokens.json"));
15828
+ if (fromProfile)
15829
+ return fromProfile;
15830
+ const flat = readJson2(join10(baseDir, "profiles", `${profile}.json`));
15831
+ if (flat)
15832
+ return flat.tokens ?? (flat.accessToken || flat.refreshToken ? flat : null);
15833
+ }
15834
+ return null;
15835
+ }
15836
+ function saveTokens2(profile, tokens) {
15837
+ const baseDir = configDirs2().find((dir) => existsSync9(dir)) ?? configDirs2()[0];
15838
+ const profileDir = join10(baseDir, "profiles", profile);
15839
+ mkdirSync7(profileDir, { recursive: true });
15840
+ writeFileSync4(join10(profileDir, "tokens.json"), JSON.stringify(tokens, null, 2), { mode: 384 });
15841
+ }
15842
+ function configDirs2() {
15843
+ const explicit = process.env.HASNA_GOOGLE_DRIVE_CONNECTOR_DIR ?? process.env.GOOGLE_DRIVE_CONNECTOR_DIR;
15844
+ if (explicit)
15845
+ return [explicit];
15846
+ const baseDir = process.env.HASNA_CONNECTORS_DIR ?? join10(homedir9(), ".hasna", "connectors");
15847
+ return [join10(baseDir, "connect-googledrive"), join10(baseDir, "googledrive")];
15848
+ }
15849
+ function readJson2(path) {
15850
+ if (!existsSync9(path))
15851
+ return null;
15852
+ try {
15853
+ return JSON.parse(readFileSync4(path, "utf8"));
15854
+ } catch {
15855
+ return null;
15856
+ }
15857
+ }
15858
+ function defaultExportMimeType(googleMimeType) {
15859
+ if (googleMimeType.endsWith(".document"))
15860
+ return DEFAULT_EXPORT_FORMATS.document;
15861
+ if (googleMimeType.endsWith(".spreadsheet"))
15862
+ return DEFAULT_EXPORT_FORMATS.spreadsheet;
15863
+ if (googleMimeType.endsWith(".presentation"))
15864
+ return DEFAULT_EXPORT_FORMATS.presentation;
15865
+ if (googleMimeType.endsWith(".drawing"))
15866
+ return DEFAULT_EXPORT_FORMATS.drawing;
15867
+ throw new Error(`Cannot export Google Workspace file type: ${googleMimeType}`);
15868
+ }
15869
+ function extensionForMimeType(mimeType) {
15870
+ return EXPORT_EXTENSIONS[mimeType] ?? "";
15871
+ }
15872
+ function extractGoogleError(body) {
15873
+ if (!body)
15874
+ return "";
15875
+ try {
15876
+ const parsed = JSON.parse(body);
15877
+ return parsed.error?.message ?? body;
15878
+ } catch {
15879
+ return body;
15880
+ }
15881
+ }
15160
15882
  // package.json
15161
15883
  var package_default = {
15162
15884
  name: "@hasna/connectors",
15163
- version: "1.3.24",
15885
+ version: "1.3.26",
15164
15886
  description: "Open source connector library - Install API connectors with a single command",
15165
15887
  type: "module",
15166
15888
  bin: {
@@ -15248,15 +15970,15 @@ var package_default = {
15248
15970
 
15249
15971
  // src/core/connectors/imessage.ts
15250
15972
  import {
15251
- existsSync as existsSync8,
15252
- mkdirSync as mkdirSync6,
15253
- readFileSync as readFileSync3,
15254
- readdirSync as readdirSync5,
15973
+ existsSync as existsSync10,
15974
+ mkdirSync as mkdirSync8,
15975
+ readFileSync as readFileSync5,
15976
+ readdirSync as readdirSync7,
15255
15977
  rmSync,
15256
15978
  statSync as statSync2,
15257
- writeFileSync as writeFileSync3
15979
+ writeFileSync as writeFileSync5
15258
15980
  } from "fs";
15259
- import { join as join9 } from "path";
15981
+ import { join as join11 } from "path";
15260
15982
  init_database();
15261
15983
  var CONNECTOR_DIRNAME = "connect-imessage";
15262
15984
  var COMMAND_SPECS = [
@@ -15418,36 +16140,36 @@ var messageReplyInputSchema = exports_external2.object({
15418
16140
  deviceId: exports_external2.string().optional()
15419
16141
  });
15420
16142
  function getConfigDir2() {
15421
- return join9(getConnectorsHome(), CONNECTOR_DIRNAME);
16143
+ return join11(getConnectorsHome(), CONNECTOR_DIRNAME);
15422
16144
  }
15423
16145
  function getProfilesDir() {
15424
- return join9(getConfigDir2(), "profiles");
16146
+ return join11(getConfigDir2(), "profiles");
15425
16147
  }
15426
16148
  function getCurrentProfile() {
15427
- const currentProfileFile = join9(getConfigDir2(), "current_profile");
15428
- if (!existsSync8(currentProfileFile)) {
16149
+ const currentProfileFile = join11(getConfigDir2(), "current_profile");
16150
+ if (!existsSync10(currentProfileFile)) {
15429
16151
  return "default";
15430
16152
  }
15431
16153
  try {
15432
- return readFileSync3(currentProfileFile, "utf-8").trim() || "default";
16154
+ return readFileSync5(currentProfileFile, "utf-8").trim() || "default";
15433
16155
  } catch {
15434
16156
  return "default";
15435
16157
  }
15436
16158
  }
15437
16159
  function setCurrentProfile(profile) {
15438
16160
  const configDir = getConfigDir2();
15439
- mkdirSync6(configDir, { recursive: true });
15440
- writeFileSync3(join9(configDir, "current_profile"), profile);
16161
+ mkdirSync8(configDir, { recursive: true });
16162
+ writeFileSync5(join11(configDir, "current_profile"), profile);
15441
16163
  }
15442
16164
  function getFlatProfilePath(profile) {
15443
- return join9(getProfilesDir(), `${profile}.json`);
16165
+ return join11(getProfilesDir(), `${profile}.json`);
15444
16166
  }
15445
16167
  function getDirectoryProfilePath(profile) {
15446
- return join9(getProfilesDir(), profile, "config.json");
16168
+ return join11(getProfilesDir(), profile, "config.json");
15447
16169
  }
15448
16170
  function loadJsonFile(path) {
15449
16171
  try {
15450
- return JSON.parse(readFileSync3(path, "utf-8"));
16172
+ return JSON.parse(readFileSync5(path, "utf-8"));
15451
16173
  } catch {
15452
16174
  return {};
15453
16175
  }
@@ -15463,8 +16185,8 @@ function sanitizeProfileConfig(config) {
15463
16185
  };
15464
16186
  }
15465
16187
  function loadProfile(profile = getCurrentProfile()) {
15466
- const flatConfig = existsSync8(getFlatProfilePath(profile)) ? loadJsonFile(getFlatProfilePath(profile)) : {};
15467
- const directoryConfig = existsSync8(getDirectoryProfilePath(profile)) ? loadJsonFile(getDirectoryProfilePath(profile)) : {};
16188
+ const flatConfig = existsSync10(getFlatProfilePath(profile)) ? loadJsonFile(getFlatProfilePath(profile)) : {};
16189
+ const directoryConfig = existsSync10(getDirectoryProfilePath(profile)) ? loadJsonFile(getDirectoryProfilePath(profile)) : {};
15468
16190
  return sanitizeProfileConfig({
15469
16191
  ...flatConfig,
15470
16192
  ...directoryConfig
@@ -15472,25 +16194,25 @@ function loadProfile(profile = getCurrentProfile()) {
15472
16194
  }
15473
16195
  function writeProfile(profile, config) {
15474
16196
  const profilesDir = getProfilesDir();
15475
- mkdirSync6(profilesDir, { recursive: true });
15476
- writeFileSync3(getFlatProfilePath(profile), JSON.stringify(config, null, 2) + `
16197
+ mkdirSync8(profilesDir, { recursive: true });
16198
+ writeFileSync5(getFlatProfilePath(profile), JSON.stringify(config, null, 2) + `
15477
16199
  `);
15478
16200
  }
15479
16201
  function profileExists(profile) {
15480
16202
  if (profile === "default") {
15481
16203
  return true;
15482
16204
  }
15483
- return existsSync8(getFlatProfilePath(profile)) || existsSync8(join9(getProfilesDir(), profile));
16205
+ return existsSync10(getFlatProfilePath(profile)) || existsSync10(join11(getProfilesDir(), profile));
15484
16206
  }
15485
- function listProfiles() {
16207
+ function listProfiles3() {
15486
16208
  const profilesDir = getProfilesDir();
15487
16209
  const seen = new Set(["default"]);
15488
- if (!existsSync8(profilesDir)) {
16210
+ if (!existsSync10(profilesDir)) {
15489
16211
  return [...seen];
15490
16212
  }
15491
16213
  try {
15492
- for (const entry of readdirSync5(profilesDir)) {
15493
- const fullPath = join9(profilesDir, entry);
16214
+ for (const entry of readdirSync7(profilesDir)) {
16215
+ const fullPath = join11(profilesDir, entry);
15494
16216
  const stat = statSync2(fullPath);
15495
16217
  if (stat.isDirectory()) {
15496
16218
  seen.add(entry);
@@ -15511,11 +16233,11 @@ function createProfile(profile, config = {}) {
15511
16233
  }
15512
16234
  function clearProfile(profile = getCurrentProfile()) {
15513
16235
  const flatPath = getFlatProfilePath(profile);
15514
- const directoryPath = join9(getProfilesDir(), profile);
15515
- if (existsSync8(flatPath)) {
16236
+ const directoryPath = join11(getProfilesDir(), profile);
16237
+ if (existsSync10(flatPath)) {
15516
16238
  rmSync(flatPath);
15517
16239
  }
15518
- if (existsSync8(directoryPath)) {
16240
+ if (existsSync10(directoryPath)) {
15519
16241
  rmSync(directoryPath, { recursive: true, force: true });
15520
16242
  }
15521
16243
  }
@@ -15811,7 +16533,7 @@ async function sendMessage(context, input) {
15811
16533
  direction: "outbound"
15812
16534
  });
15813
16535
  }
15814
- async function replyToMessage(context, input) {
16536
+ async function replyToMessage2(context, input) {
15815
16537
  const payload = await bridgeRequest(context, "/messages/reply", {
15816
16538
  method: "POST",
15817
16539
  body: {
@@ -15925,7 +16647,7 @@ async function runProfileCommand2(args, context) {
15925
16647
  switch (subcommand) {
15926
16648
  case "list": {
15927
16649
  const current = getCurrentProfile();
15928
- const profiles = listProfiles();
16650
+ const profiles = listProfiles3();
15929
16651
  return successOutput({ current, profiles }, context.format, () => profiles.map((profile) => `${profile}${profile === current ? " (active)" : ""}`).join(`
15930
16652
  `));
15931
16653
  }
@@ -16099,7 +16821,7 @@ async function runMessageCommand(args, context) {
16099
16821
  if (!conversationId || !text) {
16100
16822
  return failure2("Usage: connect-imessage message reply --conversation <id> --text <text>");
16101
16823
  }
16102
- return successOutput(await replyToMessage(resolved, {
16824
+ return successOutput(await replyToMessage2(resolved, {
16103
16825
  conversationId,
16104
16826
  text,
16105
16827
  replyToMessageId: asString2(options.replyTo),
@@ -16257,7 +16979,7 @@ var imessageConnector = defineConnector({
16257
16979
  summary: "Reply to an existing conversation through the bridge",
16258
16980
  inputSchema: messageReplyInputSchema,
16259
16981
  async execute({ context }, input) {
16260
- return replyToMessage(context, input);
16982
+ return replyToMessage2(context, input);
16261
16983
  }
16262
16984
  }
16263
16985
  },
@@ -16320,19 +17042,19 @@ var imessageConnector = defineConnector({
16320
17042
  });
16321
17043
 
16322
17044
  // src/core/connectors/stripe.ts
16323
- import { existsSync as existsSync9 } from "fs";
16324
- import { dirname as dirname4, join as join10 } from "path";
17045
+ import { existsSync as existsSync11 } from "fs";
17046
+ import { dirname as dirname4, join as join12 } from "path";
16325
17047
  import { fileURLToPath as fileURLToPath2, pathToFileURL as pathToFileURL2 } from "url";
16326
17048
  var __dirname3 = dirname4(fileURLToPath2(import.meta.url));
16327
17049
  function resolveStripeConnectorDir() {
16328
17050
  const candidates = [
16329
- join10(__dirname3, "..", "..", "..", "connectors", "connect-stripe"),
16330
- join10(__dirname3, "..", "..", "connectors", "connect-stripe"),
16331
- join10(__dirname3, "..", "connectors", "connect-stripe"),
16332
- join10(process.cwd(), "connectors", "connect-stripe")
17051
+ join12(__dirname3, "..", "..", "..", "connectors", "connect-stripe"),
17052
+ join12(__dirname3, "..", "..", "connectors", "connect-stripe"),
17053
+ join12(__dirname3, "..", "connectors", "connect-stripe"),
17054
+ join12(process.cwd(), "connectors", "connect-stripe")
16333
17055
  ];
16334
17056
  for (const candidate of candidates) {
16335
- if (existsSync9(candidate)) {
17057
+ if (existsSync11(candidate)) {
16336
17058
  return candidate;
16337
17059
  }
16338
17060
  }
@@ -16571,10 +17293,10 @@ function buildCommandHelp2(spec) {
16571
17293
  var ROOT_HELP3 = buildRootHelp2(COMMAND_SPECS2);
16572
17294
  var COMMAND_HELP3 = Object.fromEntries(COMMAND_SPECS2.map((spec) => [spec.name, buildCommandHelp2(spec)]));
16573
17295
  async function loadStripeApiModule() {
16574
- return await import(pathToFileURL2(join10(CONNECTOR_DIR2, "src", "api", "index.ts")).href);
17296
+ return await import(pathToFileURL2(join12(CONNECTOR_DIR2, "src", "api", "index.ts")).href);
16575
17297
  }
16576
17298
  async function loadStripeConfigModule() {
16577
- return await import(pathToFileURL2(join10(CONNECTOR_DIR2, "src", "utils", "config.ts")).href);
17299
+ return await import(pathToFileURL2(join12(CONNECTOR_DIR2, "src", "utils", "config.ts")).href);
16578
17300
  }
16579
17301
  function extractGlobalArgs3(args) {
16580
17302
  const remaining = [];
@@ -17186,7 +17908,9 @@ var stripeConnector = defineConnector({
17186
17908
 
17187
17909
  // src/core/builtins.ts
17188
17910
  var INTERNAL_CONNECTOR_DEFINITIONS = [
17911
+ gmailConnector,
17189
17912
  githubConnector,
17913
+ googleDriveConnector,
17190
17914
  imessageConnector,
17191
17915
  stripeConnector
17192
17916
  ];
@@ -23211,17 +23935,17 @@ function loadConnectorVersions() {
23211
23935
  versionsLoaded = true;
23212
23936
  const thisDir = dirname5(fileURLToPath3(import.meta.url));
23213
23937
  const candidates = [
23214
- join11(thisDir, "..", "connectors"),
23215
- join11(thisDir, "..", "..", "connectors")
23938
+ join13(thisDir, "..", "connectors"),
23939
+ join13(thisDir, "..", "..", "connectors")
23216
23940
  ];
23217
- const connectorsDir = candidates.find((d) => existsSync10(d));
23941
+ const connectorsDir = candidates.find((d) => existsSync12(d));
23218
23942
  if (!connectorsDir)
23219
23943
  return;
23220
23944
  for (const connector of CONNECTORS) {
23221
23945
  try {
23222
- const pkgPath = join11(connectorsDir, `connect-${connector.name}`, "package.json");
23223
- if (existsSync10(pkgPath)) {
23224
- const pkg = JSON.parse(readFileSync4(pkgPath, "utf-8"));
23946
+ const pkgPath = join13(connectorsDir, `connect-${connector.name}`, "package.json");
23947
+ if (existsSync12(pkgPath)) {
23948
+ const pkg = JSON.parse(readFileSync6(pkgPath, "utf-8"));
23225
23949
  connector.version = pkg.version || "0.0.0";
23226
23950
  continue;
23227
23951
  }
@@ -23234,16 +23958,16 @@ function loadConnectorVersions() {
23234
23958
  }
23235
23959
 
23236
23960
  // src/lib/installer.ts
23237
- import { existsSync as existsSync11, mkdirSync as mkdirSync7, readFileSync as readFileSync5, writeFileSync as writeFileSync4, readdirSync as readdirSync6, statSync as statSync3, rmSync as rmSync2 } from "fs";
23238
- import { join as join12, dirname as dirname6 } from "path";
23961
+ import { existsSync as existsSync13, mkdirSync as mkdirSync9, readFileSync as readFileSync7, writeFileSync as writeFileSync6, readdirSync as readdirSync8, statSync as statSync3, rmSync as rmSync2 } from "fs";
23962
+ import { join as join14, dirname as dirname6 } from "path";
23239
23963
  import { fileURLToPath as fileURLToPath4 } from "url";
23240
23964
  var __dirname4 = dirname6(fileURLToPath4(import.meta.url));
23241
23965
  function resolveConnectorsDir() {
23242
- const fromBin = join12(__dirname4, "..", "connectors");
23243
- if (existsSync11(fromBin))
23966
+ const fromBin = join14(__dirname4, "..", "connectors");
23967
+ if (existsSync13(fromBin))
23244
23968
  return fromBin;
23245
- const fromSrc = join12(__dirname4, "..", "..", "connectors");
23246
- if (existsSync11(fromSrc))
23969
+ const fromSrc = join14(__dirname4, "..", "..", "connectors");
23970
+ if (existsSync13(fromSrc))
23247
23971
  return fromSrc;
23248
23972
  return fromBin;
23249
23973
  }
@@ -23255,21 +23979,21 @@ function normalizeConnectorName(name) {
23255
23979
  return name.startsWith("connect-") ? name.slice("connect-".length) : name;
23256
23980
  }
23257
23981
  function getProjectConnectorsDir(targetDir) {
23258
- return join12(targetDir, PROJECT_CONNECTORS_DIRNAME);
23982
+ return join14(targetDir, PROJECT_CONNECTORS_DIRNAME);
23259
23983
  }
23260
23984
  function getEnablementManifestPath(targetDir) {
23261
- return join12(getProjectConnectorsDir(targetDir), ENABLEMENT_MANIFEST_FILENAME);
23985
+ return join14(getProjectConnectorsDir(targetDir), ENABLEMENT_MANIFEST_FILENAME);
23262
23986
  }
23263
23987
  function getLegacyInstallPath(targetDir, name) {
23264
- return join12(getProjectConnectorsDir(targetDir), `connect-${normalizeConnectorName(name)}`);
23988
+ return join14(getProjectConnectorsDir(targetDir), `connect-${normalizeConnectorName(name)}`);
23265
23989
  }
23266
23990
  function loadEnablementManifest(targetDir) {
23267
23991
  const manifestPath = getEnablementManifestPath(targetDir);
23268
- if (!existsSync11(manifestPath)) {
23992
+ if (!existsSync13(manifestPath)) {
23269
23993
  return null;
23270
23994
  }
23271
23995
  try {
23272
- const raw = JSON.parse(readFileSync5(manifestPath, "utf-8"));
23996
+ const raw = JSON.parse(readFileSync7(manifestPath, "utf-8"));
23273
23997
  if (!Array.isArray(raw.connectors)) {
23274
23998
  return null;
23275
23999
  }
@@ -23285,11 +24009,11 @@ function loadEnablementManifest(targetDir) {
23285
24009
  }
23286
24010
  function getLegacyInstalledConnectors(targetDir) {
23287
24011
  const connectorsDir = getProjectConnectorsDir(targetDir);
23288
- if (!existsSync11(connectorsDir)) {
24012
+ if (!existsSync13(connectorsDir)) {
23289
24013
  return [];
23290
24014
  }
23291
- return readdirSync6(connectorsDir).filter((entry) => {
23292
- const fullPath = join12(connectorsDir, entry);
24015
+ return readdirSync8(connectorsDir).filter((entry) => {
24016
+ const fullPath = join14(connectorsDir, entry);
23293
24017
  return entry.startsWith("connect-") && statSync3(fullPath).isDirectory();
23294
24018
  }).map((entry) => entry.replace("connect-", "")).sort();
23295
24019
  }
@@ -23298,7 +24022,7 @@ function getEnabledConnectors(targetDir) {
23298
24022
  return [...new Set([...manifestConnectors, ...getLegacyInstalledConnectors(targetDir)])].sort();
23299
24023
  }
23300
24024
  function updateConnectorsIndex(connectorsDir, connectors18) {
23301
- const indexPath = join12(connectorsDir, ENABLEMENT_INDEX_FILENAME);
24025
+ const indexPath = join14(connectorsDir, ENABLEMENT_INDEX_FILENAME);
23302
24026
  const connectorList = connectors18.map((connector) => ` "${connector}",`).join(`
23303
24027
  `);
23304
24028
  const content = `/**
@@ -23314,28 +24038,28 @@ ${connectorList}
23314
24038
 
23315
24039
  export type EnabledConnectorName = typeof enabledConnectors[number];
23316
24040
  `;
23317
- writeFileSync4(indexPath, content);
24041
+ writeFileSync6(indexPath, content);
23318
24042
  }
23319
24043
  function writeEnablementManifest(targetDir, connectors18) {
23320
24044
  const connectorsDir = getProjectConnectorsDir(targetDir);
23321
- mkdirSync7(connectorsDir, { recursive: true });
24045
+ mkdirSync9(connectorsDir, { recursive: true });
23322
24046
  const manifest = {
23323
24047
  version: 1,
23324
24048
  mode: "internal",
23325
24049
  updatedAt: new Date().toISOString(),
23326
24050
  connectors: [...new Set(connectors18.map((value) => normalizeConnectorName(value)))].sort()
23327
24051
  };
23328
- writeFileSync4(getEnablementManifestPath(targetDir), JSON.stringify(manifest, null, 2) + `
24052
+ writeFileSync6(getEnablementManifestPath(targetDir), JSON.stringify(manifest, null, 2) + `
23329
24053
  `);
23330
24054
  updateConnectorsIndex(connectorsDir, manifest.connectors);
23331
24055
  }
23332
24056
  function getConnectorPath(name) {
23333
24057
  const connectorName = name.startsWith("connect-") ? name : `connect-${name}`;
23334
- return join12(CONNECTORS_DIR, connectorName);
24058
+ return join14(CONNECTORS_DIR, connectorName);
23335
24059
  }
23336
24060
  function connectorExists(name) {
23337
24061
  const normalizedName = normalizeConnectorName(name);
23338
- return hasInternalConnectorDefinition(normalizedName) || existsSync11(getConnectorPath(normalizedName));
24062
+ return hasInternalConnectorDefinition(normalizedName) || existsSync13(getConnectorPath(normalizedName));
23339
24063
  }
23340
24064
  function installConnector(name, options = {}) {
23341
24065
  const { targetDir = process.cwd(), overwrite = false } = options;
@@ -23368,7 +24092,7 @@ function installConnector(name, options = {}) {
23368
24092
  try {
23369
24093
  const nextEnabled = [...new Set([...installed, normalizedName])].sort();
23370
24094
  writeEnablementManifest(targetDir, nextEnabled);
23371
- if (overwrite && existsSync11(legacyInstallPath)) {
24095
+ if (overwrite && existsSync13(legacyInstallPath)) {
23372
24096
  rmSync2(legacyInstallPath, { recursive: true });
23373
24097
  }
23374
24098
  return {
@@ -23400,9 +24124,9 @@ function parseConnectorDocs(raw) {
23400
24124
  function getConnectorDocs(name) {
23401
24125
  const normalizedName = normalizeConnectorName(name);
23402
24126
  const connectorPath = getConnectorPath(normalizedName);
23403
- const claudeMdPath = join12(connectorPath, "CLAUDE.md");
23404
- if (existsSync11(claudeMdPath)) {
23405
- return parseConnectorDocs(readFileSync5(claudeMdPath, "utf-8"));
24127
+ const claudeMdPath = join14(connectorPath, "CLAUDE.md");
24128
+ if (existsSync13(claudeMdPath)) {
24129
+ return parseConnectorDocs(readFileSync7(claudeMdPath, "utf-8"));
23406
24130
  }
23407
24131
  const internalDocs = getInternalConnectorDefinition(normalizedName)?.docsMarkdown;
23408
24132
  if (internalDocs) {
@@ -23446,282 +24170,56 @@ function removeConnector(name, targetDir = process.cwd()) {
23446
24170
  const nextEnabled = installed.filter((connector) => connector !== normalizedName);
23447
24171
  writeEnablementManifest(targetDir, nextEnabled);
23448
24172
  const legacyInstallPath = getLegacyInstallPath(targetDir, normalizedName);
23449
- if (existsSync11(legacyInstallPath)) {
24173
+ if (existsSync13(legacyInstallPath)) {
23450
24174
  rmSync2(legacyInstallPath, { recursive: true });
23451
24175
  }
23452
24176
  return true;
23453
24177
  }
23454
24178
 
23455
24179
  // src/lib/runner.ts
23456
- import { existsSync as existsSync12, readdirSync as readdirSync7 } from "fs";
23457
- import { join as join13, dirname as dirname7 } from "path";
24180
+ import { existsSync as existsSync16, readdirSync as readdirSync10 } from "fs";
24181
+ import { join as join17, dirname as dirname7 } from "path";
23458
24182
  import { fileURLToPath as fileURLToPath5 } from "url";
23459
- import { spawn as spawn3 } from "child_process";
24183
+ import { spawn as spawn2 } from "child_process";
23460
24184
  init_database();
23461
- var __dirname5 = dirname7(fileURLToPath5(import.meta.url));
23462
- function resolveConnectorsDir2() {
23463
- const fromBin = join13(__dirname5, "..", "connectors");
23464
- if (existsSync12(fromBin))
23465
- return fromBin;
23466
- const fromSrc = join13(__dirname5, "..", "..", "connectors");
23467
- if (existsSync12(fromSrc))
23468
- return fromSrc;
23469
- return fromBin;
23470
- }
23471
- var CONNECTORS_DIR2 = resolveConnectorsDir2();
23472
- function buildInternalHelpText(name, commands) {
23473
- const lines = [
23474
- `Usage: connect-${name} [options] [command]`,
23475
- "",
23476
- "Commands:"
23477
- ];
23478
- for (const command of commands) {
23479
- lines.push(` ${command.name.padEnd(24)} ${command.summary}`);
24185
+
24186
+ // src/server/auth.ts
24187
+ import { existsSync as existsSync15, readFileSync as readFileSync8, writeFileSync as writeFileSync7, mkdirSync as mkdirSync11, readdirSync as readdirSync9, rmSync as rmSync3, statSync as statSync5 } from "fs";
24188
+ import { randomBytes } from "crypto";
24189
+ import { join as join16 } from "path";
24190
+
24191
+ // src/lib/lock.ts
24192
+ init_database();
24193
+ import { openSync, closeSync, unlinkSync, existsSync as existsSync14, statSync as statSync4 } from "fs";
24194
+ import { join as join15 } from "path";
24195
+ import { mkdirSync as mkdirSync10 } from "fs";
24196
+ var LOCK_TIMEOUT_MS = 5000;
24197
+ var LOCK_RETRY_MS = 100;
24198
+ var STALE_LOCK_MS = 30000;
24199
+
24200
+ class LockTimeoutError extends Error {
24201
+ connector;
24202
+ constructor(connector) {
24203
+ super(`Could not acquire write lock for connector "${connector}" within ${LOCK_TIMEOUT_MS}ms. Another agent may be writing. Try again shortly.`);
24204
+ this.connector = connector;
24205
+ this.name = "LockTimeoutError";
23480
24206
  }
23481
- return lines.join(`
23482
- `);
23483
24207
  }
23484
- function getInternalCommandRuntime(name) {
23485
- return getInternalConnectorDefinition(name)?.commandRuntime;
24208
+ function lockPath(connector) {
24209
+ const dir = join15(getConnectorsHome(), `connect-${connector}`);
24210
+ mkdirSync10(dir, { recursive: true });
24211
+ return join15(dir, ".write.lock");
23486
24212
  }
23487
- var ENV_VAR_NAME_OVERRIDES = {
23488
- googlemaps: ["GOOGLE_MAPS"],
23489
- googletasks: ["GOOGLE_TASKS", "GOOGLE"],
23490
- google: ["GOOGLE"],
23491
- stabilityai: ["STABILITY"],
23492
- openweathermap: ["OPENWEATHERMAP", "OPENWEATHER"]
23493
- };
23494
- function buildEnvWithCredentials(connectorName, baseEnv) {
23495
- const env = { ...baseEnv };
23496
- const prefixes = ENV_VAR_NAME_OVERRIDES[connectorName] || [
23497
- connectorName.toUpperCase().replace(/-/g, "_")
23498
- ];
23499
- for (const prefix of prefixes) {
23500
- const canonicalKey = `${prefix}_API_KEY`;
23501
- if (env[canonicalKey])
23502
- continue;
23503
- const alternatives = [
23504
- `HASNAXYZ_${prefix}_LIVE_API_KEY`,
23505
- `HASNA_${prefix}_LIVE_API_KEY`,
23506
- `${prefix}_LIVE_API_KEY`,
23507
- `${prefix}_KEY`,
23508
- `${prefix}_TOKEN`
23509
- ];
23510
- for (const alt of alternatives) {
23511
- const value = env[alt];
23512
- if (value) {
23513
- env[canonicalKey] = value;
23514
- break;
23515
- }
23516
- }
23517
- }
23518
- return env;
23519
- }
23520
- function getConnectorCliPath(name) {
23521
- const safeName = name.replace(/[^a-z0-9-]/g, "");
23522
- const connectorDir = join13(CONNECTORS_DIR2, `connect-${safeName}`);
23523
- const cliPath = join13(connectorDir, "src", "cli", "index.ts");
23524
- if (existsSync12(cliPath))
23525
- return cliPath;
23526
- return null;
23527
- }
23528
- function hasConnectorCommandSurface(name) {
23529
- return Boolean(getInternalCommandRuntime(name)?.commands.length || getConnectorCliPath(name));
23530
- }
23531
- function normalizeCommanderUsage(usage) {
23532
- const commandToken = usage.trim().split(/\s+/)[0];
23533
- if (!commandToken || commandToken === "help")
23534
- return null;
23535
- const aliases = commandToken.split("|").filter(Boolean);
23536
- const [name, ...rest] = aliases;
23537
- if (!name)
23538
- return null;
23539
- return {
23540
- name,
23541
- aliases: rest,
23542
- usage: usage.trim()
23543
- };
23544
- }
23545
- function parseCommanderHelpOperations(helpText) {
23546
- const operations = [];
23547
- const lines = helpText.split(`
23548
- `);
23549
- let inCommands = false;
23550
- for (const line of lines) {
23551
- if (line.trim().startsWith("Commands:")) {
23552
- inCommands = true;
23553
- continue;
23554
- }
23555
- if (!inCommands)
23556
- continue;
23557
- if (line.trim() === "") {
23558
- if (operations.length > 0)
23559
- inCommands = false;
23560
- continue;
23561
- }
23562
- const row = line.match(/^ {2}(\S.*?)(?: {2,}(.+))?$/);
23563
- if (!row)
23564
- continue;
23565
- const usage = row[1].trim();
23566
- const summary = (row[2] ?? "").trim();
23567
- const normalized = normalizeCommanderUsage(usage);
23568
- if (!normalized)
23569
- continue;
23570
- operations.push({
23571
- ...normalized,
23572
- summary,
23573
- source: "cli"
23574
- });
23575
- }
23576
- return operations;
23577
- }
23578
- function runConnectorCommand2(name, args, timeoutMs = 30000) {
23579
- getConnectorsHome();
23580
- const internalRuntime = getInternalCommandRuntime(name);
23581
- if (internalRuntime?.run) {
23582
- return Promise.resolve(internalRuntime.run(args)).then((result) => {
23583
- if (result) {
23584
- const stdout = result.stdout.trim();
23585
- const stderr = (result.stderr ?? "").trim();
23586
- const exitCode = result.exitCode ?? (result.success === false ? 1 : 0);
23587
- return {
23588
- stdout,
23589
- stderr,
23590
- exitCode,
23591
- success: result.success ?? exitCode === 0
23592
- };
23593
- }
23594
- return runLegacyConnectorCommand(name, args, timeoutMs);
23595
- });
23596
- }
23597
- return runLegacyConnectorCommand(name, args, timeoutMs);
23598
- }
23599
- function runLegacyConnectorCommand(name, args, timeoutMs = 30000) {
23600
- const cliPath = getConnectorCliPath(name);
23601
- if (!cliPath) {
23602
- return Promise.resolve({
23603
- stdout: "",
23604
- stderr: `Connector '${name}' not found or has no CLI.`,
23605
- exitCode: 1,
23606
- success: false
23607
- });
23608
- }
23609
- return new Promise((resolve) => {
23610
- const proc = spawn3("bun", ["run", cliPath, ...args], {
23611
- timeout: timeoutMs,
23612
- env: buildEnvWithCredentials(name, process.env),
23613
- stdio: ["pipe", "pipe", "pipe"]
23614
- });
23615
- let stdout = "";
23616
- let stderr = "";
23617
- proc.stdout.on("data", (data) => {
23618
- stdout += data.toString();
23619
- });
23620
- proc.stderr.on("data", (data) => {
23621
- stderr += data.toString();
23622
- });
23623
- proc.on("close", (code) => {
23624
- resolve({
23625
- stdout: stdout.trim(),
23626
- stderr: stderr.trim(),
23627
- exitCode: code ?? 1,
23628
- success: code === 0
23629
- });
23630
- });
23631
- proc.on("error", (err) => {
23632
- resolve({
23633
- stdout: "",
23634
- stderr: err.message,
23635
- exitCode: 1,
23636
- success: false
23637
- });
23638
- });
23639
- });
23640
- }
23641
- async function getConnectorOperations(name) {
23642
- const internalRuntime = getInternalCommandRuntime(name);
23643
- if (internalRuntime?.commands.length) {
23644
- const operations2 = internalRuntime.commands.map((command) => ({
23645
- name: command.name,
23646
- aliases: [],
23647
- usage: command.name,
23648
- summary: command.summary,
23649
- source: "internal"
23650
- }));
23651
- return {
23652
- commands: operations2.map((operation) => operation.name),
23653
- operations: operations2,
23654
- helpText: internalRuntime.helpText ?? buildInternalHelpText(name, internalRuntime.commands),
23655
- hasCli: true
23656
- };
23657
- }
23658
- const cliPath = getConnectorCliPath(name);
23659
- if (!cliPath) {
23660
- return { commands: [], operations: [], helpText: "", hasCli: false };
23661
- }
23662
- const result = await runConnectorCommand2(name, ["--help"]);
23663
- const helpText = result.stdout || result.stderr;
23664
- const operations = parseCommanderHelpOperations(helpText);
23665
- return {
23666
- commands: operations.map((operation) => operation.name),
23667
- operations,
23668
- helpText,
23669
- hasCli: true
23670
- };
23671
- }
23672
- async function getConnectorCommandHelp(name, command) {
23673
- const internalRuntime = getInternalCommandRuntime(name);
23674
- if (internalRuntime?.getHelp) {
23675
- const help = await internalRuntime.getHelp(command);
23676
- if (help) {
23677
- return help;
23678
- }
23679
- }
23680
- const runtimeCommand = internalRuntime?.commands.find((runtimeEntry) => runtimeEntry.name === command);
23681
- if (runtimeCommand?.helpText) {
23682
- return runtimeCommand.helpText;
23683
- }
23684
- const result = await runConnectorCommand2(name, [command, "--help"]);
23685
- return result.stdout || result.stderr;
23686
- }
23687
-
23688
- // src/server/auth.ts
23689
- import { existsSync as existsSync14, readFileSync as readFileSync6, writeFileSync as writeFileSync5, mkdirSync as mkdirSync9, readdirSync as readdirSync8, rmSync as rmSync3, statSync as statSync5 } from "fs";
23690
- import { randomBytes } from "crypto";
23691
- import { join as join15 } from "path";
23692
-
23693
- // src/lib/lock.ts
23694
- init_database();
23695
- import { openSync, closeSync, unlinkSync, existsSync as existsSync13, statSync as statSync4 } from "fs";
23696
- import { join as join14 } from "path";
23697
- import { mkdirSync as mkdirSync8 } from "fs";
23698
- var LOCK_TIMEOUT_MS = 5000;
23699
- var LOCK_RETRY_MS = 100;
23700
- var STALE_LOCK_MS = 30000;
23701
-
23702
- class LockTimeoutError extends Error {
23703
- connector;
23704
- constructor(connector) {
23705
- super(`Could not acquire write lock for connector "${connector}" within ${LOCK_TIMEOUT_MS}ms. Another agent may be writing. Try again shortly.`);
23706
- this.connector = connector;
23707
- this.name = "LockTimeoutError";
23708
- }
23709
- }
23710
- function lockPath(connector) {
23711
- const dir = join14(getConnectorsHome(), `connect-${connector}`);
23712
- mkdirSync8(dir, { recursive: true });
23713
- return join14(dir, ".write.lock");
23714
- }
23715
- function isStale(path) {
23716
- try {
23717
- const stat = statSync4(path);
23718
- return Date.now() - stat.mtimeMs > STALE_LOCK_MS;
23719
- } catch {
23720
- return false;
24213
+ function isStale(path) {
24214
+ try {
24215
+ const stat = statSync4(path);
24216
+ return Date.now() - stat.mtimeMs > STALE_LOCK_MS;
24217
+ } catch {
24218
+ return false;
23721
24219
  }
23722
24220
  }
23723
24221
  function tryAcquire(path) {
23724
- if (existsSync13(path) && isStale(path)) {
24222
+ if (existsSync14(path) && isStale(path)) {
23725
24223
  try {
23726
24224
  unlinkSync(path);
23727
24225
  } catch {}
@@ -23814,14 +24312,14 @@ function getAuthType(name) {
23814
24312
  }
23815
24313
  function getConnectorConfigDir(name) {
23816
24314
  const connectorName = name.startsWith("connect-") ? name : `connect-${name}`;
23817
- return join15(getConnectorsHome(), connectorName);
24315
+ return join16(getConnectorsHome(), connectorName);
23818
24316
  }
23819
24317
  function getCurrentProfile2(name) {
23820
24318
  const configDir = getConnectorConfigDir(name);
23821
- const currentProfileFile = join15(configDir, "current_profile");
23822
- if (existsSync14(currentProfileFile)) {
24319
+ const currentProfileFile = join16(configDir, "current_profile");
24320
+ if (existsSync15(currentProfileFile)) {
23823
24321
  try {
23824
- return readFileSync6(currentProfileFile, "utf-8").trim() || "default";
24322
+ return readFileSync8(currentProfileFile, "utf-8").trim() || "default";
23825
24323
  } catch {
23826
24324
  return "default";
23827
24325
  }
@@ -23833,16 +24331,16 @@ function loadProfileConfig(name) {
23833
24331
  const profile = getCurrentProfile2(name);
23834
24332
  let flatConfig = {};
23835
24333
  let dirConfig = {};
23836
- const profileFile = join15(configDir, "profiles", `${profile}.json`);
23837
- if (existsSync14(profileFile)) {
24334
+ const profileFile = join16(configDir, "profiles", `${profile}.json`);
24335
+ if (existsSync15(profileFile)) {
23838
24336
  try {
23839
- flatConfig = JSON.parse(readFileSync6(profileFile, "utf-8"));
24337
+ flatConfig = JSON.parse(readFileSync8(profileFile, "utf-8"));
23840
24338
  } catch {}
23841
24339
  }
23842
- const profileDirConfig = join15(configDir, "profiles", profile, "config.json");
23843
- if (existsSync14(profileDirConfig)) {
24340
+ const profileDirConfig = join16(configDir, "profiles", profile, "config.json");
24341
+ if (existsSync15(profileDirConfig)) {
23844
24342
  try {
23845
- dirConfig = JSON.parse(readFileSync6(profileDirConfig, "utf-8"));
24343
+ dirConfig = JSON.parse(readFileSync8(profileDirConfig, "utf-8"));
23846
24344
  } catch {}
23847
24345
  }
23848
24346
  if (Object.keys(flatConfig).length === 0 && Object.keys(dirConfig).length === 0) {
@@ -23850,13 +24348,13 @@ function loadProfileConfig(name) {
23850
24348
  }
23851
24349
  return { ...flatConfig, ...dirConfig };
23852
24350
  }
23853
- function loadTokens(name) {
24351
+ function loadTokens3(name) {
23854
24352
  const configDir = getConnectorConfigDir(name);
23855
24353
  const profile = getCurrentProfile2(name);
23856
- const tokensFile = join15(configDir, "profiles", profile, "tokens.json");
23857
- if (existsSync14(tokensFile)) {
24354
+ const tokensFile = join16(configDir, "profiles", profile, "tokens.json");
24355
+ if (existsSync15(tokensFile)) {
23858
24356
  try {
23859
- return JSON.parse(readFileSync6(tokensFile, "utf-8"));
24357
+ return JSON.parse(readFileSync8(tokensFile, "utf-8"));
23860
24358
  } catch {
23861
24359
  return null;
23862
24360
  }
@@ -23873,28 +24371,49 @@ function loadTokens(name) {
23873
24371
  }
23874
24372
  return null;
23875
24373
  }
24374
+ function isStoredOAuthEnvVarSet(variable, oauthConfig, tokens, profileConfig) {
24375
+ if (variable.endsWith("_CLIENT_ID")) {
24376
+ return Boolean(oauthConfig.clientId || profileConfig.clientId);
24377
+ }
24378
+ if (variable.endsWith("_CLIENT_SECRET")) {
24379
+ return Boolean(oauthConfig.clientSecret || profileConfig.clientSecret);
24380
+ }
24381
+ if (variable.endsWith("_ACCESS_TOKEN")) {
24382
+ return Boolean(tokens?.accessToken || profileConfig.accessToken);
24383
+ }
24384
+ if (variable.endsWith("_REFRESH_TOKEN")) {
24385
+ return Boolean(tokens?.refreshToken || profileConfig.refreshToken);
24386
+ }
24387
+ if (variable.endsWith("_TOKEN_EXPIRES_AT")) {
24388
+ return Boolean(tokens?.expiresAt || profileConfig.expiresAt);
24389
+ }
24390
+ return false;
24391
+ }
23876
24392
  function getAuthStatus(name) {
23877
24393
  const authType = getAuthType(name);
23878
24394
  const docs = getConnectorDocs(name);
24395
+ const oauthConfig = authType === "oauth" ? getOAuthConfig(name) : {};
24396
+ const tokens = authType === "oauth" ? loadTokens3(name) : null;
24397
+ const profileConfig = authType === "oauth" ? loadProfileConfig(name) : {};
23879
24398
  const envVars = (docs?.envVars || []).map((v) => ({
23880
24399
  variable: v.variable,
23881
24400
  description: v.description,
23882
- set: !!process.env[v.variable]
24401
+ set: !!process.env[v.variable] || authType === "oauth" && isStoredOAuthEnvVarSet(v.variable, oauthConfig, tokens, profileConfig)
23883
24402
  }));
23884
24403
  const envVarTotalCount = envVars.length;
23885
24404
  const envVarSetCount = envVars.filter((v) => v.set).length;
23886
24405
  if (authType === "oauth") {
23887
- const tokens = loadTokens(name);
23888
- const config2 = loadProfileConfig(name);
23889
- const hasTokens = !!tokens?.accessToken || !!config2.accessToken;
23890
- const hasRefreshToken = !!tokens?.refreshToken || !!config2.refreshToken;
23891
- const tokenExpiry = tokens?.expiresAt || config2.expiresAt;
24406
+ const hasTokens = !!tokens?.accessToken || !!profileConfig.accessToken;
24407
+ const hasRefreshToken = !!tokens?.refreshToken || !!profileConfig.refreshToken;
24408
+ const tokenExpiry = tokens?.expiresAt || profileConfig.expiresAt;
24409
+ const hasOAuthCredentials = Boolean(oauthConfig.clientId && oauthConfig.clientSecret);
23892
24410
  const hasEnvVar2 = envVars.some((v) => v.set);
23893
24411
  return {
23894
24412
  type: "oauth",
23895
- configured: hasTokens || hasRefreshToken || hasEnvVar2,
24413
+ configured: hasTokens || hasRefreshToken || hasOAuthCredentials || hasEnvVar2,
23896
24414
  tokenExpiry,
23897
24415
  hasRefreshToken,
24416
+ hasOAuthCredentials,
23898
24417
  envVars,
23899
24418
  envVarSetCount,
23900
24419
  envVarTotalCount
@@ -23911,6 +24430,10 @@ function getAuthStatus(name) {
23911
24430
  envVarTotalCount
23912
24431
  };
23913
24432
  }
24433
+ function getEnvVars(name) {
24434
+ const docs = getConnectorDocs(name);
24435
+ return docs?.envVars || [];
24436
+ }
23914
24437
  async function saveApiKey(name, key, field) {
23915
24438
  return withWriteLock(name, () => _saveApiKey(name, key, field));
23916
24439
  }
@@ -23919,43 +24442,43 @@ function _saveApiKey(name, key, field) {
23919
24442
  const profile = getCurrentProfile2(name);
23920
24443
  const keyField = field || guessKeyField(name);
23921
24444
  if (keyField === "clientId" || keyField === "clientSecret") {
23922
- const credentialsFile = join15(configDir, "credentials.json");
23923
- mkdirSync9(configDir, { recursive: true });
24445
+ const credentialsFile = join16(configDir, "credentials.json");
24446
+ mkdirSync11(configDir, { recursive: true });
23924
24447
  let creds = {};
23925
- if (existsSync14(credentialsFile)) {
24448
+ if (existsSync15(credentialsFile)) {
23926
24449
  try {
23927
- creds = JSON.parse(readFileSync6(credentialsFile, "utf-8"));
24450
+ creds = JSON.parse(readFileSync8(credentialsFile, "utf-8"));
23928
24451
  } catch {}
23929
24452
  }
23930
24453
  creds[keyField] = key;
23931
- writeFileSync5(credentialsFile, JSON.stringify(creds, null, 2));
24454
+ writeFileSync7(credentialsFile, JSON.stringify(creds, null, 2));
23932
24455
  return;
23933
24456
  }
23934
- const profileFile = join15(configDir, "profiles", `${profile}.json`);
23935
- const profileDir = join15(configDir, "profiles", profile);
23936
- if (existsSync14(profileFile)) {
24457
+ const profileFile = join16(configDir, "profiles", `${profile}.json`);
24458
+ const profileDir = join16(configDir, "profiles", profile);
24459
+ if (existsSync15(profileFile)) {
23937
24460
  let config = {};
23938
24461
  try {
23939
- config = JSON.parse(readFileSync6(profileFile, "utf-8"));
24462
+ config = JSON.parse(readFileSync8(profileFile, "utf-8"));
23940
24463
  } catch {}
23941
24464
  config[keyField] = key;
23942
- writeFileSync5(profileFile, JSON.stringify(config, null, 2));
24465
+ writeFileSync7(profileFile, JSON.stringify(config, null, 2));
23943
24466
  return;
23944
24467
  }
23945
- if (existsSync14(profileDir)) {
23946
- const configFile = join15(profileDir, "config.json");
24468
+ if (existsSync15(profileDir)) {
24469
+ const configFile = join16(profileDir, "config.json");
23947
24470
  let config = {};
23948
- if (existsSync14(configFile)) {
24471
+ if (existsSync15(configFile)) {
23949
24472
  try {
23950
- config = JSON.parse(readFileSync6(configFile, "utf-8"));
24473
+ config = JSON.parse(readFileSync8(configFile, "utf-8"));
23951
24474
  } catch {}
23952
24475
  }
23953
24476
  config[keyField] = key;
23954
- writeFileSync5(configFile, JSON.stringify(config, null, 2));
24477
+ writeFileSync7(configFile, JSON.stringify(config, null, 2));
23955
24478
  return;
23956
24479
  }
23957
- mkdirSync9(profileDir, { recursive: true });
23958
- writeFileSync5(join15(profileDir, "config.json"), JSON.stringify({ [keyField]: key }, null, 2));
24480
+ mkdirSync11(profileDir, { recursive: true });
24481
+ writeFileSync7(join16(profileDir, "config.json"), JSON.stringify({ [keyField]: key }, null, 2));
23959
24482
  }
23960
24483
  function guessKeyField(name) {
23961
24484
  const docs = getConnectorDocs(name);
@@ -23973,10 +24496,10 @@ function guessKeyField(name) {
23973
24496
  }
23974
24497
  function getOAuthConfig(name) {
23975
24498
  const configDir = getConnectorConfigDir(name);
23976
- const credentialsFile = join15(configDir, "credentials.json");
23977
- if (existsSync14(credentialsFile)) {
24499
+ const credentialsFile = join16(configDir, "credentials.json");
24500
+ if (existsSync15(credentialsFile)) {
23978
24501
  try {
23979
- const creds = JSON.parse(readFileSync6(credentialsFile, "utf-8"));
24502
+ const creds = JSON.parse(readFileSync8(credentialsFile, "utf-8"));
23980
24503
  return { clientId: creds.clientId, clientSecret: creds.clientSecret };
23981
24504
  } catch {}
23982
24505
  }
@@ -24055,17 +24578,17 @@ async function exchangeOAuthCode(name, code, redirectUri) {
24055
24578
  function saveOAuthTokens(name, tokens) {
24056
24579
  const configDir = getConnectorConfigDir(name);
24057
24580
  const profile = getCurrentProfile2(name);
24058
- const profileDir = join15(configDir, "profiles", profile);
24059
- mkdirSync9(profileDir, { recursive: true });
24060
- const tokensFile = join15(profileDir, "tokens.json");
24061
- writeFileSync5(tokensFile, JSON.stringify(tokens, null, 2), { mode: 384 });
24581
+ const profileDir = join16(configDir, "profiles", profile);
24582
+ mkdirSync11(profileDir, { recursive: true });
24583
+ const tokensFile = join16(profileDir, "tokens.json");
24584
+ writeFileSync7(tokensFile, JSON.stringify(tokens, null, 2), { mode: 384 });
24062
24585
  }
24063
24586
  async function refreshOAuthToken(name) {
24064
24587
  return withWriteLock(name, () => _refreshOAuthToken(name));
24065
24588
  }
24066
24589
  async function _refreshOAuthToken(name) {
24067
24590
  const oauthConfig = getOAuthConfig(name);
24068
- const currentTokens = loadTokens(name);
24591
+ const currentTokens = loadTokens3(name);
24069
24592
  if (!oauthConfig.clientId || !oauthConfig.clientSecret) {
24070
24593
  throw new Error("OAuth credentials not configured for " + name);
24071
24594
  }
@@ -24098,16 +24621,16 @@ async function _refreshOAuthToken(name) {
24098
24621
  saveOAuthTokens(name, tokens);
24099
24622
  return tokens;
24100
24623
  }
24101
- function listProfiles2(name) {
24624
+ function listProfiles4(name) {
24102
24625
  const configDir = getConnectorConfigDir(name);
24103
- const profilesDir = join15(configDir, "profiles");
24104
- if (!existsSync14(profilesDir))
24626
+ const profilesDir = join16(configDir, "profiles");
24627
+ if (!existsSync15(profilesDir))
24105
24628
  return ["default"];
24106
24629
  const seen = new Set;
24107
24630
  try {
24108
- const entries = readdirSync8(profilesDir);
24631
+ const entries = readdirSync9(profilesDir);
24109
24632
  for (const entry of entries) {
24110
- const fullPath = join15(profilesDir, entry);
24633
+ const fullPath = join16(profilesDir, entry);
24111
24634
  const stat = statSync5(fullPath);
24112
24635
  if (stat.isDirectory()) {
24113
24636
  seen.add(entry);
@@ -24121,24 +24644,24 @@ function listProfiles2(name) {
24121
24644
  }
24122
24645
  function switchProfile(name, profile) {
24123
24646
  const configDir = getConnectorConfigDir(name);
24124
- mkdirSync9(configDir, { recursive: true });
24125
- writeFileSync5(join15(configDir, "current_profile"), profile);
24647
+ mkdirSync11(configDir, { recursive: true });
24648
+ writeFileSync7(join16(configDir, "current_profile"), profile);
24126
24649
  }
24127
24650
  function deleteProfile2(name, profile) {
24128
24651
  if (profile === "default")
24129
24652
  return false;
24130
24653
  const configDir = getConnectorConfigDir(name);
24131
- const profilesDir = join15(configDir, "profiles");
24132
- const profileFile = join15(profilesDir, `${profile}.json`);
24133
- if (existsSync14(profileFile)) {
24654
+ const profilesDir = join16(configDir, "profiles");
24655
+ const profileFile = join16(profilesDir, `${profile}.json`);
24656
+ if (existsSync15(profileFile)) {
24134
24657
  rmSync3(profileFile);
24135
24658
  if (getCurrentProfile2(name) === profile) {
24136
24659
  switchProfile(name, "default");
24137
24660
  }
24138
24661
  return true;
24139
24662
  }
24140
- const profileDir = join15(profilesDir, profile);
24141
- if (existsSync14(profileDir)) {
24663
+ const profileDir = join16(profilesDir, profile);
24664
+ if (existsSync15(profileDir)) {
24142
24665
  rmSync3(profileDir, { recursive: true });
24143
24666
  if (getCurrentProfile2(name) === profile) {
24144
24667
  switchProfile(name, "default");
@@ -24148,6 +24671,253 @@ function deleteProfile2(name, profile) {
24148
24671
  return false;
24149
24672
  }
24150
24673
 
24674
+ // src/lib/runner.ts
24675
+ var __dirname5 = dirname7(fileURLToPath5(import.meta.url));
24676
+ function resolveConnectorsDir2() {
24677
+ const fromBin = join17(__dirname5, "..", "connectors");
24678
+ if (existsSync16(fromBin))
24679
+ return fromBin;
24680
+ const fromSrc = join17(__dirname5, "..", "..", "connectors");
24681
+ if (existsSync16(fromSrc))
24682
+ return fromSrc;
24683
+ return fromBin;
24684
+ }
24685
+ var CONNECTORS_DIR2 = resolveConnectorsDir2();
24686
+ function buildInternalHelpText(name, commands) {
24687
+ const lines = [
24688
+ `Usage: connect-${name} [options] [command]`,
24689
+ "",
24690
+ "Commands:"
24691
+ ];
24692
+ for (const command of commands) {
24693
+ lines.push(` ${command.name.padEnd(24)} ${command.summary}`);
24694
+ }
24695
+ return lines.join(`
24696
+ `);
24697
+ }
24698
+ function getInternalCommandRuntime(name) {
24699
+ return getInternalConnectorDefinition(name)?.commandRuntime;
24700
+ }
24701
+ var ENV_VAR_NAME_OVERRIDES = {
24702
+ googlemaps: ["GOOGLE_MAPS"],
24703
+ googletasks: ["GOOGLE_TASKS", "GOOGLE"],
24704
+ google: ["GOOGLE"],
24705
+ stabilityai: ["STABILITY"],
24706
+ openweathermap: ["OPENWEATHERMAP", "OPENWEATHER"]
24707
+ };
24708
+ function buildEnvWithCredentials(connectorName, baseEnv) {
24709
+ const env = { ...baseEnv };
24710
+ const prefixes = ENV_VAR_NAME_OVERRIDES[connectorName] || [
24711
+ connectorName.toUpperCase().replace(/-/g, "_")
24712
+ ];
24713
+ for (const prefix of prefixes) {
24714
+ const canonicalKey = `${prefix}_API_KEY`;
24715
+ if (env[canonicalKey])
24716
+ continue;
24717
+ const alternatives = [
24718
+ `HASNAXYZ_${prefix}_LIVE_API_KEY`,
24719
+ `HASNA_${prefix}_LIVE_API_KEY`,
24720
+ `${prefix}_LIVE_API_KEY`,
24721
+ `${prefix}_KEY`,
24722
+ `${prefix}_TOKEN`
24723
+ ];
24724
+ for (const alt of alternatives) {
24725
+ const value = env[alt];
24726
+ if (value) {
24727
+ env[canonicalKey] = value;
24728
+ break;
24729
+ }
24730
+ }
24731
+ }
24732
+ if (getAuthType(connectorName) === "oauth") {
24733
+ const oauthConfig = getOAuthConfig(connectorName);
24734
+ const tokens = loadTokens3(connectorName);
24735
+ for (const { variable } of getEnvVars(connectorName)) {
24736
+ if (env[variable])
24737
+ continue;
24738
+ if (variable.endsWith("_CLIENT_ID") && oauthConfig.clientId) {
24739
+ env[variable] = oauthConfig.clientId;
24740
+ } else if (variable.endsWith("_CLIENT_SECRET") && oauthConfig.clientSecret) {
24741
+ env[variable] = oauthConfig.clientSecret;
24742
+ } else if (variable.endsWith("_ACCESS_TOKEN") && tokens?.accessToken) {
24743
+ env[variable] = tokens.accessToken;
24744
+ } else if (variable.endsWith("_REFRESH_TOKEN") && tokens?.refreshToken) {
24745
+ env[variable] = tokens.refreshToken;
24746
+ } else if (variable.endsWith("_TOKEN_EXPIRES_AT") && tokens?.expiresAt) {
24747
+ env[variable] = String(tokens.expiresAt);
24748
+ }
24749
+ }
24750
+ }
24751
+ return env;
24752
+ }
24753
+ function getConnectorCliPath(name) {
24754
+ const safeName = name.replace(/[^a-z0-9-]/g, "");
24755
+ const connectorDir = join17(CONNECTORS_DIR2, `connect-${safeName}`);
24756
+ const cliPath = join17(connectorDir, "src", "cli", "index.ts");
24757
+ if (existsSync16(cliPath))
24758
+ return cliPath;
24759
+ return null;
24760
+ }
24761
+ function hasConnectorCommandSurface(name) {
24762
+ return Boolean(getInternalCommandRuntime(name)?.commands.length || getConnectorCliPath(name));
24763
+ }
24764
+ function normalizeCommanderUsage(usage) {
24765
+ const commandToken = usage.trim().split(/\s+/)[0];
24766
+ if (!commandToken || commandToken === "help")
24767
+ return null;
24768
+ const aliases = commandToken.split("|").filter(Boolean);
24769
+ const [name, ...rest] = aliases;
24770
+ if (!name)
24771
+ return null;
24772
+ return {
24773
+ name,
24774
+ aliases: rest,
24775
+ usage: usage.trim()
24776
+ };
24777
+ }
24778
+ function parseCommanderHelpOperations(helpText) {
24779
+ const operations = [];
24780
+ const lines = helpText.split(`
24781
+ `);
24782
+ let inCommands = false;
24783
+ for (const line of lines) {
24784
+ if (line.trim().startsWith("Commands:")) {
24785
+ inCommands = true;
24786
+ continue;
24787
+ }
24788
+ if (!inCommands)
24789
+ continue;
24790
+ if (line.trim() === "") {
24791
+ if (operations.length > 0)
24792
+ inCommands = false;
24793
+ continue;
24794
+ }
24795
+ const row = line.match(/^ {2}(?! )(\S.*?)(?: {2,}(.+))?$/);
24796
+ if (!row)
24797
+ continue;
24798
+ const usage = row[1].trim();
24799
+ const summary = (row[2] ?? "").trim();
24800
+ const normalized = normalizeCommanderUsage(usage);
24801
+ if (!normalized)
24802
+ continue;
24803
+ operations.push({
24804
+ ...normalized,
24805
+ summary,
24806
+ source: "cli"
24807
+ });
24808
+ }
24809
+ return operations;
24810
+ }
24811
+ function runConnectorCommand2(name, args, timeoutMs = 30000) {
24812
+ getConnectorsHome();
24813
+ const internalRuntime = getInternalCommandRuntime(name);
24814
+ if (internalRuntime?.run) {
24815
+ return Promise.resolve(internalRuntime.run(args)).then((result) => {
24816
+ if (result) {
24817
+ const stdout = result.stdout.trim();
24818
+ const stderr = (result.stderr ?? "").trim();
24819
+ const exitCode = result.exitCode ?? (result.success === false ? 1 : 0);
24820
+ return {
24821
+ stdout,
24822
+ stderr,
24823
+ exitCode,
24824
+ success: result.success ?? exitCode === 0
24825
+ };
24826
+ }
24827
+ return runLegacyConnectorCommand(name, args, timeoutMs);
24828
+ });
24829
+ }
24830
+ return runLegacyConnectorCommand(name, args, timeoutMs);
24831
+ }
24832
+ function runLegacyConnectorCommand(name, args, timeoutMs = 30000) {
24833
+ const cliPath = getConnectorCliPath(name);
24834
+ if (!cliPath) {
24835
+ return Promise.resolve({
24836
+ stdout: "",
24837
+ stderr: `Connector '${name}' not found or has no CLI.`,
24838
+ exitCode: 1,
24839
+ success: false
24840
+ });
24841
+ }
24842
+ return new Promise((resolve) => {
24843
+ const proc = spawn2("bun", ["run", cliPath, ...args], {
24844
+ timeout: timeoutMs,
24845
+ env: buildEnvWithCredentials(name, process.env),
24846
+ stdio: ["pipe", "pipe", "pipe"]
24847
+ });
24848
+ let stdout = "";
24849
+ let stderr = "";
24850
+ proc.stdout.on("data", (data) => {
24851
+ stdout += data.toString();
24852
+ });
24853
+ proc.stderr.on("data", (data) => {
24854
+ stderr += data.toString();
24855
+ });
24856
+ proc.on("close", (code) => {
24857
+ resolve({
24858
+ stdout: stdout.trim(),
24859
+ stderr: stderr.trim(),
24860
+ exitCode: code ?? 1,
24861
+ success: code === 0
24862
+ });
24863
+ });
24864
+ proc.on("error", (err) => {
24865
+ resolve({
24866
+ stdout: "",
24867
+ stderr: err.message,
24868
+ exitCode: 1,
24869
+ success: false
24870
+ });
24871
+ });
24872
+ });
24873
+ }
24874
+ async function getConnectorOperations(name) {
24875
+ const internalRuntime = getInternalCommandRuntime(name);
24876
+ if (internalRuntime?.commands.length) {
24877
+ const operations2 = internalRuntime.commands.map((command) => ({
24878
+ name: command.name,
24879
+ aliases: [],
24880
+ usage: command.name,
24881
+ summary: command.summary,
24882
+ source: "internal"
24883
+ }));
24884
+ return {
24885
+ commands: operations2.map((operation) => operation.name),
24886
+ operations: operations2,
24887
+ helpText: internalRuntime.helpText ?? buildInternalHelpText(name, internalRuntime.commands),
24888
+ hasCli: true
24889
+ };
24890
+ }
24891
+ const cliPath = getConnectorCliPath(name);
24892
+ if (!cliPath) {
24893
+ return { commands: [], operations: [], helpText: "", hasCli: false };
24894
+ }
24895
+ const result = await runConnectorCommand2(name, ["--help"]);
24896
+ const helpText = result.stdout || result.stderr;
24897
+ const operations = parseCommanderHelpOperations(helpText);
24898
+ return {
24899
+ commands: operations.map((operation) => operation.name),
24900
+ operations,
24901
+ helpText,
24902
+ hasCli: true
24903
+ };
24904
+ }
24905
+ async function getConnectorCommandHelp(name, command) {
24906
+ const internalRuntime = getInternalCommandRuntime(name);
24907
+ if (internalRuntime?.getHelp) {
24908
+ const help = await internalRuntime.getHelp(command);
24909
+ if (help) {
24910
+ return help;
24911
+ }
24912
+ }
24913
+ const runtimeCommand = internalRuntime?.commands.find((runtimeEntry) => runtimeEntry.name === command);
24914
+ if (runtimeCommand?.helpText) {
24915
+ return runtimeCommand.helpText;
24916
+ }
24917
+ const result = await runConnectorCommand2(name, [command, "--help"]);
24918
+ return result.stdout || result.stderr;
24919
+ }
24920
+
24151
24921
  // src/server/serve.ts
24152
24922
  var activityLog = [];
24153
24923
  var MAX_ACTIVITY_LOG = 100;
@@ -24161,20 +24931,20 @@ function resolveDashboardDir() {
24161
24931
  const candidates = [];
24162
24932
  try {
24163
24933
  const scriptDir = dirname8(fileURLToPath6(import.meta.url));
24164
- candidates.push(join16(scriptDir, "..", "dashboard", "dist"));
24165
- candidates.push(join16(scriptDir, "..", "..", "dashboard", "dist"));
24934
+ candidates.push(join18(scriptDir, "..", "dashboard", "dist"));
24935
+ candidates.push(join18(scriptDir, "..", "..", "dashboard", "dist"));
24166
24936
  } catch {}
24167
24937
  if (process.argv[1]) {
24168
24938
  const mainDir = dirname8(process.argv[1]);
24169
- candidates.push(join16(mainDir, "..", "dashboard", "dist"));
24170
- candidates.push(join16(mainDir, "..", "..", "dashboard", "dist"));
24939
+ candidates.push(join18(mainDir, "..", "dashboard", "dist"));
24940
+ candidates.push(join18(mainDir, "..", "..", "dashboard", "dist"));
24171
24941
  }
24172
- candidates.push(join16(process.cwd(), "dashboard", "dist"));
24942
+ candidates.push(join18(process.cwd(), "dashboard", "dist"));
24173
24943
  for (const candidate of candidates) {
24174
- if (existsSync15(candidate))
24944
+ if (existsSync17(candidate))
24175
24945
  return candidate;
24176
24946
  }
24177
- return join16(process.cwd(), "dashboard", "dist");
24947
+ return join18(process.cwd(), "dashboard", "dist");
24178
24948
  }
24179
24949
  var MIME_TYPES = {
24180
24950
  ".html": "text/html; charset=utf-8",
@@ -24276,7 +25046,7 @@ function oauthPage(type, title, message, hint, extra) {
24276
25046
  </body></html>`;
24277
25047
  }
24278
25048
  function serveStaticFile(filePath) {
24279
- if (!existsSync15(filePath))
25049
+ if (!existsSync17(filePath))
24280
25050
  return null;
24281
25051
  const ext = extname(filePath);
24282
25052
  const contentType = MIME_TYPES[ext] || "application/octet-stream";
@@ -24313,7 +25083,7 @@ async function startServer(requestedPort, options) {
24313
25083
  const strict = options?.strict ?? false;
24314
25084
  loadConnectorVersions();
24315
25085
  const dashboardDir = resolveDashboardDir();
24316
- const dashboardExists = existsSync15(dashboardDir);
25086
+ const dashboardExists = existsSync17(dashboardDir);
24317
25087
  if (!dashboardExists) {
24318
25088
  console.error(`
24319
25089
  Dashboard not found at: ${dashboardDir}`);
@@ -24715,13 +25485,13 @@ ${result.stderr}`;
24715
25485
  if (!isValidConnectorName(name))
24716
25486
  return json({ error: "Invalid connector name" }, 400, port);
24717
25487
  try {
24718
- const profiles = listProfiles2(name);
24719
- const configDir = join16(getConnectorsHome(), name.startsWith("connect-") ? name : `connect-${name}`);
24720
- const currentProfileFile = join16(configDir, "current_profile");
25488
+ const profiles = listProfiles4(name);
25489
+ const configDir = join18(getConnectorsHome(), name.startsWith("connect-") ? name : `connect-${name}`);
25490
+ const currentProfileFile = join18(configDir, "current_profile");
24721
25491
  let current = "default";
24722
- if (existsSync15(currentProfileFile)) {
25492
+ if (existsSync17(currentProfileFile)) {
24723
25493
  try {
24724
- current = readFileSync7(currentProfileFile, "utf-8").trim() || "default";
25494
+ current = readFileSync9(currentProfileFile, "utf-8").trim() || "default";
24725
25495
  } catch {}
24726
25496
  }
24727
25497
  return json({ current, profiles }, 200, port);
@@ -24770,30 +25540,30 @@ ${result.stderr}`;
24770
25540
  try {
24771
25541
  const connectDir = getConnectorsHome();
24772
25542
  const result = {};
24773
- if (existsSync15(connectDir)) {
24774
- const entries = readdirSync9(connectDir, { withFileTypes: true });
25543
+ if (existsSync17(connectDir)) {
25544
+ const entries = readdirSync11(connectDir, { withFileTypes: true });
24775
25545
  for (const entry of entries) {
24776
25546
  if (!entry.isDirectory() || !entry.name.startsWith("connect-"))
24777
25547
  continue;
24778
25548
  const connectorName = entry.name.replace(/^connect-/, "");
24779
- const profilesDir = join16(connectDir, entry.name, "profiles");
24780
- if (!existsSync15(profilesDir))
25549
+ const profilesDir = join18(connectDir, entry.name, "profiles");
25550
+ if (!existsSync17(profilesDir))
24781
25551
  continue;
24782
25552
  const profiles = {};
24783
- const profileEntries = readdirSync9(profilesDir, { withFileTypes: true });
25553
+ const profileEntries = readdirSync11(profilesDir, { withFileTypes: true });
24784
25554
  for (const pEntry of profileEntries) {
24785
25555
  if (pEntry.isFile() && pEntry.name.endsWith(".json")) {
24786
- const profileName = basename(pEntry.name, ".json");
25556
+ const profileName = basename3(pEntry.name, ".json");
24787
25557
  try {
24788
- const config = JSON.parse(readFileSync7(join16(profilesDir, pEntry.name), "utf-8"));
25558
+ const config = JSON.parse(readFileSync9(join18(profilesDir, pEntry.name), "utf-8"));
24789
25559
  profiles[profileName] = config;
24790
25560
  } catch {}
24791
25561
  }
24792
25562
  if (pEntry.isDirectory()) {
24793
- const configPath = join16(profilesDir, pEntry.name, "config.json");
24794
- if (existsSync15(configPath)) {
25563
+ const configPath = join18(profilesDir, pEntry.name, "config.json");
25564
+ if (existsSync17(configPath)) {
24795
25565
  try {
24796
- const config = JSON.parse(readFileSync7(configPath, "utf-8"));
25566
+ const config = JSON.parse(readFileSync9(configPath, "utf-8"));
24797
25567
  profiles[pEntry.name] = config;
24798
25568
  } catch {}
24799
25569
  }
@@ -24834,14 +25604,14 @@ ${result.stderr}`;
24834
25604
  continue;
24835
25605
  if (!data.profiles || typeof data.profiles !== "object")
24836
25606
  continue;
24837
- const connectorDir = join16(connectDir, `connect-${connectorName}`);
24838
- const profilesDir = join16(connectorDir, "profiles");
25607
+ const connectorDir = join18(connectDir, `connect-${connectorName}`);
25608
+ const profilesDir = join18(connectorDir, "profiles");
24839
25609
  for (const [profileName, config] of Object.entries(data.profiles)) {
24840
25610
  if (!config || typeof config !== "object")
24841
25611
  continue;
24842
- mkdirSync10(profilesDir, { recursive: true });
24843
- const profileFile = join16(profilesDir, `${profileName}.json`);
24844
- writeFileSync6(profileFile, JSON.stringify(config, null, 2));
25612
+ mkdirSync12(profilesDir, { recursive: true });
25613
+ const profileFile = join18(profilesDir, `${profileName}.json`);
25614
+ writeFileSync8(profileFile, JSON.stringify(config, null, 2));
24845
25615
  imported++;
24846
25616
  }
24847
25617
  }
@@ -24896,12 +25666,12 @@ ${result.stderr}`;
24896
25666
  }
24897
25667
  if (dashboardExists && (method === "GET" || method === "HEAD")) {
24898
25668
  if (path !== "/") {
24899
- const filePath = join16(dashboardDir, path);
25669
+ const filePath = join18(dashboardDir, path);
24900
25670
  const res2 = serveStaticFile(filePath);
24901
25671
  if (res2)
24902
25672
  return res2;
24903
25673
  }
24904
- const indexPath = join16(dashboardDir, "index.html");
25674
+ const indexPath = join18(dashboardDir, "index.html");
24905
25675
  const res = serveStaticFile(indexPath);
24906
25676
  if (res)
24907
25677
  return res;