@hasna/connectors 1.3.24 → 1.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (695) hide show
  1. package/bin/index.js +911 -143
  2. package/bin/mcp.js +2804 -1815
  3. package/bin/serve.js +1200 -430
  4. package/connectors/{connect-yousign → connect-cloudflare}/bun.lock +3 -3
  5. package/connectors/connect-gmail/bin/index.js +7027 -0
  6. package/connectors/connect-googledrive/bin/index.js +5958 -0
  7. package/connectors/connect-imessage/bin/.gitkeep +2 -0
  8. package/connectors/connect-imessage/bin/index.js +3016 -0
  9. package/connectors/connect-imessage/bun.lock +32 -0
  10. package/connectors/connect-imessage/package.json +46 -0
  11. package/connectors/connect-imessage/src/api/client.ts +139 -0
  12. package/connectors/connect-imessage/src/api/conversations.ts +49 -0
  13. package/connectors/connect-imessage/src/api/health.ts +16 -0
  14. package/connectors/connect-imessage/src/api/index.ts +62 -0
  15. package/connectors/connect-imessage/src/api/messages.ts +119 -0
  16. package/connectors/connect-imessage/src/cli/index.ts +258 -0
  17. package/connectors/connect-imessage/src/index.ts +26 -0
  18. package/connectors/connect-imessage/src/types/index.ts +134 -0
  19. package/connectors/connect-imessage/src/utils/config.ts +219 -0
  20. package/connectors/connect-imessage/src/utils/output.ts +121 -0
  21. package/connectors/connect-imessage/tsconfig.json +16 -0
  22. package/dashboard/dist/assets/index-ClBXkNbL.css +1 -0
  23. package/dashboard/dist/assets/index-DvfmyAO4.js +284 -0
  24. package/dashboard/dist/index.html +2 -2
  25. package/dist/core/connectors/gmail.d.ts +5 -0
  26. package/dist/core/connectors/googledrive.d.ts +6 -0
  27. package/dist/core/connectors/internal-operations.test.d.ts +1 -0
  28. package/dist/core/connectors/internal-runtime.test.d.ts +1 -0
  29. package/dist/core/errors.test.d.ts +1 -0
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js +1075 -89
  32. package/dist/lib/runner-auth.test.d.ts +1 -0
  33. package/dist/lib/runner.d.ts +31 -0
  34. package/dist/lib/test-endpoints.test.d.ts +1 -0
  35. package/dist/lib/workflow-runner.d.ts +7 -0
  36. package/dist/server/auth-exchange.test.d.ts +1 -0
  37. package/dist/server/auth-refresh.test.d.ts +1 -0
  38. package/dist/server/auth.d.ts +1 -0
  39. package/package.json +1 -1
  40. package/connectors/connect-yousign/node_modules/@types/bun/LICENSE +0 -21
  41. package/connectors/connect-yousign/node_modules/@types/bun/README.md +0 -20
  42. package/connectors/connect-yousign/node_modules/@types/bun/index.d.ts +0 -1
  43. package/connectors/connect-yousign/node_modules/@types/bun/package.json +0 -53
  44. package/connectors/connect-yousign/node_modules/@types/node/LICENSE +0 -21
  45. package/connectors/connect-yousign/node_modules/@types/node/README.md +0 -15
  46. package/connectors/connect-yousign/node_modules/@types/node/assert/strict.d.ts +0 -105
  47. package/connectors/connect-yousign/node_modules/@types/node/assert.d.ts +0 -955
  48. package/connectors/connect-yousign/node_modules/@types/node/async_hooks.d.ts +0 -623
  49. package/connectors/connect-yousign/node_modules/@types/node/buffer.buffer.d.ts +0 -466
  50. package/connectors/connect-yousign/node_modules/@types/node/buffer.d.ts +0 -1810
  51. package/connectors/connect-yousign/node_modules/@types/node/child_process.d.ts +0 -1433
  52. package/connectors/connect-yousign/node_modules/@types/node/cluster.d.ts +0 -486
  53. package/connectors/connect-yousign/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
  54. package/connectors/connect-yousign/node_modules/@types/node/console.d.ts +0 -151
  55. package/connectors/connect-yousign/node_modules/@types/node/constants.d.ts +0 -20
  56. package/connectors/connect-yousign/node_modules/@types/node/crypto.d.ts +0 -4065
  57. package/connectors/connect-yousign/node_modules/@types/node/dgram.d.ts +0 -564
  58. package/connectors/connect-yousign/node_modules/@types/node/diagnostics_channel.d.ts +0 -576
  59. package/connectors/connect-yousign/node_modules/@types/node/dns/promises.d.ts +0 -503
  60. package/connectors/connect-yousign/node_modules/@types/node/dns.d.ts +0 -922
  61. package/connectors/connect-yousign/node_modules/@types/node/domain.d.ts +0 -166
  62. package/connectors/connect-yousign/node_modules/@types/node/events.d.ts +0 -1047
  63. package/connectors/connect-yousign/node_modules/@types/node/fs/promises.d.ts +0 -1329
  64. package/connectors/connect-yousign/node_modules/@types/node/fs.d.ts +0 -4678
  65. package/connectors/connect-yousign/node_modules/@types/node/globals.d.ts +0 -150
  66. package/connectors/connect-yousign/node_modules/@types/node/globals.typedarray.d.ts +0 -101
  67. package/connectors/connect-yousign/node_modules/@types/node/http.d.ts +0 -2188
  68. package/connectors/connect-yousign/node_modules/@types/node/http2.d.ts +0 -2480
  69. package/connectors/connect-yousign/node_modules/@types/node/https.d.ts +0 -405
  70. package/connectors/connect-yousign/node_modules/@types/node/index.d.ts +0 -115
  71. package/connectors/connect-yousign/node_modules/@types/node/inspector/promises.d.ts +0 -41
  72. package/connectors/connect-yousign/node_modules/@types/node/inspector.d.ts +0 -269
  73. package/connectors/connect-yousign/node_modules/@types/node/inspector.generated.d.ts +0 -4401
  74. package/connectors/connect-yousign/node_modules/@types/node/module.d.ts +0 -757
  75. package/connectors/connect-yousign/node_modules/@types/node/net.d.ts +0 -933
  76. package/connectors/connect-yousign/node_modules/@types/node/os.d.ts +0 -507
  77. package/connectors/connect-yousign/node_modules/@types/node/package.json +0 -155
  78. package/connectors/connect-yousign/node_modules/@types/node/path/posix.d.ts +0 -8
  79. package/connectors/connect-yousign/node_modules/@types/node/path/win32.d.ts +0 -8
  80. package/connectors/connect-yousign/node_modules/@types/node/path.d.ts +0 -187
  81. package/connectors/connect-yousign/node_modules/@types/node/perf_hooks.d.ts +0 -643
  82. package/connectors/connect-yousign/node_modules/@types/node/process.d.ts +0 -2175
  83. package/connectors/connect-yousign/node_modules/@types/node/punycode.d.ts +0 -117
  84. package/connectors/connect-yousign/node_modules/@types/node/querystring.d.ts +0 -152
  85. package/connectors/connect-yousign/node_modules/@types/node/quic.d.ts +0 -910
  86. package/connectors/connect-yousign/node_modules/@types/node/readline/promises.d.ts +0 -161
  87. package/connectors/connect-yousign/node_modules/@types/node/readline.d.ts +0 -542
  88. package/connectors/connect-yousign/node_modules/@types/node/repl.d.ts +0 -415
  89. package/connectors/connect-yousign/node_modules/@types/node/sea.d.ts +0 -162
  90. package/connectors/connect-yousign/node_modules/@types/node/sqlite.d.ts +0 -1065
  91. package/connectors/connect-yousign/node_modules/@types/node/stream/consumers.d.ts +0 -38
  92. package/connectors/connect-yousign/node_modules/@types/node/stream/promises.d.ts +0 -211
  93. package/connectors/connect-yousign/node_modules/@types/node/stream/web.d.ts +0 -296
  94. package/connectors/connect-yousign/node_modules/@types/node/stream.d.ts +0 -1770
  95. package/connectors/connect-yousign/node_modules/@types/node/string_decoder.d.ts +0 -67
  96. package/connectors/connect-yousign/node_modules/@types/node/test/reporters.d.ts +0 -96
  97. package/connectors/connect-yousign/node_modules/@types/node/test.d.ts +0 -2275
  98. package/connectors/connect-yousign/node_modules/@types/node/timers/promises.d.ts +0 -108
  99. package/connectors/connect-yousign/node_modules/@types/node/timers.d.ts +0 -159
  100. package/connectors/connect-yousign/node_modules/@types/node/tls.d.ts +0 -1203
  101. package/connectors/connect-yousign/node_modules/@types/node/trace_events.d.ts +0 -197
  102. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -462
  103. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +0 -71
  104. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -36
  105. package/connectors/connect-yousign/node_modules/@types/node/ts5.6/index.d.ts +0 -117
  106. package/connectors/connect-yousign/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +0 -72
  107. package/connectors/connect-yousign/node_modules/@types/node/ts5.7/index.d.ts +0 -117
  108. package/connectors/connect-yousign/node_modules/@types/node/tty.d.ts +0 -250
  109. package/connectors/connect-yousign/node_modules/@types/node/url.d.ts +0 -541
  110. package/connectors/connect-yousign/node_modules/@types/node/util/types.d.ts +0 -558
  111. package/connectors/connect-yousign/node_modules/@types/node/util.d.ts +0 -1687
  112. package/connectors/connect-yousign/node_modules/@types/node/v8.d.ts +0 -988
  113. package/connectors/connect-yousign/node_modules/@types/node/vm.d.ts +0 -1208
  114. package/connectors/connect-yousign/node_modules/@types/node/wasi.d.ts +0 -202
  115. package/connectors/connect-yousign/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -59
  116. package/connectors/connect-yousign/node_modules/@types/node/web-globals/blob.d.ts +0 -23
  117. package/connectors/connect-yousign/node_modules/@types/node/web-globals/console.d.ts +0 -9
  118. package/connectors/connect-yousign/node_modules/@types/node/web-globals/crypto.d.ts +0 -39
  119. package/connectors/connect-yousign/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  120. package/connectors/connect-yousign/node_modules/@types/node/web-globals/encoding.d.ts +0 -11
  121. package/connectors/connect-yousign/node_modules/@types/node/web-globals/events.d.ts +0 -106
  122. package/connectors/connect-yousign/node_modules/@types/node/web-globals/fetch.d.ts +0 -69
  123. package/connectors/connect-yousign/node_modules/@types/node/web-globals/importmeta.d.ts +0 -13
  124. package/connectors/connect-yousign/node_modules/@types/node/web-globals/messaging.d.ts +0 -23
  125. package/connectors/connect-yousign/node_modules/@types/node/web-globals/navigator.d.ts +0 -25
  126. package/connectors/connect-yousign/node_modules/@types/node/web-globals/performance.d.ts +0 -45
  127. package/connectors/connect-yousign/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  128. package/connectors/connect-yousign/node_modules/@types/node/web-globals/streams.d.ts +0 -115
  129. package/connectors/connect-yousign/node_modules/@types/node/web-globals/timers.d.ts +0 -44
  130. package/connectors/connect-yousign/node_modules/@types/node/web-globals/url.d.ts +0 -24
  131. package/connectors/connect-yousign/node_modules/@types/node/worker_threads.d.ts +0 -717
  132. package/connectors/connect-yousign/node_modules/@types/node/zlib.d.ts +0 -682
  133. package/connectors/connect-yousign/node_modules/bun-types/CLAUDE.md +0 -105
  134. package/connectors/connect-yousign/node_modules/bun-types/README.md +0 -33
  135. package/connectors/connect-yousign/node_modules/bun-types/bun.d.ts +0 -8481
  136. package/connectors/connect-yousign/node_modules/bun-types/bun.ns.d.ts +0 -5
  137. package/connectors/connect-yousign/node_modules/bun-types/bundle.d.ts +0 -74
  138. package/connectors/connect-yousign/node_modules/bun-types/deprecated.d.ts +0 -184
  139. package/connectors/connect-yousign/node_modules/bun-types/devserver.d.ts +0 -187
  140. package/connectors/connect-yousign/node_modules/bun-types/docs/README.md +0 -28
  141. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/bytecode.mdx +0 -447
  142. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/css.mdx +0 -1024
  143. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/esbuild.mdx +0 -304
  144. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/executables.mdx +0 -1318
  145. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/fullstack.mdx +0 -1086
  146. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/hot-reloading.mdx +0 -229
  147. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/html-static.mdx +0 -498
  148. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/index.mdx +0 -1840
  149. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/loaders.mdx +0 -451
  150. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/macros.mdx +0 -328
  151. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/minifier.mdx +0 -1286
  152. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/plugins.mdx +0 -477
  153. package/connectors/connect-yousign/node_modules/bun-types/docs/bundler/standalone-html.mdx +0 -314
  154. package/connectors/connect-yousign/node_modules/bun-types/docs/feedback.mdx +0 -75
  155. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-array.mdx +0 -29
  156. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-blob.mdx +0 -26
  157. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-buffer.mdx +0 -27
  158. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-string.mdx +0 -17
  159. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/arraybuffer-to-typedarray.mdx +0 -41
  160. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-arraybuffer.mdx +0 -16
  161. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-dataview.mdx +0 -16
  162. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-stream.mdx +0 -16
  163. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-string.mdx +0 -17
  164. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/blob-to-typedarray.mdx +0 -16
  165. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-arraybuffer.mdx +0 -16
  166. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-blob.mdx +0 -16
  167. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-readablestream.mdx +0 -43
  168. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-string.mdx +0 -27
  169. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/buffer-to-typedarray.mdx +0 -16
  170. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/dataview-to-string.mdx +0 -17
  171. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-arraybuffer.mdx +0 -27
  172. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-blob.mdx +0 -18
  173. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-buffer.mdx +0 -16
  174. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-dataview.mdx +0 -16
  175. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-readablestream.mdx +0 -43
  176. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/binary/typedarray-to-string.mdx +0 -18
  177. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/aws-lambda.mdx +0 -204
  178. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/digital-ocean.mdx +0 -161
  179. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/google-cloud-run.mdx +0 -194
  180. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/railway.mdx +0 -145
  181. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/render.mdx +0 -82
  182. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/deployment/vercel.mdx +0 -97
  183. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/astro.mdx +0 -82
  184. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/discordjs.mdx +0 -80
  185. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/docker.mdx +0 -151
  186. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/drizzle.mdx +0 -195
  187. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/elysia.mdx +0 -31
  188. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/express.mdx +0 -43
  189. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/gel.mdx +0 -261
  190. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/hono.mdx +0 -47
  191. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/mongoose.mdx +0 -92
  192. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/neon-drizzle.mdx +0 -234
  193. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/neon-serverless-postgres.mdx +0 -60
  194. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/nextjs.mdx +0 -103
  195. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/nuxt.mdx +0 -96
  196. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/pm2.mdx +0 -55
  197. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/prisma-postgres.mdx +0 -169
  198. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/prisma.mdx +0 -164
  199. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/qwik.mdx +0 -114
  200. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/react.mdx +0 -52
  201. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/remix.mdx +0 -97
  202. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/sentry.mdx +0 -54
  203. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/solidstart.mdx +0 -62
  204. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/ssr-react.mdx +0 -49
  205. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/stric.mdx +0 -54
  206. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/sveltekit.mdx +0 -138
  207. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/systemd.mdx +0 -114
  208. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/tanstack-start.mdx +0 -791
  209. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/upstash.mdx +0 -87
  210. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/ecosystem/vite.mdx +0 -77
  211. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/html-rewriter/extract-links.mdx +0 -71
  212. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/html-rewriter/extract-social-meta.mdx +0 -97
  213. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/cluster.mdx +0 -69
  214. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/fetch-unix.mdx +0 -35
  215. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/fetch.mdx +0 -26
  216. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/file-uploads.mdx +0 -97
  217. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/hot.mdx +0 -28
  218. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/proxy.mdx +0 -50
  219. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/server.mdx +0 -48
  220. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/simple.mdx +0 -20
  221. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/stream-file.mdx +0 -50
  222. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/stream-iterator.mdx +0 -49
  223. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/stream-node-streams-in-bun.mdx +0 -22
  224. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/http/tls.mdx +0 -32
  225. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/index.mdx +0 -10
  226. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-dev.mdx +0 -28
  227. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-git.mdx +0 -40
  228. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-optional.mdx +0 -27
  229. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-peer.mdx +0 -45
  230. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add-tarball.mdx +0 -35
  231. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/add.mdx +0 -44
  232. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/azure-artifacts.mdx +0 -76
  233. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/cicd.mdx +0 -43
  234. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/custom-registry.mdx +0 -32
  235. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/from-npm-install-to-bun-install.mdx +0 -230
  236. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/git-diff-bun-lockfile.mdx +0 -48
  237. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/jfrog-artifactory.mdx +0 -28
  238. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/npm-alias.mdx +0 -25
  239. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/registry-scope.mdx +0 -40
  240. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/trusted.mdx +0 -52
  241. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/workspaces.mdx +0 -70
  242. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/install/yarnlock.mdx +0 -51
  243. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/argv.mdx +0 -66
  244. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/ctrl-c.mdx +0 -18
  245. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/ipc.mdx +0 -69
  246. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/nanoseconds.mdx +0 -15
  247. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/os-signals.mdx +0 -31
  248. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/spawn-stderr.mdx +0 -34
  249. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/spawn-stdout.mdx +0 -28
  250. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/spawn.mdx +0 -43
  251. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/process/stdin.mdx +0 -62
  252. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/arraybuffer.mdx +0 -30
  253. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/buffer.mdx +0 -21
  254. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/exists.mdx +0 -18
  255. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/json.mdx +0 -19
  256. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/mime.mdx +0 -22
  257. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/stream.mdx +0 -28
  258. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/string.mdx +0 -24
  259. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/uint8array.mdx +0 -23
  260. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/read-file/watch.mdx +0 -66
  261. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/build-time-constants.mdx +0 -295
  262. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/cicd.mdx +0 -45
  263. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/codesign-macos-executable.mdx +0 -61
  264. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/define-constant.mdx +0 -149
  265. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/delete-directory.mdx +0 -39
  266. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/delete-file.mdx +0 -21
  267. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/heap-snapshot.mdx +0 -28
  268. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-html.mdx +0 -15
  269. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-json.mdx +0 -46
  270. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-json5.mdx +0 -74
  271. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-toml.mdx +0 -32
  272. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/import-yaml.mdx +0 -104
  273. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/read-env.mdx +0 -37
  274. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/set-env.mdx +0 -51
  275. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/shell.mdx +0 -42
  276. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/timezone.mdx +0 -38
  277. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/tsconfig-paths.mdx +0 -31
  278. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/typescript.mdx +0 -51
  279. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/vscode-debugger.mdx +0 -47
  280. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/runtime/web-debugger.mdx +0 -103
  281. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-arraybuffer.mdx +0 -13
  282. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-blob.mdx +0 -13
  283. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-json.mdx +0 -14
  284. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-string.mdx +0 -14
  285. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/node-readable-to-uint8array.mdx +0 -13
  286. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-array.mdx +0 -16
  287. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-arraybuffer.mdx +0 -16
  288. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-blob.mdx +0 -16
  289. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-buffer.mdx +0 -17
  290. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-json.mdx +0 -16
  291. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-string.mdx +0 -16
  292. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/streams/to-typedarray.mdx +0 -24
  293. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/bail.mdx +0 -24
  294. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/concurrent-test-glob.mdx +0 -146
  295. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/coverage-threshold.mdx +0 -67
  296. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/coverage.mdx +0 -49
  297. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/happy-dom.mdx +0 -73
  298. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/migrate-from-jest.mdx +0 -125
  299. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/mock-clock.mdx +0 -50
  300. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/mock-functions.mdx +0 -70
  301. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/rerun-each.mdx +0 -16
  302. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/run-tests.mdx +0 -116
  303. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/skip-tests.mdx +0 -43
  304. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/snapshot.mdx +0 -102
  305. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/spy-on.mdx +0 -49
  306. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/svelte-test.mdx +0 -113
  307. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/testing-library.mdx +0 -93
  308. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/timeout.mdx +0 -17
  309. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/todo-tests.mdx +0 -74
  310. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/update-snapshots.mdx +0 -49
  311. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/test/watch-mode.mdx +0 -24
  312. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/base64.mdx +0 -17
  313. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/deep-equals.mdx +0 -41
  314. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/deflate.mdx +0 -20
  315. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/detect-bun.mdx +0 -28
  316. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/entrypoint.mdx +0 -19
  317. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/escape-html.mdx +0 -24
  318. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/file-url-to-path.mdx +0 -16
  319. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/gzip.mdx +0 -20
  320. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/hash-a-password.mdx +0 -56
  321. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/import-meta-dir.mdx +0 -15
  322. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/import-meta-file.mdx +0 -15
  323. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/import-meta-path.mdx +0 -15
  324. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/javascript-uuid.mdx +0 -25
  325. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/main.mdx +0 -43
  326. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/path-to-file-url.mdx +0 -16
  327. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/sleep.mdx +0 -24
  328. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/upgrade.mdx +0 -93
  329. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/version.mdx +0 -23
  330. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/util/which-path-to-executable-bin.mdx +0 -17
  331. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/compression.mdx +0 -33
  332. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/context.mdx +0 -79
  333. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/pubsub.mdx +0 -43
  334. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/websocket/simple.mdx +0 -38
  335. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/append.mdx +0 -54
  336. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/basic.mdx +0 -46
  337. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/blob.mdx +0 -30
  338. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/cat.mdx +0 -19
  339. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/file-cp.mdx +0 -18
  340. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/filesink.mdx +0 -54
  341. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/response.mdx +0 -19
  342. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/stdout.mdx +0 -23
  343. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/stream.mdx +0 -19
  344. package/connectors/connect-yousign/node_modules/bun-types/docs/guides/write-file/unlink.mdx +0 -18
  345. package/connectors/connect-yousign/node_modules/bun-types/docs/index.mdx +0 -133
  346. package/connectors/connect-yousign/node_modules/bun-types/docs/installation.mdx +0 -372
  347. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/bunx.mdx +0 -91
  348. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/catalogs.mdx +0 -292
  349. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/add.mdx +0 -179
  350. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/audit.mdx +0 -60
  351. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/info.mdx +0 -70
  352. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/install.mdx +0 -591
  353. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/link.mdx +0 -61
  354. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/outdated.mdx +0 -197
  355. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/patch.mdx +0 -69
  356. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/pm.mdx +0 -323
  357. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/publish.mdx +0 -131
  358. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/remove.mdx +0 -16
  359. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/update.mdx +0 -140
  360. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/cli/why.mdx +0 -84
  361. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/filter.mdx +0 -127
  362. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/global-cache.mdx +0 -72
  363. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/isolated-installs.mdx +0 -220
  364. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/lifecycle.mdx +0 -64
  365. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/lockfile.mdx +0 -64
  366. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/npmrc.mdx +0 -245
  367. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/overrides.mdx +0 -83
  368. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/scopes-registries.mdx +0 -35
  369. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/security-scanner-api.mdx +0 -95
  370. package/connectors/connect-yousign/node_modules/bun-types/docs/pm/workspaces.mdx +0 -115
  371. package/connectors/connect-yousign/node_modules/bun-types/docs/project/benchmarking.mdx +0 -296
  372. package/connectors/connect-yousign/node_modules/bun-types/docs/project/bindgen.mdx +0 -223
  373. package/connectors/connect-yousign/node_modules/bun-types/docs/project/building-windows.mdx +0 -143
  374. package/connectors/connect-yousign/node_modules/bun-types/docs/project/contributing.mdx +0 -366
  375. package/connectors/connect-yousign/node_modules/bun-types/docs/project/feedback.mdx +0 -20
  376. package/connectors/connect-yousign/node_modules/bun-types/docs/project/license.mdx +0 -78
  377. package/connectors/connect-yousign/node_modules/bun-types/docs/project/roadmap.mdx +0 -8
  378. package/connectors/connect-yousign/node_modules/bun-types/docs/quickstart.mdx +0 -251
  379. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/archive.mdx +0 -452
  380. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/auto-install.mdx +0 -97
  381. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/binary-data.mdx +0 -846
  382. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/bun-apis.mdx +0 -59
  383. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/bunfig.mdx +0 -754
  384. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/c-compiler.mdx +0 -204
  385. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/child-process.mdx +0 -659
  386. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/color.mdx +0 -267
  387. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/console.mdx +0 -67
  388. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/cookies.mdx +0 -454
  389. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/debugger.mdx +0 -335
  390. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/environment-variables.mdx +0 -231
  391. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/ffi.mdx +0 -567
  392. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/file-io.mdx +0 -306
  393. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/file-system-router.mdx +0 -118
  394. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/file-types.mdx +0 -482
  395. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/glob.mdx +0 -181
  396. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/globals.mdx +0 -72
  397. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/hashing.mdx +0 -315
  398. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/html-rewriter.mdx +0 -333
  399. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/cookies.mdx +0 -79
  400. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/error-handling.mdx +0 -40
  401. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/metrics.mdx +0 -36
  402. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/routing.mdx +0 -289
  403. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/server.mdx +0 -645
  404. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/tls.mdx +0 -101
  405. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/http/websockets.mdx +0 -414
  406. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/index.mdx +0 -223
  407. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/json5.mdx +0 -271
  408. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/jsonl.mdx +0 -188
  409. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/jsx.mdx +0 -115
  410. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/markdown.mdx +0 -344
  411. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/module-resolution.mdx +0 -374
  412. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/dns.mdx +0 -111
  413. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/fetch.mdx +0 -484
  414. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/tcp.mdx +0 -239
  415. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/networking/udp.mdx +0 -180
  416. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/node-api.mdx +0 -19
  417. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/nodejs-compat.mdx +0 -468
  418. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/plugins.mdx +0 -419
  419. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/redis.mdx +0 -583
  420. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/repl.mdx +0 -176
  421. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/s3.mdx +0 -881
  422. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/secrets.mdx +0 -340
  423. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/semver.mdx +0 -57
  424. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/shell.mdx +0 -637
  425. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/sql.mdx +0 -1404
  426. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/sqlite.mdx +0 -721
  427. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/streams.mdx +0 -232
  428. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/templating/create.mdx +0 -269
  429. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/templating/init.mdx +0 -58
  430. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/transpiler.mdx +0 -288
  431. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/typescript.mdx +0 -58
  432. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/utils.mdx +0 -1010
  433. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/watch-mode.mdx +0 -161
  434. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/web-apis.mdx +0 -29
  435. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/workers.mdx +0 -314
  436. package/connectors/connect-yousign/node_modules/bun-types/docs/runtime/yaml.mdx +0 -469
  437. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/add.mdx +0 -166
  438. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/build.mdx +0 -197
  439. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/bunx.mdx +0 -49
  440. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/feedback.mdx +0 -17
  441. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/init.mdx +0 -84
  442. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/install.mdx +0 -173
  443. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/link.mdx +0 -163
  444. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/outdated.mdx +0 -140
  445. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/patch.mdx +0 -171
  446. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/publish.mdx +0 -198
  447. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/remove.mdx +0 -146
  448. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/run.mdx +0 -305
  449. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/test.mdx +0 -105
  450. package/connectors/connect-yousign/node_modules/bun-types/docs/snippets/cli/update.mdx +0 -144
  451. package/connectors/connect-yousign/node_modules/bun-types/docs/test/code-coverage.mdx +0 -409
  452. package/connectors/connect-yousign/node_modules/bun-types/docs/test/configuration.mdx +0 -520
  453. package/connectors/connect-yousign/node_modules/bun-types/docs/test/dates-times.mdx +0 -129
  454. package/connectors/connect-yousign/node_modules/bun-types/docs/test/discovery.mdx +0 -90
  455. package/connectors/connect-yousign/node_modules/bun-types/docs/test/dom.mdx +0 -226
  456. package/connectors/connect-yousign/node_modules/bun-types/docs/test/index.mdx +0 -409
  457. package/connectors/connect-yousign/node_modules/bun-types/docs/test/lifecycle.mdx +0 -366
  458. package/connectors/connect-yousign/node_modules/bun-types/docs/test/mocks.mdx +0 -637
  459. package/connectors/connect-yousign/node_modules/bun-types/docs/test/reporters.mdx +0 -126
  460. package/connectors/connect-yousign/node_modules/bun-types/docs/test/runtime-behavior.mdx +0 -342
  461. package/connectors/connect-yousign/node_modules/bun-types/docs/test/snapshots.mdx +0 -434
  462. package/connectors/connect-yousign/node_modules/bun-types/docs/test/writing-tests.mdx +0 -672
  463. package/connectors/connect-yousign/node_modules/bun-types/docs/typescript.mdx +0 -54
  464. package/connectors/connect-yousign/node_modules/bun-types/extensions.d.ts +0 -40
  465. package/connectors/connect-yousign/node_modules/bun-types/fetch.d.ts +0 -79
  466. package/connectors/connect-yousign/node_modules/bun-types/ffi.d.ts +0 -1154
  467. package/connectors/connect-yousign/node_modules/bun-types/globals.d.ts +0 -2067
  468. package/connectors/connect-yousign/node_modules/bun-types/html-rewriter.d.ts +0 -186
  469. package/connectors/connect-yousign/node_modules/bun-types/index.d.ts +0 -32
  470. package/connectors/connect-yousign/node_modules/bun-types/jsc.d.ts +0 -233
  471. package/connectors/connect-yousign/node_modules/bun-types/jsx.d.ts +0 -11
  472. package/connectors/connect-yousign/node_modules/bun-types/overrides.d.ts +0 -376
  473. package/connectors/connect-yousign/node_modules/bun-types/package.json +0 -37
  474. package/connectors/connect-yousign/node_modules/bun-types/redis.d.ts +0 -3352
  475. package/connectors/connect-yousign/node_modules/bun-types/s3.d.ts +0 -1335
  476. package/connectors/connect-yousign/node_modules/bun-types/security.d.ts +0 -101
  477. package/connectors/connect-yousign/node_modules/bun-types/serve.d.ts +0 -1296
  478. package/connectors/connect-yousign/node_modules/bun-types/shell.d.ts +0 -380
  479. package/connectors/connect-yousign/node_modules/bun-types/sql.d.ts +0 -887
  480. package/connectors/connect-yousign/node_modules/bun-types/sqlite.d.ts +0 -1322
  481. package/connectors/connect-yousign/node_modules/bun-types/test-globals.d.ts +0 -22
  482. package/connectors/connect-yousign/node_modules/bun-types/test.d.ts +0 -2392
  483. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/branding.d.ts +0 -283
  484. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/index.d.ts +0 -1207
  485. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/messages.d.ts +0 -395
  486. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/overloads.d.ts +0 -669
  487. package/connectors/connect-yousign/node_modules/bun-types/vendor/expect-type/utils.d.ts +0 -431
  488. package/connectors/connect-yousign/node_modules/bun-types/wasm.d.ts +0 -193
  489. package/connectors/connect-yousign/node_modules/chalk/license +0 -9
  490. package/connectors/connect-yousign/node_modules/chalk/package.json +0 -83
  491. package/connectors/connect-yousign/node_modules/chalk/readme.md +0 -297
  492. package/connectors/connect-yousign/node_modules/chalk/source/index.d.ts +0 -325
  493. package/connectors/connect-yousign/node_modules/chalk/source/index.js +0 -225
  494. package/connectors/connect-yousign/node_modules/chalk/source/utilities.js +0 -33
  495. package/connectors/connect-yousign/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +0 -236
  496. package/connectors/connect-yousign/node_modules/chalk/source/vendor/ansi-styles/index.js +0 -223
  497. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/browser.d.ts +0 -1
  498. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/browser.js +0 -34
  499. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/index.d.ts +0 -55
  500. package/connectors/connect-yousign/node_modules/chalk/source/vendor/supports-color/index.js +0 -190
  501. package/connectors/connect-yousign/node_modules/commander/LICENSE +0 -22
  502. package/connectors/connect-yousign/node_modules/commander/Readme.md +0 -1157
  503. package/connectors/connect-yousign/node_modules/commander/esm.mjs +0 -16
  504. package/connectors/connect-yousign/node_modules/commander/index.js +0 -24
  505. package/connectors/connect-yousign/node_modules/commander/lib/argument.js +0 -149
  506. package/connectors/connect-yousign/node_modules/commander/lib/command.js +0 -2509
  507. package/connectors/connect-yousign/node_modules/commander/lib/error.js +0 -39
  508. package/connectors/connect-yousign/node_modules/commander/lib/help.js +0 -520
  509. package/connectors/connect-yousign/node_modules/commander/lib/option.js +0 -330
  510. package/connectors/connect-yousign/node_modules/commander/lib/suggestSimilar.js +0 -101
  511. package/connectors/connect-yousign/node_modules/commander/package-support.json +0 -16
  512. package/connectors/connect-yousign/node_modules/commander/package.json +0 -84
  513. package/connectors/connect-yousign/node_modules/commander/typings/esm.d.mts +0 -3
  514. package/connectors/connect-yousign/node_modules/commander/typings/index.d.ts +0 -969
  515. package/connectors/connect-yousign/node_modules/typescript/LICENSE.txt +0 -55
  516. package/connectors/connect-yousign/node_modules/typescript/README.md +0 -50
  517. package/connectors/connect-yousign/node_modules/typescript/SECURITY.md +0 -41
  518. package/connectors/connect-yousign/node_modules/typescript/ThirdPartyNoticeText.txt +0 -193
  519. package/connectors/connect-yousign/node_modules/typescript/bin/tsc +0 -2
  520. package/connectors/connect-yousign/node_modules/typescript/bin/tsserver +0 -2
  521. package/connectors/connect-yousign/node_modules/typescript/lib/_tsc.js +0 -133818
  522. package/connectors/connect-yousign/node_modules/typescript/lib/_tsserver.js +0 -659
  523. package/connectors/connect-yousign/node_modules/typescript/lib/_typingsInstaller.js +0 -222
  524. package/connectors/connect-yousign/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
  525. package/connectors/connect-yousign/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
  526. package/connectors/connect-yousign/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
  527. package/connectors/connect-yousign/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
  528. package/connectors/connect-yousign/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
  529. package/connectors/connect-yousign/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
  530. package/connectors/connect-yousign/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
  531. package/connectors/connect-yousign/node_modules/typescript/lib/lib.d.ts +0 -22
  532. package/connectors/connect-yousign/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
  533. package/connectors/connect-yousign/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
  534. package/connectors/connect-yousign/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
  535. package/connectors/connect-yousign/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
  536. package/connectors/connect-yousign/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
  537. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
  538. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
  539. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
  540. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
  541. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
  542. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
  543. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
  544. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
  545. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
  546. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
  547. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
  548. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
  549. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
  550. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
  551. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
  552. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
  553. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
  554. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
  555. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
  556. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
  557. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
  558. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
  559. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
  560. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
  561. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
  562. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
  563. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
  564. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
  565. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
  566. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
  567. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
  568. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
  569. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
  570. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
  571. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
  572. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
  573. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
  574. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
  575. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
  576. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
  577. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
  578. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
  579. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
  580. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
  581. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
  582. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
  583. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
  584. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
  585. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
  586. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
  587. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
  588. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
  589. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
  590. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
  591. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
  592. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
  593. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
  594. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
  595. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
  596. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
  597. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
  598. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
  599. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
  600. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
  601. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
  602. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
  603. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
  604. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
  605. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
  606. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
  607. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
  608. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
  609. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
  610. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
  611. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
  612. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
  613. package/connectors/connect-yousign/node_modules/typescript/lib/lib.es6.d.ts +0 -23
  614. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
  615. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
  616. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
  617. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
  618. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
  619. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
  620. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
  621. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
  622. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
  623. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
  624. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
  625. package/connectors/connect-yousign/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
  626. package/connectors/connect-yousign/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
  627. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
  628. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
  629. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
  630. package/connectors/connect-yousign/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
  631. package/connectors/connect-yousign/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
  632. package/connectors/connect-yousign/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
  633. package/connectors/connect-yousign/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
  634. package/connectors/connect-yousign/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
  635. package/connectors/connect-yousign/node_modules/typescript/lib/tsc.js +0 -8
  636. package/connectors/connect-yousign/node_modules/typescript/lib/tsserver.js +0 -8
  637. package/connectors/connect-yousign/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
  638. package/connectors/connect-yousign/node_modules/typescript/lib/tsserverlibrary.js +0 -21
  639. package/connectors/connect-yousign/node_modules/typescript/lib/typesMap.json +0 -497
  640. package/connectors/connect-yousign/node_modules/typescript/lib/typescript.d.ts +0 -11437
  641. package/connectors/connect-yousign/node_modules/typescript/lib/typescript.js +0 -200276
  642. package/connectors/connect-yousign/node_modules/typescript/lib/typingsInstaller.js +0 -8
  643. package/connectors/connect-yousign/node_modules/typescript/lib/watchGuard.js +0 -53
  644. package/connectors/connect-yousign/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -2122
  645. package/connectors/connect-yousign/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -2122
  646. package/connectors/connect-yousign/node_modules/typescript/package.json +0 -120
  647. package/connectors/connect-yousign/node_modules/undici-types/LICENSE +0 -21
  648. package/connectors/connect-yousign/node_modules/undici-types/README.md +0 -6
  649. package/connectors/connect-yousign/node_modules/undici-types/agent.d.ts +0 -32
  650. package/connectors/connect-yousign/node_modules/undici-types/api.d.ts +0 -43
  651. package/connectors/connect-yousign/node_modules/undici-types/balanced-pool.d.ts +0 -30
  652. package/connectors/connect-yousign/node_modules/undici-types/cache-interceptor.d.ts +0 -173
  653. package/connectors/connect-yousign/node_modules/undici-types/cache.d.ts +0 -36
  654. package/connectors/connect-yousign/node_modules/undici-types/client-stats.d.ts +0 -15
  655. package/connectors/connect-yousign/node_modules/undici-types/client.d.ts +0 -108
  656. package/connectors/connect-yousign/node_modules/undici-types/connector.d.ts +0 -34
  657. package/connectors/connect-yousign/node_modules/undici-types/content-type.d.ts +0 -21
  658. package/connectors/connect-yousign/node_modules/undici-types/cookies.d.ts +0 -30
  659. package/connectors/connect-yousign/node_modules/undici-types/diagnostics-channel.d.ts +0 -74
  660. package/connectors/connect-yousign/node_modules/undici-types/dispatcher.d.ts +0 -276
  661. package/connectors/connect-yousign/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -22
  662. package/connectors/connect-yousign/node_modules/undici-types/errors.d.ts +0 -161
  663. package/connectors/connect-yousign/node_modules/undici-types/eventsource.d.ts +0 -66
  664. package/connectors/connect-yousign/node_modules/undici-types/fetch.d.ts +0 -211
  665. package/connectors/connect-yousign/node_modules/undici-types/formdata.d.ts +0 -108
  666. package/connectors/connect-yousign/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  667. package/connectors/connect-yousign/node_modules/undici-types/global-origin.d.ts +0 -7
  668. package/connectors/connect-yousign/node_modules/undici-types/h2c-client.d.ts +0 -73
  669. package/connectors/connect-yousign/node_modules/undici-types/handlers.d.ts +0 -15
  670. package/connectors/connect-yousign/node_modules/undici-types/header.d.ts +0 -160
  671. package/connectors/connect-yousign/node_modules/undici-types/index.d.ts +0 -88
  672. package/connectors/connect-yousign/node_modules/undici-types/interceptors.d.ts +0 -73
  673. package/connectors/connect-yousign/node_modules/undici-types/mock-agent.d.ts +0 -68
  674. package/connectors/connect-yousign/node_modules/undici-types/mock-call-history.d.ts +0 -111
  675. package/connectors/connect-yousign/node_modules/undici-types/mock-client.d.ts +0 -27
  676. package/connectors/connect-yousign/node_modules/undici-types/mock-errors.d.ts +0 -12
  677. package/connectors/connect-yousign/node_modules/undici-types/mock-interceptor.d.ts +0 -94
  678. package/connectors/connect-yousign/node_modules/undici-types/mock-pool.d.ts +0 -27
  679. package/connectors/connect-yousign/node_modules/undici-types/package.json +0 -55
  680. package/connectors/connect-yousign/node_modules/undici-types/patch.d.ts +0 -29
  681. package/connectors/connect-yousign/node_modules/undici-types/pool-stats.d.ts +0 -19
  682. package/connectors/connect-yousign/node_modules/undici-types/pool.d.ts +0 -41
  683. package/connectors/connect-yousign/node_modules/undici-types/proxy-agent.d.ts +0 -29
  684. package/connectors/connect-yousign/node_modules/undici-types/readable.d.ts +0 -68
  685. package/connectors/connect-yousign/node_modules/undici-types/retry-agent.d.ts +0 -8
  686. package/connectors/connect-yousign/node_modules/undici-types/retry-handler.d.ts +0 -125
  687. package/connectors/connect-yousign/node_modules/undici-types/round-robin-pool.d.ts +0 -41
  688. package/connectors/connect-yousign/node_modules/undici-types/snapshot-agent.d.ts +0 -109
  689. package/connectors/connect-yousign/node_modules/undici-types/util.d.ts +0 -18
  690. package/connectors/connect-yousign/node_modules/undici-types/utility.d.ts +0 -7
  691. package/connectors/connect-yousign/node_modules/undici-types/webidl.d.ts +0 -341
  692. package/connectors/connect-yousign/node_modules/undici-types/websocket.d.ts +0 -186
  693. package/dashboard/dist/assets/index-CSlS3oNV.css +0 -1
  694. package/dashboard/dist/assets/index-NCasN7x4.js +0 -284
  695. /package/dist/{server/server.test.d.ts → core/builtins.test.d.ts} +0 -0
