@hasna/connectors 1.3.30 → 1.3.32

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 (693) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +9 -0
  3. package/bin/index.js +461 -1702
  4. package/bin/mcp.js +583 -1768
  5. package/bin/serve.js +647 -1875
  6. package/connectors/{imessage → connect-github}/bin/index.js +892 -390
  7. package/connectors/connect-github/dist/index.js +520 -0
  8. package/connectors/{cloudflare → connect-yousign}/bun.lock +3 -3
  9. package/connectors/connect-yousign/node_modules/@types/bun/LICENSE +21 -0
  10. package/connectors/connect-yousign/node_modules/@types/bun/README.md +20 -0
  11. package/connectors/connect-yousign/node_modules/@types/bun/index.d.ts +1 -0
  12. package/connectors/connect-yousign/node_modules/@types/bun/package.json +53 -0
  13. package/connectors/connect-yousign/node_modules/@types/node/LICENSE +21 -0
  14. package/connectors/connect-yousign/node_modules/@types/node/README.md +15 -0
  15. package/connectors/connect-yousign/node_modules/@types/node/assert/strict.d.ts +105 -0
  16. package/connectors/connect-yousign/node_modules/@types/node/assert.d.ts +955 -0
  17. package/connectors/connect-yousign/node_modules/@types/node/async_hooks.d.ts +623 -0
  18. package/connectors/connect-yousign/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  19. package/connectors/connect-yousign/node_modules/@types/node/buffer.d.ts +1810 -0
  20. package/connectors/connect-yousign/node_modules/@types/node/child_process.d.ts +1433 -0
  21. package/connectors/connect-yousign/node_modules/@types/node/cluster.d.ts +486 -0
  22. package/connectors/connect-yousign/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  23. package/connectors/connect-yousign/node_modules/@types/node/console.d.ts +151 -0
  24. package/connectors/connect-yousign/node_modules/@types/node/constants.d.ts +20 -0
  25. package/connectors/connect-yousign/node_modules/@types/node/crypto.d.ts +4065 -0
  26. package/connectors/connect-yousign/node_modules/@types/node/dgram.d.ts +564 -0
  27. package/connectors/connect-yousign/node_modules/@types/node/diagnostics_channel.d.ts +576 -0
  28. package/connectors/connect-yousign/node_modules/@types/node/dns/promises.d.ts +503 -0
  29. package/connectors/connect-yousign/node_modules/@types/node/dns.d.ts +922 -0
  30. package/connectors/connect-yousign/node_modules/@types/node/domain.d.ts +166 -0
  31. package/connectors/connect-yousign/node_modules/@types/node/events.d.ts +1047 -0
  32. package/connectors/connect-yousign/node_modules/@types/node/fs/promises.d.ts +1329 -0
  33. package/connectors/connect-yousign/node_modules/@types/node/fs.d.ts +4678 -0
  34. package/connectors/connect-yousign/node_modules/@types/node/globals.d.ts +150 -0
  35. package/connectors/connect-yousign/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  36. package/connectors/connect-yousign/node_modules/@types/node/http.d.ts +2188 -0
  37. package/connectors/connect-yousign/node_modules/@types/node/http2.d.ts +2480 -0
  38. package/connectors/connect-yousign/node_modules/@types/node/https.d.ts +405 -0
  39. package/connectors/connect-yousign/node_modules/@types/node/index.d.ts +115 -0
  40. package/connectors/connect-yousign/node_modules/@types/node/inspector/promises.d.ts +41 -0
  41. package/connectors/connect-yousign/node_modules/@types/node/inspector.d.ts +269 -0
  42. package/connectors/connect-yousign/node_modules/@types/node/inspector.generated.d.ts +4401 -0
  43. package/connectors/connect-yousign/node_modules/@types/node/module.d.ts +757 -0
  44. package/connectors/connect-yousign/node_modules/@types/node/net.d.ts +933 -0
  45. package/connectors/connect-yousign/node_modules/@types/node/os.d.ts +507 -0
  46. package/connectors/connect-yousign/node_modules/@types/node/package.json +155 -0
  47. package/connectors/connect-yousign/node_modules/@types/node/path/posix.d.ts +8 -0
  48. package/connectors/connect-yousign/node_modules/@types/node/path/win32.d.ts +8 -0
  49. package/connectors/connect-yousign/node_modules/@types/node/path.d.ts +187 -0
  50. package/connectors/connect-yousign/node_modules/@types/node/perf_hooks.d.ts +643 -0
  51. package/connectors/connect-yousign/node_modules/@types/node/process.d.ts +2175 -0
  52. package/connectors/connect-yousign/node_modules/@types/node/punycode.d.ts +117 -0
  53. package/connectors/connect-yousign/node_modules/@types/node/querystring.d.ts +152 -0
  54. package/connectors/connect-yousign/node_modules/@types/node/quic.d.ts +910 -0
  55. package/connectors/connect-yousign/node_modules/@types/node/readline/promises.d.ts +161 -0
  56. package/connectors/connect-yousign/node_modules/@types/node/readline.d.ts +542 -0
  57. package/connectors/connect-yousign/node_modules/@types/node/repl.d.ts +415 -0
  58. package/connectors/connect-yousign/node_modules/@types/node/sea.d.ts +162 -0
  59. package/connectors/connect-yousign/node_modules/@types/node/sqlite.d.ts +1065 -0
  60. package/connectors/connect-yousign/node_modules/@types/node/stream/consumers.d.ts +38 -0
  61. package/connectors/connect-yousign/node_modules/@types/node/stream/promises.d.ts +211 -0
  62. package/connectors/connect-yousign/node_modules/@types/node/stream/web.d.ts +296 -0
  63. package/connectors/connect-yousign/node_modules/@types/node/stream.d.ts +1770 -0
  64. package/connectors/connect-yousign/node_modules/@types/node/string_decoder.d.ts +67 -0
  65. package/connectors/connect-yousign/node_modules/@types/node/test/reporters.d.ts +96 -0
  66. package/connectors/connect-yousign/node_modules/@types/node/test.d.ts +2275 -0
  67. package/connectors/connect-yousign/node_modules/@types/node/timers/promises.d.ts +108 -0
  68. package/connectors/connect-yousign/node_modules/@types/node/timers.d.ts +159 -0
  69. package/connectors/connect-yousign/node_modules/@types/node/tls.d.ts +1203 -0
  70. package/connectors/connect-yousign/node_modules/@types/node/trace_events.d.ts +197 -0
  71. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  72. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  73. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  74. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  75. package/connectors/connect-yousign/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  76. package/connectors/connect-yousign/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  77. package/connectors/connect-yousign/node_modules/@types/node/tty.d.ts +250 -0
  78. package/connectors/connect-yousign/node_modules/@types/node/url.d.ts +541 -0
  79. package/connectors/connect-yousign/node_modules/@types/node/util/types.d.ts +558 -0
  80. package/connectors/connect-yousign/node_modules/@types/node/util.d.ts +1687 -0
  81. package/connectors/connect-yousign/node_modules/@types/node/v8.d.ts +988 -0
  82. package/connectors/connect-yousign/node_modules/@types/node/vm.d.ts +1208 -0
  83. package/connectors/connect-yousign/node_modules/@types/node/wasi.d.ts +202 -0
  84. package/connectors/connect-yousign/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  85. package/connectors/connect-yousign/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  86. package/connectors/connect-yousign/node_modules/@types/node/web-globals/console.d.ts +9 -0
  87. package/connectors/connect-yousign/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  88. package/connectors/connect-yousign/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  89. package/connectors/connect-yousign/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  90. package/connectors/connect-yousign/node_modules/@types/node/web-globals/events.d.ts +106 -0
  91. package/connectors/connect-yousign/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  92. package/connectors/connect-yousign/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  93. package/connectors/connect-yousign/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  94. package/connectors/connect-yousign/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  95. package/connectors/connect-yousign/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  96. package/connectors/connect-yousign/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  97. package/connectors/connect-yousign/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  98. package/connectors/connect-yousign/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  99. package/connectors/connect-yousign/node_modules/@types/node/web-globals/url.d.ts +24 -0
  100. package/connectors/connect-yousign/node_modules/@types/node/worker_threads.d.ts +717 -0
  101. package/connectors/connect-yousign/node_modules/@types/node/zlib.d.ts +682 -0
  102. package/connectors/connect-yousign/node_modules/bun-types/CLAUDE.md +105 -0
  103. package/connectors/connect-yousign/node_modules/bun-types/README.md +33 -0
  104. package/connectors/connect-yousign/node_modules/bun-types/bun.d.ts +8481 -0
  105. package/connectors/connect-yousign/node_modules/bun-types/bun.ns.d.ts +5 -0
  106. package/connectors/connect-yousign/node_modules/bun-types/bundle.d.ts +74 -0
  107. package/connectors/connect-yousign/node_modules/bun-types/deprecated.d.ts +184 -0
  108. package/connectors/connect-yousign/node_modules/bun-types/devserver.d.ts +187 -0
  109. package/connectors/connect-yousign/node_modules/bun-types/docs/README.md +28 -0
  110. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/bytecode.mdx +447 -0
  111. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/css.mdx +1024 -0
  112. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/esbuild.mdx +304 -0
  113. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/executables.mdx +1318 -0
  114. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/fullstack.mdx +1086 -0
  115. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/hot-reloading.mdx +229 -0
  116. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/html-static.mdx +498 -0
  117. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/index.mdx +1840 -0
  118. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/loaders.mdx +451 -0
  119. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/macros.mdx +328 -0
  120. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/minifier.mdx +1286 -0
  121. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/plugins.mdx +477 -0
  122. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/standalone-html.mdx +314 -0
  123. package/connectors/connect-yousign/node_modules/bun-types/docs/feedback.mdx +75 -0
  124. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-array.mdx +29 -0
  125. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-blob.mdx +26 -0
  126. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-buffer.mdx +27 -0
  127. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-string.mdx +17 -0
  128. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-typedarray.mdx +41 -0
  129. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-arraybuffer.mdx +16 -0
  130. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-dataview.mdx +16 -0
  131. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-stream.mdx +16 -0
  132. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-string.mdx +17 -0
  133. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-typedarray.mdx +16 -0
  134. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-arraybuffer.mdx +16 -0
  135. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-blob.mdx +16 -0
  136. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-readablestream.mdx +43 -0
  137. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-string.mdx +27 -0
  138. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-typedarray.mdx +16 -0
  139. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/dataview-to-string.mdx +17 -0
  140. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-arraybuffer.mdx +27 -0
  141. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-blob.mdx +18 -0
  142. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-buffer.mdx +16 -0
  143. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-dataview.mdx +16 -0
  144. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-readablestream.mdx +43 -0
  145. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-string.mdx +18 -0
  146. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/aws-lambda.mdx +204 -0
  147. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/digital-ocean.mdx +161 -0
  148. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/google-cloud-run.mdx +194 -0
  149. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/railway.mdx +145 -0
  150. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/render.mdx +82 -0
  151. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/vercel.mdx +97 -0
  152. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/astro.mdx +82 -0
  153. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/discordjs.mdx +80 -0
  154. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/docker.mdx +151 -0
  155. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/drizzle.mdx +195 -0
  156. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/elysia.mdx +31 -0
  157. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/express.mdx +43 -0
  158. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/gel.mdx +261 -0
  159. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/hono.mdx +47 -0
  160. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/mongoose.mdx +92 -0
  161. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/neon-drizzle.mdx +234 -0
  162. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/neon-serverless-postgres.mdx +60 -0
  163. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/nextjs.mdx +103 -0
  164. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/nuxt.mdx +96 -0
  165. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/pm2.mdx +55 -0
  166. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
  167. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/prisma.mdx +164 -0
  168. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/qwik.mdx +114 -0
  169. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/react.mdx +52 -0
  170. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/remix.mdx +97 -0
  171. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/sentry.mdx +54 -0
  172. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/solidstart.mdx +62 -0
  173. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/ssr-react.mdx +49 -0
  174. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/stric.mdx +54 -0
  175. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/sveltekit.mdx +138 -0
  176. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/systemd.mdx +114 -0
  177. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/tanstack-start.mdx +791 -0
  178. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/upstash.mdx +87 -0
  179. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/vite.mdx +77 -0
  180. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/html-rewriter/extract-links.mdx +71 -0
  181. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/html-rewriter/extract-social-meta.mdx +97 -0
  182. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/cluster.mdx +69 -0
  183. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/fetch-unix.mdx +35 -0
  184. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/fetch.mdx +26 -0
  185. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/file-uploads.mdx +97 -0
  186. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/hot.mdx +28 -0
  187. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/proxy.mdx +50 -0
  188. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/server.mdx +48 -0
  189. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/simple.mdx +20 -0
  190. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/stream-file.mdx +50 -0
  191. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/stream-iterator.mdx +49 -0
  192. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/stream-node-streams-in-bun.mdx +22 -0
  193. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/tls.mdx +32 -0
  194. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/index.mdx +10 -0
  195. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-dev.mdx +28 -0
  196. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-git.mdx +40 -0
  197. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-optional.mdx +27 -0
  198. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-peer.mdx +45 -0
  199. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-tarball.mdx +35 -0
  200. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add.mdx +44 -0
  201. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/azure-artifacts.mdx +76 -0
  202. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/cicd.mdx +43 -0
  203. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/custom-registry.mdx +32 -0
  204. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/from-npm-install-to-bun-install.mdx +230 -0
  205. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/git-diff-bun-lockfile.mdx +48 -0
  206. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/jfrog-artifactory.mdx +28 -0
  207. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/npm-alias.mdx +25 -0
  208. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/registry-scope.mdx +40 -0
  209. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/trusted.mdx +52 -0
  210. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/workspaces.mdx +70 -0
  211. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/yarnlock.mdx +51 -0
  212. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/argv.mdx +66 -0
  213. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/ctrl-c.mdx +18 -0
  214. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/ipc.mdx +69 -0
  215. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/nanoseconds.mdx +15 -0
  216. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/os-signals.mdx +31 -0
  217. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/spawn-stderr.mdx +34 -0
  218. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/spawn-stdout.mdx +28 -0
  219. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/spawn.mdx +43 -0
  220. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/stdin.mdx +62 -0
  221. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/arraybuffer.mdx +30 -0
  222. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/buffer.mdx +21 -0
  223. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/exists.mdx +18 -0
  224. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/json.mdx +19 -0
  225. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/mime.mdx +22 -0
  226. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/stream.mdx +28 -0
  227. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/string.mdx +24 -0
  228. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/uint8array.mdx +23 -0
  229. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/watch.mdx +66 -0
  230. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/build-time-constants.mdx +295 -0
  231. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/cicd.mdx +45 -0
  232. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/codesign-macos-executable.mdx +61 -0
  233. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/define-constant.mdx +149 -0
  234. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/delete-directory.mdx +39 -0
  235. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/delete-file.mdx +21 -0
  236. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/heap-snapshot.mdx +28 -0
  237. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-html.mdx +15 -0
  238. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-json.mdx +46 -0
  239. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-json5.mdx +74 -0
  240. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-toml.mdx +32 -0
  241. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-yaml.mdx +104 -0
  242. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/read-env.mdx +37 -0
  243. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/set-env.mdx +51 -0
  244. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/shell.mdx +42 -0
  245. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/timezone.mdx +38 -0
  246. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/tsconfig-paths.mdx +31 -0
  247. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/typescript.mdx +51 -0
  248. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/vscode-debugger.mdx +47 -0
  249. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/web-debugger.mdx +103 -0
  250. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-arraybuffer.mdx +13 -0
  251. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-blob.mdx +13 -0
  252. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-json.mdx +14 -0
  253. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-string.mdx +14 -0
  254. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-uint8array.mdx +13 -0
  255. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-array.mdx +16 -0
  256. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-arraybuffer.mdx +16 -0
  257. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-blob.mdx +16 -0
  258. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-buffer.mdx +17 -0
  259. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-json.mdx +16 -0
  260. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-string.mdx +16 -0
  261. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-typedarray.mdx +24 -0
  262. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/bail.mdx +24 -0
  263. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/concurrent-test-glob.mdx +146 -0
  264. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/coverage-threshold.mdx +67 -0
  265. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/coverage.mdx +49 -0
  266. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/happy-dom.mdx +73 -0
  267. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/migrate-from-jest.mdx +125 -0
  268. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/mock-clock.mdx +50 -0
  269. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/mock-functions.mdx +70 -0
  270. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/rerun-each.mdx +16 -0
  271. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/run-tests.mdx +116 -0
  272. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/skip-tests.mdx +43 -0
  273. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/snapshot.mdx +102 -0
  274. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/spy-on.mdx +49 -0
  275. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/svelte-test.mdx +113 -0
  276. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/testing-library.mdx +93 -0
  277. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/timeout.mdx +17 -0
  278. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/todo-tests.mdx +74 -0
  279. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/update-snapshots.mdx +49 -0
  280. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/watch-mode.mdx +24 -0
  281. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/base64.mdx +17 -0
  282. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/deep-equals.mdx +41 -0
  283. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/deflate.mdx +20 -0
  284. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/detect-bun.mdx +28 -0
  285. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/entrypoint.mdx +19 -0
  286. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/escape-html.mdx +24 -0
  287. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/file-url-to-path.mdx +16 -0
  288. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/gzip.mdx +20 -0
  289. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/hash-a-password.mdx +56 -0
  290. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/import-meta-dir.mdx +15 -0
  291. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/import-meta-file.mdx +15 -0
  292. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/import-meta-path.mdx +15 -0
  293. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/javascript-uuid.mdx +25 -0
  294. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/main.mdx +43 -0
  295. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/path-to-file-url.mdx +16 -0
  296. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/sleep.mdx +24 -0
  297. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/upgrade.mdx +93 -0
  298. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/version.mdx +23 -0
  299. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/which-path-to-executable-bin.mdx +17 -0
  300. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/compression.mdx +33 -0
  301. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/context.mdx +79 -0
  302. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/pubsub.mdx +43 -0
  303. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/simple.mdx +38 -0
  304. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/append.mdx +54 -0
  305. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/basic.mdx +46 -0
  306. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/blob.mdx +30 -0
  307. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/cat.mdx +19 -0
  308. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/file-cp.mdx +18 -0
  309. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/filesink.mdx +54 -0
  310. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/response.mdx +19 -0
  311. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/stdout.mdx +23 -0
  312. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/stream.mdx +19 -0
  313. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/unlink.mdx +18 -0
  314. package/connectors/connect-yousign/node_modules/bun-types/docs/index.mdx +133 -0
  315. package/connectors/connect-yousign/node_modules/bun-types/docs/installation.mdx +372 -0
  316. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/bunx.mdx +91 -0
  317. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/catalogs.mdx +292 -0
  318. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/add.mdx +179 -0
  319. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/audit.mdx +60 -0
  320. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/info.mdx +70 -0
  321. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/install.mdx +591 -0
  322. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/link.mdx +61 -0
  323. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/outdated.mdx +197 -0
  324. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/patch.mdx +69 -0
  325. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/pm.mdx +323 -0
  326. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/publish.mdx +131 -0
  327. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/remove.mdx +16 -0
  328. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/update.mdx +140 -0
  329. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/why.mdx +84 -0
  330. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/filter.mdx +127 -0
  331. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/global-cache.mdx +72 -0
  332. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/isolated-installs.mdx +220 -0
  333. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/lifecycle.mdx +64 -0
  334. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/lockfile.mdx +64 -0
  335. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/npmrc.mdx +245 -0
  336. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/overrides.mdx +83 -0
  337. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/scopes-registries.mdx +35 -0
  338. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/security-scanner-api.mdx +95 -0
  339. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/workspaces.mdx +115 -0
  340. package/connectors/connect-yousign/node_modules/bun-types/docs/project/benchmarking.mdx +296 -0
  341. package/connectors/connect-yousign/node_modules/bun-types/docs/project/bindgen.mdx +223 -0
  342. package/connectors/connect-yousign/node_modules/bun-types/docs/project/building-windows.mdx +143 -0
  343. package/connectors/connect-yousign/node_modules/bun-types/docs/project/contributing.mdx +366 -0
  344. package/connectors/connect-yousign/node_modules/bun-types/docs/project/feedback.mdx +20 -0
  345. package/connectors/connect-yousign/node_modules/bun-types/docs/project/license.mdx +78 -0
  346. package/connectors/connect-yousign/node_modules/bun-types/docs/project/roadmap.mdx +8 -0
  347. package/connectors/connect-yousign/node_modules/bun-types/docs/quickstart.mdx +251 -0
  348. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/archive.mdx +452 -0
  349. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/auto-install.mdx +97 -0
  350. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/binary-data.mdx +846 -0
  351. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/bun-apis.mdx +59 -0
  352. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/bunfig.mdx +754 -0
  353. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/c-compiler.mdx +204 -0
  354. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/child-process.mdx +659 -0
  355. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/color.mdx +267 -0
  356. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/console.mdx +67 -0
  357. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/cookies.mdx +454 -0
  358. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/debugger.mdx +335 -0
  359. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/environment-variables.mdx +231 -0
  360. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/ffi.mdx +567 -0
  361. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/file-io.mdx +306 -0
  362. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/file-system-router.mdx +118 -0
  363. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/file-types.mdx +482 -0
  364. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/glob.mdx +181 -0
  365. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/globals.mdx +72 -0
  366. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/hashing.mdx +315 -0
  367. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/html-rewriter.mdx +333 -0
  368. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/cookies.mdx +79 -0
  369. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/error-handling.mdx +40 -0
  370. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/metrics.mdx +36 -0
  371. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/routing.mdx +289 -0
  372. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/server.mdx +645 -0
  373. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/tls.mdx +101 -0
  374. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/websockets.mdx +414 -0
  375. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/index.mdx +223 -0
  376. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/json5.mdx +271 -0
  377. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/jsonl.mdx +188 -0
  378. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/jsx.mdx +115 -0
  379. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/markdown.mdx +344 -0
  380. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/module-resolution.mdx +374 -0
  381. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/dns.mdx +111 -0
  382. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/fetch.mdx +484 -0
  383. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/tcp.mdx +239 -0
  384. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/udp.mdx +180 -0
  385. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/node-api.mdx +19 -0
  386. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/nodejs-compat.mdx +468 -0
  387. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/plugins.mdx +419 -0
  388. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/redis.mdx +583 -0
  389. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/repl.mdx +176 -0
  390. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/s3.mdx +881 -0
  391. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/secrets.mdx +340 -0
  392. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/semver.mdx +57 -0
  393. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/shell.mdx +637 -0
  394. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/sql.mdx +1404 -0
  395. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/sqlite.mdx +721 -0
  396. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/streams.mdx +232 -0
  397. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/templating/create.mdx +269 -0
  398. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/templating/init.mdx +58 -0
  399. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/transpiler.mdx +288 -0
  400. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/typescript.mdx +58 -0
  401. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/utils.mdx +1010 -0
  402. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/watch-mode.mdx +161 -0
  403. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/web-apis.mdx +29 -0
  404. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/workers.mdx +314 -0
  405. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/yaml.mdx +469 -0
  406. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/add.mdx +166 -0
  407. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/build.mdx +197 -0
  408. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/bunx.mdx +49 -0
  409. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/feedback.mdx +17 -0
  410. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/init.mdx +84 -0
  411. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/install.mdx +173 -0
  412. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/link.mdx +163 -0
  413. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/outdated.mdx +140 -0
  414. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/patch.mdx +171 -0
  415. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/publish.mdx +198 -0
  416. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/remove.mdx +146 -0
  417. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/run.mdx +305 -0
  418. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/test.mdx +105 -0
  419. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/update.mdx +144 -0
  420. package/connectors/connect-yousign/node_modules/bun-types/docs/test/code-coverage.mdx +409 -0
  421. package/connectors/connect-yousign/node_modules/bun-types/docs/test/configuration.mdx +520 -0
  422. package/connectors/connect-yousign/node_modules/bun-types/docs/test/dates-times.mdx +129 -0
  423. package/connectors/connect-yousign/node_modules/bun-types/docs/test/discovery.mdx +90 -0
  424. package/connectors/connect-yousign/node_modules/bun-types/docs/test/dom.mdx +226 -0
  425. package/connectors/connect-yousign/node_modules/bun-types/docs/test/index.mdx +409 -0
  426. package/connectors/connect-yousign/node_modules/bun-types/docs/test/lifecycle.mdx +366 -0
  427. package/connectors/connect-yousign/node_modules/bun-types/docs/test/mocks.mdx +637 -0
  428. package/connectors/connect-yousign/node_modules/bun-types/docs/test/reporters.mdx +126 -0
  429. package/connectors/connect-yousign/node_modules/bun-types/docs/test/runtime-behavior.mdx +342 -0
  430. package/connectors/connect-yousign/node_modules/bun-types/docs/test/snapshots.mdx +434 -0
  431. package/connectors/connect-yousign/node_modules/bun-types/docs/test/writing-tests.mdx +672 -0
  432. package/connectors/connect-yousign/node_modules/bun-types/docs/typescript.mdx +54 -0
  433. package/connectors/connect-yousign/node_modules/bun-types/extensions.d.ts +40 -0
  434. package/connectors/connect-yousign/node_modules/bun-types/fetch.d.ts +79 -0
  435. package/connectors/connect-yousign/node_modules/bun-types/ffi.d.ts +1154 -0
  436. package/connectors/connect-yousign/node_modules/bun-types/globals.d.ts +2067 -0
  437. package/connectors/connect-yousign/node_modules/bun-types/html-rewriter.d.ts +186 -0
  438. package/connectors/connect-yousign/node_modules/bun-types/index.d.ts +32 -0
  439. package/connectors/connect-yousign/node_modules/bun-types/jsc.d.ts +233 -0
  440. package/connectors/connect-yousign/node_modules/bun-types/jsx.d.ts +11 -0
  441. package/connectors/connect-yousign/node_modules/bun-types/overrides.d.ts +376 -0
  442. package/connectors/connect-yousign/node_modules/bun-types/package.json +37 -0
  443. package/connectors/connect-yousign/node_modules/bun-types/redis.d.ts +3352 -0
  444. package/connectors/connect-yousign/node_modules/bun-types/s3.d.ts +1335 -0
  445. package/connectors/connect-yousign/node_modules/bun-types/security.d.ts +101 -0
  446. package/connectors/connect-yousign/node_modules/bun-types/serve.d.ts +1296 -0
  447. package/connectors/connect-yousign/node_modules/bun-types/shell.d.ts +380 -0
  448. package/connectors/connect-yousign/node_modules/bun-types/sql.d.ts +887 -0
  449. package/connectors/connect-yousign/node_modules/bun-types/sqlite.d.ts +1322 -0
  450. package/connectors/connect-yousign/node_modules/bun-types/test-globals.d.ts +22 -0
  451. package/connectors/connect-yousign/node_modules/bun-types/test.d.ts +2392 -0
  452. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/branding.d.ts +283 -0
  453. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/index.d.ts +1207 -0
  454. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/messages.d.ts +395 -0
  455. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/overloads.d.ts +669 -0
  456. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/utils.d.ts +431 -0
  457. package/connectors/connect-yousign/node_modules/bun-types/wasm.d.ts +193 -0
  458. package/connectors/connect-yousign/node_modules/chalk/license +9 -0
  459. package/connectors/connect-yousign/node_modules/chalk/package.json +83 -0
  460. package/connectors/connect-yousign/node_modules/chalk/readme.md +297 -0
  461. package/connectors/connect-yousign/node_modules/chalk/source/index.d.ts +325 -0
  462. package/connectors/connect-yousign/node_modules/chalk/source/index.js +225 -0
  463. package/connectors/connect-yousign/node_modules/chalk/source/utilities.js +33 -0
  464. package/connectors/connect-yousign/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  465. package/connectors/connect-yousign/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  466. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  467. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
  468. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  469. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
  470. package/connectors/connect-yousign/node_modules/commander/LICENSE +22 -0
  471. package/connectors/connect-yousign/node_modules/commander/Readme.md +1157 -0
  472. package/connectors/connect-yousign/node_modules/commander/esm.mjs +16 -0
  473. package/connectors/connect-yousign/node_modules/commander/index.js +24 -0
  474. package/connectors/connect-yousign/node_modules/commander/lib/argument.js +149 -0
  475. package/connectors/connect-yousign/node_modules/commander/lib/command.js +2509 -0
  476. package/connectors/connect-yousign/node_modules/commander/lib/error.js +39 -0
  477. package/connectors/connect-yousign/node_modules/commander/lib/help.js +520 -0
  478. package/connectors/connect-yousign/node_modules/commander/lib/option.js +330 -0
  479. package/connectors/connect-yousign/node_modules/commander/lib/suggestSimilar.js +101 -0
  480. package/connectors/connect-yousign/node_modules/commander/package-support.json +16 -0
  481. package/connectors/connect-yousign/node_modules/commander/package.json +84 -0
  482. package/connectors/connect-yousign/node_modules/commander/typings/esm.d.mts +3 -0
  483. package/connectors/connect-yousign/node_modules/commander/typings/index.d.ts +969 -0
  484. package/connectors/connect-yousign/node_modules/typescript/LICENSE.txt +55 -0
  485. package/connectors/connect-yousign/node_modules/typescript/README.md +50 -0
  486. package/connectors/connect-yousign/node_modules/typescript/SECURITY.md +41 -0
  487. package/connectors/connect-yousign/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
  488. package/connectors/connect-yousign/node_modules/typescript/bin/tsc +2 -0
  489. package/connectors/connect-yousign/node_modules/typescript/bin/tsserver +2 -0
  490. package/connectors/connect-yousign/node_modules/typescript/lib/_tsc.js +133818 -0
  491. package/connectors/connect-yousign/node_modules/typescript/lib/_tsserver.js +659 -0
  492. package/connectors/connect-yousign/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  493. package/connectors/connect-yousign/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
  494. package/connectors/connect-yousign/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
  495. package/connectors/connect-yousign/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
  496. package/connectors/connect-yousign/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
  497. package/connectors/connect-yousign/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
  498. package/connectors/connect-yousign/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
  499. package/connectors/connect-yousign/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
  500. package/connectors/connect-yousign/node_modules/typescript/lib/lib.d.ts +22 -0
  501. package/connectors/connect-yousign/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
  502. package/connectors/connect-yousign/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
  503. package/connectors/connect-yousign/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
  504. package/connectors/connect-yousign/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
  505. package/connectors/connect-yousign/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
  506. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
  507. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
  508. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
  509. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
  510. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
  511. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
  512. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
  513. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
  514. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
  515. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
  516. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
  517. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
  518. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
  519. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
  520. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
  521. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
  522. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  523. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
  524. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
  525. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
  526. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
  527. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
  528. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
  529. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
  530. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
  531. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
  532. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
  533. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
  534. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
  535. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
  536. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
  537. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
  538. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
  539. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
  540. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
  541. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
  542. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
  543. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
  544. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
  545. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
  546. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
  547. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
  548. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
  549. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
  550. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
  551. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
  552. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
  553. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
  554. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
  555. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
  556. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
  557. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
  558. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
  559. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
  560. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
  561. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
  562. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
  563. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
  564. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
  565. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
  566. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
  567. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
  568. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  569. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
  570. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
  571. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
  572. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
  573. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
  574. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
  575. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
  576. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
  577. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
  578. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
  579. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
  580. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
  581. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
  582. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es6.d.ts +23 -0
  583. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
  584. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
  585. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
  586. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  587. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
  588. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
  589. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
  590. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
  591. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
  592. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
  593. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  594. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
  595. package/connectors/connect-yousign/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
  596. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
  597. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
  598. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
  599. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
  600. package/connectors/connect-yousign/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
  601. package/connectors/connect-yousign/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
  602. package/connectors/connect-yousign/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
  603. package/connectors/connect-yousign/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
  604. package/connectors/connect-yousign/node_modules/typescript/lib/tsc.js +8 -0
  605. package/connectors/connect-yousign/node_modules/typescript/lib/tsserver.js +8 -0
  606. package/connectors/connect-yousign/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  607. package/connectors/connect-yousign/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  608. package/connectors/connect-yousign/node_modules/typescript/lib/typesMap.json +497 -0
  609. package/connectors/connect-yousign/node_modules/typescript/lib/typescript.d.ts +11437 -0
  610. package/connectors/connect-yousign/node_modules/typescript/lib/typescript.js +200276 -0
  611. package/connectors/connect-yousign/node_modules/typescript/lib/typingsInstaller.js +8 -0
  612. package/connectors/connect-yousign/node_modules/typescript/lib/watchGuard.js +53 -0
  613. package/connectors/connect-yousign/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
  614. package/connectors/connect-yousign/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
  615. package/connectors/connect-yousign/node_modules/typescript/package.json +120 -0
  616. package/connectors/connect-yousign/node_modules/undici-types/LICENSE +21 -0
  617. package/connectors/connect-yousign/node_modules/undici-types/README.md +6 -0
  618. package/connectors/connect-yousign/node_modules/undici-types/agent.d.ts +32 -0
  619. package/connectors/connect-yousign/node_modules/undici-types/api.d.ts +43 -0
  620. package/connectors/connect-yousign/node_modules/undici-types/balanced-pool.d.ts +30 -0
  621. package/connectors/connect-yousign/node_modules/undici-types/cache-interceptor.d.ts +173 -0
  622. package/connectors/connect-yousign/node_modules/undici-types/cache.d.ts +36 -0
  623. package/connectors/connect-yousign/node_modules/undici-types/client-stats.d.ts +15 -0
  624. package/connectors/connect-yousign/node_modules/undici-types/client.d.ts +108 -0
  625. package/connectors/connect-yousign/node_modules/undici-types/connector.d.ts +34 -0
  626. package/connectors/connect-yousign/node_modules/undici-types/content-type.d.ts +21 -0
  627. package/connectors/connect-yousign/node_modules/undici-types/cookies.d.ts +30 -0
  628. package/connectors/connect-yousign/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  629. package/connectors/connect-yousign/node_modules/undici-types/dispatcher.d.ts +276 -0
  630. package/connectors/connect-yousign/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  631. package/connectors/connect-yousign/node_modules/undici-types/errors.d.ts +161 -0
  632. package/connectors/connect-yousign/node_modules/undici-types/eventsource.d.ts +66 -0
  633. package/connectors/connect-yousign/node_modules/undici-types/fetch.d.ts +211 -0
  634. package/connectors/connect-yousign/node_modules/undici-types/formdata.d.ts +108 -0
  635. package/connectors/connect-yousign/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  636. package/connectors/connect-yousign/node_modules/undici-types/global-origin.d.ts +7 -0
  637. package/connectors/connect-yousign/node_modules/undici-types/h2c-client.d.ts +73 -0
  638. package/connectors/connect-yousign/node_modules/undici-types/handlers.d.ts +15 -0
  639. package/connectors/connect-yousign/node_modules/undici-types/header.d.ts +160 -0
  640. package/connectors/connect-yousign/node_modules/undici-types/index.d.ts +88 -0
  641. package/connectors/connect-yousign/node_modules/undici-types/interceptors.d.ts +73 -0
  642. package/connectors/connect-yousign/node_modules/undici-types/mock-agent.d.ts +68 -0
  643. package/connectors/connect-yousign/node_modules/undici-types/mock-call-history.d.ts +111 -0
  644. package/connectors/connect-yousign/node_modules/undici-types/mock-client.d.ts +27 -0
  645. package/connectors/connect-yousign/node_modules/undici-types/mock-errors.d.ts +12 -0
  646. package/connectors/connect-yousign/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  647. package/connectors/connect-yousign/node_modules/undici-types/mock-pool.d.ts +27 -0
  648. package/connectors/connect-yousign/node_modules/undici-types/package.json +55 -0
  649. package/connectors/connect-yousign/node_modules/undici-types/patch.d.ts +29 -0
  650. package/connectors/connect-yousign/node_modules/undici-types/pool-stats.d.ts +19 -0
  651. package/connectors/connect-yousign/node_modules/undici-types/pool.d.ts +41 -0
  652. package/connectors/connect-yousign/node_modules/undici-types/proxy-agent.d.ts +29 -0
  653. package/connectors/connect-yousign/node_modules/undici-types/readable.d.ts +68 -0
  654. package/connectors/connect-yousign/node_modules/undici-types/retry-agent.d.ts +8 -0
  655. package/connectors/connect-yousign/node_modules/undici-types/retry-handler.d.ts +125 -0
  656. package/connectors/connect-yousign/node_modules/undici-types/round-robin-pool.d.ts +41 -0
  657. package/connectors/connect-yousign/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  658. package/connectors/connect-yousign/node_modules/undici-types/util.d.ts +18 -0
  659. package/connectors/connect-yousign/node_modules/undici-types/utility.d.ts +7 -0
  660. package/connectors/connect-yousign/node_modules/undici-types/webidl.d.ts +341 -0
  661. package/connectors/connect-yousign/node_modules/undici-types/websocket.d.ts +186 -0
  662. package/dashboard/dist/assets/index-CSlS3oNV.css +1 -0
  663. package/dashboard/dist/assets/index-NCasN7x4.js +284 -0
  664. package/dashboard/dist/index.html +2 -2
  665. package/dist/cli/commands/auth.d.ts +0 -3
  666. package/dist/index.d.ts +1 -2
  667. package/dist/index.js +167 -1399
  668. package/dist/lib/lock.d.ts +1 -1
  669. package/dist/lib/runner.d.ts +0 -31
  670. package/dist/lib/workflow-runner.d.ts +0 -7
  671. package/dist/server/auth.d.ts +3 -4
  672. package/package.json +1 -1
  673. package/connectors/gmail/bin/index.js +0 -7027
  674. package/connectors/googledrive/bin/index.js +0 -5958
  675. package/connectors/imessage/bin/.gitkeep +0 -2
  676. package/connectors/imessage/bun.lock +0 -32
  677. package/dashboard/dist/assets/index-ClBXkNbL.css +0 -1
  678. package/dashboard/dist/assets/index-DvfmyAO4.js +0 -284
  679. package/dist/core/builtins.test.d.ts +0 -1
  680. package/dist/core/connectors/gmail.d.ts +0 -5
  681. package/dist/core/connectors/googledrive.d.ts +0 -6
  682. package/dist/core/connectors/internal-operations.test.d.ts +0 -1
  683. package/dist/core/connectors/internal-runtime.test.d.ts +0 -1
  684. package/dist/core/errors.test.d.ts +0 -1
  685. package/dist/lib/connector-resolver.d.ts +0 -37
  686. package/dist/lib/connector-resolver.test.d.ts +0 -1
  687. package/dist/lib/manifest.d.ts +0 -50
  688. package/dist/lib/manifest.test.d.ts +0 -1
  689. package/dist/lib/runner-auth.test.d.ts +0 -1
  690. package/dist/lib/test-endpoints.test.d.ts +0 -1
  691. package/dist/server/auth-exchange.test.d.ts +0 -1
  692. package/dist/server/auth-refresh.test.d.ts +0 -1
  693. /package/dist/{cli/auth-no-browser.test.d.ts → server/server.test.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -15,8 +15,8 @@ var __export = (target, all) => {
15
15
  };
16
16
 
17
17
  // src/lib/registry.ts
18
- import { existsSync as existsSync9, readFileSync as readFileSync5 } from "fs";
19
- import { join as join11, dirname as dirname5 } from "path";
18
+ import { existsSync as existsSync8, readFileSync as readFileSync3 } from "fs";
19
+ import { join as join9, dirname as dirname5 } from "path";
20
20
  import { fileURLToPath as fileURLToPath3 } from "url";
21
21
 
22
22
  // src/core/errors.ts
@@ -42,7 +42,7 @@ class ConnectorOperationNotFoundError extends Error {
42
42
 
43
43
  // src/core/connector.ts
44
44
  var CONNECTOR_NAME_RE = /^[a-z0-9-]+$/;
45
- var OPERATION_NAME_RE = /^[A-Za-z0-9:._-]+$/;
45
+ var OPERATION_NAME_RE = /^[a-z0-9:_-]+$/;
46
46
  function defineConnector(definition) {
47
47
  const { meta, auth, operations } = definition;
48
48
  if (!CONNECTOR_NAME_RE.test(meta.name)) {
@@ -4113,10 +4113,10 @@ var NEVER = INVALID;
4113
4113
  var __dirname2 = dirname(fileURLToPath(import.meta.url));
4114
4114
  function resolveGithubConnectorDir() {
4115
4115
  const candidates = [
4116
- join(__dirname2, "..", "..", "..", "connectors", "github"),
4117
- join(__dirname2, "..", "..", "connectors", "github"),
4118
- join(__dirname2, "..", "connectors", "github"),
4119
- join(process.cwd(), "connectors", "github")
4116
+ join(__dirname2, "..", "..", "..", "connectors", "connect-github"),
4117
+ join(__dirname2, "..", "..", "connectors", "connect-github"),
4118
+ join(__dirname2, "..", "connectors", "connect-github"),
4119
+ join(process.cwd(), "connectors", "connect-github")
4120
4120
  ];
4121
4121
  for (const candidate of candidates) {
4122
4122
  if (existsSync(candidate)) {
@@ -4966,805 +4966,10 @@ var githubConnector = defineConnector({
4966
4966
  }
4967
4967
  }
4968
4968
  });
4969
-
4970
- // src/core/connectors/gmail.ts
4971
- import { existsSync as existsSync2, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
4972
- import { homedir } from "os";
4973
- import { basename, join as join2 } from "path";
4974
- var GMAIL_API_BASE = "https://gmail.googleapis.com/gmail/v1";
4975
- var TOKEN_URL = "https://oauth2.googleapis.com/token";
4976
- var REFRESH_BUFFER_MS = 5 * 60 * 1000;
4977
- var MAX_GMAIL_RETRIES = 5;
4978
- var listMessagesSchema = exports_external.object({
4979
- max: exports_external.coerce.number().int().positive().max(500).optional(),
4980
- maxResults: exports_external.coerce.number().int().positive().max(500).optional(),
4981
- pageToken: exports_external.string().optional(),
4982
- query: exports_external.string().optional(),
4983
- q: exports_external.string().optional(),
4984
- label: exports_external.string().optional(),
4985
- labelIds: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
4986
- includeSpamTrash: exports_external.boolean().optional()
4987
- });
4988
- var messageIdSchema = exports_external.object({
4989
- args: exports_external.array(exports_external.union([exports_external.string(), exports_external.number(), exports_external.boolean()])).optional(),
4990
- messageId: exports_external.string().optional()
4991
- });
4992
- var readMessageSchema = messageIdSchema.extend({
4993
- body: exports_external.boolean().optional(),
4994
- html: exports_external.boolean().optional(),
4995
- format: exports_external.enum(["full", "metadata", "minimal", "raw"]).optional()
4996
- });
4997
- var attachmentListSchema = messageIdSchema;
4998
- var attachmentDownloadSchema = messageIdSchema.extend({
4999
- attachmentId: exports_external.string().optional(),
5000
- filename: exports_external.string().optional(),
5001
- mimeType: exports_external.string().optional(),
5002
- dir: exports_external.string().optional(),
5003
- outputDir: exports_external.string().optional()
5004
- });
5005
- var historyListSchema = exports_external.object({
5006
- startHistoryId: exports_external.string(),
5007
- historyTypes: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
5008
- labelId: exports_external.string().optional(),
5009
- maxResults: exports_external.coerce.number().int().positive().max(500).optional(),
5010
- pageToken: exports_external.string().optional()
5011
- });
5012
- var replySchema = messageIdSchema.extend({
5013
- body: exports_external.string(),
5014
- html: exports_external.boolean().optional(),
5015
- isHtml: exports_external.boolean().optional(),
5016
- cc: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
5017
- bcc: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional()
5018
- });
5019
- var gmailConnector = defineConnector({
5020
- meta: {
5021
- name: "gmail",
5022
- displayName: "Gmail",
5023
- description: "Profile-aware Gmail mailbox operations for sync, labels, attachments, history, and replies.",
5024
- category: "communication",
5025
- tags: ["google", "gmail", "email", "mailbox"]
5026
- },
5027
- auth: {
5028
- type: "oauth2",
5029
- supportsProfiles: true,
5030
- fields: [
5031
- { key: "clientId", env: "GMAIL_CLIENT_ID", label: "OAuth client ID" },
5032
- { key: "clientSecret", env: "GMAIL_CLIENT_SECRET", label: "OAuth client secret", secret: true }
5033
- ]
5034
- },
5035
- createContext: ({ profile }) => ({ profile: profile || "default" }),
5036
- operations: {
5037
- "profiles.list": {
5038
- summary: "List configured Gmail profiles.",
5039
- execute: () => ({ profiles: listProfiles() })
5040
- },
5041
- "profile.get": {
5042
- summary: "Get the authenticated Gmail profile.",
5043
- execute: async ({ context }) => requestJson(context.profile, "/users/me/profile", {})
5044
- },
5045
- "messages.list": {
5046
- summary: "List Gmail messages.",
5047
- inputSchema: listMessagesSchema,
5048
- execute: async ({ context }, input) => {
5049
- const labelIds = normalizeStringArray(input.labelIds ?? input.label);
5050
- return requestJson(context.profile, "/users/me/messages", {
5051
- maxResults: input.maxResults ?? input.max ?? 50,
5052
- pageToken: input.pageToken,
5053
- q: input.q ?? input.query,
5054
- labelIds: labelIds.length > 0 ? labelIds.join(",") : undefined,
5055
- includeSpamTrash: input.includeSpamTrash
5056
- });
5057
- }
5058
- },
5059
- "messages.read": {
5060
- summary: "Read a Gmail message with optional extracted body.",
5061
- inputSchema: readMessageSchema,
5062
- execute: async ({ context }, input) => {
5063
- const messageId = getMessageId(input);
5064
- const message = await requestJson(context.profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: input.format ?? "full" });
5065
- const headers = headersToObject(message.payload?.headers ?? []);
5066
- return {
5067
- ...message,
5068
- from: headers.From ?? headers.from ?? "",
5069
- to: headers.To ?? headers.to ?? "",
5070
- cc: headers.Cc ?? headers.cc ?? "",
5071
- subject: headers.Subject ?? headers.subject ?? "",
5072
- date: headers.Date ?? headers.date ?? "",
5073
- body: input.body ? extractBody(message, Boolean(input.html)) : undefined,
5074
- size: message.sizeEstimate
5075
- };
5076
- }
5077
- },
5078
- "messages.getRaw": {
5079
- summary: "Read raw base64url Gmail message content.",
5080
- inputSchema: messageIdSchema,
5081
- execute: async ({ context }, input) => {
5082
- const messageId = getMessageId(input);
5083
- return requestJson(context.profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: "raw" });
5084
- }
5085
- },
5086
- "messages.mark-read": {
5087
- summary: "Mark a message as read.",
5088
- inputSchema: messageIdSchema,
5089
- execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), undefined, ["UNREAD"])
5090
- },
5091
- "messages.mark-unread": {
5092
- summary: "Mark a message as unread.",
5093
- inputSchema: messageIdSchema,
5094
- execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), ["UNREAD"], undefined)
5095
- },
5096
- "messages.archive": {
5097
- summary: "Archive a message by removing the INBOX label.",
5098
- inputSchema: messageIdSchema,
5099
- execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), undefined, ["INBOX"])
5100
- },
5101
- "messages.star": {
5102
- summary: "Star a message.",
5103
- inputSchema: messageIdSchema,
5104
- execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), ["STARRED"], undefined)
5105
- },
5106
- "messages.reply": {
5107
- summary: "Reply to a Gmail message in the same thread.",
5108
- inputSchema: replySchema,
5109
- execute: async ({ context }, input) => replyToMessage(context.profile, getMessageId(input), input)
5110
- },
5111
- "attachments.list": {
5112
- summary: "List Gmail message attachments.",
5113
- inputSchema: attachmentListSchema,
5114
- execute: async ({ context }, input) => {
5115
- const message = await requestJson(context.profile, `/users/me/messages/${encodeURIComponent(getMessageId(input))}`, { format: "full" });
5116
- return collectAttachments(message.payload);
5117
- }
5118
- },
5119
- "attachments.download": {
5120
- summary: "Download one or all Gmail message attachments to disk.",
5121
- inputSchema: attachmentDownloadSchema,
5122
- execute: async ({ context }, input) => downloadAttachments(context.profile, input)
5123
- },
5124
- "labels.list": {
5125
- summary: "List Gmail labels.",
5126
- execute: async ({ context }) => requestJson(context.profile, "/users/me/labels", {})
5127
- },
5128
- "history.list": {
5129
- summary: "List Gmail mailbox history from a history id.",
5130
- inputSchema: historyListSchema,
5131
- execute: async ({ context }, input) => requestJson(context.profile, "/users/me/history", {
5132
- startHistoryId: input.startHistoryId,
5133
- historyTypes: normalizeStringArray(input.historyTypes).join(",") || undefined,
5134
- labelId: input.labelId,
5135
- maxResults: input.maxResults,
5136
- pageToken: input.pageToken
5137
- })
5138
- }
5139
- }
5140
- });
5141
- async function modifyMessage(profile, messageId, addLabelIds, removeLabelIds) {
5142
- return requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}/modify`, {}, {
5143
- method: "POST",
5144
- body: {
5145
- addLabelIds: addLabelIds ?? [],
5146
- removeLabelIds: removeLabelIds ?? []
5147
- }
5148
- });
5149
- }
5150
- async function replyToMessage(profile, messageId, input) {
5151
- const original = await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: "full" });
5152
- const headers = headersToObject(original.payload?.headers ?? []);
5153
- const subject = normalizeReplySubject(headers.Subject ?? headers.subject ?? "");
5154
- const to = headers.From ?? headers.from ?? "";
5155
- const messageIdHeader = headers["Message-ID"] ?? headers["Message-Id"] ?? headers["message-id"] ?? "";
5156
- const references = [headers.References ?? headers.references, messageIdHeader].filter(Boolean).join(" ");
5157
- const raw = buildRawEmail({
5158
- to,
5159
- cc: normalizeStringArray(input.cc),
5160
- bcc: normalizeStringArray(input.bcc),
5161
- subject,
5162
- body: input.body,
5163
- isHtml: Boolean(input.html ?? input.isHtml),
5164
- inReplyTo: messageIdHeader,
5165
- references
5166
- });
5167
- return requestJson(profile, "/users/me/messages/send", {}, {
5168
- method: "POST",
5169
- body: {
5170
- raw: Buffer.from(raw).toString("base64url"),
5171
- threadId: original.threadId
5172
- }
5173
- });
5174
- }
5175
- async function downloadAttachments(profile, input) {
5176
- const messageId = getMessageId(input);
5177
- const outputDir = input.dir ?? input.outputDir ?? join2(configDirs()[0], "attachments", messageId);
5178
- mkdirSync(outputDir, { recursive: true });
5179
- const attachments = input.attachmentId && input.filename ? [{
5180
- attachmentId: input.attachmentId,
5181
- filename: input.filename,
5182
- mimeType: input.mimeType ?? "application/octet-stream",
5183
- size: 0
5184
- }] : collectAttachments((await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: "full" })).payload);
5185
- const downloaded = [];
5186
- for (const attachment of attachments) {
5187
- const data = await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}/attachments/${encodeURIComponent(attachment.attachmentId)}`, {});
5188
- const filename = safeFilename(attachment.filename);
5189
- const path = join2(outputDir, filename);
5190
- const buffer = Buffer.from(data.data, "base64url");
5191
- writeFileSync(path, buffer);
5192
- downloaded.push({
5193
- filename,
5194
- path,
5195
- size: buffer.length,
5196
- mimeType: attachment.mimeType
5197
- });
5198
- }
5199
- return downloaded;
5200
- }
5201
- async function requestJson(profile, path, params, options = {}) {
5202
- const token = await getValidAccessToken(profile);
5203
- const url = new URL(`${GMAIL_API_BASE}${path}`);
5204
- for (const [key, value] of Object.entries(params)) {
5205
- if (value !== undefined && value !== null && value !== "")
5206
- url.searchParams.append(key, String(value));
5207
- }
5208
- let lastError;
5209
- for (let attempt = 0;attempt <= MAX_GMAIL_RETRIES; attempt++) {
5210
- let response;
5211
- try {
5212
- response = await fetch(url, {
5213
- method: options.method ?? "GET",
5214
- headers: {
5215
- Authorization: `Bearer ${token}`,
5216
- Accept: "application/json",
5217
- ...options.body ? { "Content-Type": "application/json" } : {}
5218
- },
5219
- body: options.body ? JSON.stringify(options.body) : undefined
5220
- });
5221
- } catch (error2) {
5222
- lastError = error2 instanceof Error ? error2.message : String(error2);
5223
- if (attempt >= MAX_GMAIL_RETRIES)
5224
- throw error2;
5225
- await sleep(gmailBackoffDelayMs(attempt));
5226
- continue;
5227
- }
5228
- const text = await response.text();
5229
- const data = text ? JSON.parse(text) : {};
5230
- if (response.ok)
5231
- return data;
5232
- const error = data;
5233
- lastError = error.error?.message ?? response.statusText;
5234
- if (!isRetryableGmailResponse(response.status, error) || attempt >= MAX_GMAIL_RETRIES) {
5235
- throw new Error(`Gmail request failed (${response.status}): ${lastError}`);
5236
- }
5237
- await sleep(gmailBackoffDelayMs(attempt, response.headers.get("retry-after")));
5238
- }
5239
- throw new Error(`Gmail request failed: ${lastError ?? "unknown error"}`);
5240
- }
5241
- function isRetryableGmailResponse(status, error) {
5242
- if ([429, 500, 502, 503, 504].includes(status))
5243
- return true;
5244
- const reasons = error.error?.errors?.map((entry) => entry.reason) ?? [];
5245
- return reasons.some((reason) => reason === "rateLimitExceeded" || reason === "userRateLimitExceeded");
5246
- }
5247
- function gmailBackoffDelayMs(attempt, retryAfter = null) {
5248
- if (retryAfter) {
5249
- const seconds = Number(retryAfter);
5250
- if (Number.isFinite(seconds) && seconds >= 0)
5251
- return seconds * 1000;
5252
- }
5253
- const base = Number(process.env.CONNECTORS_GMAIL_RETRY_BASE_MS ?? "1000");
5254
- const baseMs = Number.isFinite(base) && base >= 0 ? base : 1000;
5255
- const jitterMs = Math.floor(Math.random() * 1000);
5256
- return Math.min(2 ** attempt * baseMs + jitterMs, 64000);
5257
- }
5258
- function sleep(ms) {
5259
- return new Promise((resolve) => setTimeout(resolve, ms));
5260
- }
5261
- async function getValidAccessToken(profile) {
5262
- if (process.env.GMAIL_ACCESS_TOKEN)
5263
- return process.env.GMAIL_ACCESS_TOKEN;
5264
- const tokens = loadTokens(profile);
5265
- if (!tokens?.accessToken && !tokens?.refreshToken) {
5266
- throw new Error(`Gmail profile "${profile}" is not authenticated. Run: connectors auth gmail`);
5267
- }
5268
- if (tokens.accessToken && (!tokens.expiresAt || Date.now() < tokens.expiresAt - REFRESH_BUFFER_MS))
5269
- return tokens.accessToken;
5270
- if (!tokens.refreshToken)
5271
- return tokens.accessToken ?? "";
5272
- return (await refreshAccessToken(profile, tokens)).accessToken ?? "";
5273
- }
5274
- async function refreshAccessToken(profile, currentTokens) {
5275
- const credentials = loadCredentials(profile);
5276
- if (!credentials.clientId || !credentials.clientSecret)
5277
- throw new Error("Gmail OAuth credentials are not configured. Run: connectors auth gmail");
5278
- if (!currentTokens.refreshToken)
5279
- throw new Error(`Gmail profile "${profile}" has no refresh token. Run: connectors auth gmail`);
5280
- const response = await fetch(TOKEN_URL, {
5281
- method: "POST",
5282
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
5283
- body: new URLSearchParams({
5284
- client_id: credentials.clientId,
5285
- client_secret: credentials.clientSecret,
5286
- refresh_token: currentTokens.refreshToken,
5287
- grant_type: "refresh_token"
5288
- })
5289
- });
5290
- const data = await response.json().catch(() => ({}));
5291
- if (!response.ok || !data.access_token)
5292
- throw new Error(`Gmail token refresh failed: ${data.error_description || data.error || response.statusText}`);
5293
- const tokens = {
5294
- accessToken: data.access_token,
5295
- refreshToken: currentTokens.refreshToken,
5296
- expiresAt: Date.now() + (data.expires_in ?? 3600) * 1000,
5297
- tokenType: data.token_type ?? currentTokens.tokenType,
5298
- scope: data.scope ?? currentTokens.scope
5299
- };
5300
- saveTokens(profile, tokens);
5301
- return tokens;
5302
- }
5303
- function listProfiles() {
5304
- const profiles = new Set;
5305
- for (const baseDir of configDirs()) {
5306
- const profilesDir = join2(baseDir, "profiles");
5307
- if (!existsSync2(profilesDir))
5308
- continue;
5309
- for (const entry of readdirSync(profilesDir, { withFileTypes: true })) {
5310
- if (entry.isDirectory())
5311
- profiles.add(entry.name);
5312
- if (entry.isFile() && entry.name.endsWith(".json"))
5313
- profiles.add(basename(entry.name, ".json"));
5314
- }
5315
- }
5316
- return Array.from(profiles).sort((a, b) => a.localeCompare(b));
5317
- }
5318
- function loadCredentials(profile) {
5319
- const envClientId = process.env.GMAIL_CLIENT_ID ?? process.env.GOOGLE_CLIENT_ID;
5320
- const envClientSecret = process.env.GMAIL_CLIENT_SECRET ?? process.env.GOOGLE_CLIENT_SECRET;
5321
- if (envClientId && envClientSecret)
5322
- return { clientId: envClientId, clientSecret: envClientSecret };
5323
- for (const baseDir of configDirs()) {
5324
- const credentials = {
5325
- ...readJson(join2(baseDir, "credentials.json")),
5326
- ...readJson(join2(baseDir, "profiles", profile, "config.json"))
5327
- };
5328
- if (credentials.clientId || credentials.clientSecret)
5329
- return credentials;
5330
- }
5331
- return {};
5332
- }
5333
- function loadTokens(profile) {
5334
- for (const baseDir of configDirs()) {
5335
- const fromProfile = readJson(join2(baseDir, "profiles", profile, "tokens.json"));
5336
- if (fromProfile)
5337
- return fromProfile;
5338
- const flat = readJson(join2(baseDir, "profiles", `${profile}.json`));
5339
- if (flat)
5340
- return flat.tokens ?? (flat.accessToken || flat.refreshToken ? flat : null);
5341
- }
5342
- return null;
5343
- }
5344
- function saveTokens(profile, tokens) {
5345
- const baseDir = configDirs().find((dir) => existsSync2(dir)) ?? configDirs()[0];
5346
- const profileDir = join2(baseDir, "profiles", profile);
5347
- mkdirSync(profileDir, { recursive: true });
5348
- writeFileSync(join2(profileDir, "tokens.json"), JSON.stringify(tokens, null, 2), { mode: 384 });
5349
- }
5350
- function configDirs() {
5351
- const explicit = process.env.HASNA_GMAIL_CONNECTOR_DIR ?? process.env.GMAIL_CONNECTOR_DIR;
5352
- if (explicit)
5353
- return [explicit];
5354
- const baseDir = process.env.HASNA_CONNECTORS_DIR ?? join2(homedir(), ".hasna", "connectors");
5355
- return [join2(baseDir, "gmail"), join2(baseDir, "connect-gmail")];
5356
- }
5357
- function readJson(path) {
5358
- if (!existsSync2(path))
5359
- return null;
5360
- try {
5361
- return JSON.parse(readFileSync(path, "utf8"));
5362
- } catch {
5363
- return null;
5364
- }
5365
- }
5366
- function getMessageId(input) {
5367
- const id = input.messageId ?? (input.args?.[0] != null ? String(input.args[0]) : undefined);
5368
- if (!id)
5369
- throw new Error("Gmail messageId is required");
5370
- return id;
5371
- }
5372
- function headersToObject(headers) {
5373
- const out = {};
5374
- for (const header of headers)
5375
- out[header.name] = header.value;
5376
- return out;
5377
- }
5378
- function extractBody(message, preferHtml = false) {
5379
- if (!message.payload)
5380
- return "";
5381
- const targetType = preferHtml ? "text/html" : "text/plain";
5382
- const parts = [];
5383
- collectTextParts(message.payload, parts);
5384
- return parts.find((part) => part.mimeType === targetType)?.data ?? parts.find((part) => part.mimeType.startsWith("text/"))?.data ?? "";
5385
- }
5386
- function collectTextParts(part, results) {
5387
- const mimeType = (part.mimeType ?? "").split(";")[0].trim().toLowerCase();
5388
- if (part.body?.data && mimeType.startsWith("text/")) {
5389
- results.push({ mimeType, data: Buffer.from(part.body.data, "base64url").toString("utf8") });
5390
- }
5391
- for (const child of part.parts ?? [])
5392
- collectTextParts(child, results);
5393
- }
5394
- function collectAttachments(part, attachments = []) {
5395
- if (!part)
5396
- return attachments;
5397
- if (part.body?.attachmentId && part.filename) {
5398
- attachments.push({
5399
- attachmentId: part.body.attachmentId,
5400
- filename: part.filename,
5401
- mimeType: part.mimeType ?? "application/octet-stream",
5402
- size: part.body.size ?? 0,
5403
- partId: part.partId
5404
- });
5405
- }
5406
- for (const child of part.parts ?? [])
5407
- collectAttachments(child, attachments);
5408
- return attachments;
5409
- }
5410
- function normalizeStringArray(value) {
5411
- if (!value)
5412
- return [];
5413
- return Array.isArray(value) ? value : value.split(",").map((item) => item.trim()).filter(Boolean);
5414
- }
5415
- function normalizeReplySubject(subject) {
5416
- return subject.toLowerCase().startsWith("re:") ? subject : `Re: ${subject}`;
5417
- }
5418
- function buildRawEmail(input) {
5419
- const headers = [
5420
- `To: ${input.to}`,
5421
- input.cc.length ? `Cc: ${input.cc.join(", ")}` : "",
5422
- input.bcc.length ? `Bcc: ${input.bcc.join(", ")}` : "",
5423
- `Subject: ${input.subject}`,
5424
- input.inReplyTo ? `In-Reply-To: ${input.inReplyTo}` : "",
5425
- input.references ? `References: ${input.references}` : "",
5426
- "MIME-Version: 1.0",
5427
- `Content-Type: ${input.isHtml ? "text/html" : "text/plain"}; charset=UTF-8`
5428
- ].filter(Boolean);
5429
- return `${headers.join(`\r
5430
- `)}\r
5431
- \r
5432
- ${input.body}`;
5433
- }
5434
- function safeFilename(filename) {
5435
- return basename(filename.replace(/[\u00A0\u2000-\u200B\u202F\u205F\u3000]/g, " ")).replace(/[\/\\]/g, "_");
5436
- }
5437
-
5438
- // src/core/connectors/googledrive.ts
5439
- import { existsSync as existsSync3, mkdirSync as mkdirSync2, readFileSync as readFileSync2, readdirSync as readdirSync2, writeFileSync as writeFileSync2 } from "fs";
5440
- import { homedir as homedir2 } from "os";
5441
- import { basename as basename2, join as join3 } from "path";
5442
- var DRIVE_API_BASE = "https://www.googleapis.com/drive/v3";
5443
- var TOKEN_URL2 = "https://oauth2.googleapis.com/token";
5444
- var REFRESH_BUFFER_MS2 = 5 * 60 * 1000;
5445
- var DEFAULT_FILE_FIELDS = [
5446
- "id",
5447
- "name",
5448
- "mimeType",
5449
- "parents",
5450
- "version",
5451
- "md5Checksum",
5452
- "size",
5453
- "modifiedTime",
5454
- "createdTime",
5455
- "trashed",
5456
- "webViewLink",
5457
- "webContentLink"
5458
- ].join(",");
5459
- var DEFAULT_EXPORT_FORMATS = {
5460
- document: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
5461
- spreadsheet: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
5462
- presentation: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
5463
- drawing: "image/png"
5464
- };
5465
- var EXPORT_EXTENSIONS = {
5466
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ".docx",
5467
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ".xlsx",
5468
- "application/vnd.openxmlformats-officedocument.presentationml.presentation": ".pptx",
5469
- "application/pdf": ".pdf",
5470
- "text/plain": ".txt",
5471
- "text/csv": ".csv",
5472
- "image/png": ".png",
5473
- "image/jpeg": ".jpg",
5474
- "image/svg+xml": ".svg"
5475
- };
5476
- var listFilesSchema = exports_external.object({
5477
- pageSize: exports_external.coerce.number().int().positive().max(1000).optional(),
5478
- pageToken: exports_external.string().optional(),
5479
- q: exports_external.string().optional(),
5480
- fields: exports_external.string().optional(),
5481
- orderBy: exports_external.string().optional(),
5482
- corpora: exports_external.enum(["user", "drive", "allDrives"]).optional(),
5483
- driveId: exports_external.string().optional(),
5484
- supportsAllDrives: exports_external.boolean().optional(),
5485
- includeItemsFromAllDrives: exports_external.boolean().optional()
5486
- });
5487
- var listDrivesSchema = exports_external.object({
5488
- pageSize: exports_external.coerce.number().int().positive().max(100).optional(),
5489
- pageToken: exports_external.string().optional(),
5490
- q: exports_external.string().optional()
5491
- });
5492
- var fileIdSchema = exports_external.object({
5493
- fileId: exports_external.string(),
5494
- fields: exports_external.string().optional()
5495
- });
5496
- var downloadSchema = exports_external.object({
5497
- fileId: exports_external.string(),
5498
- file: exports_external.object({
5499
- id: exports_external.string(),
5500
- name: exports_external.string(),
5501
- mimeType: exports_external.string()
5502
- }).optional(),
5503
- exportMimeType: exports_external.string().optional()
5504
- });
5505
- var profilesStatusSchema = exports_external.object({
5506
- profile: exports_external.string().optional()
5507
- });
5508
- var googleDriveConnector = defineConnector({
5509
- meta: {
5510
- name: "googledrive",
5511
- displayName: "Google Drive",
5512
- description: "Profile-aware Google Drive discovery and file download operations.",
5513
- category: "storage",
5514
- tags: ["google", "drive", "files", "storage"]
5515
- },
5516
- auth: {
5517
- type: "oauth2",
5518
- supportsProfiles: true,
5519
- fields: [
5520
- { key: "clientId", env: "GOOGLE_CLIENT_ID", label: "OAuth client ID" },
5521
- { key: "clientSecret", env: "GOOGLE_CLIENT_SECRET", label: "OAuth client secret", secret: true }
5522
- ]
5523
- },
5524
- createContext: ({ profile }) => ({ profile: profile || "default" }),
5525
- operations: {
5526
- "profiles.list": {
5527
- summary: "List configured Google Drive profiles.",
5528
- execute: () => ({ profiles: listProfiles2() })
5529
- },
5530
- "profiles.status": {
5531
- summary: "List Google Drive profile authentication status.",
5532
- inputSchema: profilesStatusSchema,
5533
- execute: (_ctx, input) => ({ profiles: listProfileStatuses(input.profile) })
5534
- },
5535
- "files.list": {
5536
- summary: "List Google Drive files.",
5537
- inputSchema: listFilesSchema,
5538
- execute: async ({ context }, input) => requestJson2(context.profile, "/files", {
5539
- pageSize: input.pageSize ?? 1000,
5540
- pageToken: input.pageToken,
5541
- q: input.q,
5542
- fields: input.fields ?? `nextPageToken,files(${DEFAULT_FILE_FIELDS})`,
5543
- orderBy: input.orderBy ?? "modifiedTime desc",
5544
- corpora: input.corpora,
5545
- driveId: input.driveId,
5546
- supportsAllDrives: input.supportsAllDrives ?? true,
5547
- includeItemsFromAllDrives: input.includeItemsFromAllDrives ?? false
5548
- })
5549
- },
5550
- "files.get": {
5551
- summary: "Get Google Drive file metadata.",
5552
- inputSchema: fileIdSchema,
5553
- execute: async ({ context }, input) => requestJson2(context.profile, `/files/${encodeURIComponent(input.fileId)}`, {
5554
- fields: input.fields ?? DEFAULT_FILE_FIELDS,
5555
- supportsAllDrives: true
5556
- })
5557
- },
5558
- "files.download": {
5559
- summary: "Download or export a Google Drive file as base64 content.",
5560
- inputSchema: downloadSchema,
5561
- execute: async ({ context }, input) => {
5562
- const file = input.file ?? await requestJson2(context.profile, `/files/${encodeURIComponent(input.fileId)}`, { fields: DEFAULT_FILE_FIELDS, supportsAllDrives: true });
5563
- const exportMimeType = file.mimeType.startsWith("application/vnd.google-apps.") ? input.exportMimeType ?? defaultExportMimeType(file.mimeType) : undefined;
5564
- 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 });
5565
- const mimeType = exportMimeType ?? file.mimeType ?? "application/octet-stream";
5566
- return {
5567
- dataBase64: Buffer.from(data).toString("base64"),
5568
- filename: exportMimeType ? `${file.name}${extensionForMimeType(exportMimeType)}` : file.name,
5569
- mimeType
5570
- };
5571
- }
5572
- },
5573
- "drives.list": {
5574
- summary: "List Google shared drives.",
5575
- inputSchema: listDrivesSchema,
5576
- execute: async ({ context }, input) => requestJson2(context.profile, "/drives", {
5577
- pageSize: input.pageSize ?? 100,
5578
- pageToken: input.pageToken,
5579
- q: input.q
5580
- })
5581
- }
5582
- }
5583
- });
5584
- async function requestJson2(profile, path, params) {
5585
- const response = await request(profile, path, params);
5586
- const text = await response.text();
5587
- return text ? JSON.parse(text) : {};
5588
- }
5589
- async function requestBinary(profile, path, params) {
5590
- return (await request(profile, path, params)).arrayBuffer();
5591
- }
5592
- async function request(profile, path, params) {
5593
- const token = await getValidAccessToken2(profile);
5594
- const url = new URL(`${DRIVE_API_BASE}${path}`);
5595
- for (const [key, value] of Object.entries(params)) {
5596
- if (value !== undefined && value !== null && value !== "")
5597
- url.searchParams.set(key, String(value));
5598
- }
5599
- const response = await fetch(url, { headers: { Authorization: `Bearer ${token}`, Accept: "application/json" } });
5600
- if (!response.ok) {
5601
- const body = await response.text().catch(() => "");
5602
- throw new Error(`Google Drive request failed (${response.status}): ${extractGoogleError(body) || response.statusText}`);
5603
- }
5604
- return response;
5605
- }
5606
- async function getValidAccessToken2(profile) {
5607
- if (process.env.GOOGLE_ACCESS_TOKEN)
5608
- return process.env.GOOGLE_ACCESS_TOKEN;
5609
- const tokens = loadTokens2(profile);
5610
- if (!tokens?.accessToken && !tokens?.refreshToken) {
5611
- throw new Error(`Google Drive profile "${profile}" is not authenticated. Run: connectors auth googledrive`);
5612
- }
5613
- if (tokens.accessToken && (!tokens.expiresAt || Date.now() < tokens.expiresAt - REFRESH_BUFFER_MS2))
5614
- return tokens.accessToken;
5615
- if (!tokens.refreshToken)
5616
- return tokens.accessToken ?? "";
5617
- return (await refreshAccessToken2(profile, tokens)).accessToken ?? "";
5618
- }
5619
- async function refreshAccessToken2(profile, currentTokens) {
5620
- const credentials = loadCredentials2(profile);
5621
- if (!credentials.clientId || !credentials.clientSecret)
5622
- throw new Error("Google Drive OAuth credentials are not configured. Run: connectors auth googledrive");
5623
- if (!currentTokens.refreshToken)
5624
- throw new Error(`Google Drive profile "${profile}" has no refresh token. Run: connectors auth googledrive`);
5625
- const response = await fetch(TOKEN_URL2, {
5626
- method: "POST",
5627
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
5628
- body: new URLSearchParams({
5629
- client_id: credentials.clientId,
5630
- client_secret: credentials.clientSecret,
5631
- refresh_token: currentTokens.refreshToken,
5632
- grant_type: "refresh_token"
5633
- })
5634
- });
5635
- const data = await response.json().catch(() => ({}));
5636
- if (!response.ok || !data.access_token)
5637
- throw new Error(`Google Drive token refresh failed: ${data.error_description || data.error || response.statusText}`);
5638
- const tokens = {
5639
- accessToken: data.access_token,
5640
- refreshToken: currentTokens.refreshToken,
5641
- expiresAt: Date.now() + (data.expires_in ?? 3600) * 1000,
5642
- tokenType: data.token_type ?? currentTokens.tokenType,
5643
- scope: data.scope ?? currentTokens.scope
5644
- };
5645
- saveTokens2(profile, tokens);
5646
- return tokens;
5647
- }
5648
- function listProfiles2() {
5649
- const profiles = new Set;
5650
- for (const baseDir of configDirs2()) {
5651
- const profilesDir = join3(baseDir, "profiles");
5652
- if (!existsSync3(profilesDir))
5653
- continue;
5654
- for (const entry of readdirSync2(profilesDir, { withFileTypes: true })) {
5655
- if (entry.isDirectory())
5656
- profiles.add(entry.name);
5657
- if (entry.isFile() && entry.name.endsWith(".json"))
5658
- profiles.add(basename2(entry.name, ".json"));
5659
- }
5660
- }
5661
- return Array.from(profiles).sort((a, b) => a.localeCompare(b));
5662
- }
5663
- function listProfileStatuses(profile) {
5664
- const profiles = profile ? [profile] : listProfiles2();
5665
- const uniqueProfiles = profiles.length ? profiles : ["default"];
5666
- const now = Date.now();
5667
- return uniqueProfiles.map((name) => {
5668
- const tokens = loadTokens2(name);
5669
- const credentials = loadCredentials2(name);
5670
- const hasAccessToken = Boolean(tokens?.accessToken || process.env.GOOGLE_ACCESS_TOKEN);
5671
- const hasRefreshToken = Boolean(tokens?.refreshToken);
5672
- const hasOAuthCredentials = Boolean(credentials.clientId && credentials.clientSecret);
5673
- const expiresAt = tokens?.expiresAt ?? null;
5674
- const expired = Boolean(expiresAt && now >= expiresAt - REFRESH_BUFFER_MS2);
5675
- const authenticated = Boolean(process.env.GOOGLE_ACCESS_TOKEN || hasRefreshToken || hasAccessToken && !expired);
5676
- const configured = authenticated || hasOAuthCredentials;
5677
- const authRequired = !authenticated || expired && !hasRefreshToken;
5678
- return {
5679
- profile: name,
5680
- configured,
5681
- authenticated,
5682
- expired,
5683
- expiresAt,
5684
- hasAccessToken,
5685
- hasRefreshToken,
5686
- hasOAuthCredentials,
5687
- authRequired,
5688
- message: authRequired ? `Google Drive profile "${name}" needs authentication. Run: connectors auth googledrive` : expired ? `Google Drive profile "${name}" access token is expired but can refresh.` : `Google Drive profile "${name}" is authenticated.`
5689
- };
5690
- });
5691
- }
5692
- function loadCredentials2(profile) {
5693
- const envClientId = process.env.GOOGLE_CLIENT_ID;
5694
- const envClientSecret = process.env.GOOGLE_CLIENT_SECRET;
5695
- if (envClientId && envClientSecret)
5696
- return { clientId: envClientId, clientSecret: envClientSecret };
5697
- for (const baseDir of configDirs2()) {
5698
- const credentials = {
5699
- ...readJson2(join3(baseDir, "credentials.json")),
5700
- ...readJson2(join3(baseDir, "profiles", profile, "config.json"))
5701
- };
5702
- if (credentials.clientId || credentials.clientSecret)
5703
- return credentials;
5704
- }
5705
- return {};
5706
- }
5707
- function loadTokens2(profile) {
5708
- for (const baseDir of configDirs2()) {
5709
- const fromProfile = readJson2(join3(baseDir, "profiles", profile, "tokens.json"));
5710
- if (fromProfile)
5711
- return fromProfile;
5712
- const flat = readJson2(join3(baseDir, "profiles", `${profile}.json`));
5713
- if (flat)
5714
- return flat.tokens ?? (flat.accessToken || flat.refreshToken ? flat : null);
5715
- }
5716
- return null;
5717
- }
5718
- function saveTokens2(profile, tokens) {
5719
- const baseDir = configDirs2().find((dir) => existsSync3(dir)) ?? configDirs2()[0];
5720
- const profileDir = join3(baseDir, "profiles", profile);
5721
- mkdirSync2(profileDir, { recursive: true });
5722
- writeFileSync2(join3(profileDir, "tokens.json"), JSON.stringify(tokens, null, 2), { mode: 384 });
5723
- }
5724
- function configDirs2() {
5725
- const explicit = process.env.HASNA_GOOGLE_DRIVE_CONNECTOR_DIR ?? process.env.GOOGLE_DRIVE_CONNECTOR_DIR;
5726
- if (explicit)
5727
- return [explicit];
5728
- const baseDir = process.env.HASNA_CONNECTORS_DIR ?? join3(homedir2(), ".hasna", "connectors");
5729
- return [join3(baseDir, "googledrive"), join3(baseDir, "connect-googledrive")];
5730
- }
5731
- function readJson2(path) {
5732
- if (!existsSync3(path))
5733
- return null;
5734
- try {
5735
- return JSON.parse(readFileSync2(path, "utf8"));
5736
- } catch {
5737
- return null;
5738
- }
5739
- }
5740
- function defaultExportMimeType(googleMimeType) {
5741
- if (googleMimeType.endsWith(".document"))
5742
- return DEFAULT_EXPORT_FORMATS.document;
5743
- if (googleMimeType.endsWith(".spreadsheet"))
5744
- return DEFAULT_EXPORT_FORMATS.spreadsheet;
5745
- if (googleMimeType.endsWith(".presentation"))
5746
- return DEFAULT_EXPORT_FORMATS.presentation;
5747
- if (googleMimeType.endsWith(".drawing"))
5748
- return DEFAULT_EXPORT_FORMATS.drawing;
5749
- throw new Error(`Cannot export Google Workspace file type: ${googleMimeType}`);
5750
- }
5751
- function extensionForMimeType(mimeType) {
5752
- return EXPORT_EXTENSIONS[mimeType] ?? "";
5753
- }
5754
- function extractGoogleError(body) {
5755
- if (!body)
5756
- return "";
5757
- try {
5758
- const parsed = JSON.parse(body);
5759
- return parsed.error?.message ?? body;
5760
- } catch {
5761
- return body;
5762
- }
5763
- }
5764
4969
  // package.json