package/bin/index.js CHANGED
@@ -1909,7 +1909,7 @@ var package_default;
1909
1909
  var init_package = __esm(() => {
1910
1910
  package_default = {
1911
1911
  name: "@hasna/connectors",
1912
- version: "1.3.24",
1912
+ version: "1.3.26",
1913
1913
  description: "Open source connector library - Install API connectors with a single command",
1914
1914
  type: "module",
1915
1915
  bin: {
@@ -2052,7 +2052,7 @@ var CONNECTOR_NAME_RE, OPERATION_NAME_RE;
2052
2052
  var init_connector = __esm(() => {
2053
2053
  init_errors();
2054
2054
  CONNECTOR_NAME_RE = /^[a-z0-9-]+$/;
2055
- OPERATION_NAME_RE = /^[a-z0-9:_-]+$/;
2055
+ OPERATION_NAME_RE = /^[A-Za-z0-9:._-]+$/;
2056
2056
  });
2057
2057
 
2058
2058
  // src/core/registry.ts
@@ -6913,6 +6913,733 @@ Commands:
6913
6913
  });
6914
6914
  });
6915
6915
 
6916
+ // src/core/connectors/gmail.ts
6917
+ import { existsSync as existsSync2, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
6918
+ import { homedir } from "os";
6919
+ import { basename, join as join2 } from "path";
6920
+ async function modifyMessage(profile, messageId, addLabelIds, removeLabelIds) {
6921
+ return requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}/modify`, {}, {
6922
+ method: "POST",
6923
+ body: {
6924
+ addLabelIds: addLabelIds ?? [],
6925
+ removeLabelIds: removeLabelIds ?? []
6926
+ }
6927
+ });
6928
+ }
6929
+ async function replyToMessage(profile, messageId, input) {
6930
+ const original = await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: "full" });
6931
+ const headers = headersToObject(original.payload?.headers ?? []);
6932
+ const subject = normalizeReplySubject(headers.Subject ?? headers.subject ?? "");
6933
+ const to = headers.From ?? headers.from ?? "";
6934
+ const messageIdHeader = headers["Message-ID"] ?? headers["Message-Id"] ?? headers["message-id"] ?? "";
6935
+ const references = [headers.References ?? headers.references, messageIdHeader].filter(Boolean).join(" ");
6936
+ const raw = buildRawEmail({
6937
+ to,
6938
+ cc: normalizeStringArray(input.cc),
6939
+ bcc: normalizeStringArray(input.bcc),
6940
+ subject,
6941
+ body: input.body,
6942
+ isHtml: Boolean(input.html ?? input.isHtml),
6943
+ inReplyTo: messageIdHeader,
6944
+ references
6945
+ });
6946
+ return requestJson(profile, "/users/me/messages/send", {}, {
6947
+ method: "POST",
6948
+ body: {
6949
+ raw: Buffer.from(raw).toString("base64url"),
6950
+ threadId: original.threadId
6951
+ }
6952
+ });
6953
+ }
6954
+ async function downloadAttachments(profile, input) {
6955
+ const messageId = getMessageId(input);
6956
+ const outputDir = input.dir ?? input.outputDir ?? join2(configDirs()[0], "attachments", messageId);
6957
+ mkdirSync(outputDir, { recursive: true });
6958
+ const attachments = input.attachmentId && input.filename ? [{
6959
+ attachmentId: input.attachmentId,
6960
+ filename: input.filename,
6961
+ mimeType: input.mimeType ?? "application/octet-stream",
6962
+ size: 0
6963
+ }] : collectAttachments((await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: "full" })).payload);
6964
+ const downloaded = [];
6965
+ for (const attachment of attachments) {
6966
+ const data = await requestJson(profile, `/users/me/messages/${encodeURIComponent(messageId)}/attachments/${encodeURIComponent(attachment.attachmentId)}`, {});
6967
+ const filename = safeFilename(attachment.filename);
6968
+ const path = join2(outputDir, filename);
6969
+ const buffer = Buffer.from(data.data, "base64url");
6970
+ writeFileSync(path, buffer);
6971
+ downloaded.push({
6972
+ filename,
6973
+ path,
6974
+ size: buffer.length,
6975
+ mimeType: attachment.mimeType
6976
+ });
6977
+ }
6978
+ return downloaded;
6979
+ }
6980
+ async function requestJson(profile, path, params, options = {}) {
6981
+ const token = await getValidAccessToken(profile);
6982
+ const url = new URL(`${GMAIL_API_BASE}${path}`);
6983
+ for (const [key, value] of Object.entries(params)) {
6984
+ if (value !== undefined && value !== null && value !== "")
6985
+ url.searchParams.append(key, String(value));
6986
+ }
6987
+ const response = await fetch(url, {
6988
+ method: options.method ?? "GET",
6989
+ headers: {
6990
+ Authorization: `Bearer ${token}`,
6991
+ Accept: "application/json",
6992
+ ...options.body ? { "Content-Type": "application/json" } : {}
6993
+ },
6994
+ body: options.body ? JSON.stringify(options.body) : undefined
6995
+ });
6996
+ const text = await response.text();
6997
+ const data = text ? JSON.parse(text) : {};
6998
+ if (!response.ok) {
6999
+ const error = data;
7000
+ throw new Error(`Gmail request failed (${response.status}): ${error.error?.message ?? response.statusText}`);
7001
+ }
7002
+ return data;
7003
+ }
7004
+ async function getValidAccessToken(profile) {
7005
+ if (process.env.GMAIL_ACCESS_TOKEN)
7006
+ return process.env.GMAIL_ACCESS_TOKEN;
7007
+ const tokens = loadTokens(profile);
7008
+ if (!tokens?.accessToken && !tokens?.refreshToken) {
7009
+ throw new Error(`Gmail profile "${profile}" is not authenticated. Run: connectors auth gmail`);
7010
+ }
7011
+ if (tokens.accessToken && (!tokens.expiresAt || Date.now() < tokens.expiresAt - REFRESH_BUFFER_MS))
7012
+ return tokens.accessToken;
7013
+ if (!tokens.refreshToken)
7014
+ return tokens.accessToken ?? "";
7015
+ return (await refreshAccessToken(profile, tokens)).accessToken ?? "";
7016
+ }
7017
+ async function refreshAccessToken(profile, currentTokens) {
7018
+ const credentials = loadCredentials(profile);
7019
+ if (!credentials.clientId || !credentials.clientSecret)
7020
+ throw new Error("Gmail OAuth credentials are not configured. Run: connectors auth gmail");
7021
+ if (!currentTokens.refreshToken)
7022
+ throw new Error(`Gmail profile "${profile}" has no refresh token. Run: connectors auth gmail`);
7023
+ const response = await fetch(TOKEN_URL, {
7024
+ method: "POST",
7025
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
7026
+ body: new URLSearchParams({
7027
+ client_id: credentials.clientId,
7028
+ client_secret: credentials.clientSecret,
7029
+ refresh_token: currentTokens.refreshToken,
7030
+ grant_type: "refresh_token"
7031
+ })
7032
+ });
7033
+ const data = await response.json().catch(() => ({}));
7034
+ if (!response.ok || !data.access_token)
7035
+ throw new Error(`Gmail token refresh failed: ${data.error_description || data.error || response.statusText}`);
7036
+ const tokens = {
7037
+ accessToken: data.access_token,
7038
+ refreshToken: currentTokens.refreshToken,
7039
+ expiresAt: Date.now() + (data.expires_in ?? 3600) * 1000,
7040
+ tokenType: data.token_type ?? currentTokens.tokenType,
7041
+ scope: data.scope ?? currentTokens.scope
7042
+ };
7043
+ saveTokens(profile, tokens);
7044
+ return tokens;
7045
+ }
7046
+ function listProfiles() {
7047
+ const profiles = new Set;
7048
+ for (const baseDir of configDirs()) {
7049
+ const profilesDir = join2(baseDir, "profiles");
7050
+ if (!existsSync2(profilesDir))
7051
+ continue;
7052
+ for (const entry of readdirSync(profilesDir, { withFileTypes: true })) {
7053
+ if (entry.isDirectory())
7054
+ profiles.add(entry.name);
7055
+ if (entry.isFile() && entry.name.endsWith(".json"))
7056
+ profiles.add(basename(entry.name, ".json"));
7057
+ }
7058
+ }
7059
+ return Array.from(profiles).sort((a, b) => a.localeCompare(b));
7060
+ }
7061
+ function loadCredentials(profile) {
7062
+ const envClientId = process.env.GMAIL_CLIENT_ID ?? process.env.GOOGLE_CLIENT_ID;
7063
+ const envClientSecret = process.env.GMAIL_CLIENT_SECRET ?? process.env.GOOGLE_CLIENT_SECRET;
7064
+ if (envClientId && envClientSecret)
7065
+ return { clientId: envClientId, clientSecret: envClientSecret };
7066
+ for (const baseDir of configDirs()) {
7067
+ const credentials = {
7068
+ ...readJson(join2(baseDir, "credentials.json")),
7069
+ ...readJson(join2(baseDir, "profiles", profile, "config.json"))
7070
+ };
7071
+ if (credentials.clientId || credentials.clientSecret)
7072
+ return credentials;
7073
+ }
7074
+ return {};
7075
+ }
7076
+ function loadTokens(profile) {
7077
+ for (const baseDir of configDirs()) {
7078
+ const fromProfile = readJson(join2(baseDir, "profiles", profile, "tokens.json"));
7079
+ if (fromProfile)
7080
+ return fromProfile;
7081
+ const flat = readJson(join2(baseDir, "profiles", `${profile}.json`));
7082
+ if (flat)
7083
+ return flat.tokens ?? (flat.accessToken || flat.refreshToken ? flat : null);
7084
+ }
7085
+ return null;
7086
+ }
7087
+ function saveTokens(profile, tokens) {
7088
+ const baseDir = configDirs().find((dir) => existsSync2(dir)) ?? configDirs()[0];
7089
+ const profileDir = join2(baseDir, "profiles", profile);
7090
+ mkdirSync(profileDir, { recursive: true });
7091
+ writeFileSync(join2(profileDir, "tokens.json"), JSON.stringify(tokens, null, 2), { mode: 384 });
7092
+ }
7093
+ function configDirs() {
7094
+ const explicit = process.env.HASNA_GMAIL_CONNECTOR_DIR ?? process.env.GMAIL_CONNECTOR_DIR;
7095
+ if (explicit)
7096
+ return [explicit];
7097
+ const baseDir = process.env.HASNA_CONNECTORS_DIR ?? join2(homedir(), ".hasna", "connectors");
7098
+ return [join2(baseDir, "connect-gmail"), join2(baseDir, "gmail")];
7099
+ }
7100
+ function readJson(path) {
7101
+ if (!existsSync2(path))
7102
+ return null;
7103
+ try {
7104
+ return JSON.parse(readFileSync(path, "utf8"));
7105
+ } catch {
7106
+ return null;
7107
+ }
7108
+ }
7109
+ function getMessageId(input) {
7110
+ const id = input.messageId ?? (input.args?.[0] != null ? String(input.args[0]) : undefined);
7111
+ if (!id)
7112
+ throw new Error("Gmail messageId is required");
7113
+ return id;
7114
+ }
7115
+ function headersToObject(headers) {
7116
+ const out = {};
7117
+ for (const header of headers)
7118
+ out[header.name] = header.value;
7119
+ return out;
7120
+ }
7121
+ function extractBody(message, preferHtml = false) {
7122
+ if (!message.payload)
7123
+ return "";
7124
+ const targetType = preferHtml ? "text/html" : "text/plain";
7125
+ const parts = [];
7126
+ collectTextParts(message.payload, parts);
7127
+ return parts.find((part) => part.mimeType === targetType)?.data ?? parts.find((part) => part.mimeType.startsWith("text/"))?.data ?? "";
7128
+ }
7129
+ function collectTextParts(part, results) {
7130
+ const mimeType = (part.mimeType ?? "").split(";")[0].trim().toLowerCase();
7131
+ if (part.body?.data && mimeType.startsWith("text/")) {
7132
+ results.push({ mimeType, data: Buffer.from(part.body.data, "base64url").toString("utf8") });
7133
+ }
7134
+ for (const child of part.parts ?? [])
7135
+ collectTextParts(child, results);
7136
+ }
7137
+ function collectAttachments(part, attachments = []) {
7138
+ if (!part)
7139
+ return attachments;
7140
+ if (part.body?.attachmentId && part.filename) {
7141
+ attachments.push({
7142
+ attachmentId: part.body.attachmentId,
7143
+ filename: part.filename,
7144
+ mimeType: part.mimeType ?? "application/octet-stream",
7145
+ size: part.body.size ?? 0,
7146
+ partId: part.partId
7147
+ });
7148
+ }
7149
+ for (const child of part.parts ?? [])
7150
+ collectAttachments(child, attachments);
7151
+ return attachments;
7152
+ }
7153
+ function normalizeStringArray(value) {
7154
+ if (!value)
7155
+ return [];
7156
+ return Array.isArray(value) ? value : value.split(",").map((item) => item.trim()).filter(Boolean);
7157
+ }
7158
+ function normalizeReplySubject(subject) {
7159
+ return subject.toLowerCase().startsWith("re:") ? subject : `Re: ${subject}`;
7160
+ }
7161
+ function buildRawEmail(input) {
7162
+ const headers = [
7163
+ `To: ${input.to}`,
7164
+ input.cc.length ? `Cc: ${input.cc.join(", ")}` : "",
7165
+ input.bcc.length ? `Bcc: ${input.bcc.join(", ")}` : "",
7166
+ `Subject: ${input.subject}`,
7167
+ input.inReplyTo ? `In-Reply-To: ${input.inReplyTo}` : "",
7168
+ input.references ? `References: ${input.references}` : "",
7169
+ "MIME-Version: 1.0",
7170
+ `Content-Type: ${input.isHtml ? "text/html" : "text/plain"}; charset=UTF-8`
7171
+ ].filter(Boolean);
7172
+ return `${headers.join(`\r
7173
+ `)}\r
7174
+ \r
7175
+ ${input.body}`;
7176
+ }
7177
+ function safeFilename(filename) {
7178
+ return basename(filename.replace(/[\u00A0\u2000-\u200B\u202F\u205F\u3000]/g, " ")).replace(/[\/\\]/g, "_");
7179
+ }
7180
+ var GMAIL_API_BASE = "https://gmail.googleapis.com/gmail/v1", TOKEN_URL = "https://oauth2.googleapis.com/token", REFRESH_BUFFER_MS, listMessagesSchema, messageIdSchema, readMessageSchema, attachmentListSchema, attachmentDownloadSchema, historyListSchema, replySchema, gmailConnector;
7181
+ var init_gmail = __esm(() => {
7182
+ init_zod();
7183
+ init_connector();
7184
+ REFRESH_BUFFER_MS = 5 * 60 * 1000;
7185
+ listMessagesSchema = exports_external.object({
7186
+ max: exports_external.coerce.number().int().positive().max(500).optional(),
7187
+ maxResults: exports_external.coerce.number().int().positive().max(500).optional(),
7188
+ pageToken: exports_external.string().optional(),
7189
+ query: exports_external.string().optional(),
7190
+ q: exports_external.string().optional(),
7191
+ label: exports_external.string().optional(),
7192
+ labelIds: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
7193
+ includeSpamTrash: exports_external.boolean().optional()
7194
+ });
7195
+ messageIdSchema = exports_external.object({
7196
+ args: exports_external.array(exports_external.union([exports_external.string(), exports_external.number(), exports_external.boolean()])).optional(),
7197
+ messageId: exports_external.string().optional()
7198
+ });
7199
+ readMessageSchema = messageIdSchema.extend({
7200
+ body: exports_external.boolean().optional(),
7201
+ html: exports_external.boolean().optional(),
7202
+ format: exports_external.enum(["full", "metadata", "minimal", "raw"]).optional()
7203
+ });
7204
+ attachmentListSchema = messageIdSchema;
7205
+ attachmentDownloadSchema = messageIdSchema.extend({
7206
+ attachmentId: exports_external.string().optional(),
7207
+ filename: exports_external.string().optional(),
7208
+ mimeType: exports_external.string().optional(),
7209
+ dir: exports_external.string().optional(),
7210
+ outputDir: exports_external.string().optional()
7211
+ });
7212
+ historyListSchema = exports_external.object({
7213
+ startHistoryId: exports_external.string(),
7214
+ historyTypes: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
7215
+ labelId: exports_external.string().optional(),
7216
+ maxResults: exports_external.coerce.number().int().positive().max(500).optional(),
7217
+ pageToken: exports_external.string().optional()
7218
+ });
7219
+ replySchema = messageIdSchema.extend({
7220
+ body: exports_external.string(),
7221
+ html: exports_external.boolean().optional(),
7222
+ isHtml: exports_external.boolean().optional(),
7223
+ cc: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
7224
+ bcc: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional()
7225
+ });
7226
+ gmailConnector = defineConnector({
7227
+ meta: {
7228
+ name: "gmail",
7229
+ displayName: "Gmail",
7230
+ description: "Profile-aware Gmail mailbox operations for sync, labels, attachments, history, and replies.",
7231
+ category: "communication",
7232
+ tags: ["google", "gmail", "email", "mailbox"]
7233
+ },
7234
+ auth: {
7235
+ type: "oauth2",
7236
+ supportsProfiles: true,
7237
+ fields: [
7238
+ { key: "clientId", env: "GMAIL_CLIENT_ID", label: "OAuth client ID" },
7239
+ { key: "clientSecret", env: "GMAIL_CLIENT_SECRET", label: "OAuth client secret", secret: true }
7240
+ ]
7241
+ },
7242
+ createContext: ({ profile }) => ({ profile: profile || "default" }),
7243
+ operations: {
7244
+ "profiles.list": {
7245
+ summary: "List configured Gmail profiles.",
7246
+ execute: () => ({ profiles: listProfiles() })
7247
+ },
7248
+ "profile.get": {
7249
+ summary: "Get the authenticated Gmail profile.",
7250
+ execute: async ({ context }) => requestJson(context.profile, "/users/me/profile", {})
7251
+ },
7252
+ "messages.list": {
7253
+ summary: "List Gmail messages.",
7254
+ inputSchema: listMessagesSchema,
7255
+ execute: async ({ context }, input) => {
7256
+ const labelIds = normalizeStringArray(input.labelIds ?? input.label);
7257
+ return requestJson(context.profile, "/users/me/messages", {
7258
+ maxResults: input.maxResults ?? input.max ?? 50,
7259
+ pageToken: input.pageToken,
7260
+ q: input.q ?? input.query,
7261
+ labelIds: labelIds.length > 0 ? labelIds.join(",") : undefined,
7262
+ includeSpamTrash: input.includeSpamTrash
7263
+ });
7264
+ }
7265
+ },
7266
+ "messages.read": {
7267
+ summary: "Read a Gmail message with optional extracted body.",
7268
+ inputSchema: readMessageSchema,
7269
+ execute: async ({ context }, input) => {
7270
+ const messageId = getMessageId(input);
7271
+ const message = await requestJson(context.profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: input.format ?? "full" });
7272
+ const headers = headersToObject(message.payload?.headers ?? []);
7273
+ return {
7274
+ ...message,
7275
+ from: headers.From ?? headers.from ?? "",
7276
+ to: headers.To ?? headers.to ?? "",
7277
+ cc: headers.Cc ?? headers.cc ?? "",
7278
+ subject: headers.Subject ?? headers.subject ?? "",
7279
+ date: headers.Date ?? headers.date ?? "",
7280
+ body: input.body ? extractBody(message, Boolean(input.html)) : undefined,
7281
+ size: message.sizeEstimate
7282
+ };
7283
+ }
7284
+ },
7285
+ "messages.getRaw": {
7286
+ summary: "Read raw base64url Gmail message content.",
7287
+ inputSchema: messageIdSchema,
7288
+ execute: async ({ context }, input) => {
7289
+ const messageId = getMessageId(input);
7290
+ return requestJson(context.profile, `/users/me/messages/${encodeURIComponent(messageId)}`, { format: "raw" });
7291
+ }
7292
+ },
7293
+ "messages.mark-read": {
7294
+ summary: "Mark a message as read.",
7295
+ inputSchema: messageIdSchema,
7296
+ execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), undefined, ["UNREAD"])
7297
+ },
7298
+ "messages.mark-unread": {
7299
+ summary: "Mark a message as unread.",
7300
+ inputSchema: messageIdSchema,
7301
+ execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), ["UNREAD"], undefined)
7302
+ },
7303
+ "messages.archive": {
7304
+ summary: "Archive a message by removing the INBOX label.",
7305
+ inputSchema: messageIdSchema,
7306
+ execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), undefined, ["INBOX"])
7307
+ },
7308
+ "messages.star": {
7309
+ summary: "Star a message.",
7310
+ inputSchema: messageIdSchema,
7311
+ execute: async ({ context }, input) => modifyMessage(context.profile, getMessageId(input), ["STARRED"], undefined)
7312
+ },
7313
+ "messages.reply": {
7314
+ summary: "Reply to a Gmail message in the same thread.",
7315
+ inputSchema: replySchema,
7316
+ execute: async ({ context }, input) => replyToMessage(context.profile, getMessageId(input), input)
7317
+ },
7318
+ "attachments.list": {
7319
+ summary: "List Gmail message attachments.",
7320
+ inputSchema: attachmentListSchema,
7321
+ execute: async ({ context }, input) => {
7322
+ const message = await requestJson(context.profile, `/users/me/messages/${encodeURIComponent(getMessageId(input))}`, { format: "full" });
7323
+ return collectAttachments(message.payload);
7324
+ }
7325
+ },
7326
+ "attachments.download": {
7327
+ summary: "Download one or all Gmail message attachments to disk.",
7328
+ inputSchema: attachmentDownloadSchema,
7329
+ execute: async ({ context }, input) => downloadAttachments(context.profile, input)
7330
+ },
7331
+ "labels.list": {
7332
+ summary: "List Gmail labels.",
7333
+ execute: async ({ context }) => requestJson(context.profile, "/users/me/labels", {})
7334
+ },
7335
+ "history.list": {
7336
+ summary: "List Gmail mailbox history from a history id.",
7337
+ inputSchema: historyListSchema,
7338
+ execute: async ({ context }, input) => requestJson(context.profile, "/users/me/history", {
7339
+ startHistoryId: input.startHistoryId,
7340
+ historyTypes: normalizeStringArray(input.historyTypes).join(",") || undefined,
7341
+ labelId: input.labelId,
7342
+ maxResults: input.maxResults,
7343
+ pageToken: input.pageToken
7344
+ })
7345
+ }
7346
+ }
7347
+ });
7348
+ });
7349
+
7350
+ // src/core/connectors/googledrive.ts
7351
+ import { existsSync as existsSync3, mkdirSync as mkdirSync2, readFileSync as readFileSync2, readdirSync as readdirSync2, writeFileSync as writeFileSync2 } from "fs";
7352
+ import { homedir as homedir2 } from "os";
7353
+ import { basename as basename2, join as join3 } from "path";
7354
+ async function requestJson2(profile, path, params) {
7355
+ const response = await request(profile, path, params);
7356
+ const text = await response.text();
7357
+ return text ? JSON.parse(text) : {};
7358
+ }
7359
+ async function requestBinary(profile, path, params) {
7360
+ return (await request(profile, path, params)).arrayBuffer();
7361
+ }
7362
+ async function request(profile, path, params) {
7363
+ const token = await getValidAccessToken2(profile);
7364
+ const url = new URL(`${DRIVE_API_BASE}${path}`);
7365
+ for (const [key, value] of Object.entries(params)) {
7366
+ if (value !== undefined && value !== null && value !== "")
7367
+ url.searchParams.set(key, String(value));
7368
+ }
7369
+ const response = await fetch(url, { headers: { Authorization: `Bearer ${token}`, Accept: "application/json" } });
7370
+ if (!response.ok) {
7371
+ const body = await response.text().catch(() => "");
7372
+ throw new Error(`Google Drive request failed (${response.status}): ${extractGoogleError(body) || response.statusText}`);
7373
+ }
7374
+ return response;
7375
+ }
7376
+ async function getValidAccessToken2(profile) {
7377
+ if (process.env.GOOGLE_ACCESS_TOKEN)
7378
+ return process.env.GOOGLE_ACCESS_TOKEN;
7379
+ const tokens = loadTokens2(profile);
7380
+ if (!tokens?.accessToken && !tokens?.refreshToken) {
7381
+ throw new Error(`Google Drive profile "${profile}" is not authenticated. Run: connectors auth googledrive`);
7382
+ }
7383
+ if (tokens.accessToken && (!tokens.expiresAt || Date.now() < tokens.expiresAt - REFRESH_BUFFER_MS2))
7384
+ return tokens.accessToken;
7385
+ if (!tokens.refreshToken)
7386
+ return tokens.accessToken ?? "";
7387
+ return (await refreshAccessToken2(profile, tokens)).accessToken ?? "";
7388
+ }
7389
+ async function refreshAccessToken2(profile, currentTokens) {
7390
+ const credentials = loadCredentials2(profile);
7391
+ if (!credentials.clientId || !credentials.clientSecret)
7392
+ throw new Error("Google Drive OAuth credentials are not configured. Run: connectors auth googledrive");
7393
+ if (!currentTokens.refreshToken)
7394
+ throw new Error(`Google Drive profile "${profile}" has no refresh token. Run: connectors auth googledrive`);
7395
+ const response = await fetch(TOKEN_URL2, {
7396
+ method: "POST",
7397
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
7398
+ body: new URLSearchParams({
7399
+ client_id: credentials.clientId,
7400
+ client_secret: credentials.clientSecret,
7401
+ refresh_token: currentTokens.refreshToken,
7402
+ grant_type: "refresh_token"
7403
+ })
7404
+ });
7405
+ const data = await response.json().catch(() => ({}));
7406
+ if (!response.ok || !data.access_token)
7407
+ throw new Error(`Google Drive token refresh failed: ${data.error_description || data.error || response.statusText}`);
7408
+ const tokens = {
7409
+ accessToken: data.access_token,
7410
+ refreshToken: currentTokens.refreshToken,
7411
+ expiresAt: Date.now() + (data.expires_in ?? 3600) * 1000,
7412
+ tokenType: data.token_type ?? currentTokens.tokenType,
7413
+ scope: data.scope ?? currentTokens.scope
7414
+ };
7415
+ saveTokens2(profile, tokens);
7416
+ return tokens;
7417
+ }
7418
+ function listProfiles2() {
7419
+ const profiles = new Set;
7420
+ for (const baseDir of configDirs2()) {
7421
+ const profilesDir = join3(baseDir, "profiles");
7422
+ if (!existsSync3(profilesDir))
7423
+ continue;
7424
+ for (const entry of readdirSync2(profilesDir, { withFileTypes: true })) {
7425
+ if (entry.isDirectory())
7426
+ profiles.add(entry.name);
7427
+ if (entry.isFile() && entry.name.endsWith(".json"))
7428
+ profiles.add(basename2(entry.name, ".json"));
7429
+ }
7430
+ }
7431
+ return Array.from(profiles).sort((a, b) => a.localeCompare(b));
7432
+ }
7433
+ function loadCredentials2(profile) {
7434
+ const envClientId = process.env.GOOGLE_CLIENT_ID;
7435
+ const envClientSecret = process.env.GOOGLE_CLIENT_SECRET;
7436
+ if (envClientId && envClientSecret)
7437
+ return { clientId: envClientId, clientSecret: envClientSecret };
7438
+ for (const baseDir of configDirs2()) {
7439
+ const credentials = {
7440
+ ...readJson2(join3(baseDir, "credentials.json")),
7441
+ ...readJson2(join3(baseDir, "profiles", profile, "config.json"))
7442
+ };
7443
+ if (credentials.clientId || credentials.clientSecret)
7444
+ return credentials;
7445
+ }
7446
+ return {};
7447
+ }
7448
+ function loadTokens2(profile) {
7449
+ for (const baseDir of configDirs2()) {
7450
+ const fromProfile = readJson2(join3(baseDir, "profiles", profile, "tokens.json"));
7451
+ if (fromProfile)
7452
+ return fromProfile;
7453
+ const flat = readJson2(join3(baseDir, "profiles", `${profile}.json`));
7454
+ if (flat)
7455
+ return flat.tokens ?? (flat.accessToken || flat.refreshToken ? flat : null);
7456
+ }
7457
+ return null;
7458
+ }
7459
+ function saveTokens2(profile, tokens) {
7460
+ const baseDir = configDirs2().find((dir) => existsSync3(dir)) ?? configDirs2()[0];
7461
+ const profileDir = join3(baseDir, "profiles", profile);
7462
+ mkdirSync2(profileDir, { recursive: true });
7463
+ writeFileSync2(join3(profileDir, "tokens.json"), JSON.stringify(tokens, null, 2), { mode: 384 });
7464
+ }
7465
+ function configDirs2() {
7466
+ const explicit = process.env.HASNA_GOOGLE_DRIVE_CONNECTOR_DIR ?? process.env.GOOGLE_DRIVE_CONNECTOR_DIR;
7467
+ if (explicit)
7468
+ return [explicit];
7469
+ const baseDir = process.env.HASNA_CONNECTORS_DIR ?? join3(homedir2(), ".hasna", "connectors");
7470
+ return [join3(baseDir, "connect-googledrive"), join3(baseDir, "googledrive")];
7471
+ }
7472
+ function readJson2(path) {
7473
+ if (!existsSync3(path))
7474
+ return null;
7475
+ try {
7476
+ return JSON.parse(readFileSync2(path, "utf8"));
7477
+ } catch {
7478
+ return null;
7479
+ }
7480
+ }
7481
+ function defaultExportMimeType(googleMimeType) {
7482
+ if (googleMimeType.endsWith(".document"))
7483
+ return DEFAULT_EXPORT_FORMATS.document;
7484
+ if (googleMimeType.endsWith(".spreadsheet"))
7485
+ return DEFAULT_EXPORT_FORMATS.spreadsheet;
7486
+ if (googleMimeType.endsWith(".presentation"))
7487
+ return DEFAULT_EXPORT_FORMATS.presentation;
7488
+ if (googleMimeType.endsWith(".drawing"))
7489
+ return DEFAULT_EXPORT_FORMATS.drawing;
7490
+ throw new Error(`Cannot export Google Workspace file type: ${googleMimeType}`);
7491
+ }
7492
+ function extensionForMimeType(mimeType) {
7493
+ return EXPORT_EXTENSIONS[mimeType] ?? "";
7494
+ }
7495
+ function extractGoogleError(body) {
7496
+ if (!body)
7497
+ return "";
7498
+ try {
7499
+ const parsed = JSON.parse(body);
7500
+ return parsed.error?.message ?? body;
7501
+ } catch {
7502
+ return body;
7503
+ }
7504
+ }
7505
+ var DRIVE_API_BASE = "https://www.googleapis.com/drive/v3", TOKEN_URL2 = "https://oauth2.googleapis.com/token", REFRESH_BUFFER_MS2, DEFAULT_FILE_FIELDS, DEFAULT_EXPORT_FORMATS, EXPORT_EXTENSIONS, listFilesSchema, listDrivesSchema, fileIdSchema, downloadSchema, googleDriveConnector;
7506
+ var init_googledrive = __esm(() => {
7507
+ init_zod();
7508
+ init_connector();
7509
+ REFRESH_BUFFER_MS2 = 5 * 60 * 1000;
7510
+ DEFAULT_FILE_FIELDS = [
7511
+ "id",
7512
+ "name",
7513
+ "mimeType",
7514
+ "parents",
7515
+ "version",
7516
+ "md5Checksum",
7517
+ "size",
7518
+ "modifiedTime",
7519
+ "createdTime",
7520
+ "trashed",
7521
+ "webViewLink",
7522
+ "webContentLink"
7523
+ ].join(",");
7524
+ DEFAULT_EXPORT_FORMATS = {
7525
+ document: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
7526
+ spreadsheet: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
7527
+ presentation: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
7528
+ drawing: "image/png"
7529
+ };
7530
+ EXPORT_EXTENSIONS = {
7531
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ".docx",
7532
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ".xlsx",
7533
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation": ".pptx",
7534
+ "application/pdf": ".pdf",
7535
+ "text/plain": ".txt",
7536
+ "text/csv": ".csv",
7537
+ "image/png": ".png",
7538
+ "image/jpeg": ".jpg",
7539
+ "image/svg+xml": ".svg"
7540
+ };
7541
+ listFilesSchema = exports_external.object({
7542
+ pageSize: exports_external.coerce.number().int().positive().max(1000).optional(),
7543
+ pageToken: exports_external.string().optional(),
7544
+ q: exports_external.string().optional(),
7545
+ fields: exports_external.string().optional(),
7546
+ orderBy: exports_external.string().optional(),
7547
+ corpora: exports_external.enum(["user", "drive", "allDrives"]).optional(),
7548
+ driveId: exports_external.string().optional(),
7549
+ supportsAllDrives: exports_external.boolean().optional(),
7550
+ includeItemsFromAllDrives: exports_external.boolean().optional()
7551
+ });
7552
+ listDrivesSchema = exports_external.object({
7553
+ pageSize: exports_external.coerce.number().int().positive().max(100).optional(),
7554
+ pageToken: exports_external.string().optional(),
7555
+ q: exports_external.string().optional()
7556
+ });
7557
+ fileIdSchema = exports_external.object({
7558
+ fileId: exports_external.string(),
7559
+ fields: exports_external.string().optional()
7560
+ });
7561
+ downloadSchema = exports_external.object({
7562
+ fileId: exports_external.string(),
7563
+ file: exports_external.object({
7564
+ id: exports_external.string(),
7565
+ name: exports_external.string(),
7566
+ mimeType: exports_external.string()
7567
+ }).optional(),
7568
+ exportMimeType: exports_external.string().optional()
7569
+ });
7570
+ googleDriveConnector = defineConnector({
7571
+ meta: {
7572
+ name: "googledrive",
7573
+ displayName: "Google Drive",
7574
+ description: "Profile-aware Google Drive discovery and file download operations.",
7575
+ category: "storage",
7576
+ tags: ["google", "drive", "files", "storage"]
7577
+ },
7578
+ auth: {
7579
+ type: "oauth2",
7580
+ supportsProfiles: true,
7581
+ fields: [
7582
+ { key: "clientId", env: "GOOGLE_CLIENT_ID", label: "OAuth client ID" },
7583
+ { key: "clientSecret", env: "GOOGLE_CLIENT_SECRET", label: "OAuth client secret", secret: true }
7584
+ ]
7585
+ },
7586
+ createContext: ({ profile }) => ({ profile: profile || "default" }),
7587
+ operations: {
7588
+ "profiles.list": {
7589
+ summary: "List configured Google Drive profiles.",
7590
+ execute: () => ({ profiles: listProfiles2() })
7591
+ },
7592
+ "files.list": {
7593
+ summary: "List Google Drive files.",
7594
+ inputSchema: listFilesSchema,
7595
+ execute: async ({ context }, input) => requestJson2(context.profile, "/files", {
7596
+ pageSize: input.pageSize ?? 1000,
7597
+ pageToken: input.pageToken,
7598
+ q: input.q,
7599
+ fields: input.fields ?? `nextPageToken,files(${DEFAULT_FILE_FIELDS})`,
7600
+ orderBy: input.orderBy ?? "modifiedTime desc",
7601
+ corpora: input.corpora,
7602
+ driveId: input.driveId,
7603
+ supportsAllDrives: input.supportsAllDrives ?? true,
7604
+ includeItemsFromAllDrives: input.includeItemsFromAllDrives ?? false
7605
+ })
7606
+ },
7607
+ "files.get": {
7608
+ summary: "Get Google Drive file metadata.",
7609
+ inputSchema: fileIdSchema,
7610
+ execute: async ({ context }, input) => requestJson2(context.profile, `/files/${encodeURIComponent(input.fileId)}`, {
7611
+ fields: input.fields ?? DEFAULT_FILE_FIELDS,
7612
+ supportsAllDrives: true
7613
+ })
7614
+ },
7615
+ "files.download": {
7616
+ summary: "Download or export a Google Drive file as base64 content.",
7617
+ inputSchema: downloadSchema,
7618
+ execute: async ({ context }, input) => {
7619
+ const file = input.file ?? await requestJson2(context.profile, `/files/${encodeURIComponent(input.fileId)}`, { fields: DEFAULT_FILE_FIELDS, supportsAllDrives: true });
7620
+ const exportMimeType = file.mimeType.startsWith("application/vnd.google-apps.") ? input.exportMimeType ?? defaultExportMimeType(file.mimeType) : undefined;
7621
+ 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 });
7622
+ const mimeType = exportMimeType ?? file.mimeType ?? "application/octet-stream";
7623
+ return {
7624
+ dataBase64: Buffer.from(data).toString("base64"),
7625
+ filename: exportMimeType ? `${file.name}${extensionForMimeType(exportMimeType)}` : file.name,
7626
+ mimeType
7627
+ };
7628
+ }
7629
+ },
7630
+ "drives.list": {
7631
+ summary: "List Google shared drives.",
7632
+ inputSchema: listDrivesSchema,
7633
+ execute: async ({ context }, input) => requestJson2(context.profile, "/drives", {
7634
+ pageSize: input.pageSize ?? 100,
7635
+ pageToken: input.pageToken,
7636
+ q: input.q
7637
+ })
7638
+ }
7639
+ }
7640
+ });
7641
+ });
7642
+
6916
7643
  // node_modules/@hasna/cloud/dist/index.js
6917
7644
  var exports_dist = {};
6918
7645
  __export(exports_dist, {
@@ -6986,27 +7713,27 @@ __export(exports_dist, {
6986
7713
  import { createRequire } from "module";
6987
7714
  import { Database } from "bun:sqlite";
6988
7715
  import {
6989
- existsSync as existsSync2,
6990
- mkdirSync,
6991
- readdirSync,
7716
+ existsSync as existsSync4,
7717
+ mkdirSync as mkdirSync3,
7718
+ readdirSync as readdirSync3,
6992
7719
  copyFileSync
6993
7720
  } from "fs";
6994
- import { homedir } from "os";
6995
- import { join as join2, relative } from "path";
6996
- import { existsSync as existsSync22, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "fs";
6997
- import { homedir as homedir2 } from "os";
6998
- import { join as join22 } from "path";
6999
- import { readdirSync as readdirSync2, existsSync as existsSync3 } from "fs";
7000
- import { join as join3 } from "path";
7001
7721
  import { homedir as homedir3 } from "os";
7722
+ import { join as join4, relative } from "path";
7723
+ import { existsSync as existsSync22, mkdirSync as mkdirSync22, readFileSync as readFileSync3, writeFileSync as writeFileSync3 } from "fs";
7724
+ import { homedir as homedir22 } from "os";
7725
+ import { join as join22 } from "path";
7726
+ import { readdirSync as readdirSync22, existsSync as existsSync32 } from "fs";
7727
+ import { join as join32 } from "path";
7728
+ import { homedir as homedir32 } from "os";
7002
7729
  import { hostname } from "os";
7003
- import { existsSync as existsSync4, readFileSync as readFileSync2 } from "fs";
7730
+ import { existsSync as existsSync42, readFileSync as readFileSync22 } from "fs";
7004
7731
  import { homedir as homedir4 } from "os";
7005
- import { join as join4 } from "path";
7006
- import { existsSync as existsSync5, readdirSync as readdirSync3 } from "fs";
7732
+ import { join as join42 } from "path";
7733
+ import { existsSync as existsSync5, readdirSync as readdirSync32 } from "fs";
7007
7734
  import { join as join5 } from "path";
7008
7735
  import { join as join6, dirname as dirname2 } from "path";
7009
- import { existsSync as existsSync6, writeFileSync as writeFileSync2, unlinkSync, mkdirSync as mkdirSync3 } from "fs";
7736
+ import { existsSync as existsSync6, writeFileSync as writeFileSync22, unlinkSync, mkdirSync as mkdirSync32 } from "fs";
7010
7737
  import { homedir as homedir5, platform } from "os";
7011
7738
  function __accessProp2(key) {
7012
7739
  return this[key];
@@ -7889,33 +8616,33 @@ function custom2(check, _params = {}, fatal) {
7889
8616
  return ZodAny2.create();
7890
8617
  }
7891
8618
  function getDataDir(serviceName) {
7892
- const dir = join2(HASNA_DIR, serviceName);
7893
- mkdirSync(dir, { recursive: true });
8619
+ const dir = join4(HASNA_DIR, serviceName);
8620
+ mkdirSync3(dir, { recursive: true });
7894
8621
  return dir;
7895
8622
  }
7896
8623
  function getDbPath(serviceName) {
7897
8624
  const dir = getDataDir(serviceName);
7898
- return join2(dir, `${serviceName}.db`);
8625
+ return join4(dir, `${serviceName}.db`);
7899
8626
  }
7900
8627
  function migrateDotfile(serviceName) {
7901
- const legacyDir = join2(homedir(), `.${serviceName}`);
7902
- const newDir = join2(HASNA_DIR, serviceName);
7903
- if (!existsSync2(legacyDir))
8628
+ const legacyDir = join4(homedir3(), `.${serviceName}`);
8629
+ const newDir = join4(HASNA_DIR, serviceName);
8630
+ if (!existsSync4(legacyDir))
7904
8631
  return [];
7905
- if (existsSync2(newDir))
8632
+ if (existsSync4(newDir))
7906
8633
  return [];
7907
- mkdirSync(newDir, { recursive: true });
8634
+ mkdirSync3(newDir, { recursive: true });
7908
8635
  const migrated = [];
7909
8636
  copyDirRecursive(legacyDir, newDir, legacyDir, migrated);
7910
8637
  return migrated;
7911
8638
  }
7912
8639
  function copyDirRecursive(src, dest, root, migrated) {
7913
- const entries = readdirSync(src, { withFileTypes: true });
8640
+ const entries = readdirSync3(src, { withFileTypes: true });
7914
8641
  for (const entry of entries) {
7915
- const srcPath = join2(src, entry.name);
7916
- const destPath = join2(dest, entry.name);
8642
+ const srcPath = join4(src, entry.name);
8643
+ const destPath = join4(dest, entry.name);
7917
8644
  if (entry.isDirectory()) {
7918
- mkdirSync(destPath, { recursive: true });
8645
+ mkdirSync3(destPath, { recursive: true });
7919
8646
  copyDirRecursive(srcPath, destPath, root, migrated);
7920
8647
  } else {
7921
8648
  copyFileSync(srcPath, destPath);
@@ -7924,10 +8651,10 @@ function copyDirRecursive(src, dest, root, migrated) {
7924
8651
  }
7925
8652
  }
7926
8653
  function hasLegacyDotfile(serviceName) {
7927
- return existsSync2(join2(homedir(), `.${serviceName}`));
8654
+ return existsSync4(join4(homedir3(), `.${serviceName}`));
7928
8655
  }
7929
8656
  function getHasnaDir() {
7930
- mkdirSync(HASNA_DIR, { recursive: true });
8657
+ mkdirSync3(HASNA_DIR, { recursive: true });
7931
8658
  return HASNA_DIR;
7932
8659
  }
7933
8660
  function getConfigDir() {
@@ -7941,15 +8668,15 @@ function getCloudConfig() {
7941
8668
  return CloudConfigSchema.parse({});
7942
8669
  }
7943
8670
  try {
7944
- const raw = readFileSync(CONFIG_PATH, "utf-8");
8671
+ const raw = readFileSync3(CONFIG_PATH, "utf-8");
7945
8672
  return CloudConfigSchema.parse(JSON.parse(raw));
7946
8673
  } catch {
7947
8674
  return CloudConfigSchema.parse({});
7948
8675
  }
7949
8676
  }
7950
8677
  function saveCloudConfig(config) {
7951
- mkdirSync2(CONFIG_DIR, { recursive: true });
7952
- writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + `
8678
+ mkdirSync22(CONFIG_DIR, { recursive: true });
8679
+ writeFileSync3(CONFIG_PATH, JSON.stringify(config, null, 2) + `
7953
8680
  `, "utf-8");
7954
8681
  }
7955
8682
  function getConnectionString(dbName) {
@@ -7979,11 +8706,11 @@ function isSyncExcludedTable(table) {
7979
8706
  return SYNC_EXCLUDED_TABLE_PATTERNS.some((p) => p.test(table));
7980
8707
  }
7981
8708
  function discoverServices() {
7982
- const dataDir = join3(homedir3(), ".hasna");
7983
- if (!existsSync3(dataDir))
8709
+ const dataDir = join32(homedir32(), ".hasna");
8710
+ if (!existsSync32(dataDir))
7984
8711
  return [];
7985
8712
  try {
7986
- const entries = readdirSync2(dataDir, { withFileTypes: true });
8713
+ const entries = readdirSync22(dataDir, { withFileTypes: true });
7987
8714
  return entries.filter((e) => {
7988
8715
  if (!e.isDirectory())
7989
8716
  return false;
@@ -8001,24 +8728,24 @@ function discoverSyncableServices() {
8001
8728
  return local.filter((s) => pgSet.has(s));
8002
8729
  }
8003
8730
  function getServiceDbPath(service) {
8004
- const dataDir = join3(homedir3(), ".hasna", service);
8005
- if (!existsSync3(dataDir))
8731
+ const dataDir = join32(homedir32(), ".hasna", service);
8732
+ if (!existsSync32(dataDir))
8006
8733
  return null;
8007
8734
  const candidates = [
8008
- join3(dataDir, `${service}.db`),
8009
- join3(dataDir, "data.db"),
8010
- join3(dataDir, "database.db")
8735
+ join32(dataDir, `${service}.db`),
8736
+ join32(dataDir, "data.db"),
8737
+ join32(dataDir, "database.db")
8011
8738
  ];
8012
8739
  try {
8013
- const files = readdirSync2(dataDir);
8740
+ const files = readdirSync22(dataDir);
8014
8741
  for (const f of files) {
8015
8742
  if (f.endsWith(".db") && !f.endsWith("-wal") && !f.endsWith("-shm")) {
8016
- candidates.push(join3(dataDir, f));
8743
+ candidates.push(join32(dataDir, f));
8017
8744
  }
8018
8745
  }
8019
8746
  } catch {}
8020
8747
  for (const p of candidates) {
8021
- if (existsSync3(p))
8748
+ if (existsSync32(p))
8022
8749
  return p;
8023
8750
  }
8024
8751
  return null;
@@ -8325,9 +9052,9 @@ async function syncTransfer(source, target, options, _direction) {
8325
9052
  const batch = rows.slice(offset, offset + batchSize);
8326
9053
  try {
8327
9054
  if (isAsyncAdapter(target)) {
8328
- await batchUpsertPg(target, table, columns, updateCols, pkColumns, batch, columns.includes(conflictColumn) ? conflictColumn : undefined);
9055
+ await batchUpsertPg(target, table, columns, updateCols, pkColumns, batch);
8329
9056
  } else {
8330
- batchUpsertSqlite(target, table, columns, updateCols, pkColumns, batch, columns.includes(conflictColumn) ? conflictColumn : undefined);
9057
+ batchUpsertSqlite(target, table, columns, updateCols, pkColumns, batch);
8331
9058
  }
8332
9059
  result.rowsWritten += batch.length;
8333
9060
  } catch (err) {
@@ -8374,7 +9101,7 @@ async function syncTransfer(source, target, options, _direction) {
8374
9101
  }
8375
9102
  return results;
8376
9103
  }
8377
- async function batchUpsertPg(target, table, columns, updateCols, primaryKeys, batch, conflictColumn) {
9104
+ async function batchUpsertPg(target, table, columns, updateCols, primaryKeys, batch) {
8378
9105
  if (batch.length === 0)
8379
9106
  return;
8380
9107
  const colList = columns.map((c) => `"${c}"`).join(", ");
@@ -8384,22 +9111,20 @@ async function batchUpsertPg(target, table, columns, updateCols, primaryKeys, ba
8384
9111
  }).join(", ");
8385
9112
  const pkList = primaryKeys.map((c) => `"${c}"`).join(", ");
8386
9113
  const setClause = updateCols.length > 0 ? updateCols.map((c) => `"${c}" = EXCLUDED."${c}"`).join(", ") : `"${primaryKeys[0]}" = EXCLUDED."${primaryKeys[0]}"`;
8387
- const whereClause = conflictColumn && updateCols.includes(conflictColumn) ? ` WHERE "${table}"."${conflictColumn}" IS NULL OR EXCLUDED."${conflictColumn}" >= "${table}"."${conflictColumn}"` : "";
8388
9114
  const sql = `INSERT INTO "${table}" (${colList}) VALUES ${valuePlaceholders}
8389
- ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}${whereClause}`;
9115
+ ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}`;
8390
9116
  const params = batch.flatMap((row) => columns.map((c) => row[c] ?? null));
8391
9117
  await target.run(sql, ...params);
8392
9118
  }
8393
- function batchUpsertSqlite(target, table, columns, updateCols, primaryKeys, batch, conflictColumn) {
9119
+ function batchUpsertSqlite(target, table, columns, updateCols, primaryKeys, batch) {
8394
9120
  if (batch.length === 0)
8395
9121
  return;
8396
9122
  const colList = columns.map((c) => `"${c}"`).join(", ");
8397
9123
  const valuePlaceholders = batch.map(() => `(${columns.map(() => "?").join(", ")})`).join(", ");
8398
9124
  const pkList = primaryKeys.map((c) => `"${c}"`).join(", ");
8399
9125
  const setClause = updateCols.length > 0 ? updateCols.map((c) => `"${c}" = EXCLUDED."${c}"`).join(", ") : `"${primaryKeys[0]}" = EXCLUDED."${primaryKeys[0]}"`;
8400
- const whereClause = conflictColumn && updateCols.includes(conflictColumn) ? ` WHERE "${table}"."${conflictColumn}" IS NULL OR EXCLUDED."${conflictColumn}" >= "${table}"."${conflictColumn}"` : "";
8401
9126
  const sql = `INSERT INTO "${table}" (${colList}) VALUES ${valuePlaceholders}
8402
- ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}${whereClause}`;
9127
+ ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}`;
8403
9128
  const params = batch.flatMap((row) => columns.map((c) => coerceForSqlite(row[c])));
8404
9129
  target.run(sql, ...params);
8405
9130
  }
@@ -8939,10 +9664,10 @@ function resetAllSyncMeta(db) {
8939
9664
  }
8940
9665
  function getAutoSyncConfig() {
8941
9666
  try {
8942
- if (!existsSync4(AUTO_SYNC_CONFIG_PATH)) {
9667
+ if (!existsSync42(AUTO_SYNC_CONFIG_PATH)) {
8943
9668
  return { ...DEFAULT_AUTO_SYNC_CONFIG };
8944
9669
  }
8945
- const raw = JSON.parse(readFileSync2(AUTO_SYNC_CONFIG_PATH, "utf-8"));
9670
+ const raw = JSON.parse(readFileSync22(AUTO_SYNC_CONFIG_PATH, "utf-8"));
8946
9671
  return {
8947
9672
  auto_sync_on_start: typeof raw.auto_sync_on_start === "boolean" ? raw.auto_sync_on_start : DEFAULT_AUTO_SYNC_CONFIG.auto_sync_on_start,
8948
9673
  auto_sync_on_stop: typeof raw.auto_sync_on_stop === "boolean" ? raw.auto_sync_on_stop : DEFAULT_AUTO_SYNC_CONFIG.auto_sync_on_stop
@@ -9057,7 +9782,7 @@ function discoverSyncableServices2() {
9057
9782
  const hasnaDir = getHasnaDir();
9058
9783
  const services = [];
9059
9784
  try {
9060
- const entries = readdirSync3(hasnaDir, { withFileTypes: true });
9785
+ const entries = readdirSync32(hasnaDir, { withFileTypes: true });
9061
9786
  for (const entry of entries) {
9062
9787
  if (!entry.isDirectory())
9063
9788
  continue;
@@ -9227,11 +9952,11 @@ function createLaunchdPlist(intervalMinutes) {
9227
9952
  async function registerLaunchd(intervalMinutes) {
9228
9953
  const plistPath = getLaunchdPlistPath();
9229
9954
  const plistDir = dirname2(plistPath);
9230
- mkdirSync3(plistDir, { recursive: true });
9955
+ mkdirSync32(plistDir, { recursive: true });
9231
9956
  try {
9232
9957
  await Bun.spawn(["launchctl", "unload", plistPath]).exited;
9233
9958
  } catch {}
9234
- writeFileSync2(plistPath, createLaunchdPlist(intervalMinutes));
9959
+ writeFileSync22(plistPath, createLaunchdPlist(intervalMinutes));
9235
9960
  await Bun.spawn(["launchctl", "load", plistPath]).exited;
9236
9961
  }
9237
9962
  async function removeLaunchd() {
@@ -9278,9 +10003,9 @@ WantedBy=timers.target
9278
10003
  }
9279
10004
  async function registerSystemd(intervalMinutes) {
9280
10005
  const dir = getSystemdDir();
9281
- mkdirSync3(dir, { recursive: true });
9282
- writeFileSync2(join6(dir, `${SERVICE_NAME}.service`), createSystemdService());
9283
- writeFileSync2(join6(dir, `${SERVICE_NAME}.timer`), createSystemdTimer(intervalMinutes));
10006
+ mkdirSync32(dir, { recursive: true });
10007
+ writeFileSync22(join6(dir, `${SERVICE_NAME}.service`), createSystemdService());
10008
+ writeFileSync22(join6(dir, `${SERVICE_NAME}.timer`), createSystemdTimer(intervalMinutes));
9284
10009
  await Bun.spawn(["systemctl", "--user", "daemon-reload"]).exited;
9285
10010
  await Bun.spawn(["systemctl", "--user", "enable", "--now", `${SERVICE_NAME}.timer`]).exited;
9286
10011
  }
@@ -9303,7 +10028,7 @@ async function registerSyncSchedule(intervalMinutes) {
9303
10028
  if (intervalMinutes <= 0) {
9304
10029
  throw new Error("Interval must be a positive number of minutes.");
9305
10030
  }
9306
- mkdirSync3(CONFIG_DIR2, { recursive: true });
10031
+ mkdirSync32(CONFIG_DIR2, { recursive: true });
9307
10032
  if (platform() === "darwin") {
9308
10033
  await registerLaunchd(intervalMinutes);
9309
10034
  } else {
@@ -9469,7 +10194,7 @@ async function ensureAllPgDatabases() {
9469
10194
  }
9470
10195
  return results;
9471
10196
  }
9472
- function registerCloudTools(server, serviceName, opts = {}) {
10197
+ function registerCloudTools(server, serviceName) {
9473
10198
  server.tool(`${serviceName}_cloud_status`, "Show cloud configuration and connection health", {}, async () => {
9474
10199
  const config = getCloudConfig();
9475
10200
  const lines = [
@@ -9502,13 +10227,8 @@ function registerCloudTools(server, serviceName, opts = {}) {
9502
10227
  isError: true
9503
10228
  };
9504
10229
  }
9505
- const local = new SqliteAdapter(opts.dbPath ?? getDbPath(serviceName));
10230
+ const local = new SqliteAdapter(getDbPath(serviceName));
9506
10231
  const cloud = new PgAdapterAsync(getConnectionString(serviceName));
9507
- if (opts.migrations?.length) {
9508
- for (const sql of opts.migrations) {
9509
- await cloud.run(sql);
9510
- }
9511
- }
9512
10232
  const tableList = tablesStr ? tablesStr.split(",").map((t) => t.trim()) : listSqliteTables(local);
9513
10233
  const results = await syncPush(local, cloud, { tables: tableList });
9514
10234
  local.close();
@@ -9530,7 +10250,7 @@ function registerCloudTools(server, serviceName, opts = {}) {
9530
10250
  isError: true
9531
10251
  };
9532
10252
  }
9533
- const local = new SqliteAdapter(opts.dbPath ?? getDbPath(serviceName));
10253
+ const local = new SqliteAdapter(getDbPath(serviceName));
9534
10254
  const cloud = new PgAdapterAsync(getConnectionString(serviceName));
9535
10255
  let tableList;
9536
10256
  if (tablesStr) {
@@ -17882,7 +18602,7 @@ See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode de
17882
18602
  init_external2();
17883
18603
  });
17884
18604
  init_dotfile = __esm2(() => {
17885
- HASNA_DIR = join2(homedir(), ".hasna");
18605
+ HASNA_DIR = join4(homedir3(), ".hasna");
17886
18606
  });
17887
18607
  exports_config = {};
17888
18608
  __export2(exports_config, {
@@ -17913,7 +18633,7 @@ See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode de
17913
18633
  schedule_minutes: exports_external2.number().default(0)
17914
18634
  }).default({})
17915
18635
  });
17916
- CONFIG_DIR = join22(homedir2(), ".hasna", "cloud");
18636
+ CONFIG_DIR = join22(homedir22(), ".hasna", "cloud");
17917
18637
  CONFIG_PATH = join22(CONFIG_DIR, "config.json");
17918
18638
  });
17919
18639
  exports_discover = {};
@@ -17978,7 +18698,7 @@ See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode de
17978
18698
  init_adapter();
17979
18699
  init_config();
17980
18700
  init_discover();
17981
- AUTO_SYNC_CONFIG_PATH = join4(homedir4(), ".hasna", "cloud", "config.json");
18701
+ AUTO_SYNC_CONFIG_PATH = join42(homedir4(), ".hasna", "cloud", "config.json");
17982
18702
  DEFAULT_AUTO_SYNC_CONFIG = {
17983
18703
  auto_sync_on_start: true,
17984
18704
  auto_sync_on_stop: true
@@ -18190,12 +18910,12 @@ var init_database = __esm(() => {
18190
18910
  // src/core/connectors/imessage.ts
18191
18911
  import {
18192
18912
  existsSync as existsSync9,
18193
- mkdirSync as mkdirSync6,
18194
- readFileSync as readFileSync3,
18195
- readdirSync as readdirSync6,
18913
+ mkdirSync as mkdirSync5,
18914
+ readFileSync as readFileSync4,
18915
+ readdirSync as readdirSync5,
18196
18916
  rmSync,
18197
18917
  statSync as statSync2,
18198
- writeFileSync as writeFileSync3
18918
+ writeFileSync as writeFileSync4
18199
18919
  } from "fs";
18200
18920
  import { join as join9 } from "path";
18201
18921
  function buildRootHelp(specs) {
@@ -18253,15 +18973,15 @@ function getCurrentProfile() {
18253
18973
  return "default";
18254
18974
  }
18255
18975
  try {
18256
- return readFileSync3(currentProfileFile, "utf-8").trim() || "default";
18976
+ return readFileSync4(currentProfileFile, "utf-8").trim() || "default";
18257
18977
  } catch {
18258
18978
  return "default";
18259
18979
  }
18260
18980
  }
18261
18981
  function setCurrentProfile(profile) {
18262
18982
  const configDir = getConfigDir2();
18263
- mkdirSync6(configDir, { recursive: true });
18264
- writeFileSync3(join9(configDir, "current_profile"), profile);
18983
+ mkdirSync5(configDir, { recursive: true });
18984
+ writeFileSync4(join9(configDir, "current_profile"), profile);
18265
18985
  }
18266
18986
  function getFlatProfilePath(profile) {
18267
18987
  return join9(getProfilesDir(), `${profile}.json`);
@@ -18271,7 +18991,7 @@ function getDirectoryProfilePath(profile) {
18271
18991
  }
18272
18992
  function loadJsonFile(path) {
18273
18993
  try {
18274
- return JSON.parse(readFileSync3(path, "utf-8"));
18994
+ return JSON.parse(readFileSync4(path, "utf-8"));
18275
18995
  } catch {
18276
18996
  return {};
18277
18997
  }
@@ -18296,8 +19016,8 @@ function loadProfile(profile = getCurrentProfile()) {
18296
19016
  }
18297
19017
  function writeProfile(profile, config) {
18298
19018
  const profilesDir = getProfilesDir();
18299
- mkdirSync6(profilesDir, { recursive: true });
18300
- writeFileSync3(getFlatProfilePath(profile), JSON.stringify(config, null, 2) + `
19019
+ mkdirSync5(profilesDir, { recursive: true });
19020
+ writeFileSync4(getFlatProfilePath(profile), JSON.stringify(config, null, 2) + `
18301
19021
  `);
18302
19022
  }
18303
19023
  function profileExists(profile) {
@@ -18306,14 +19026,14 @@ function profileExists(profile) {
18306
19026
  }
18307
19027
  return existsSync9(getFlatProfilePath(profile)) || existsSync9(join9(getProfilesDir(), profile));
18308
19028
  }
18309
- function listProfiles() {
19029
+ function listProfiles3() {
18310
19030
  const profilesDir = getProfilesDir();
18311
19031
  const seen = new Set(["default"]);
18312
19032
  if (!existsSync9(profilesDir)) {
18313
19033
  return [...seen];
18314
19034
  }
18315
19035
  try {
18316
- for (const entry of readdirSync6(profilesDir)) {
19036
+ for (const entry of readdirSync5(profilesDir)) {
18317
19037
  const fullPath = join9(profilesDir, entry);
18318
19038
  const stat = statSync2(fullPath);
18319
19039
  if (stat.isDirectory()) {
@@ -18635,7 +19355,7 @@ async function sendMessage(context, input) {
18635
19355
  direction: "outbound"
18636
19356
  });
18637
19357
  }
18638
- async function replyToMessage(context, input) {
19358
+ async function replyToMessage2(context, input) {
18639
19359
  const payload = await bridgeRequest(context, "/messages/reply", {
18640
19360
  method: "POST",
18641
19361
  body: {
@@ -18749,7 +19469,7 @@ async function runProfileCommand2(args, context) {
18749
19469
  switch (subcommand) {
18750
19470
  case "list": {
18751
19471
  const current = getCurrentProfile();
18752
- const profiles = listProfiles();
19472
+ const profiles = listProfiles3();
18753
19473
  return successOutput({ current, profiles }, context.format, () => profiles.map((profile) => `${profile}${profile === current ? " (active)" : ""}`).join(`
18754
19474
  `));
18755
19475
  }
@@ -18923,7 +19643,7 @@ async function runMessageCommand(args, context) {
18923
19643
  if (!conversationId || !text) {
18924
19644
  return failure2("Usage: connect-imessage message reply --conversation <id> --text <text>");
18925
19645
  }
18926
- return successOutput(await replyToMessage(resolved, {
19646
+ return successOutput(await replyToMessage2(resolved, {
18927
19647
  conversationId,
18928
19648
  text,
18929
19649
  replyToMessageId: asString2(options.replyTo),
@@ -19201,7 +19921,7 @@ var init_imessage = __esm(() => {
19201
19921
  summary: "Reply to an existing conversation through the bridge",
19202
19922
  inputSchema: messageReplyInputSchema,
19203
19923
  async execute({ context }, input) {
19204
- return replyToMessage(context, input);
19924
+ return replyToMessage2(context, input);
19205
19925
  }
19206
19926
  }
19207
19927
  },
@@ -20145,10 +20865,14 @@ var INTERNAL_CONNECTOR_DEFINITIONS, INTERNAL_CONNECTOR_REGISTRY;
20145
20865
  var init_builtins = __esm(() => {
20146
20866
  init_registry();
20147
20867
  init_github();
20868
+ init_gmail();
20869
+ init_googledrive();
20148
20870
  init_imessage();
20149
20871
  init_stripe();
20150
20872
  INTERNAL_CONNECTOR_DEFINITIONS = [
20873
+ gmailConnector,
20151
20874
  githubConnector,
20875
+ googleDriveConnector,
20152
20876
  imessageConnector,
20153
20877
  stripeConnector
20154
20878
  ];
@@ -28183,7 +28907,7 @@ __export(exports_installer, {
28183
28907
  getConnectorDocs: () => getConnectorDocs,
28184
28908
  connectorExists: () => connectorExists
28185
28909
  });
28186
- import { existsSync as existsSync12, mkdirSync as mkdirSync7, readFileSync as readFileSync6, writeFileSync as writeFileSync5, readdirSync as readdirSync7, statSync as statSync3, rmSync as rmSync2 } from "fs";
28910
+ import { existsSync as existsSync12, mkdirSync as mkdirSync6, readFileSync as readFileSync6, writeFileSync as writeFileSync5, readdirSync as readdirSync6, statSync as statSync3, rmSync as rmSync2 } from "fs";
28187
28911
  import { join as join12, dirname as dirname6 } from "path";
28188
28912
  import { fileURLToPath as fileURLToPath4 } from "url";
28189
28913
  function resolveConnectorsDir() {
@@ -28232,7 +28956,7 @@ function getLegacyInstalledConnectors(targetDir) {
28232
28956
  if (!existsSync12(connectorsDir)) {
28233
28957
  return [];
28234
28958
  }
28235
- return readdirSync7(connectorsDir).filter((entry) => {
28959
+ return readdirSync6(connectorsDir).filter((entry) => {
28236
28960
  const fullPath = join12(connectorsDir, entry);
28237
28961
  return entry.startsWith("connect-") && statSync3(fullPath).isDirectory();
28238
28962
  }).map((entry) => entry.replace("connect-", "")).sort();
@@ -28262,7 +28986,7 @@ export type EnabledConnectorName = typeof enabledConnectors[number];
28262
28986
  }
28263
28987
  function writeEnablementManifest(targetDir, connectors18) {
28264
28988
  const connectorsDir = getProjectConnectorsDir(targetDir);
28265
- mkdirSync7(connectorsDir, { recursive: true });
28989
+ mkdirSync6(connectorsDir, { recursive: true });
28266
28990
  const manifest = {
28267
28991
  version: 1,
28268
28992
  mode: "internal",
@@ -28408,10 +29132,10 @@ var init_installer = __esm(() => {
28408
29132
  // src/lib/lock.ts
28409
29133
  import { openSync, closeSync, unlinkSync as unlinkSync2, existsSync as existsSync13, statSync as statSync5 } from "fs";
28410
29134
  import { join as join14 } from "path";
28411
- import { mkdirSync as mkdirSync8 } from "fs";
29135
+ import { mkdirSync as mkdirSync7 } from "fs";
28412
29136
  function lockPath(connector) {
28413
29137
  const dir = join14(getConnectorsHome(), `connect-${connector}`);
28414
- mkdirSync8(dir, { recursive: true });
29138
+ mkdirSync7(dir, { recursive: true });
28415
29139
  return join14(dir, ".write.lock");
28416
29140
  }
28417
29141
  function isStale(path) {
@@ -28472,7 +29196,7 @@ var init_lock = __esm(() => {
28472
29196
  });
28473
29197
 
28474
29198
  // src/server/auth.ts
28475
- import { existsSync as existsSync14, readFileSync as readFileSync7, writeFileSync as writeFileSync6, mkdirSync as mkdirSync9, readdirSync as readdirSync9, rmSync as rmSync3, statSync as statSync6 } from "fs";
29199
+ import { existsSync as existsSync14, readFileSync as readFileSync7, writeFileSync as writeFileSync6, mkdirSync as mkdirSync8, readdirSync as readdirSync8, rmSync as rmSync3, statSync as statSync6 } from "fs";
28476
29200
  import { randomBytes } from "crypto";
28477
29201
  import { join as join15 } from "path";
28478
29202
  function getAuthType(name) {
@@ -28524,7 +29248,7 @@ function loadProfileConfig(name) {
28524
29248
  }
28525
29249
  return { ...flatConfig, ...dirConfig };
28526
29250
  }
28527
- function loadTokens(name) {
29251
+ function loadTokens3(name) {
28528
29252
  const configDir = getConnectorConfigDir(name);
28529
29253
  const profile = getCurrentProfile2(name);
28530
29254
  const tokensFile = join15(configDir, "profiles", profile, "tokens.json");
@@ -28547,28 +29271,49 @@ function loadTokens(name) {
28547
29271
  }
28548
29272
  return null;
28549
29273
  }
29274
+ function isStoredOAuthEnvVarSet(variable, oauthConfig, tokens, profileConfig) {
29275
+ if (variable.endsWith("_CLIENT_ID")) {
29276
+ return Boolean(oauthConfig.clientId || profileConfig.clientId);
29277
+ }
29278
+ if (variable.endsWith("_CLIENT_SECRET")) {
29279
+ return Boolean(oauthConfig.clientSecret || profileConfig.clientSecret);
29280
+ }
29281
+ if (variable.endsWith("_ACCESS_TOKEN")) {
29282
+ return Boolean(tokens?.accessToken || profileConfig.accessToken);
29283
+ }
29284
+ if (variable.endsWith("_REFRESH_TOKEN")) {
29285
+ return Boolean(tokens?.refreshToken || profileConfig.refreshToken);
29286
+ }
29287
+ if (variable.endsWith("_TOKEN_EXPIRES_AT")) {
29288
+ return Boolean(tokens?.expiresAt || profileConfig.expiresAt);
29289
+ }
29290
+ return false;
29291
+ }
28550
29292
  function getAuthStatus(name) {
28551
29293
  const authType = getAuthType(name);
28552
29294
  const docs = getConnectorDocs(name);
29295
+ const oauthConfig = authType === "oauth" ? getOAuthConfig(name) : {};
29296
+ const tokens = authType === "oauth" ? loadTokens3(name) : null;
29297
+ const profileConfig = authType === "oauth" ? loadProfileConfig(name) : {};
28553
29298
  const envVars = (docs?.envVars || []).map((v) => ({
28554
29299
  variable: v.variable,
28555
29300
  description: v.description,
28556
- set: !!process.env[v.variable]
29301
+ set: !!process.env[v.variable] || authType === "oauth" && isStoredOAuthEnvVarSet(v.variable, oauthConfig, tokens, profileConfig)
28557
29302
  }));
28558
29303
  const envVarTotalCount = envVars.length;
28559
29304
  const envVarSetCount = envVars.filter((v) => v.set).length;
28560
29305
  if (authType === "oauth") {
28561
- const tokens = loadTokens(name);
28562
- const config2 = loadProfileConfig(name);
28563
- const hasTokens = !!tokens?.accessToken || !!config2.accessToken;
28564
- const hasRefreshToken = !!tokens?.refreshToken || !!config2.refreshToken;
28565
- const tokenExpiry = tokens?.expiresAt || config2.expiresAt;
29306
+ const hasTokens = !!tokens?.accessToken || !!profileConfig.accessToken;
29307
+ const hasRefreshToken = !!tokens?.refreshToken || !!profileConfig.refreshToken;
29308
+ const tokenExpiry = tokens?.expiresAt || profileConfig.expiresAt;
29309
+ const hasOAuthCredentials = Boolean(oauthConfig.clientId && oauthConfig.clientSecret);
28566
29310
  const hasEnvVar2 = envVars.some((v) => v.set);
28567
29311
  return {
28568
29312
  type: "oauth",
28569
- configured: hasTokens || hasRefreshToken || hasEnvVar2,
29313
+ configured: hasTokens || hasRefreshToken || hasOAuthCredentials || hasEnvVar2,
28570
29314
  tokenExpiry,
28571
29315
  hasRefreshToken,
29316
+ hasOAuthCredentials,
28572
29317
  envVars,
28573
29318
  envVarSetCount,
28574
29319
  envVarTotalCount
@@ -28598,7 +29343,7 @@ function _saveApiKey(name, key, field) {
28598
29343
  const keyField = field || guessKeyField(name);
28599
29344
  if (keyField === "clientId" || keyField === "clientSecret") {
28600
29345
  const credentialsFile = join15(configDir, "credentials.json");
28601
- mkdirSync9(configDir, { recursive: true });
29346
+ mkdirSync8(configDir, { recursive: true });
28602
29347
  let creds = {};
28603
29348
  if (existsSync14(credentialsFile)) {
28604
29349
  try {
@@ -28632,7 +29377,7 @@ function _saveApiKey(name, key, field) {
28632
29377
  writeFileSync6(configFile, JSON.stringify(config, null, 2));
28633
29378
  return;
28634
29379
  }
28635
- mkdirSync9(profileDir, { recursive: true });
29380
+ mkdirSync8(profileDir, { recursive: true });
28636
29381
  writeFileSync6(join15(profileDir, "config.json"), JSON.stringify({ [keyField]: key }, null, 2));
28637
29382
  }
28638
29383
  function guessKeyField(name) {
@@ -28734,7 +29479,7 @@ function saveOAuthTokens(name, tokens) {
28734
29479
  const configDir = getConnectorConfigDir(name);
28735
29480
  const profile = getCurrentProfile2(name);
28736
29481
  const profileDir = join15(configDir, "profiles", profile);
28737
- mkdirSync9(profileDir, { recursive: true });
29482
+ mkdirSync8(profileDir, { recursive: true });
28738
29483
  const tokensFile = join15(profileDir, "tokens.json");
28739
29484
  writeFileSync6(tokensFile, JSON.stringify(tokens, null, 2), { mode: 384 });
28740
29485
  }
@@ -28743,7 +29488,7 @@ async function refreshOAuthToken(name) {
28743
29488
  }
28744
29489
  async function _refreshOAuthToken(name) {
28745
29490
  const oauthConfig = getOAuthConfig(name);
28746
- const currentTokens = loadTokens(name);
29491
+ const currentTokens = loadTokens3(name);
28747
29492
  if (!oauthConfig.clientId || !oauthConfig.clientSecret) {
28748
29493
  throw new Error("OAuth credentials not configured for " + name);
28749
29494
  }
@@ -28776,14 +29521,14 @@ async function _refreshOAuthToken(name) {
28776
29521
  saveOAuthTokens(name, tokens);
28777
29522
  return tokens;
28778
29523
  }
28779
- function listProfiles2(name) {
29524
+ function listProfiles4(name) {
28780
29525
  const configDir = getConnectorConfigDir(name);
28781
29526
  const profilesDir = join15(configDir, "profiles");
28782
29527
  if (!existsSync14(profilesDir))
28783
29528
  return ["default"];
28784
29529
  const seen = new Set;
28785
29530
  try {
28786
- const entries = readdirSync9(profilesDir);
29531
+ const entries = readdirSync8(profilesDir);
28787
29532
  for (const entry of entries) {
28788
29533
  const fullPath = join15(profilesDir, entry);
28789
29534
  const stat = statSync6(fullPath);
@@ -28799,7 +29544,7 @@ function listProfiles2(name) {
28799
29544
  }
28800
29545
  function switchProfile(name, profile) {
28801
29546
  const configDir = getConnectorConfigDir(name);
28802
- mkdirSync9(configDir, { recursive: true });
29547
+ mkdirSync8(configDir, { recursive: true });
28803
29548
  writeFileSync6(join15(configDir, "current_profile"), profile);
28804
29549
  }
28805
29550
  function deleteProfile2(name, profile) {
@@ -29079,7 +29824,7 @@ var init_rate = __esm(() => {
29079
29824
  });
29080
29825
 
29081
29826
  // src/lib/llm.ts
29082
- import { existsSync as existsSync15, readFileSync as readFileSync8, writeFileSync as writeFileSync7, mkdirSync as mkdirSync10 } from "fs";
29827
+ import { existsSync as existsSync15, readFileSync as readFileSync8, writeFileSync as writeFileSync7, mkdirSync as mkdirSync9 } from "fs";
29083
29828
  import { join as join16 } from "path";
29084
29829
  function getLlmConfigPath() {
29085
29830
  return join16(getConnectorsHome(), "llm.json");
@@ -29096,7 +29841,7 @@ function getLlmConfig() {
29096
29841
  }
29097
29842
  function saveLlmConfig(config) {
29098
29843
  const dir = getConnectorsHome();
29099
- mkdirSync10(dir, { recursive: true });
29844
+ mkdirSync9(dir, { recursive: true });
29100
29845
  writeFileSync7(getLlmConfigPath(), JSON.stringify(config, null, 2));
29101
29846
  }
29102
29847
  function setLlmStrip(enabled) {
@@ -29480,7 +30225,7 @@ var init_scheduler = __esm(() => {
29480
30225
  });
29481
30226
 
29482
30227
  // src/lib/workflow-runner.ts
29483
- import { spawn as spawn2 } from "child_process";
30228
+ import { spawn as nodeSpawn } from "child_process";
29484
30229
  async function runStep(step, previousOutput) {
29485
30230
  return new Promise((resolve) => {
29486
30231
  const args = [...step.args ?? []];
@@ -29488,7 +30233,7 @@ async function runStep(step, previousOutput) {
29488
30233
  args.push("--input", previousOutput.trim().slice(0, 4096));
29489
30234
  }
29490
30235
  const cmdArgs = ["run", step.connector, step.command, ...args, "--format", "json"];
29491
- const proc = spawn2("connectors", cmdArgs, { shell: false });
30236
+ const proc = spawnImpl("connectors", cmdArgs, { shell: false });
29492
30237
  let output = "";
29493
30238
  proc.stdout.on("data", (d) => {
29494
30239
  output += d.toString();
@@ -29528,15 +30273,17 @@ async function runWorkflow(workflow) {
29528
30273
  final_output: results[results.length - 1]?.output ?? ""
29529
30274
  };
29530
30275
  }
30276
+ var spawnImpl;
29531
30277
  var init_workflow_runner = __esm(() => {
29532
30278
  init_strip();
30279
+ spawnImpl = nodeSpawn;
29533
30280
  });
29534
30281
 
29535
30282
  // src/lib/runner.ts
29536
- import { existsSync as existsSync16, readdirSync as readdirSync10 } from "fs";
30283
+ import { existsSync as existsSync16, readdirSync as readdirSync9 } from "fs";
29537
30284
  import { join as join17, dirname as dirname7 } from "path";
29538
30285
  import { fileURLToPath as fileURLToPath5 } from "url";
29539
- import { spawn as spawn3 } from "child_process";
30286
+ import { spawn as spawn2 } from "child_process";
29540
30287
  function resolveConnectorsDir2() {
29541
30288
  const fromBin = join17(__dirname5, "..", "connectors");
29542
30289
  if (existsSync16(fromBin))
@@ -29585,6 +30332,25 @@ function buildEnvWithCredentials(connectorName, baseEnv) {
29585
30332
  }
29586
30333
  }
29587
30334
  }
30335
+ if (getAuthType(connectorName) === "oauth") {
30336
+ const oauthConfig = getOAuthConfig(connectorName);
30337
+ const tokens = loadTokens3(connectorName);
30338
+ for (const { variable } of getEnvVars(connectorName)) {
30339
+ if (env[variable])
30340
+ continue;
30341
+ if (variable.endsWith("_CLIENT_ID") && oauthConfig.clientId) {
30342
+ env[variable] = oauthConfig.clientId;
30343
+ } else if (variable.endsWith("_CLIENT_SECRET") && oauthConfig.clientSecret) {
30344
+ env[variable] = oauthConfig.clientSecret;
30345
+ } else if (variable.endsWith("_ACCESS_TOKEN") && tokens?.accessToken) {
30346
+ env[variable] = tokens.accessToken;
30347
+ } else if (variable.endsWith("_REFRESH_TOKEN") && tokens?.refreshToken) {
30348
+ env[variable] = tokens.refreshToken;
30349
+ } else if (variable.endsWith("_TOKEN_EXPIRES_AT") && tokens?.expiresAt) {
30350
+ env[variable] = String(tokens.expiresAt);
30351
+ }
30352
+ }
30353
+ }
29588
30354
  return env;
29589
30355
  }
29590
30356
  function getConnectorCliPath(name) {
@@ -29629,7 +30395,7 @@ function parseCommanderHelpOperations(helpText) {
29629
30395
  inCommands = false;
29630
30396
  continue;
29631
30397
  }
29632
- const row = line.match(/^ {2}(\S.*?)(?: {2,}(.+))?$/);
30398
+ const row = line.match(/^ {2}(?! )(\S.*?)(?: {2,}(.+))?$/);
29633
30399
  if (!row)
29634
30400
  continue;
29635
30401
  const usage = row[1].trim();
@@ -29677,7 +30443,7 @@ function runLegacyConnectorCommand(name, args, timeoutMs = 30000) {
29677
30443
  });
29678
30444
  }
29679
30445
  return new Promise((resolve) => {
29680
- const proc = spawn3("bun", ["run", cliPath, ...args], {
30446
+ const proc = spawn2("bun", ["run", cliPath, ...args], {
29681
30447
  timeout: timeoutMs,
29682
30448
  env: buildEnvWithCredentials(name, process.env),
29683
30449
  stdio: ["pipe", "pipe", "pipe"]
@@ -29757,7 +30523,9 @@ async function getConnectorCommandHelp(name, command) {
29757
30523
  var __dirname5, CONNECTORS_DIR2, ENV_VAR_NAME_OVERRIDES;
29758
30524
  var init_runner = __esm(() => {
29759
30525
  init_builtins();
30526
+ init_connector();
29760
30527
  init_database();
30528
+ init_auth();
29761
30529
  __dirname5 = dirname7(fileURLToPath5(import.meta.url));
29762
30530
  CONNECTORS_DIR2 = resolveConnectorsDir2();
29763
30531
  ENV_VAR_NAME_OVERRIDES = {
@@ -29774,8 +30542,8 @@ var exports_serve = {};
29774
30542
  __export(exports_serve, {
29775
30543
  startServer: () => startServer
29776
30544
  });
29777
- import { existsSync as existsSync17, readdirSync as readdirSync11, readFileSync as readFileSync9, writeFileSync as writeFileSync8, mkdirSync as mkdirSync11 } from "fs";
29778
- import { join as join18, dirname as dirname8, extname, basename } from "path";
30545
+ import { existsSync as existsSync17, readdirSync as readdirSync10, readFileSync as readFileSync9, writeFileSync as writeFileSync8, mkdirSync as mkdirSync10 } from "fs";
30546
+ import { join as join18, dirname as dirname8, extname, basename as basename3 } from "path";
29779
30547
  import { fileURLToPath as fileURLToPath6 } from "url";
29780
30548
  function logActivity(action, connector, detail) {
29781
30549
  activityLog.unshift({ action, connector, timestamp: Date.now(), detail });
@@ -30324,7 +31092,7 @@ ${result.stderr}`;
30324
31092
  if (!isValidConnectorName(name))
30325
31093
  return json({ error: "Invalid connector name" }, 400, port);
30326
31094
  try {
30327
- const profiles = listProfiles2(name);
31095
+ const profiles = listProfiles4(name);
30328
31096
  const configDir = join18(getConnectorsHome(), name.startsWith("connect-") ? name : `connect-${name}`);
30329
31097
  const currentProfileFile = join18(configDir, "current_profile");
30330
31098
  let current = "default";
@@ -30380,7 +31148,7 @@ ${result.stderr}`;
30380
31148
  const connectDir = getConnectorsHome();
30381
31149
  const result = {};
30382
31150
  if (existsSync17(connectDir)) {
30383
- const entries = readdirSync11(connectDir, { withFileTypes: true });
31151
+ const entries = readdirSync10(connectDir, { withFileTypes: true });
30384
31152
  for (const entry of entries) {
30385
31153
  if (!entry.isDirectory() || !entry.name.startsWith("connect-"))
30386
31154
  continue;
@@ -30389,10 +31157,10 @@ ${result.stderr}`;
30389
31157
  if (!existsSync17(profilesDir))
30390
31158
  continue;
30391
31159
  const profiles = {};
30392
- const profileEntries = readdirSync11(profilesDir, { withFileTypes: true });
31160
+ const profileEntries = readdirSync10(profilesDir, { withFileTypes: true });
30393
31161
  for (const pEntry of profileEntries) {
30394
31162
  if (pEntry.isFile() && pEntry.name.endsWith(".json")) {
30395
- const profileName = basename(pEntry.name, ".json");
31163
+ const profileName = basename3(pEntry.name, ".json");
30396
31164
  try {
30397
31165
  const config = JSON.parse(readFileSync9(join18(profilesDir, pEntry.name), "utf-8"));
30398
31166
  profiles[profileName] = config;
@@ -30448,7 +31216,7 @@ ${result.stderr}`;
30448
31216
  for (const [profileName, config] of Object.entries(data.profiles)) {
30449
31217
  if (!config || typeof config !== "object")
30450
31218
  continue;
30451
- mkdirSync11(profilesDir, { recursive: true });
31219
+ mkdirSync10(profilesDir, { recursive: true });
30452
31220
  const profileFile = join18(profilesDir, `${profileName}.json`);
30453
31221
  writeFileSync8(profileFile, JSON.stringify(config, null, 2));
30454
31222
  imported++;
@@ -32070,7 +32838,7 @@ init_registry2();
32070
32838
  init_installer();
32071
32839
  import { render } from "ink";
32072
32840
  import chalk2 from "chalk";
32073
- import { readdirSync as readdirSync8, statSync as statSync4 } from "fs";
32841
+ import { readdirSync as readdirSync7, statSync as statSync4 } from "fs";
32074
32842
  import { join as join13, relative as relative2 } from "path";
32075
32843
  import { createInterface } from "readline";
32076
32844
  import { jsxDEV as jsxDEV7 } from "react/jsx-dev-runtime";
@@ -32085,7 +32853,7 @@ var PRESETS = {
32085
32853
  };
32086
32854
  function listFilesRecursive(dir, base = dir) {
32087
32855
  const files = [];
32088
- for (const entry of readdirSync8(dir)) {
32856
+ for (const entry of readdirSync7(dir)) {
32089
32857
  const fullPath = join13(dir, entry);
32090
32858
  if (statSync4(fullPath).isDirectory()) {
32091
32859
  files.push(...listFilesRecursive(fullPath, base));
@@ -32757,7 +33525,7 @@ init_installer();
32757
33525
  init_auth();
32758
33526
  init_database();
32759
33527
  import chalk4 from "chalk";
32760
- import { existsSync as existsSync18, readdirSync as readdirSync12, statSync as statSync7, readFileSync as readFileSync10 } from "fs";
33528
+ import { existsSync as existsSync18, readdirSync as readdirSync11, statSync as statSync7, readFileSync as readFileSync10 } from "fs";
32761
33529
  import { join as join19 } from "path";
32762
33530
  function registerCommands3(program2) {
32763
33531
  program2.command("status").option("--json", "Output as JSON", false).description("Show auth status of all configured connectors (project + global)").action((options) => {
@@ -32810,7 +33578,7 @@ function registerCommands3(program2) {
32810
33578
  }
32811
33579
  if (existsSync18(configDir)) {
32812
33580
  try {
32813
- const globalDirs = readdirSync12(configDir).filter((f) => {
33581
+ const globalDirs = readdirSync11(configDir).filter((f) => {
32814
33582
  if (!f.startsWith("connect-"))
32815
33583
  return false;
32816
33584
  if (f.startsWith("connect-zzztest"))
@@ -33029,7 +33797,7 @@ init_registry2();
33029
33797
  init_auth();
33030
33798
  init_database();
33031
33799
  import chalk5 from "chalk";
33032
- import { existsSync as existsSync19, readdirSync as readdirSync13, statSync as statSync8, readFileSync as readFileSync11, writeFileSync as writeFileSync9, mkdirSync as mkdirSync12 } from "fs";
33800
+ import { existsSync as existsSync19, readdirSync as readdirSync12, statSync as statSync8, readFileSync as readFileSync11, writeFileSync as writeFileSync9, mkdirSync as mkdirSync11 } from "fs";
33033
33801
  import { join as join20 } from "path";
33034
33802
  import { homedir as homedir8 } from "os";
33035
33803
  import { createInterface as createInterface2 } from "readline";
@@ -33083,7 +33851,7 @@ function redactSecrets(obj) {
33083
33851
  return obj;
33084
33852
  }
33085
33853
  function getOAuthTokenState(name) {
33086
- const tokens = loadTokens(name);
33854
+ const tokens = loadTokens3(name);
33087
33855
  if (!tokens?.accessToken && !tokens?.refreshToken) {
33088
33856
  return { hasTokens: false, expired: false };
33089
33857
  }
@@ -33226,9 +33994,9 @@ ${meta.displayName} \u2014 Auth Configuration
33226
33994
  try {
33227
33995
  if (!options.browser) {
33228
33996
  console.log(chalk5.dim(`Starting OAuth server on port ${port}...`));
33229
- const { spawn: spawn4 } = await import("child_process");
33997
+ const { spawn: spawn3 } = await import("child_process");
33230
33998
  const scriptPath = process.argv[1];
33231
- const serverProc = spawn4("node", [scriptPath, "serve", "--port", String(port)], {
33999
+ const serverProc = spawn3("node", [scriptPath, "serve", "--port", String(port)], {
33232
34000
  detached: true,
33233
34001
  stdio: "ignore"
33234
34002
  });
@@ -33402,7 +34170,7 @@ Open this URL to authenticate:
33402
34170
  const configuredNames = [];
33403
34171
  try {
33404
34172
  if (existsSync19(connectorsHome)) {
33405
- const entries = readdirSync13(connectorsHome).filter((e) => e.startsWith("connect-") && statSync8(join20(connectorsHome, e)).isDirectory());
34173
+ const entries = readdirSync12(connectorsHome).filter((e) => e.startsWith("connect-") && statSync8(join20(connectorsHome, e)).isDirectory());
33406
34174
  for (const entry of entries) {
33407
34175
  const profilesDir = join20(connectorsHome, entry, "profiles");
33408
34176
  if (existsSync19(profilesDir)) {
@@ -33457,7 +34225,7 @@ Open this URL to authenticate:
33457
34225
  const connectDir = getConnectorsHome();
33458
34226
  const result = {};
33459
34227
  if (existsSync19(connectDir)) {
33460
- for (const entry of readdirSync13(connectDir)) {
34228
+ for (const entry of readdirSync12(connectDir)) {
33461
34229
  const entryPath = join20(connectDir, entry);
33462
34230
  if (!statSync8(entryPath).isDirectory() || !entry.startsWith("connect-"))
33463
34231
  continue;
@@ -33474,7 +34242,7 @@ Open this URL to authenticate:
33474
34242
  continue;
33475
34243
  const profiles = {};
33476
34244
  if (existsSync19(profilesDir)) {
33477
- for (const pEntry of readdirSync13(profilesDir)) {
34245
+ for (const pEntry of readdirSync12(profilesDir)) {
33478
34246
  const pPath = join20(profilesDir, pEntry);
33479
34247
  if (statSync8(pPath).isFile() && pEntry.endsWith(".json")) {
33480
34248
  try {
@@ -33565,7 +34333,7 @@ Open this URL to authenticate:
33565
34333
  continue;
33566
34334
  const connectorDir = join20(connectDir, `connect-${connectorName}`);
33567
34335
  if (connData.credentials && typeof connData.credentials === "object") {
33568
- mkdirSync12(connectorDir, { recursive: true });
34336
+ mkdirSync11(connectorDir, { recursive: true });
33569
34337
  writeFileSync9(join20(connectorDir, "credentials.json"), JSON.stringify(connData.credentials, null, 2));
33570
34338
  imported++;
33571
34339
  }
@@ -33575,7 +34343,7 @@ Open this URL to authenticate:
33575
34343
  for (const [profileName, config] of Object.entries(connData.profiles)) {
33576
34344
  if (!config || typeof config !== "object")
33577
34345
  continue;
33578
- mkdirSync12(profilesDir, { recursive: true });
34346
+ mkdirSync11(profilesDir, { recursive: true });
33579
34347
  writeFileSync9(join20(profilesDir, `${profileName}.json`), JSON.stringify(config, null, 2));
33580
34348
  imported++;
33581
34349
  }
@@ -33597,7 +34365,7 @@ Open this URL to authenticate:
33597
34365
  }
33598
34366
  return;
33599
34367
  }
33600
- const entries = readdirSync13(oldBase).filter((name) => {
34368
+ const entries = readdirSync12(oldBase).filter((name) => {
33601
34369
  if (!name.startsWith("connect-"))
33602
34370
  return false;
33603
34371
  try {
@@ -33637,7 +34405,7 @@ Open this URL to authenticate:
33637
34405
  }
33638
34406
  if (!options.dryRun) {
33639
34407
  const parentDir = join20(destPath, "..");
33640
- mkdirSync12(parentDir, { recursive: true });
34408
+ mkdirSync11(parentDir, { recursive: true });
33641
34409
  const content = readFileSync11(srcPath);
33642
34410
  writeFileSync9(destPath, content);
33643
34411
  }
@@ -33705,7 +34473,7 @@ init_installer();
33705
34473
  init_auth();
33706
34474
  init_database();
33707
34475
  import chalk6 from "chalk";
33708
- import { existsSync as existsSync20, readdirSync as readdirSync14, statSync as statSync9, readFileSync as readFileSync12, writeFileSync as writeFileSync10 } from "fs";
34476
+ import { existsSync as existsSync20, readdirSync as readdirSync13, statSync as statSync9, readFileSync as readFileSync12, writeFileSync as writeFileSync10 } from "fs";
33709
34477
  import { join as join21 } from "path";
33710
34478
 
33711
34479
  // src/lib/test-endpoints.ts
@@ -34147,7 +34915,7 @@ Available presets:
34147
34915
  }
34148
34916
  if (existsSync20(configDir)) {
34149
34917
  try {
34150
- const globalDirs = readdirSync14(configDir).filter((f) => {
34918
+ const globalDirs = readdirSync13(configDir).filter((f) => {
34151
34919
  if (!f.startsWith("connect-"))
34152
34920
  return false;
34153
34921
  try {
@@ -34564,12 +35332,12 @@ Setting up ${meta.displayName}...
34564
35332
  ${chalk7.bold("Open this URL to authenticate:")}`);
34565
35333
  console.log(` ${chalk7.cyan(oauthUrl)}
34566
35334
  `);
34567
- const { spawn: spawn4 } = await import("child_process");
35335
+ const { spawn: spawn3 } = await import("child_process");
34568
35336
  const { getConnectorsHome: getConnectorsHome2 } = await Promise.resolve().then(() => (init_database(), exports_database));
34569
35337
  const { existsSync: existsSync8 } = await import("fs");
34570
35338
  const { join: join8 } = await import("path");
34571
35339
  const scriptPath = process.argv[1];
34572
- const serverProc = spawn4("node", [scriptPath, "serve", "--port", String(port)], {
35340
+ const serverProc = spawn3("node", [scriptPath, "serve", "--port", String(port)], {
34573
35341
  detached: true,
34574
35342
  stdio: "ignore"
34575
35343
  });