5765
4970
  var package_default = {
5766
4971
  name: "@hasna/connectors",
5767
- version: "1.3.30",
4972
+ version: "1.3.24",
5768
4973
  description: "Open source connector library - Install API connectors with a single command",
5769
4974
  type: "module",
5770
4975
  bin: {
@@ -5852,39 +5057,35 @@ var package_default = {
5852
5057
 
5853
5058
  // src/core/connectors/imessage.ts
5854
5059
  import {
5855
- existsSync as existsSync7,
5060
+ existsSync as existsSync6,
5856
5061
  mkdirSync as mkdirSync5,
5857
- readFileSync as readFileSync4,
5858
- readdirSync as readdirSync6,
5062
+ readFileSync as readFileSync2,
5063
+ readdirSync as readdirSync5,
5859
5064
  rmSync,
5860
- statSync as statSync3,
5861
- writeFileSync as writeFileSync4
5065
+ statSync as statSync2,
5066
+ writeFileSync as writeFileSync2
5862
5067
  } from "fs";
5863
- import { join as join9 } from "path";
5864
-
5865
- // src/lib/connector-resolver.ts
5866
- import { existsSync as existsSync6, readdirSync as readdirSync5, statSync as statSync2 } from "fs";
5867
5068
  import { join as join7 } from "path";
5868
5069
 
5869
5070
  // node_modules/@hasna/cloud/dist/index.js
5870
5071
  import { createRequire } from "module";
5871
5072
  import { Database } from "bun:sqlite";
5872
5073
  import {
5873
- existsSync as existsSync4,
5874
- mkdirSync as mkdirSync3,
5875
- readdirSync as readdirSync3,
5074
+ existsSync as existsSync2,
5075
+ mkdirSync,
5076
+ readdirSync,
5876
5077
  copyFileSync
5877
5078
  } from "fs";
5878
- import { homedir as homedir3 } from "os";
5879
- import { join as join4, relative } from "path";
5880
- import { existsSync as existsSync22, mkdirSync as mkdirSync22, readFileSync as readFileSync3, writeFileSync as writeFileSync3 } from "fs";
5881
- import { homedir as homedir22 } from "os";
5079
+ import { homedir } from "os";
5080
+ import { join as join2, relative } from "path";
5081
+ import { existsSync as existsSync22, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "fs";
5082
+ import { homedir as homedir2 } from "os";
5882
5083
  import { join as join22 } from "path";
5883
- import { readdirSync as readdirSync22, existsSync as existsSync32 } from "fs";
5884
- import { join as join32 } from "path";
5885
- import { homedir as homedir32 } from "os";
5084
+ import { readdirSync as readdirSync2, existsSync as existsSync3 } from "fs";
5085
+ import { join as join3 } from "path";
5086
+ import { homedir as homedir3 } from "os";
5886
5087
  import { homedir as homedir4 } from "os";
5887
- import { join as join42 } from "path";
5088
+ import { join as join4 } from "path";
5888
5089
  import { join as join6, dirname as dirname2 } from "path";
5889
5090
  import { homedir as homedir5, platform } from "os";
5890
5091
  var __create = Object.create;
@@ -15050,17 +14251,17 @@ var init_zod = __esm(() => {
15050
14251
  init_external();
15051
14252
  });
15052
14253
  function getDataDir(serviceName) {
15053
- const dir = join4(HASNA_DIR, serviceName);
15054
- mkdirSync3(dir, { recursive: true });
14254
+ const dir = join2(HASNA_DIR, serviceName);
14255
+ mkdirSync(dir, { recursive: true });
15055
14256
  return dir;
15056
14257
  }
15057
14258
  function getDbPath(serviceName) {
15058
14259
  const dir = getDataDir(serviceName);
15059
- return join4(dir, `${serviceName}.db`);
14260
+ return join2(dir, `${serviceName}.db`);
15060
14261
  }
15061
14262
  var HASNA_DIR;
15062
14263
  var init_dotfile = __esm(() => {
15063
- HASNA_DIR = join4(homedir3(), ".hasna");
14264
+ HASNA_DIR = join2(homedir(), ".hasna");
15064
14265
  });
15065
14266
  var exports_config = {};
15066
14267
  __export2(exports_config, {
@@ -15083,15 +14284,15 @@ function getCloudConfig() {
15083
14284
  return CloudConfigSchema.parse({});
15084
14285
  }
15085
14286
  try {
15086
- const raw = readFileSync3(CONFIG_PATH, "utf-8");
14287
+ const raw = readFileSync(CONFIG_PATH, "utf-8");
15087
14288
  return CloudConfigSchema.parse(JSON.parse(raw));
15088
14289
  } catch {
15089
14290
  return CloudConfigSchema.parse({});
15090
14291
  }
15091
14292
  }
15092
14293
  function saveCloudConfig(config) {
15093
- mkdirSync22(CONFIG_DIR, { recursive: true });
15094
- writeFileSync3(CONFIG_PATH, JSON.stringify(config, null, 2) + `
14294
+ mkdirSync2(CONFIG_DIR, { recursive: true });
14295
+ writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + `
15095
14296
  `, "utf-8");
15096
14297
  }
15097
14298
  function getConnectionString(dbName) {
@@ -15139,7 +14340,7 @@ var init_config = __esm(() => {
15139
14340
  schedule_minutes: exports_external2.number().default(0)
15140
14341
  }).default({})
15141
14342
  });
15142
- CONFIG_DIR = join22(homedir22(), ".hasna", "cloud");
14343
+ CONFIG_DIR = join22(homedir2(), ".hasna", "cloud");
15143
14344
  CONFIG_PATH = join22(CONFIG_DIR, "config.json");
15144
14345
  });
15145
14346
  var exports_discover = {};
@@ -15155,11 +14356,11 @@ function isSyncExcludedTable(table) {
15155
14356
  return SYNC_EXCLUDED_TABLE_PATTERNS.some((p) => p.test(table));
15156
14357
  }
15157
14358
  function discoverServices() {
15158
- const dataDir = join32(homedir32(), ".hasna");
15159
- if (!existsSync32(dataDir))
14359
+ const dataDir = join3(homedir3(), ".hasna");
14360
+ if (!existsSync3(dataDir))
15160
14361
  return [];
15161
14362
  try {
15162
- const entries = readdirSync22(dataDir, { withFileTypes: true });
14363
+ const entries = readdirSync2(dataDir, { withFileTypes: true });
15163
14364
  return entries.filter((e) => {
15164
14365
  if (!e.isDirectory())
15165
14366
  return false;
@@ -15177,24 +14378,24 @@ function discoverSyncableServices() {
15177
14378
  return local.filter((s) => pgSet.has(s));
15178
14379
  }
15179
14380
  function getServiceDbPath(service) {
15180
- const dataDir = join32(homedir32(), ".hasna", service);
15181
- if (!existsSync32(dataDir))
14381
+ const dataDir = join3(homedir3(), ".hasna", service);
14382
+ if (!existsSync3(dataDir))
15182
14383
  return null;
15183
14384
  const candidates = [
15184
- join32(dataDir, `${service}.db`),
15185
- join32(dataDir, "data.db"),
15186
- join32(dataDir, "database.db")
14385
+ join3(dataDir, `${service}.db`),
14386
+ join3(dataDir, "data.db"),
14387
+ join3(dataDir, "database.db")
15187
14388
  ];
15188
14389
  try {
15189
- const files = readdirSync22(dataDir);
14390
+ const files = readdirSync2(dataDir);
15190
14391
  for (const f of files) {
15191
14392
  if (f.endsWith(".db") && !f.endsWith("-wal") && !f.endsWith("-shm")) {
15192
- candidates.push(join32(dataDir, f));
14393
+ candidates.push(join3(dataDir, f));
15193
14394
  }
15194
14395
  }
15195
14396
  } catch {}
15196
14397
  for (const p of candidates) {
15197
- if (existsSync32(p))
14398
+ if (existsSync3(p))
15198
14399
  return p;
15199
14400
  }
15200
14401
  return null;
@@ -15374,7 +14575,7 @@ class SyncProgressTracker {
15374
14575
  init_adapter();
15375
14576
  init_config();
15376
14577
  init_discover();
15377
- var AUTO_SYNC_CONFIG_PATH = join42(homedir4(), ".hasna", "cloud", "config.json");
14578
+ var AUTO_SYNC_CONFIG_PATH = join4(homedir4(), ".hasna", "cloud", "config.json");
15378
14579
  init_config();
15379
14580
  init_adapter();
15380
14581
  init_dotfile();
@@ -15394,13 +14595,13 @@ init_adapter();
15394
14595
  // src/db/database.ts
15395
14596
  import { dirname as dirname3, join as join5 } from "path";
15396
14597
  import { homedir as homedir6 } from "os";
15397
- import { mkdirSync as mkdirSync4, existsSync as existsSync5, readdirSync as readdirSync4, copyFileSync as copyFileSync2, statSync } from "fs";
14598
+ import { mkdirSync as mkdirSync3, existsSync as existsSync4, readdirSync as readdirSync3, copyFileSync as copyFileSync2, statSync } from "fs";
15398
14599
  function mergeDirectoryContents(sourceDir, targetDir) {
15399
- if (!existsSync5(sourceDir)) {
14600
+ if (!existsSync4(sourceDir)) {
15400
14601
  return;
15401
14602
  }
15402
- mkdirSync4(targetDir, { recursive: true });
15403
- for (const entry of readdirSync4(sourceDir)) {
14603
+ mkdirSync3(targetDir, { recursive: true });
14604
+ for (const entry of readdirSync3(sourceDir)) {
15404
14605
  const sourcePath = join5(sourceDir, entry);
15405
14606
  const targetPath = join5(targetDir, entry);
15406
14607
  try {
@@ -15409,7 +14610,7 @@ function mergeDirectoryContents(sourceDir, targetDir) {
15409
14610
  mergeDirectoryContents(sourcePath, targetPath);
15410
14611
  continue;
15411
14612
  }
15412
- if (!existsSync5(targetPath)) {
14613
+ if (!existsSync4(targetPath)) {
15413
14614
  copyFileSync2(sourcePath, targetPath);
15414
14615
  }
15415
14616
  } catch {}
@@ -15419,7 +14620,7 @@ function getConnectorsHome() {
15419
14620
  const home = process.env["HOME"] || process.env["USERPROFILE"] || homedir6();
15420
14621
  const newDir = join5(home, ".hasna", "connectors");
15421
14622
  const legacyDirs = [join5(home, ".connectors"), join5(home, ".connect")];
15422
- mkdirSync4(newDir, { recursive: true });
14623
+ mkdirSync3(newDir, { recursive: true });
15423
14624
  for (const legacyDir of legacyDirs) {
15424
14625
  try {
15425
14626
  mergeDirectoryContents(legacyDir, newDir);
@@ -15430,85 +14631,8 @@ function getConnectorsHome() {
15430
14631
  var DB_DIR = getConnectorsHome();
15431
14632
  var DB_PATH = join5(DB_DIR, "connectors.db");
15432
14633
 
15433
- // src/lib/connector-resolver.ts
15434
- var LEGACY_CONNECTOR_PREFIX = "connect-";
15435
- var CONNECTOR_NAME_RE2 = /^[a-z0-9-]+$/;
15436
- function normalizeConnectorName(name) {
15437
- const trimmed = name.trim().toLowerCase();
15438
- return trimmed.startsWith(LEGACY_CONNECTOR_PREFIX) ? trimmed.slice(LEGACY_CONNECTOR_PREFIX.length) : trimmed;
15439
- }
15440
- function legacyConnectorName(name) {
15441
- return `${LEGACY_CONNECTOR_PREFIX}${normalizeConnectorName(name)}`;
15442
- }
15443
- function resolveConnectorName(name) {
15444
- const canonicalName = normalizeConnectorName(name);
15445
- const legacyName = legacyConnectorName(canonicalName);
15446
- return {
15447
- input: name,
15448
- canonicalName,
15449
- legacyName,
15450
- aliases: canonicalName === legacyName ? [canonicalName] : [canonicalName, legacyName],
15451
- isLegacyInput: name.trim().toLowerCase().startsWith(LEGACY_CONNECTOR_PREFIX)
15452
- };
15453
- }
15454
- function isValidConnectorName(name) {
15455
- const trimmed = name.trim();
15456
- if (trimmed !== trimmed.toLowerCase())
15457
- return false;
15458
- return CONNECTOR_NAME_RE2.test(normalizeConnectorName(trimmed));
15459
- }
15460
- function connectorPackageDirNames(name) {
15461
- const { canonicalName, legacyName } = resolveConnectorName(name);
15462
- if (!canonicalName)
15463
- return [legacyName];
15464
- return canonicalName === legacyName ? [canonicalName] : [canonicalName, legacyName];
15465
- }
15466
- function resolveConnectorPackagePath(connectorsDir, name) {
15467
- const resolution = resolveConnectorName(name);
15468
- const dirNames = connectorPackageDirNames(name);
15469
- const checkedPaths = dirNames.map((dirName) => join7(connectorsDir, dirName));
15470
- const existingPath = checkedPaths.find((path) => existsSync6(path)) ?? null;
15471
- const existingDirName = existingPath ? dirNames[checkedPaths.indexOf(existingPath)] : null;
15472
- return {
15473
- ...resolution,
15474
- connectorsDir,
15475
- preferredDirName: dirNames[0],
15476
- preferredPath: checkedPaths[0],
15477
- existingPath,
15478
- existingDirName,
15479
- checkedPaths
15480
- };
15481
- }
15482
- function getConnectorPackagePath(connectorsDir, name) {
15483
- const resolved = resolveConnectorPackagePath(connectorsDir, name);
15484
- return resolved.existingPath ?? resolved.preferredPath;
15485
- }
15486
- function resolveConnectorConfigPaths(name, connectorsHome = getConnectorsHome()) {
15487
- const resolution = resolveConnectorName(name);
15488
- const preferredDirName = resolution.canonicalName || resolution.legacyName;
15489
- const preferredPath = join7(connectorsHome, preferredDirName);
15490
- const legacyPath = join7(connectorsHome, resolution.legacyName);
15491
- const paths = preferredPath === legacyPath ? [preferredPath] : [preferredPath, legacyPath];
15492
- const existingPaths = paths.filter((path) => existsSync6(path));
15493
- return {
15494
- ...resolution,
15495
- connectorsHome,
15496
- preferredDirName,
15497
- preferredPath,
15498
- legacyPath,
15499
- existingPaths,
15500
- readPaths: paths
15501
- };
15502
- }
15503
- function getConnectorConfigDir(name, connectorsHome = getConnectorsHome()) {
15504
- return resolveConnectorConfigPaths(name, connectorsHome).preferredPath;
15505
- }
15506
- function getConnectorConfigReadDirs(name, connectorsHome = getConnectorsHome()) {
15507
- return resolveConnectorConfigPaths(name, connectorsHome).readPaths;
15508
- }
15509
-
15510
14634
  // src/core/connectors/imessage.ts
15511
- var CONNECTOR_NAME = "imessage";
14635
+ var CONNECTOR_DIRNAME = "connect-imessage";
15512
14636
  var COMMAND_SPECS = [
15513
14637
  {
15514
14638
  name: "profile",
@@ -15632,7 +14756,7 @@ API Key authentication is optional and depends on the bridge deployment. A bridg
15632
14756
 
15633
14757
  ## Data Storage
15634
14758
 
15635
- Connector state is stored under \`~/.hasna/connectors/imessage/\`. Profiles are read from both \`profiles/<name>.json\` and \`profiles/<name>/config.json\` so the connector stays compatible with the shared dashboard auth helpers while remaining fully internal to the one-product repo.
14759
+ Connector state is stored under \`~/.hasna/connectors/connect-imessage/\`. Profiles are read from both \`profiles/<name>.json\` and \`profiles/<name>/config.json\` so the connector stays compatible with the shared dashboard auth helpers while remaining fully internal to the one-product repo.
15636
14760
  `;
15637
14761
  var commandInputSchema = exports_external.object({
15638
14762
  args: exports_external.array(exports_external.string()).default([]),
@@ -15668,44 +14792,36 @@ var messageReplyInputSchema = exports_external.object({
15668
14792
  deviceId: exports_external.string().optional()
15669
14793
  });
15670
14794
  function getConfigDir2() {
15671
- return getConnectorConfigDir(CONNECTOR_NAME);
15672
- }
15673
- function getConfigReadDirs() {
15674
- return getConnectorConfigReadDirs(CONNECTOR_NAME);
14795
+ return join7(getConnectorsHome(), CONNECTOR_DIRNAME);
15675
14796
  }
15676
14797
  function getProfilesDir() {
15677
- return join9(getConfigDir2(), "profiles");
14798
+ return join7(getConfigDir2(), "profiles");
15678
14799
  }
15679
14800
  function getCurrentProfile() {
15680
- for (const configDir of getConfigReadDirs()) {
15681
- const currentProfileFile = join9(configDir, "current_profile");
15682
- if (!existsSync7(currentProfileFile))
15683
- continue;
15684
- try {
15685
- return readFileSync4(currentProfileFile, "utf-8").trim() || "default";
15686
- } catch {
15687
- return "default";
15688
- }
14801
+ const currentProfileFile = join7(getConfigDir2(), "current_profile");
14802
+ if (!existsSync6(currentProfileFile)) {
14803
+ return "default";
14804
+ }
14805
+ try {
14806
+ return readFileSync2(currentProfileFile, "utf-8").trim() || "default";
14807
+ } catch {
14808
+ return "default";
15689
14809
  }
15690
- return "default";
15691
14810
  }
15692
14811
  function setCurrentProfile(profile) {
15693
14812
  const configDir = getConfigDir2();
15694
14813
  mkdirSync5(configDir, { recursive: true });
15695
- writeFileSync4(join9(configDir, "current_profile"), profile);
14814
+ writeFileSync2(join7(configDir, "current_profile"), profile);
15696
14815
  }
15697
14816
  function getFlatProfilePath(profile) {
15698
- return join9(getProfilesDir(), `${profile}.json`);
15699
- }
15700
- function getFlatProfileReadPaths(profile) {
15701
- return getConfigReadDirs().map((dir) => join9(dir, "profiles", `${profile}.json`));
14817
+ return join7(getProfilesDir(), `${profile}.json`);
15702
14818
  }
15703
- function getDirectoryProfileReadPaths(profile) {
15704
- return getConfigReadDirs().map((dir) => join9(dir, "profiles", profile, "config.json"));
14819
+ function getDirectoryProfilePath(profile) {
14820
+ return join7(getProfilesDir(), profile, "config.json");
15705
14821
  }
15706
14822
  function loadJsonFile(path) {
15707
14823
  try {
15708
- return JSON.parse(readFileSync4(path, "utf-8"));
14824
+ return JSON.parse(readFileSync2(path, "utf-8"));
15709
14825
  } catch {
15710
14826
  return {};
15711
14827
  }
@@ -15721,8 +14837,8 @@ function sanitizeProfileConfig(config) {
15721
14837
  };
15722
14838
  }
15723
14839
  function loadProfile(profile = getCurrentProfile()) {
15724
- const flatConfig = getFlatProfileReadPaths(profile).reverse().reduce((config, path) => ({ ...config, ...existsSync7(path) ? loadJsonFile(path) : {} }), {});
15725
- const directoryConfig = getDirectoryProfileReadPaths(profile).reverse().reduce((config, path) => ({ ...config, ...existsSync7(path) ? loadJsonFile(path) : {} }), {});
14840
+ const flatConfig = existsSync6(getFlatProfilePath(profile)) ? loadJsonFile(getFlatProfilePath(profile)) : {};
14841
+ const directoryConfig = existsSync6(getDirectoryProfilePath(profile)) ? loadJsonFile(getDirectoryProfilePath(profile)) : {};
15726
14842
  return sanitizeProfileConfig({
15727
14843
  ...flatConfig,
15728
14844
  ...directoryConfig
@@ -15731,33 +14847,32 @@ function loadProfile(profile = getCurrentProfile()) {
15731
14847
  function writeProfile(profile, config) {
15732
14848
  const profilesDir = getProfilesDir();
15733
14849
  mkdirSync5(profilesDir, { recursive: true });
15734
- writeFileSync4(getFlatProfilePath(profile), JSON.stringify(config, null, 2) + `
14850
+ writeFileSync2(getFlatProfilePath(profile), JSON.stringify(config, null, 2) + `
15735
14851
  `);
15736
14852
  }
15737
14853
  function profileExists(profile) {
15738
14854
  if (profile === "default") {
15739
14855
  return true;
15740
14856
  }
15741
- return getFlatProfileReadPaths(profile).some((path) => existsSync7(path)) || getConfigReadDirs().some((dir) => existsSync7(join9(dir, "profiles", profile)));
14857
+ return existsSync6(getFlatProfilePath(profile)) || existsSync6(join7(getProfilesDir(), profile));
15742
14858
  }
15743
- function listProfiles3() {
14859
+ function listProfiles() {
14860
+ const profilesDir = getProfilesDir();
15744
14861
  const seen = new Set(["default"]);
15745
- for (const configDir of getConfigReadDirs()) {
15746
- const profilesDir = join9(configDir, "profiles");
15747
- if (!existsSync7(profilesDir))
15748
- continue;
15749
- try {
15750
- for (const entry of readdirSync6(profilesDir)) {
15751
- const fullPath = join9(profilesDir, entry);
15752
- const stat = statSync3(fullPath);
15753
- if (stat.isDirectory()) {
15754
- seen.add(entry);
15755
- } else if (entry.endsWith(".json")) {
15756
- seen.add(entry.replace(/\.json$/, ""));
15757
- }
15758
- }
15759
- } catch {}
14862
+ if (!existsSync6(profilesDir)) {
14863
+ return [...seen];
15760
14864
  }
14865
+ try {
14866
+ for (const entry of readdirSync5(profilesDir)) {
14867
+ const fullPath = join7(profilesDir, entry);
14868
+ const stat = statSync2(fullPath);
14869
+ if (stat.isDirectory()) {
14870
+ seen.add(entry);
14871
+ } else if (entry.endsWith(".json")) {
14872
+ seen.add(entry.replace(/\.json$/, ""));
14873
+ }
14874
+ }
14875
+ } catch {}
15761
14876
  return [...seen].sort();
15762
14877
  }
15763
14878
  function createProfile(profile, config = {}) {
@@ -15770,11 +14885,11 @@ function createProfile(profile, config = {}) {
15770
14885
  }
15771
14886
  function clearProfile(profile = getCurrentProfile()) {
15772
14887
  const flatPath = getFlatProfilePath(profile);
15773
- const directoryPath = join9(getProfilesDir(), profile);
15774
- if (existsSync7(flatPath)) {
14888
+ const directoryPath = join7(getProfilesDir(), profile);
14889
+ if (existsSync6(flatPath)) {
15775
14890
  rmSync(flatPath);
15776
14891
  }
15777
- if (existsSync7(directoryPath)) {
14892
+ if (existsSync6(directoryPath)) {
15778
14893
  rmSync(directoryPath, { recursive: true, force: true });
15779
14894
  }
15780
14895
  }
@@ -16070,7 +15185,7 @@ async function sendMessage(context, input) {
16070
15185
  direction: "outbound"
16071
15186
  });
16072
15187
  }
16073
- async function replyToMessage2(context, input) {
15188
+ async function replyToMessage(context, input) {
16074
15189
  const payload = await bridgeRequest(context, "/messages/reply", {
16075
15190
  method: "POST",
16076
15191
  body: {
@@ -16184,7 +15299,7 @@ async function runProfileCommand2(args, context) {
16184
15299
  switch (subcommand) {
16185
15300
  case "list": {
16186
15301
  const current = getCurrentProfile();
16187
- const profiles = listProfiles3();
15302
+ const profiles = listProfiles();
16188
15303
  return successOutput({ current, profiles }, context.format, () => profiles.map((profile) => `${profile}${profile === current ? " (active)" : ""}`).join(`
16189
15304
  `));
16190
15305
  }
@@ -16358,7 +15473,7 @@ async function runMessageCommand(args, context) {
16358
15473
  if (!conversationId || !text) {
16359
15474
  return failure2("Usage: connect-imessage message reply --conversation <id> --text <text>");
16360
15475
  }
16361
- return successOutput(await replyToMessage2(resolved, {
15476
+ return successOutput(await replyToMessage(resolved, {
16362
15477
  conversationId,
16363
15478
  text,
16364
15479
  replyToMessageId: asString2(options.replyTo),
@@ -16516,7 +15631,7 @@ var imessageConnector = defineConnector({
16516
15631
  summary: "Reply to an existing conversation through the bridge",
16517
15632
  inputSchema: messageReplyInputSchema,
16518
15633
  async execute({ context }, input) {
16519
- return replyToMessage2(context, input);
15634
+ return replyToMessage(context, input);
16520
15635
  }
16521
15636
  }
16522
15637
  },
@@ -16579,19 +15694,19 @@ var imessageConnector = defineConnector({
16579
15694
  });
16580
15695
 
16581
15696
  // src/core/connectors/stripe.ts
16582
- import { existsSync as existsSync8 } from "fs";
16583
- import { dirname as dirname4, join as join10 } from "path";
15697
+ import { existsSync as existsSync7 } from "fs";
15698
+ import { dirname as dirname4, join as join8 } from "path";
16584
15699
  import { fileURLToPath as fileURLToPath2, pathToFileURL as pathToFileURL2 } from "url";
16585
15700
  var __dirname3 = dirname4(fileURLToPath2(import.meta.url));
16586
15701
  function resolveStripeConnectorDir() {
16587
15702
  const candidates = [
16588
- join10(__dirname3, "..", "..", "..", "connectors", "stripe"),
16589
- join10(__dirname3, "..", "..", "connectors", "stripe"),
16590
- join10(__dirname3, "..", "connectors", "stripe"),
16591
- join10(process.cwd(), "connectors", "stripe")
15703
+ join8(__dirname3, "..", "..", "..", "connectors", "connect-stripe"),
15704
+ join8(__dirname3, "..", "..", "connectors", "connect-stripe"),
15705
+ join8(__dirname3, "..", "connectors", "connect-stripe"),
15706
+ join8(process.cwd(), "connectors", "connect-stripe")
16592
15707
  ];
16593
15708
  for (const candidate of candidates) {
16594
- if (existsSync8(candidate)) {
15709
+ if (existsSync7(candidate)) {
16595
15710
  return candidate;
16596
15711
  }
16597
15712
  }
@@ -16830,10 +15945,10 @@ function buildCommandHelp2(spec) {
16830
15945
  var ROOT_HELP3 = buildRootHelp2(COMMAND_SPECS2);
16831
15946
  var COMMAND_HELP3 = Object.fromEntries(COMMAND_SPECS2.map((spec) => [spec.name, buildCommandHelp2(spec)]));
16832
15947
  async function loadStripeApiModule() {
16833
- return await import(pathToFileURL2(join10(CONNECTOR_DIR2, "src", "api", "index.ts")).href);
15948
+ return await import(pathToFileURL2(join8(CONNECTOR_DIR2, "src", "api", "index.ts")).href);
16834
15949
  }
16835
15950
  async function loadStripeConfigModule() {
16836
- return await import(pathToFileURL2(join10(CONNECTOR_DIR2, "src", "utils", "config.ts")).href);
15951
+ return await import(pathToFileURL2(join8(CONNECTOR_DIR2, "src", "utils", "config.ts")).href);
16837
15952
  }
16838
15953
  function extractGlobalArgs3(args) {
16839
15954
  const remaining = [];
@@ -17445,9 +16560,7 @@ var stripeConnector = defineConnector({
17445
16560
 
17446
16561
  // src/core/builtins.ts
17447
16562
  var INTERNAL_CONNECTOR_DEFINITIONS = [
17448
- gmailConnector,
17449
16563
  githubConnector,
17450
- googleDriveConnector,
17451
16564
  imessageConnector,
17452
16565
  stripeConnector
17453
16566
  ];
@@ -23721,10 +22834,7 @@ function searchConnectors(query, context) {
23721
22834
  return results.slice(0, limit);
23722
22835
  }
23723
22836
  function getConnector(name) {
23724
- if (!isValidConnectorName(name))
23725
- return;
23726
- const normalizedName = normalizeConnectorName(name);
23727
- return CONNECTORS.find((c) => c.name === normalizedName);
22837
+ return CONNECTORS.find((c) => c.name === name);
23728
22838
  }
23729
22839
  var versionsLoaded = false;
23730
22840
  function loadConnectorVersions() {
@@ -23733,17 +22843,17 @@ function loadConnectorVersions() {
23733
22843
  versionsLoaded = true;
23734
22844
  const thisDir = dirname5(fileURLToPath3(import.meta.url));
23735
22845
  const candidates = [
23736
- join11(thisDir, "..", "connectors"),
23737
- join11(thisDir, "..", "..", "connectors")
22846
+ join9(thisDir, "..", "connectors"),
22847
+ join9(thisDir, "..", "..", "connectors")
23738
22848
  ];
23739
- const connectorsDir = candidates.find((d) => existsSync9(d));
22849
+ const connectorsDir = candidates.find((d) => existsSync8(d));
23740
22850
  if (!connectorsDir)
23741
22851
  return;
23742
22852
  for (const connector of CONNECTORS) {
23743
22853
  try {
23744
- const pkgPath = join11(getConnectorPackagePath(connectorsDir, connector.name), "package.json");
23745
- if (existsSync9(pkgPath)) {
23746
- const pkg = JSON.parse(readFileSync5(pkgPath, "utf-8"));
22854
+ const pkgPath = join9(connectorsDir, `connect-${connector.name}`, "package.json");
22855
+ if (existsSync8(pkgPath)) {
22856
+ const pkg = JSON.parse(readFileSync3(pkgPath, "utf-8"));
23747
22857
  connector.version = pkg.version || "0.0.0";
23748
22858
  continue;
23749
22859
  }
@@ -23755,16 +22865,16 @@ function loadConnectorVersions() {
23755
22865
  }
23756
22866
  }
23757
22867
  // src/lib/installer.ts
23758
- import { existsSync as existsSync10, mkdirSync as mkdirSync6, readFileSync as readFileSync6, writeFileSync as writeFileSync5, readdirSync as readdirSync7, statSync as statSync4, rmSync as rmSync2 } from "fs";
23759
- import { join as join12, dirname as dirname6 } from "path";
22868
+ import { existsSync as existsSync9, mkdirSync as mkdirSync6, readFileSync as readFileSync4, writeFileSync as writeFileSync3, readdirSync as readdirSync6, statSync as statSync3, rmSync as rmSync2 } from "fs";
22869
+ import { join as join10, dirname as dirname6 } from "path";
23760
22870
  import { fileURLToPath as fileURLToPath4 } from "url";
23761
22871
  var __dirname4 = dirname6(fileURLToPath4(import.meta.url));
23762
22872
  function resolveConnectorsDir() {
23763
- const fromBin = join12(__dirname4, "..", "connectors");
23764
- if (existsSync10(fromBin))
22873
+ const fromBin = join10(__dirname4, "..", "connectors");
22874
+ if (existsSync9(fromBin))
23765
22875
  return fromBin;
23766
- const fromSrc = join12(__dirname4, "..", "..", "connectors");
23767
- if (existsSync10(fromSrc))
22876
+ const fromSrc = join10(__dirname4, "..", "..", "connectors");
22877
+ if (existsSync9(fromSrc))
23768
22878
  return fromSrc;
23769
22879
  return fromBin;
23770
22880
  }
@@ -23772,22 +22882,25 @@ var CONNECTORS_DIR = resolveConnectorsDir();
23772
22882
  var PROJECT_CONNECTORS_DIRNAME = ".connectors";
23773
22883
  var ENABLEMENT_MANIFEST_FILENAME = "manifest.json";
23774
22884
  var ENABLEMENT_INDEX_FILENAME = "index.ts";
22885
+ function normalizeConnectorName(name) {
22886
+ return name.startsWith("connect-") ? name.slice("connect-".length) : name;
22887
+ }
23775
22888
  function getProjectConnectorsDir(targetDir) {
23776
- return join12(targetDir, PROJECT_CONNECTORS_DIRNAME);
22889
+ return join10(targetDir, PROJECT_CONNECTORS_DIRNAME);
23777
22890
  }
23778
22891
  function getEnablementManifestPath(targetDir) {
23779
- return join12(getProjectConnectorsDir(targetDir), ENABLEMENT_MANIFEST_FILENAME);
22892
+ return join10(getProjectConnectorsDir(targetDir), ENABLEMENT_MANIFEST_FILENAME);
23780
22893
  }
23781
22894
  function getLegacyInstallPath(targetDir, name) {
23782
- return join12(getProjectConnectorsDir(targetDir), legacyConnectorName(name));
22895
+ return join10(getProjectConnectorsDir(targetDir), `connect-${normalizeConnectorName(name)}`);
23783
22896
  }
23784
22897
  function loadEnablementManifest(targetDir) {
23785
22898
  const manifestPath = getEnablementManifestPath(targetDir);
23786
- if (!existsSync10(manifestPath)) {
22899
+ if (!existsSync9(manifestPath)) {
23787
22900
  return null;
23788
22901
  }
23789
22902
  try {
23790
- const raw = JSON.parse(readFileSync6(manifestPath, "utf-8"));
22903
+ const raw = JSON.parse(readFileSync4(manifestPath, "utf-8"));
23791
22904
  if (!Array.isArray(raw.connectors)) {
23792
22905
  return null;
23793
22906
  }
@@ -23803,12 +22916,12 @@ function loadEnablementManifest(targetDir) {
23803
22916
  }
23804
22917
  function getLegacyInstalledConnectors(targetDir) {
23805
22918
  const connectorsDir = getProjectConnectorsDir(targetDir);
23806
- if (!existsSync10(connectorsDir)) {
22919
+ if (!existsSync9(connectorsDir)) {
23807
22920
  return [];
23808
22921
  }
23809
- return readdirSync7(connectorsDir).filter((entry) => {
23810
- const fullPath = join12(connectorsDir, entry);
23811
- return entry.startsWith("connect-") && statSync4(fullPath).isDirectory();
22922
+ return readdirSync6(connectorsDir).filter((entry) => {
22923
+ const fullPath = join10(connectorsDir, entry);
22924
+ return entry.startsWith("connect-") && statSync3(fullPath).isDirectory();
23812
22925
  }).map((entry) => entry.replace("connect-", "")).sort();
23813
22926
  }
23814
22927
  function getEnabledConnectors(targetDir) {
@@ -23816,7 +22929,7 @@ function getEnabledConnectors(targetDir) {
23816
22929
  return [...new Set([...manifestConnectors, ...getLegacyInstalledConnectors(targetDir)])].sort();
23817
22930
  }
23818
22931
  function updateConnectorsIndex(connectorsDir, connectors18) {
23819
- const indexPath = join12(connectorsDir, ENABLEMENT_INDEX_FILENAME);
22932
+ const indexPath = join10(connectorsDir, ENABLEMENT_INDEX_FILENAME);
23820
22933
  const connectorList = connectors18.map((connector) => ` "${connector}",`).join(`
23821
22934
  `);
23822
22935
  const content = `/**
@@ -23832,7 +22945,7 @@ ${connectorList}
23832
22945
 
23833
22946
  export type EnabledConnectorName = typeof enabledConnectors[number];
23834
22947
  `;
23835
- writeFileSync5(indexPath, content);
22948
+ writeFileSync3(indexPath, content);
23836
22949
  }
23837
22950
  function writeEnablementManifest(targetDir, connectors18) {
23838
22951
  const connectorsDir = getProjectConnectorsDir(targetDir);
@@ -23843,16 +22956,17 @@ function writeEnablementManifest(targetDir, connectors18) {
23843
22956
  updatedAt: new Date().toISOString(),
23844
22957
  connectors: [...new Set(connectors18.map((value) => normalizeConnectorName(value)))].sort()
23845
22958
  };
23846
- writeFileSync5(getEnablementManifestPath(targetDir), JSON.stringify(manifest, null, 2) + `
22959
+ writeFileSync3(getEnablementManifestPath(targetDir), JSON.stringify(manifest, null, 2) + `
23847
22960
  `);
23848
22961
  updateConnectorsIndex(connectorsDir, manifest.connectors);
23849
22962
  }
23850
22963
  function getConnectorPath(name) {
23851
- return getConnectorPackagePath(CONNECTORS_DIR, name);
22964
+ const connectorName = name.startsWith("connect-") ? name : `connect-${name}`;
22965
+ return join10(CONNECTORS_DIR, connectorName);
23852
22966
  }
23853
22967
  function connectorExists(name) {
23854
22968
  const normalizedName = normalizeConnectorName(name);
23855
- return hasInternalConnectorDefinition(normalizedName) || existsSync10(getConnectorPath(normalizedName));
22969
+ return hasInternalConnectorDefinition(normalizedName) || existsSync9(getConnectorPath(normalizedName));
23856
22970
  }
23857
22971
  function installConnector(name, options = {}) {
23858
22972
  const { targetDir = process.cwd(), overwrite = false } = options;
@@ -23885,7 +22999,7 @@ function installConnector(name, options = {}) {
23885
22999
  try {
23886
23000
  const nextEnabled = [...new Set([...installed, normalizedName])].sort();
23887
23001
  writeEnablementManifest(targetDir, nextEnabled);
23888
- if (overwrite && existsSync10(legacyInstallPath)) {
23002
+ if (overwrite && existsSync9(legacyInstallPath)) {
23889
23003
  rmSync2(legacyInstallPath, { recursive: true });
23890
23004
  }
23891
23005
  return {
@@ -23920,9 +23034,9 @@ function parseConnectorDocs(raw) {
23920
23034
  function getConnectorDocs(name) {
23921
23035
  const normalizedName = normalizeConnectorName(name);
23922
23036
  const connectorPath = getConnectorPath(normalizedName);
23923
- const claudeMdPath = join12(connectorPath, "CLAUDE.md");
23924
- if (existsSync10(claudeMdPath)) {
23925
- return parseConnectorDocs(readFileSync6(claudeMdPath, "utf-8"));
23037
+ const claudeMdPath = join10(connectorPath, "CLAUDE.md");
23038
+ if (existsSync9(claudeMdPath)) {
23039
+ return parseConnectorDocs(readFileSync4(claudeMdPath, "utf-8"));
23926
23040
  }
23927
23041
  const internalDocs = getInternalConnectorDefinition(normalizedName)?.docsMarkdown;
23928
23042
  if (internalDocs) {
@@ -23966,171 +23080,23 @@ function removeConnector(name, targetDir = process.cwd()) {
23966
23080
  const nextEnabled = installed.filter((connector) => connector !== normalizedName);
23967
23081
  writeEnablementManifest(targetDir, nextEnabled);
23968
23082
  const legacyInstallPath = getLegacyInstallPath(targetDir, normalizedName);
23969
- if (existsSync10(legacyInstallPath)) {
23083
+ if (existsSync9(legacyInstallPath)) {
23970
23084
  rmSync2(legacyInstallPath, { recursive: true });
23971
23085
  }
23972
23086
  return true;
23973
23087
  }
23974
23088
  // src/lib/runner.ts
23975
- import { existsSync as existsSync12, readdirSync as readdirSync9 } from "fs";
23976
- import { join as join14, dirname as dirname7 } from "path";
23089
+ import { existsSync as existsSync10, readdirSync as readdirSync7 } from "fs";
23090
+ import { join as join11, dirname as dirname7 } from "path";
23977
23091
  import { fileURLToPath as fileURLToPath5 } from "url";
23978
23092
  import { spawn } from "child_process";
23979
-
23980
- // src/server/auth.ts
23981
- import { existsSync as existsSync11, readFileSync as readFileSync7, writeFileSync as writeFileSync6, mkdirSync as mkdirSync7, readdirSync as readdirSync8, rmSync as rmSync3, statSync as statSync5 } from "fs";
23982
- import { join as join13 } from "path";
23983
- var oauthStateStore = new Map;
23984
- var GOOGLE_SCOPES = {
23985
- gmail: [
23986
- "https://www.googleapis.com/auth/gmail.readonly",
23987
- "https://www.googleapis.com/auth/gmail.send",
23988
- "https://www.googleapis.com/auth/gmail.compose",
23989
- "https://www.googleapis.com/auth/gmail.modify",
23990
- "https://www.googleapis.com/auth/gmail.labels",
23991
- "https://mail.google.com/"
23992
- ].join(" "),
23993
- googlecalendar: [
23994
- "https://www.googleapis.com/auth/calendar",
23995
- "https://www.googleapis.com/auth/calendar.events"
23996
- ].join(" "),
23997
- googledrive: [
23998
- "https://www.googleapis.com/auth/drive",
23999
- "https://www.googleapis.com/auth/drive.file"
24000
- ].join(" "),
24001
- googledocs: [
24002
- "https://www.googleapis.com/auth/documents",
24003
- "https://www.googleapis.com/auth/drive.file"
24004
- ].join(" "),
24005
- googlesheets: [
24006
- "https://www.googleapis.com/auth/spreadsheets",
24007
- "https://www.googleapis.com/auth/drive.file"
24008
- ].join(" "),
24009
- googletasks: [
24010
- "https://www.googleapis.com/auth/tasks"
24011
- ].join(" "),
24012
- googlecontacts: [
24013
- "https://www.googleapis.com/auth/contacts",
24014
- "https://www.googleapis.com/auth/contacts.readonly"
24015
- ].join(" "),
24016
- google: [
24017
- "openid",
24018
- "https://www.googleapis.com/auth/userinfo.email",
24019
- "https://www.googleapis.com/auth/userinfo.profile"
24020
- ].join(" ")
24021
- };
24022
- function getAuthType(name) {
24023
- name = normalizeConnectorName(name);
24024
- const docs = getConnectorDocs(name);
24025
- if (!docs?.auth)
24026
- return "apikey";
24027
- const authLower = docs.auth.toLowerCase();
24028
- if (authLower.includes("oauth"))
24029
- return "oauth";
24030
- if (authLower.includes("bearer token"))
24031
- return "bearer";
24032
- return "apikey";
24033
- }
24034
- function getConnectorConfigReadDirs2(name) {
24035
- name = normalizeConnectorName(name);
24036
- return getConnectorConfigReadDirs(name);
24037
- }
24038
- function getCurrentProfile2(name) {
24039
- name = normalizeConnectorName(name);
24040
- for (const configDir of getConnectorConfigReadDirs2(name)) {
24041
- const currentProfileFile = join13(configDir, "current_profile");
24042
- if (existsSync11(currentProfileFile)) {
24043
- try {
24044
- return readFileSync7(currentProfileFile, "utf-8").trim() || "default";
24045
- } catch {
24046
- return "default";
24047
- }
24048
- }
24049
- }
24050
- return "default";
24051
- }
24052
- function loadProfileConfigFromDir(configDir, profile) {
24053
- let flatConfig = {};
24054
- let dirConfig = {};
24055
- const profileFile = join13(configDir, "profiles", `${profile}.json`);
24056
- if (existsSync11(profileFile)) {
24057
- try {
24058
- flatConfig = JSON.parse(readFileSync7(profileFile, "utf-8"));
24059
- } catch {}
24060
- }
24061
- const profileDirConfig = join13(configDir, "profiles", profile, "config.json");
24062
- if (existsSync11(profileDirConfig)) {
24063
- try {
24064
- dirConfig = JSON.parse(readFileSync7(profileDirConfig, "utf-8"));
24065
- } catch {}
24066
- }
24067
- return { ...flatConfig, ...dirConfig };
24068
- }
24069
- function loadProfileConfig(name) {
24070
- name = normalizeConnectorName(name);
24071
- const profile = getCurrentProfile2(name);
24072
- const merged = {};
24073
- for (const configDir of [...getConnectorConfigReadDirs2(name)].reverse()) {
24074
- Object.assign(merged, loadProfileConfigFromDir(configDir, profile));
24075
- }
24076
- return merged;
24077
- }
24078
- function loadTokens3(name) {
24079
- name = normalizeConnectorName(name);
24080
- const profile = getCurrentProfile2(name);
24081
- for (const configDir of getConnectorConfigReadDirs2(name)) {
24082
- const tokensFile = join13(configDir, "profiles", profile, "tokens.json");
24083
- if (existsSync11(tokensFile)) {
24084
- try {
24085
- return JSON.parse(readFileSync7(tokensFile, "utf-8"));
24086
- } catch {
24087
- return null;
24088
- }
24089
- }
24090
- }
24091
- const profileConfig = loadProfileConfig(name);
24092
- if (profileConfig.refreshToken || profileConfig.accessToken) {
24093
- return {
24094
- accessToken: profileConfig.accessToken ?? "",
24095
- refreshToken: profileConfig.refreshToken,
24096
- expiresAt: profileConfig.expiresAt ?? 0,
24097
- tokenType: profileConfig.tokenType,
24098
- scope: profileConfig.scope
24099
- };
24100
- }
24101
- return null;
24102
- }
24103
- function getEnvVars(name) {
24104
- name = normalizeConnectorName(name);
24105
- const docs = getConnectorDocs(name);
24106
- return docs?.envVars || [];
24107
- }
24108
- function getOAuthConfig(name) {
24109
- name = normalizeConnectorName(name);
24110
- for (const configDir of getConnectorConfigReadDirs2(name)) {
24111
- const credentialsFile = join13(configDir, "credentials.json");
24112
- if (existsSync11(credentialsFile)) {
24113
- try {
24114
- const creds = JSON.parse(readFileSync7(credentialsFile, "utf-8"));
24115
- return { clientId: creds.clientId, clientSecret: creds.clientSecret };
24116
- } catch {}
24117
- }
24118
- }
24119
- const config = loadProfileConfig(name);
24120
- return {
24121
- clientId: config.clientId,
24122
- clientSecret: config.clientSecret
24123
- };
24124
- }
24125
-
24126
- // src/lib/runner.ts
24127
23093
  var __dirname5 = dirname7(fileURLToPath5(import.meta.url));
24128
23094
  function resolveConnectorsDir2() {
24129
- const fromBin = join14(__dirname5, "..", "connectors");
24130
- if (existsSync12(fromBin))
23095
+ const fromBin = join11(__dirname5, "..", "connectors");
23096
+ if (existsSync10(fromBin))
24131
23097
  return fromBin;
24132
- const fromSrc = join14(__dirname5, "..", "..", "connectors");
24133
- if (existsSync12(fromSrc))
23098
+ const fromSrc = join11(__dirname5, "..", "..", "connectors");
23099
+ if (existsSync10(fromSrc))
24134
23100
  return fromSrc;
24135
23101
  return fromBin;
24136
23102
  }
@@ -24159,9 +23125,8 @@ var ENV_VAR_NAME_OVERRIDES = {
24159
23125
  };
24160
23126
  function buildEnvWithCredentials(connectorName, baseEnv) {
24161
23127
  const env = { ...baseEnv };
24162
- const normalizedConnectorName = normalizeConnectorName(connectorName);
24163
- const prefixes = ENV_VAR_NAME_OVERRIDES[normalizedConnectorName] || [
24164
- normalizedConnectorName.toUpperCase().replace(/-/g, "_")
23128
+ const prefixes = ENV_VAR_NAME_OVERRIDES[connectorName] || [
23129
+ connectorName.toUpperCase().replace(/-/g, "_")
24165
23130
  ];
24166
23131
  for (const prefix of prefixes) {
24167
23132
  const canonicalKey = `${prefix}_API_KEY`;
@@ -24182,32 +23147,13 @@ function buildEnvWithCredentials(connectorName, baseEnv) {
24182
23147
  }
24183
23148
  }
24184
23149
  }
24185
- if (getAuthType(normalizedConnectorName) === "oauth") {
24186
- const oauthConfig = getOAuthConfig(normalizedConnectorName);
24187
- const tokens = loadTokens3(normalizedConnectorName);
24188
- for (const { variable } of getEnvVars(normalizedConnectorName)) {
24189
- if (env[variable])
24190
- continue;
24191
- if (variable.endsWith("_CLIENT_ID") && oauthConfig.clientId) {
24192
- env[variable] = oauthConfig.clientId;
24193
- } else if (variable.endsWith("_CLIENT_SECRET") && oauthConfig.clientSecret) {
24194
- env[variable] = oauthConfig.clientSecret;
24195
- } else if (variable.endsWith("_ACCESS_TOKEN") && tokens?.accessToken) {
24196
- env[variable] = tokens.accessToken;
24197
- } else if (variable.endsWith("_REFRESH_TOKEN") && tokens?.refreshToken) {
24198
- env[variable] = tokens.refreshToken;
24199
- } else if (variable.endsWith("_TOKEN_EXPIRES_AT") && tokens?.expiresAt) {
24200
- env[variable] = String(tokens.expiresAt);
24201
- }
24202
- }
24203
- }
24204
23150
  return env;
24205
23151
  }
24206
23152
  function getConnectorCliPath(name) {
24207
- const safeName = normalizeConnectorName(name).replace(/[^a-z0-9-]/g, "");
24208
- const connectorDir = getConnectorPackagePath(CONNECTORS_DIR2, safeName);
24209
- const cliPath = join14(connectorDir, "src", "cli", "index.ts");
24210
- if (existsSync12(cliPath))
23153
+ const safeName = name.replace(/[^a-z0-9-]/g, "");
23154
+ const connectorDir = join11(CONNECTORS_DIR2, `connect-${safeName}`);
23155
+ const cliPath = join11(connectorDir, "src", "cli", "index.ts");
23156
+ if (existsSync10(cliPath))
24211
23157
  return cliPath;
24212
23158
  return null;
24213
23159
  }
@@ -24245,7 +23191,7 @@ function parseCommanderHelpOperations(helpText) {
24245
23191
  inCommands = false;
24246
23192
  continue;
24247
23193
  }
24248
- const row = line.match(/^ {2}(?! )(\S.*?)(?: {2,}(.+))?$/);
23194
+ const row = line.match(/^ {2}(\S.*?)(?: {2,}(.+))?$/);
24249
23195
  if (!row)
24250
23196
  continue;
24251
23197
  const usage = row[1].trim();
@@ -24262,9 +23208,8 @@ function parseCommanderHelpOperations(helpText) {
24262
23208
  return operations;
24263
23209
  }
24264
23210
  function runConnectorCommand(name, args, timeoutMs = 30000) {
24265
- const connectorName = normalizeConnectorName(name);
24266
23211
  getConnectorsHome();
24267
- const internalRuntime = getInternalCommandRuntime(connectorName);
23212
+ const internalRuntime = getInternalCommandRuntime(name);
24268
23213
  if (internalRuntime?.run) {
24269
23214
  return Promise.resolve(internalRuntime.run(args)).then((result) => {
24270
23215
  if (result) {
@@ -24278,125 +23223,17 @@ function runConnectorCommand(name, args, timeoutMs = 30000) {
24278
23223
  success: result.success ?? exitCode === 0
24279
23224
  };
24280
23225
  }
24281
- return runLegacyConnectorCommand(connectorName, args, timeoutMs);
23226
+ return runLegacyConnectorCommand(name, args, timeoutMs);
24282
23227
  });
24283
23228
  }
24284
- return runLegacyConnectorCommand(connectorName, args, timeoutMs);
24285
- }
24286
- async function runConnectorOperation(args) {
24287
- const connectorName = normalizeConnectorName(args.connector);
24288
- const internal = getInternalConnectorDefinition(connectorName);
24289
- if (internal?.operations[args.operation]) {
24290
- try {
24291
- const operationData = await executeConnectorOperation(internal, {
24292
- operation: args.operation,
24293
- input: args.input,
24294
- profile: args.profile
24295
- });
24296
- const commandResult = normalizeOperationReturn(operationData);
24297
- return {
24298
- connector: connectorName,
24299
- operation: args.operation,
24300
- profile: args.profile,
24301
- ...commandResult
24302
- };
24303
- } catch (error) {
24304
- return {
24305
- connector: connectorName,
24306
- operation: args.operation,
24307
- profile: args.profile,
24308
- stdout: "",
24309
- stderr: error.message,
24310
- exitCode: 1,
24311
- success: false
24312
- };
24313
- }
24314
- }
24315
- const commandArgs = buildConnectorOperationArgs(args);
24316
- const result = await runConnectorCommand(connectorName, commandArgs, args.timeoutMs ?? 30000);
24317
- const response = {
24318
- ...result,
24319
- connector: connectorName,
24320
- operation: args.operation,
24321
- profile: args.profile
24322
- };
24323
- if (args.parseJson !== false && result.stdout) {
24324
- try {
24325
- response.data = JSON.parse(result.stdout);
24326
- } catch {}
24327
- }
24328
- return response;
24329
- }
24330
- function normalizeOperationReturn(value) {
24331
- if (isRunResult(value)) {
24332
- const result = value;
24333
- const response = {
24334
- ...result
24335
- };
24336
- if (result.stdout) {
24337
- try {
24338
- response.data = JSON.parse(result.stdout);
24339
- } catch {}
24340
- }
24341
- return response;
24342
- }
24343
- return {
24344
- data: value,
24345
- stdout: JSON.stringify(value),
24346
- stderr: "",
24347
- exitCode: 0,
24348
- success: true
24349
- };
24350
- }
24351
- function isRunResult(value) {
24352
- if (!value || typeof value !== "object")
24353
- return false;
24354
- const candidate = value;
24355
- return typeof candidate.stdout === "string" && typeof candidate.stderr === "string" && typeof candidate.exitCode === "number" && typeof candidate.success === "boolean";
24356
- }
24357
- function buildConnectorOperationArgs(args) {
24358
- const commandArgs = [];
24359
- if (args.profile) {
24360
- commandArgs.push("--profile", args.profile);
24361
- }
24362
- commandArgs.push(...args.operation.split(".").filter(Boolean));
24363
- for (const positional of args.input?.args ?? []) {
24364
- commandArgs.push(String(positional));
24365
- }
24366
- let hasFormat = false;
24367
- for (const [key, value] of Object.entries(args.input ?? {})) {
24368
- if (key === "args")
24369
- continue;
24370
- if (value === undefined || value === null)
24371
- continue;
24372
- const flag = `--${key.replace(/_/g, "-").replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`)}`;
24373
- if (flag === "--format" || flag === "--json")
24374
- hasFormat = true;
24375
- if (typeof value === "boolean") {
24376
- if (value)
24377
- commandArgs.push(flag);
24378
- continue;
24379
- }
24380
- if (Array.isArray(value)) {
24381
- for (const item of value) {
24382
- commandArgs.push(flag, String(item));
24383
- }
24384
- continue;
24385
- }
24386
- commandArgs.push(flag, String(value));
24387
- }
24388
- if (args.parseJson !== false && !hasFormat) {
24389
- commandArgs.push("--format", "json");
24390
- }
24391
- return commandArgs;
23229
+ return runLegacyConnectorCommand(name, args, timeoutMs);
24392
23230
  }
24393
23231
  function runLegacyConnectorCommand(name, args, timeoutMs = 30000) {
24394
- const connectorName = normalizeConnectorName(name);
24395
- const cliPath = getConnectorCliPath(connectorName);
23232
+ const cliPath = getConnectorCliPath(name);
24396
23233
  if (!cliPath) {
24397
23234
  return Promise.resolve({
24398
23235
  stdout: "",
24399
- stderr: `Connector '${connectorName}' not found or has no CLI.`,
23236
+ stderr: `Connector '${name}' not found or has no CLI.`,
24400
23237
  exitCode: 1,
24401
23238
  success: false
24402
23239
  });
@@ -24404,7 +23241,7 @@ function runLegacyConnectorCommand(name, args, timeoutMs = 30000) {
24404
23241
  return new Promise((resolve) => {
24405
23242
  const proc = spawn("bun", ["run", cliPath, ...args], {
24406
23243
  timeout: timeoutMs,
24407
- env: buildEnvWithCredentials(connectorName, process.env),
23244
+ env: buildEnvWithCredentials(name, process.env),
24408
23245
  stdio: ["pipe", "pipe", "pipe"]
24409
23246
  });
24410
23247
  let stdout = "";
@@ -24434,8 +23271,7 @@ function runLegacyConnectorCommand(name, args, timeoutMs = 30000) {
24434
23271
  });
24435
23272
  }
24436
23273
  async function getConnectorOperations(name) {
24437
- const connectorName = normalizeConnectorName(name);
24438
- const internalRuntime = getInternalCommandRuntime(connectorName);
23274
+ const internalRuntime = getInternalCommandRuntime(name);
24439
23275
  if (internalRuntime?.commands.length) {
24440
23276
  const operations2 = internalRuntime.commands.map((command) => ({
24441
23277
  name: command.name,
@@ -24447,15 +23283,15 @@ async function getConnectorOperations(name) {
24447
23283
  return {
24448
23284
  commands: operations2.map((operation) => operation.name),
24449
23285
  operations: operations2,
24450
- helpText: internalRuntime.helpText ?? buildInternalHelpText(connectorName, internalRuntime.commands),
23286
+ helpText: internalRuntime.helpText ?? buildInternalHelpText(name, internalRuntime.commands),
24451
23287
  hasCli: true
24452
23288
  };
24453
23289
  }
24454
- const cliPath = getConnectorCliPath(connectorName);
23290
+ const cliPath = getConnectorCliPath(name);
24455
23291
  if (!cliPath) {
24456
23292
  return { commands: [], operations: [], helpText: "", hasCli: false };
24457
23293
  }
24458
- const result = await runConnectorCommand(connectorName, ["--help"]);
23294
+ const result = await runConnectorCommand(name, ["--help"]);
24459
23295
  const helpText = result.stdout || result.stderr;
24460
23296
  const operations = parseCommanderHelpOperations(helpText);
24461
23297
  return {
@@ -24466,8 +23302,7 @@ async function getConnectorOperations(name) {
24466
23302
  };
24467
23303
  }
24468
23304
  async function getConnectorCommandHelp(name, command) {
24469
- const connectorName = normalizeConnectorName(name);
24470
- const internalRuntime = getInternalCommandRuntime(connectorName);
23305
+ const internalRuntime = getInternalCommandRuntime(name);
24471
23306
  if (internalRuntime?.getHelp) {
24472
23307
  const help = await internalRuntime.getHelp(command);
24473
23308
  if (help) {
@@ -24478,15 +23313,17 @@ async function getConnectorCommandHelp(name, command) {
24478
23313
  if (runtimeCommand?.helpText) {
24479
23314
  return runtimeCommand.helpText;
24480
23315
  }
24481
- const result = await runConnectorCommand(connectorName, [command, "--help"]);
23316
+ const result = await runConnectorCommand(name, [command, "--help"]);
24482
23317
  return result.stdout || result.stderr;
24483
23318
  }
24484
23319
  function getConnectorsWithCli() {
24485
23320
  const connectors18 = new Set;
24486
23321
  try {
24487
- const dirs = readdirSync9(CONNECTORS_DIR2);
23322
+ const dirs = readdirSync7(CONNECTORS_DIR2);
24488
23323
  for (const dir of dirs) {
24489
- const name = normalizeConnectorName(dir);
23324
+ if (!dir.startsWith("connect-"))
23325
+ continue;
23326
+ const name = dir.replace("connect-", "");
24490
23327
  if (getConnectorCliPath(name)) {
24491
23328
  connectors18.add(name);
24492
23329
  }
@@ -24499,74 +23336,8 @@ function getConnectorsWithCli() {
24499
23336
  }
24500
23337
  return [...connectors18].sort();
24501
23338
  }
24502
- // src/lib/manifest.ts
24503
- function buildAliases(name) {
24504
- const canonicalName = normalizeConnectorName(name);
24505
- const legacyName = legacyConnectorName(canonicalName);
24506
- return canonicalName === legacyName ? [canonicalName] : [canonicalName, legacyName];
24507
- }
24508
- async function loadOperations(name, includeOperations) {
24509
- if (!includeOperations || !hasConnectorCommandSurface(name))
24510
- return;
24511
- return (await getConnectorOperations(name)).operations;
24512
- }
24513
- async function getConnectorCapability(name, options = {}) {
24514
- const connectorName = normalizeConnectorName(name);
24515
- const meta = getConnector(connectorName);
24516
- if (!meta)
24517
- return null;
24518
- const docs = getConnectorDocs(connectorName);
24519
- const configPaths = resolveConnectorConfigPaths(connectorName);
24520
- const operations = await loadOperations(connectorName, options.includeOperations);
24521
- return {
24522
- ...meta,
24523
- id: connectorName,
24524
- aliases: buildAliases(connectorName),
24525
- runtime: {
24526
- packageName: "@hasna/connectors",
24527
- connectorId: connectorName,
24528
- legacyConnectorId: legacyConnectorName(connectorName),
24529
- packagePath: getConnectorPath(connectorName),
24530
- configDirName: configPaths.preferredDirName,
24531
- legacyConfigDirName: configPaths.legacyName,
24532
- internal: Boolean(getInternalConnectorDefinition(connectorName)),
24533
- packageDirectory: connectorExists(connectorName),
24534
- commandSurface: hasConnectorCommandSurface(connectorName)
24535
- },
24536
- auth: {
24537
- type: getAuthType(connectorName),
24538
- summary: docs?.auth ?? null,
24539
- envVars: docs?.envVars ?? []
24540
- },
24541
- docs: {
24542
- overview: docs?.overview ?? "",
24543
- cliCommands: docs?.cliCommands ?? "",
24544
- dataStorage: docs?.dataStorage ?? null
24545
- },
24546
- ...operations ? { operations } : {}
24547
- };
24548
- }
24549
- async function getConnectorCapabilityManifest(options = {}) {
24550
- const names = options.connectorNames ? [...new Set(options.connectorNames.map((name) => normalizeConnectorName(name)))].sort() : CONNECTORS.map((connector) => connector.name);
24551
- const connectors18 = [];
24552
- for (const name of names) {
24553
- const capability = await getConnectorCapability(name, options);
24554
- if (capability)
24555
- connectors18.push(capability);
24556
- }
24557
- return {
24558
- version: 1,
24559
- packageName: "@hasna/connectors",
24560
- packageVersion: package_default.version,
24561
- generatedAt: new Date().toISOString(),
24562
- categories: CATEGORIES,
24563
- connectorCount: connectors18.length,
24564
- connectors: connectors18
24565
- };
24566
- }
24567
23339
  export {
24568
23340
  searchConnectors,
24569
- runConnectorOperation,
24570
23341
  runConnectorCommand,
24571
23342
  removeConnector,
24572
23343
  loadConnectorVersions,
@@ -24583,13 +23354,10 @@ export {
24583
23354
  getConnectorDocs,
24584
23355
  getConnectorCommandHelp,
24585
23356
  getConnectorCliPath,
24586
- getConnectorCapabilityManifest,
24587
- getConnectorCapability,
24588
23357
  getConnector,
24589
23358
  executeConnectorOperation,
24590
23359
  defineConnector,
24591
23360
  connectorExists,
24592
- buildConnectorOperationArgs,
24593
23361
  ConnectorOperationNotFoundError,
24594
23362
  ConnectorDefinitionError,
24595
23363
  CONNECTORS,