@invect/core 0.0.1

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 (1349) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +33 -0
  4. package/dist/_virtual/_rolldown/runtime.js +13 -0
  5. package/dist/actions/action-executor.cjs +166 -0
  6. package/dist/actions/action-executor.cjs.map +1 -0
  7. package/dist/actions/action-executor.d.cts +33 -0
  8. package/dist/actions/action-executor.d.cts.map +1 -0
  9. package/dist/actions/action-executor.d.ts +33 -0
  10. package/dist/actions/action-executor.d.ts.map +1 -0
  11. package/dist/actions/action-executor.js +164 -0
  12. package/dist/actions/action-executor.js.map +1 -0
  13. package/dist/actions/action-registry.cjs +236 -0
  14. package/dist/actions/action-registry.cjs.map +1 -0
  15. package/dist/actions/action-registry.d.cts +58 -0
  16. package/dist/actions/action-registry.d.cts.map +1 -0
  17. package/dist/actions/action-registry.d.ts +58 -0
  18. package/dist/actions/action-registry.d.ts.map +1 -0
  19. package/dist/actions/action-registry.js +233 -0
  20. package/dist/actions/action-registry.js.map +1 -0
  21. package/dist/actions/core/if-else.cjs +111 -0
  22. package/dist/actions/core/if-else.cjs.map +1 -0
  23. package/dist/actions/core/if-else.d.cts +1 -0
  24. package/dist/actions/core/if-else.d.ts +1 -0
  25. package/dist/actions/core/if-else.js +98 -0
  26. package/dist/actions/core/if-else.js.map +1 -0
  27. package/dist/actions/core/index.cjs +20 -0
  28. package/dist/actions/core/index.cjs.map +1 -0
  29. package/dist/actions/core/index.d.cts +7 -0
  30. package/dist/actions/core/index.d.cts.map +1 -0
  31. package/dist/actions/core/index.d.ts +7 -0
  32. package/dist/actions/core/index.d.ts.map +1 -0
  33. package/dist/actions/core/index.js +20 -0
  34. package/dist/actions/core/index.js.map +1 -0
  35. package/dist/actions/core/input.cjs +73 -0
  36. package/dist/actions/core/input.cjs.map +1 -0
  37. package/dist/actions/core/input.d.cts +1 -0
  38. package/dist/actions/core/input.d.ts +1 -0
  39. package/dist/actions/core/input.js +72 -0
  40. package/dist/actions/core/input.js.map +1 -0
  41. package/dist/actions/core/javascript.cjs +77 -0
  42. package/dist/actions/core/javascript.cjs.map +1 -0
  43. package/dist/actions/core/javascript.d.cts +1 -0
  44. package/dist/actions/core/javascript.d.ts +1 -0
  45. package/dist/actions/core/javascript.js +62 -0
  46. package/dist/actions/core/javascript.js.map +1 -0
  47. package/dist/actions/core/model.cjs +285 -0
  48. package/dist/actions/core/model.cjs.map +1 -0
  49. package/dist/actions/core/model.d.cts +1 -0
  50. package/dist/actions/core/model.d.ts +1 -0
  51. package/dist/actions/core/model.js +276 -0
  52. package/dist/actions/core/model.js.map +1 -0
  53. package/dist/actions/core/output.cjs +66 -0
  54. package/dist/actions/core/output.cjs.map +1 -0
  55. package/dist/actions/core/output.d.cts +1 -0
  56. package/dist/actions/core/output.d.ts +1 -0
  57. package/dist/actions/core/output.js +57 -0
  58. package/dist/actions/core/output.js.map +1 -0
  59. package/dist/actions/core/template-string.cjs +85 -0
  60. package/dist/actions/core/template-string.cjs.map +1 -0
  61. package/dist/actions/core/template-string.d.cts +1 -0
  62. package/dist/actions/core/template-string.d.ts +1 -0
  63. package/dist/actions/core/template-string.js +76 -0
  64. package/dist/actions/core/template-string.js.map +1 -0
  65. package/dist/actions/define-action.cjs +14 -0
  66. package/dist/actions/define-action.cjs.map +1 -0
  67. package/dist/actions/define-action.d.cts +13 -0
  68. package/dist/actions/define-action.d.cts.map +1 -0
  69. package/dist/actions/define-action.d.ts +13 -0
  70. package/dist/actions/define-action.d.ts.map +1 -0
  71. package/dist/actions/define-action.js +14 -0
  72. package/dist/actions/define-action.js.map +1 -0
  73. package/dist/actions/github/add-issue-comment.cjs +152 -0
  74. package/dist/actions/github/add-issue-comment.cjs.map +1 -0
  75. package/dist/actions/github/add-issue-comment.d.cts +1 -0
  76. package/dist/actions/github/add-issue-comment.d.ts +1 -0
  77. package/dist/actions/github/add-issue-comment.js +150 -0
  78. package/dist/actions/github/add-issue-comment.js.map +1 -0
  79. package/dist/actions/github/create-branch.cjs +201 -0
  80. package/dist/actions/github/create-branch.cjs.map +1 -0
  81. package/dist/actions/github/create-branch.d.cts +1 -0
  82. package/dist/actions/github/create-branch.d.ts +1 -0
  83. package/dist/actions/github/create-branch.js +199 -0
  84. package/dist/actions/github/create-branch.js.map +1 -0
  85. package/dist/actions/github/create-issue.cjs +190 -0
  86. package/dist/actions/github/create-issue.cjs.map +1 -0
  87. package/dist/actions/github/create-issue.d.cts +1 -0
  88. package/dist/actions/github/create-issue.d.ts +1 -0
  89. package/dist/actions/github/create-issue.js +188 -0
  90. package/dist/actions/github/create-issue.js.map +1 -0
  91. package/dist/actions/github/create-or-update-file.cjs +216 -0
  92. package/dist/actions/github/create-or-update-file.cjs.map +1 -0
  93. package/dist/actions/github/create-or-update-file.d.cts +1 -0
  94. package/dist/actions/github/create-or-update-file.d.ts +1 -0
  95. package/dist/actions/github/create-or-update-file.js +214 -0
  96. package/dist/actions/github/create-or-update-file.js.map +1 -0
  97. package/dist/actions/github/create-pull-request.cjs +206 -0
  98. package/dist/actions/github/create-pull-request.cjs.map +1 -0
  99. package/dist/actions/github/create-pull-request.d.cts +1 -0
  100. package/dist/actions/github/create-pull-request.d.ts +1 -0
  101. package/dist/actions/github/create-pull-request.js +204 -0
  102. package/dist/actions/github/create-pull-request.js.map +1 -0
  103. package/dist/actions/github/create-release.cjs +218 -0
  104. package/dist/actions/github/create-release.cjs.map +1 -0
  105. package/dist/actions/github/create-release.d.cts +1 -0
  106. package/dist/actions/github/create-release.d.ts +1 -0
  107. package/dist/actions/github/create-release.js +216 -0
  108. package/dist/actions/github/create-release.js.map +1 -0
  109. package/dist/actions/github/get-file-content.cjs +164 -0
  110. package/dist/actions/github/get-file-content.cjs.map +1 -0
  111. package/dist/actions/github/get-file-content.d.cts +1 -0
  112. package/dist/actions/github/get-file-content.d.ts +1 -0
  113. package/dist/actions/github/get-file-content.js +162 -0
  114. package/dist/actions/github/get-file-content.js.map +1 -0
  115. package/dist/actions/github/get-issue.cjs +149 -0
  116. package/dist/actions/github/get-issue.cjs.map +1 -0
  117. package/dist/actions/github/get-issue.d.cts +1 -0
  118. package/dist/actions/github/get-issue.d.ts +1 -0
  119. package/dist/actions/github/get-issue.js +147 -0
  120. package/dist/actions/github/get-issue.js.map +1 -0
  121. package/dist/actions/github/get-pull-request.cjs +160 -0
  122. package/dist/actions/github/get-pull-request.cjs.map +1 -0
  123. package/dist/actions/github/get-pull-request.d.cts +1 -0
  124. package/dist/actions/github/get-pull-request.d.ts +1 -0
  125. package/dist/actions/github/get-pull-request.js +158 -0
  126. package/dist/actions/github/get-pull-request.js.map +1 -0
  127. package/dist/actions/github/get-repo.cjs +144 -0
  128. package/dist/actions/github/get-repo.cjs.map +1 -0
  129. package/dist/actions/github/get-repo.d.cts +1 -0
  130. package/dist/actions/github/get-repo.d.ts +1 -0
  131. package/dist/actions/github/get-repo.js +142 -0
  132. package/dist/actions/github/get-repo.js.map +1 -0
  133. package/dist/actions/github/index.cjs +48 -0
  134. package/dist/actions/github/index.cjs.map +1 -0
  135. package/dist/actions/github/index.d.cts +7 -0
  136. package/dist/actions/github/index.d.cts.map +1 -0
  137. package/dist/actions/github/index.d.ts +7 -0
  138. package/dist/actions/github/index.d.ts.map +1 -0
  139. package/dist/actions/github/index.js +48 -0
  140. package/dist/actions/github/index.js.map +1 -0
  141. package/dist/actions/github/list-branches.cjs +149 -0
  142. package/dist/actions/github/list-branches.cjs.map +1 -0
  143. package/dist/actions/github/list-branches.d.cts +1 -0
  144. package/dist/actions/github/list-branches.d.ts +1 -0
  145. package/dist/actions/github/list-branches.js +147 -0
  146. package/dist/actions/github/list-branches.js.map +1 -0
  147. package/dist/actions/github/list-commits.cjs +200 -0
  148. package/dist/actions/github/list-commits.cjs.map +1 -0
  149. package/dist/actions/github/list-commits.d.cts +1 -0
  150. package/dist/actions/github/list-commits.d.ts +1 -0
  151. package/dist/actions/github/list-commits.js +198 -0
  152. package/dist/actions/github/list-commits.js.map +1 -0
  153. package/dist/actions/github/list-issue-comments.cjs +153 -0
  154. package/dist/actions/github/list-issue-comments.cjs.map +1 -0
  155. package/dist/actions/github/list-issue-comments.d.cts +1 -0
  156. package/dist/actions/github/list-issue-comments.d.ts +1 -0
  157. package/dist/actions/github/list-issue-comments.js +151 -0
  158. package/dist/actions/github/list-issue-comments.js.map +1 -0
  159. package/dist/actions/github/list-issues.cjs +244 -0
  160. package/dist/actions/github/list-issues.cjs.map +1 -0
  161. package/dist/actions/github/list-issues.d.cts +1 -0
  162. package/dist/actions/github/list-issues.d.ts +1 -0
  163. package/dist/actions/github/list-issues.js +242 -0
  164. package/dist/actions/github/list-issues.js.map +1 -0
  165. package/dist/actions/github/list-pull-requests.cjs +252 -0
  166. package/dist/actions/github/list-pull-requests.cjs.map +1 -0
  167. package/dist/actions/github/list-pull-requests.d.cts +1 -0
  168. package/dist/actions/github/list-pull-requests.d.ts +1 -0
  169. package/dist/actions/github/list-pull-requests.js +250 -0
  170. package/dist/actions/github/list-pull-requests.js.map +1 -0
  171. package/dist/actions/github/list-releases.cjs +152 -0
  172. package/dist/actions/github/list-releases.cjs.map +1 -0
  173. package/dist/actions/github/list-releases.d.cts +1 -0
  174. package/dist/actions/github/list-releases.d.ts +1 -0
  175. package/dist/actions/github/list-releases.js +150 -0
  176. package/dist/actions/github/list-releases.js.map +1 -0
  177. package/dist/actions/github/list-repos.cjs +227 -0
  178. package/dist/actions/github/list-repos.cjs.map +1 -0
  179. package/dist/actions/github/list-repos.d.cts +1 -0
  180. package/dist/actions/github/list-repos.d.ts +1 -0
  181. package/dist/actions/github/list-repos.js +225 -0
  182. package/dist/actions/github/list-repos.js.map +1 -0
  183. package/dist/actions/github/merge-pull-request.cjs +204 -0
  184. package/dist/actions/github/merge-pull-request.cjs.map +1 -0
  185. package/dist/actions/github/merge-pull-request.d.cts +1 -0
  186. package/dist/actions/github/merge-pull-request.d.ts +1 -0
  187. package/dist/actions/github/merge-pull-request.js +202 -0
  188. package/dist/actions/github/merge-pull-request.js.map +1 -0
  189. package/dist/actions/github/search-issues.cjs +200 -0
  190. package/dist/actions/github/search-issues.cjs.map +1 -0
  191. package/dist/actions/github/search-issues.d.cts +1 -0
  192. package/dist/actions/github/search-issues.d.ts +1 -0
  193. package/dist/actions/github/search-issues.js +198 -0
  194. package/dist/actions/github/search-issues.js.map +1 -0
  195. package/dist/actions/github/update-issue.cjs +243 -0
  196. package/dist/actions/github/update-issue.cjs.map +1 -0
  197. package/dist/actions/github/update-issue.d.cts +1 -0
  198. package/dist/actions/github/update-issue.d.ts +1 -0
  199. package/dist/actions/github/update-issue.js +241 -0
  200. package/dist/actions/github/update-issue.js.map +1 -0
  201. package/dist/actions/gmail/create-draft.cjs +228 -0
  202. package/dist/actions/gmail/create-draft.cjs.map +1 -0
  203. package/dist/actions/gmail/create-draft.d.cts +1 -0
  204. package/dist/actions/gmail/create-draft.d.ts +1 -0
  205. package/dist/actions/gmail/create-draft.js +226 -0
  206. package/dist/actions/gmail/create-draft.js.map +1 -0
  207. package/dist/actions/gmail/get-message.cjs +205 -0
  208. package/dist/actions/gmail/get-message.cjs.map +1 -0
  209. package/dist/actions/gmail/get-message.d.cts +1 -0
  210. package/dist/actions/gmail/get-message.d.ts +1 -0
  211. package/dist/actions/gmail/get-message.js +203 -0
  212. package/dist/actions/gmail/get-message.js.map +1 -0
  213. package/dist/actions/gmail/index.cjs +18 -0
  214. package/dist/actions/gmail/index.cjs.map +1 -0
  215. package/dist/actions/gmail/index.d.cts +7 -0
  216. package/dist/actions/gmail/index.d.cts.map +1 -0
  217. package/dist/actions/gmail/index.d.ts +7 -0
  218. package/dist/actions/gmail/index.d.ts.map +1 -0
  219. package/dist/actions/gmail/index.js +18 -0
  220. package/dist/actions/gmail/index.js.map +1 -0
  221. package/dist/actions/gmail/list-messages.cjs +195 -0
  222. package/dist/actions/gmail/list-messages.cjs.map +1 -0
  223. package/dist/actions/gmail/list-messages.d.cts +1 -0
  224. package/dist/actions/gmail/list-messages.d.ts +1 -0
  225. package/dist/actions/gmail/list-messages.js +193 -0
  226. package/dist/actions/gmail/list-messages.js.map +1 -0
  227. package/dist/actions/gmail/modify-labels.cjs +163 -0
  228. package/dist/actions/gmail/modify-labels.cjs.map +1 -0
  229. package/dist/actions/gmail/modify-labels.d.cts +1 -0
  230. package/dist/actions/gmail/modify-labels.d.ts +1 -0
  231. package/dist/actions/gmail/modify-labels.js +161 -0
  232. package/dist/actions/gmail/modify-labels.js.map +1 -0
  233. package/dist/actions/gmail/send-message.cjs +233 -0
  234. package/dist/actions/gmail/send-message.cjs.map +1 -0
  235. package/dist/actions/gmail/send-message.d.cts +1 -0
  236. package/dist/actions/gmail/send-message.d.ts +1 -0
  237. package/dist/actions/gmail/send-message.js +231 -0
  238. package/dist/actions/gmail/send-message.js.map +1 -0
  239. package/dist/actions/google-calendar/create-event.cjs +274 -0
  240. package/dist/actions/google-calendar/create-event.cjs.map +1 -0
  241. package/dist/actions/google-calendar/create-event.d.cts +1 -0
  242. package/dist/actions/google-calendar/create-event.d.ts +1 -0
  243. package/dist/actions/google-calendar/create-event.js +272 -0
  244. package/dist/actions/google-calendar/create-event.js.map +1 -0
  245. package/dist/actions/google-calendar/delete-event.cjs +145 -0
  246. package/dist/actions/google-calendar/delete-event.cjs.map +1 -0
  247. package/dist/actions/google-calendar/delete-event.d.cts +1 -0
  248. package/dist/actions/google-calendar/delete-event.d.ts +1 -0
  249. package/dist/actions/google-calendar/delete-event.js +143 -0
  250. package/dist/actions/google-calendar/delete-event.js.map +1 -0
  251. package/dist/actions/google-calendar/get-event.cjs +128 -0
  252. package/dist/actions/google-calendar/get-event.cjs.map +1 -0
  253. package/dist/actions/google-calendar/get-event.d.cts +1 -0
  254. package/dist/actions/google-calendar/get-event.d.ts +1 -0
  255. package/dist/actions/google-calendar/get-event.js +126 -0
  256. package/dist/actions/google-calendar/get-event.js.map +1 -0
  257. package/dist/actions/google-calendar/index.cjs +20 -0
  258. package/dist/actions/google-calendar/index.cjs.map +1 -0
  259. package/dist/actions/google-calendar/index.d.cts +7 -0
  260. package/dist/actions/google-calendar/index.d.cts.map +1 -0
  261. package/dist/actions/google-calendar/index.d.ts +7 -0
  262. package/dist/actions/google-calendar/index.d.ts.map +1 -0
  263. package/dist/actions/google-calendar/index.js +20 -0
  264. package/dist/actions/google-calendar/index.js.map +1 -0
  265. package/dist/actions/google-calendar/list-events.cjs +193 -0
  266. package/dist/actions/google-calendar/list-events.cjs.map +1 -0
  267. package/dist/actions/google-calendar/list-events.d.cts +1 -0
  268. package/dist/actions/google-calendar/list-events.d.ts +1 -0
  269. package/dist/actions/google-calendar/list-events.js +191 -0
  270. package/dist/actions/google-calendar/list-events.js.map +1 -0
  271. package/dist/actions/google-calendar/query-freebusy.cjs +160 -0
  272. package/dist/actions/google-calendar/query-freebusy.cjs.map +1 -0
  273. package/dist/actions/google-calendar/query-freebusy.d.cts +1 -0
  274. package/dist/actions/google-calendar/query-freebusy.d.ts +1 -0
  275. package/dist/actions/google-calendar/query-freebusy.js +158 -0
  276. package/dist/actions/google-calendar/query-freebusy.js.map +1 -0
  277. package/dist/actions/google-calendar/update-event.cjs +221 -0
  278. package/dist/actions/google-calendar/update-event.cjs.map +1 -0
  279. package/dist/actions/google-calendar/update-event.d.cts +1 -0
  280. package/dist/actions/google-calendar/update-event.d.ts +1 -0
  281. package/dist/actions/google-calendar/update-event.js +219 -0
  282. package/dist/actions/google-calendar/update-event.js.map +1 -0
  283. package/dist/actions/google-docs/append-text.cjs +138 -0
  284. package/dist/actions/google-docs/append-text.cjs.map +1 -0
  285. package/dist/actions/google-docs/append-text.d.cts +1 -0
  286. package/dist/actions/google-docs/append-text.d.ts +1 -0
  287. package/dist/actions/google-docs/append-text.js +136 -0
  288. package/dist/actions/google-docs/append-text.js.map +1 -0
  289. package/dist/actions/google-docs/create-document.cjs +138 -0
  290. package/dist/actions/google-docs/create-document.cjs.map +1 -0
  291. package/dist/actions/google-docs/create-document.d.cts +1 -0
  292. package/dist/actions/google-docs/create-document.d.ts +1 -0
  293. package/dist/actions/google-docs/create-document.js +136 -0
  294. package/dist/actions/google-docs/create-document.js.map +1 -0
  295. package/dist/actions/google-docs/get-document.cjs +118 -0
  296. package/dist/actions/google-docs/get-document.cjs.map +1 -0
  297. package/dist/actions/google-docs/get-document.d.cts +1 -0
  298. package/dist/actions/google-docs/get-document.d.ts +1 -0
  299. package/dist/actions/google-docs/get-document.js +116 -0
  300. package/dist/actions/google-docs/get-document.js.map +1 -0
  301. package/dist/actions/google-docs/index.cjs +18 -0
  302. package/dist/actions/google-docs/index.cjs.map +1 -0
  303. package/dist/actions/google-docs/index.d.cts +7 -0
  304. package/dist/actions/google-docs/index.d.cts.map +1 -0
  305. package/dist/actions/google-docs/index.d.ts +7 -0
  306. package/dist/actions/google-docs/index.d.ts.map +1 -0
  307. package/dist/actions/google-docs/index.js +18 -0
  308. package/dist/actions/google-docs/index.js.map +1 -0
  309. package/dist/actions/google-docs/insert-text.cjs +136 -0
  310. package/dist/actions/google-docs/insert-text.cjs.map +1 -0
  311. package/dist/actions/google-docs/insert-text.d.cts +1 -0
  312. package/dist/actions/google-docs/insert-text.d.ts +1 -0
  313. package/dist/actions/google-docs/insert-text.js +134 -0
  314. package/dist/actions/google-docs/insert-text.js.map +1 -0
  315. package/dist/actions/google-docs/replace-text.cjs +152 -0
  316. package/dist/actions/google-docs/replace-text.cjs.map +1 -0
  317. package/dist/actions/google-docs/replace-text.d.cts +1 -0
  318. package/dist/actions/google-docs/replace-text.d.ts +1 -0
  319. package/dist/actions/google-docs/replace-text.js +150 -0
  320. package/dist/actions/google-docs/replace-text.js.map +1 -0
  321. package/dist/actions/google-drive/create-file.cjs +155 -0
  322. package/dist/actions/google-drive/create-file.cjs.map +1 -0
  323. package/dist/actions/google-drive/create-file.d.cts +1 -0
  324. package/dist/actions/google-drive/create-file.d.ts +1 -0
  325. package/dist/actions/google-drive/create-file.js +153 -0
  326. package/dist/actions/google-drive/create-file.js.map +1 -0
  327. package/dist/actions/google-drive/create-folder.cjs +130 -0
  328. package/dist/actions/google-drive/create-folder.cjs.map +1 -0
  329. package/dist/actions/google-drive/create-folder.d.cts +1 -0
  330. package/dist/actions/google-drive/create-folder.d.ts +1 -0
  331. package/dist/actions/google-drive/create-folder.js +128 -0
  332. package/dist/actions/google-drive/create-folder.js.map +1 -0
  333. package/dist/actions/google-drive/delete-file.cjs +98 -0
  334. package/dist/actions/google-drive/delete-file.cjs.map +1 -0
  335. package/dist/actions/google-drive/delete-file.d.cts +1 -0
  336. package/dist/actions/google-drive/delete-file.d.ts +1 -0
  337. package/dist/actions/google-drive/delete-file.js +96 -0
  338. package/dist/actions/google-drive/delete-file.js.map +1 -0
  339. package/dist/actions/google-drive/get-file.cjs +103 -0
  340. package/dist/actions/google-drive/get-file.cjs.map +1 -0
  341. package/dist/actions/google-drive/get-file.d.cts +1 -0
  342. package/dist/actions/google-drive/get-file.d.ts +1 -0
  343. package/dist/actions/google-drive/get-file.js +101 -0
  344. package/dist/actions/google-drive/get-file.js.map +1 -0
  345. package/dist/actions/google-drive/index.cjs +22 -0
  346. package/dist/actions/google-drive/index.cjs.map +1 -0
  347. package/dist/actions/google-drive/index.d.cts +7 -0
  348. package/dist/actions/google-drive/index.d.cts.map +1 -0
  349. package/dist/actions/google-drive/index.d.ts +7 -0
  350. package/dist/actions/google-drive/index.d.ts.map +1 -0
  351. package/dist/actions/google-drive/index.js +22 -0
  352. package/dist/actions/google-drive/index.js.map +1 -0
  353. package/dist/actions/google-drive/list-files.cjs +156 -0
  354. package/dist/actions/google-drive/list-files.cjs.map +1 -0
  355. package/dist/actions/google-drive/list-files.d.cts +1 -0
  356. package/dist/actions/google-drive/list-files.d.ts +1 -0
  357. package/dist/actions/google-drive/list-files.js +154 -0
  358. package/dist/actions/google-drive/list-files.js.map +1 -0
  359. package/dist/actions/google-drive/search-files.cjs +138 -0
  360. package/dist/actions/google-drive/search-files.cjs.map +1 -0
  361. package/dist/actions/google-drive/search-files.d.cts +1 -0
  362. package/dist/actions/google-drive/search-files.d.ts +1 -0
  363. package/dist/actions/google-drive/search-files.js +136 -0
  364. package/dist/actions/google-drive/search-files.js.map +1 -0
  365. package/dist/actions/google-drive/share-file.cjs +226 -0
  366. package/dist/actions/google-drive/share-file.cjs.map +1 -0
  367. package/dist/actions/google-drive/share-file.d.cts +1 -0
  368. package/dist/actions/google-drive/share-file.d.ts +1 -0
  369. package/dist/actions/google-drive/share-file.js +224 -0
  370. package/dist/actions/google-drive/share-file.js.map +1 -0
  371. package/dist/actions/google-sheets/append-values.cjs +175 -0
  372. package/dist/actions/google-sheets/append-values.cjs.map +1 -0
  373. package/dist/actions/google-sheets/append-values.d.cts +1 -0
  374. package/dist/actions/google-sheets/append-values.d.ts +1 -0
  375. package/dist/actions/google-sheets/append-values.js +173 -0
  376. package/dist/actions/google-sheets/append-values.js.map +1 -0
  377. package/dist/actions/google-sheets/clear-values.cjs +118 -0
  378. package/dist/actions/google-sheets/clear-values.cjs.map +1 -0
  379. package/dist/actions/google-sheets/clear-values.d.cts +1 -0
  380. package/dist/actions/google-sheets/clear-values.d.ts +1 -0
  381. package/dist/actions/google-sheets/clear-values.js +116 -0
  382. package/dist/actions/google-sheets/clear-values.js.map +1 -0
  383. package/dist/actions/google-sheets/create-spreadsheet.cjs +128 -0
  384. package/dist/actions/google-sheets/create-spreadsheet.cjs.map +1 -0
  385. package/dist/actions/google-sheets/create-spreadsheet.d.cts +1 -0
  386. package/dist/actions/google-sheets/create-spreadsheet.d.ts +1 -0
  387. package/dist/actions/google-sheets/create-spreadsheet.js +126 -0
  388. package/dist/actions/google-sheets/create-spreadsheet.js.map +1 -0
  389. package/dist/actions/google-sheets/get-values.cjs +168 -0
  390. package/dist/actions/google-sheets/get-values.cjs.map +1 -0
  391. package/dist/actions/google-sheets/get-values.d.cts +1 -0
  392. package/dist/actions/google-sheets/get-values.d.ts +1 -0
  393. package/dist/actions/google-sheets/get-values.js +166 -0
  394. package/dist/actions/google-sheets/get-values.js.map +1 -0
  395. package/dist/actions/google-sheets/index.cjs +18 -0
  396. package/dist/actions/google-sheets/index.cjs.map +1 -0
  397. package/dist/actions/google-sheets/index.d.cts +7 -0
  398. package/dist/actions/google-sheets/index.d.cts.map +1 -0
  399. package/dist/actions/google-sheets/index.d.ts +7 -0
  400. package/dist/actions/google-sheets/index.d.ts.map +1 -0
  401. package/dist/actions/google-sheets/index.js +18 -0
  402. package/dist/actions/google-sheets/index.js.map +1 -0
  403. package/dist/actions/google-sheets/update-values.cjs +158 -0
  404. package/dist/actions/google-sheets/update-values.cjs.map +1 -0
  405. package/dist/actions/google-sheets/update-values.d.cts +1 -0
  406. package/dist/actions/google-sheets/update-values.d.ts +1 -0
  407. package/dist/actions/google-sheets/update-values.js +156 -0
  408. package/dist/actions/google-sheets/update-values.js.map +1 -0
  409. package/dist/actions/http/index.cjs +7 -0
  410. package/dist/actions/http/index.cjs.map +1 -0
  411. package/dist/actions/http/index.d.cts +7 -0
  412. package/dist/actions/http/index.d.cts.map +1 -0
  413. package/dist/actions/http/index.d.ts +7 -0
  414. package/dist/actions/http/index.d.ts.map +1 -0
  415. package/dist/actions/http/index.js +8 -0
  416. package/dist/actions/http/index.js.map +1 -0
  417. package/dist/actions/http/request.cjs +223 -0
  418. package/dist/actions/http/request.cjs.map +1 -0
  419. package/dist/actions/http/request.d.cts +1 -0
  420. package/dist/actions/http/request.d.ts +1 -0
  421. package/dist/actions/http/request.js +222 -0
  422. package/dist/actions/http/request.js.map +1 -0
  423. package/dist/actions/index.cjs +46 -0
  424. package/dist/actions/index.cjs.map +1 -0
  425. package/dist/actions/index.d.cts +27 -0
  426. package/dist/actions/index.d.cts.map +1 -0
  427. package/dist/actions/index.d.ts +27 -0
  428. package/dist/actions/index.d.ts.map +1 -0
  429. package/dist/actions/index.js +45 -0
  430. package/dist/actions/index.js.map +1 -0
  431. package/dist/actions/linear/create-issue.cjs +296 -0
  432. package/dist/actions/linear/create-issue.cjs.map +1 -0
  433. package/dist/actions/linear/create-issue.d.cts +1 -0
  434. package/dist/actions/linear/create-issue.d.ts +1 -0
  435. package/dist/actions/linear/create-issue.js +294 -0
  436. package/dist/actions/linear/create-issue.js.map +1 -0
  437. package/dist/actions/linear/index.cjs +16 -0
  438. package/dist/actions/linear/index.cjs.map +1 -0
  439. package/dist/actions/linear/index.d.cts +7 -0
  440. package/dist/actions/linear/index.d.cts.map +1 -0
  441. package/dist/actions/linear/index.d.ts +7 -0
  442. package/dist/actions/linear/index.d.ts.map +1 -0
  443. package/dist/actions/linear/index.js +16 -0
  444. package/dist/actions/linear/index.js.map +1 -0
  445. package/dist/actions/linear/list-issues.cjs +239 -0
  446. package/dist/actions/linear/list-issues.cjs.map +1 -0
  447. package/dist/actions/linear/list-issues.d.cts +1 -0
  448. package/dist/actions/linear/list-issues.d.ts +1 -0
  449. package/dist/actions/linear/list-issues.js +237 -0
  450. package/dist/actions/linear/list-issues.js.map +1 -0
  451. package/dist/actions/linear/list-teams.cjs +183 -0
  452. package/dist/actions/linear/list-teams.cjs.map +1 -0
  453. package/dist/actions/linear/list-teams.d.cts +1 -0
  454. package/dist/actions/linear/list-teams.d.ts +1 -0
  455. package/dist/actions/linear/list-teams.js +181 -0
  456. package/dist/actions/linear/list-teams.js.map +1 -0
  457. package/dist/actions/linear/update-issue.cjs +282 -0
  458. package/dist/actions/linear/update-issue.cjs.map +1 -0
  459. package/dist/actions/linear/update-issue.d.cts +1 -0
  460. package/dist/actions/linear/update-issue.d.ts +1 -0
  461. package/dist/actions/linear/update-issue.js +280 -0
  462. package/dist/actions/linear/update-issue.js.map +1 -0
  463. package/dist/actions/microsoft/get-calendar-event.cjs +139 -0
  464. package/dist/actions/microsoft/get-calendar-event.cjs.map +1 -0
  465. package/dist/actions/microsoft/get-calendar-event.d.cts +1 -0
  466. package/dist/actions/microsoft/get-calendar-event.d.ts +1 -0
  467. package/dist/actions/microsoft/get-calendar-event.js +137 -0
  468. package/dist/actions/microsoft/get-calendar-event.js.map +1 -0
  469. package/dist/actions/microsoft/get-meeting-transcript.cjs +221 -0
  470. package/dist/actions/microsoft/get-meeting-transcript.cjs.map +1 -0
  471. package/dist/actions/microsoft/get-meeting-transcript.d.cts +1 -0
  472. package/dist/actions/microsoft/get-meeting-transcript.d.ts +1 -0
  473. package/dist/actions/microsoft/get-meeting-transcript.js +219 -0
  474. package/dist/actions/microsoft/get-meeting-transcript.js.map +1 -0
  475. package/dist/actions/microsoft/get-message.cjs +173 -0
  476. package/dist/actions/microsoft/get-message.cjs.map +1 -0
  477. package/dist/actions/microsoft/get-message.d.cts +1 -0
  478. package/dist/actions/microsoft/get-message.d.ts +1 -0
  479. package/dist/actions/microsoft/get-message.js +171 -0
  480. package/dist/actions/microsoft/get-message.js.map +1 -0
  481. package/dist/actions/microsoft/index.cjs +22 -0
  482. package/dist/actions/microsoft/index.cjs.map +1 -0
  483. package/dist/actions/microsoft/index.d.cts +1 -0
  484. package/dist/actions/microsoft/index.d.ts +1 -0
  485. package/dist/actions/microsoft/index.js +22 -0
  486. package/dist/actions/microsoft/index.js.map +1 -0
  487. package/dist/actions/microsoft/list-calendar-events.cjs +202 -0
  488. package/dist/actions/microsoft/list-calendar-events.cjs.map +1 -0
  489. package/dist/actions/microsoft/list-calendar-events.d.cts +1 -0
  490. package/dist/actions/microsoft/list-calendar-events.d.ts +1 -0
  491. package/dist/actions/microsoft/list-calendar-events.js +200 -0
  492. package/dist/actions/microsoft/list-calendar-events.js.map +1 -0
  493. package/dist/actions/microsoft/list-calendars.cjs +99 -0
  494. package/dist/actions/microsoft/list-calendars.cjs.map +1 -0
  495. package/dist/actions/microsoft/list-calendars.d.cts +1 -0
  496. package/dist/actions/microsoft/list-calendars.d.ts +1 -0
  497. package/dist/actions/microsoft/list-calendars.js +97 -0
  498. package/dist/actions/microsoft/list-calendars.js.map +1 -0
  499. package/dist/actions/microsoft/list-messages.cjs +223 -0
  500. package/dist/actions/microsoft/list-messages.cjs.map +1 -0
  501. package/dist/actions/microsoft/list-messages.d.cts +1 -0
  502. package/dist/actions/microsoft/list-messages.d.ts +1 -0
  503. package/dist/actions/microsoft/list-messages.js +221 -0
  504. package/dist/actions/microsoft/list-messages.js.map +1 -0
  505. package/dist/actions/microsoft/list-online-meetings.cjs +132 -0
  506. package/dist/actions/microsoft/list-online-meetings.cjs.map +1 -0
  507. package/dist/actions/microsoft/list-online-meetings.d.cts +1 -0
  508. package/dist/actions/microsoft/list-online-meetings.d.ts +1 -0
  509. package/dist/actions/microsoft/list-online-meetings.js +130 -0
  510. package/dist/actions/microsoft/list-online-meetings.js.map +1 -0
  511. package/dist/actions/postgres/describe-table.cjs +175 -0
  512. package/dist/actions/postgres/describe-table.cjs.map +1 -0
  513. package/dist/actions/postgres/describe-table.d.cts +1 -0
  514. package/dist/actions/postgres/describe-table.d.ts +1 -0
  515. package/dist/actions/postgres/describe-table.js +165 -0
  516. package/dist/actions/postgres/describe-table.js.map +1 -0
  517. package/dist/actions/postgres/execute-query.cjs +120 -0
  518. package/dist/actions/postgres/execute-query.cjs.map +1 -0
  519. package/dist/actions/postgres/execute-query.d.cts +1 -0
  520. package/dist/actions/postgres/execute-query.d.ts +1 -0
  521. package/dist/actions/postgres/execute-query.js +110 -0
  522. package/dist/actions/postgres/execute-query.js.map +1 -0
  523. package/dist/actions/postgres/index.cjs +16 -0
  524. package/dist/actions/postgres/index.cjs.map +1 -0
  525. package/dist/actions/postgres/index.d.cts +7 -0
  526. package/dist/actions/postgres/index.d.cts.map +1 -0
  527. package/dist/actions/postgres/index.d.ts +7 -0
  528. package/dist/actions/postgres/index.d.ts.map +1 -0
  529. package/dist/actions/postgres/index.js +16 -0
  530. package/dist/actions/postgres/index.js.map +1 -0
  531. package/dist/actions/postgres/insert-rows.cjs +168 -0
  532. package/dist/actions/postgres/insert-rows.cjs.map +1 -0
  533. package/dist/actions/postgres/insert-rows.d.cts +1 -0
  534. package/dist/actions/postgres/insert-rows.d.ts +1 -0
  535. package/dist/actions/postgres/insert-rows.js +158 -0
  536. package/dist/actions/postgres/insert-rows.js.map +1 -0
  537. package/dist/actions/postgres/list-tables.cjs +133 -0
  538. package/dist/actions/postgres/list-tables.cjs.map +1 -0
  539. package/dist/actions/postgres/list-tables.d.cts +1 -0
  540. package/dist/actions/postgres/list-tables.d.ts +1 -0
  541. package/dist/actions/postgres/list-tables.js +123 -0
  542. package/dist/actions/postgres/list-tables.js.map +1 -0
  543. package/dist/actions/providers.cjs +128 -0
  544. package/dist/actions/providers.cjs.map +1 -0
  545. package/dist/actions/providers.d.cts +22 -0
  546. package/dist/actions/providers.d.cts.map +1 -0
  547. package/dist/actions/providers.d.ts +22 -0
  548. package/dist/actions/providers.d.ts.map +1 -0
  549. package/dist/actions/providers.js +116 -0
  550. package/dist/actions/providers.js.map +1 -0
  551. package/dist/actions/slack/index.cjs +9 -0
  552. package/dist/actions/slack/index.cjs.map +1 -0
  553. package/dist/actions/slack/index.d.cts +7 -0
  554. package/dist/actions/slack/index.d.cts.map +1 -0
  555. package/dist/actions/slack/index.d.ts +7 -0
  556. package/dist/actions/slack/index.d.ts.map +1 -0
  557. package/dist/actions/slack/index.js +9 -0
  558. package/dist/actions/slack/index.js.map +1 -0
  559. package/dist/actions/slack/list-channels.cjs +157 -0
  560. package/dist/actions/slack/list-channels.cjs.map +1 -0
  561. package/dist/actions/slack/list-channels.d.cts +1 -0
  562. package/dist/actions/slack/list-channels.d.ts +1 -0
  563. package/dist/actions/slack/list-channels.js +155 -0
  564. package/dist/actions/slack/list-channels.js.map +1 -0
  565. package/dist/actions/slack/send-message.cjs +157 -0
  566. package/dist/actions/slack/send-message.cjs.map +1 -0
  567. package/dist/actions/slack/send-message.d.cts +1 -0
  568. package/dist/actions/slack/send-message.d.ts +1 -0
  569. package/dist/actions/slack/send-message.js +155 -0
  570. package/dist/actions/slack/send-message.js.map +1 -0
  571. package/dist/actions/triggers/cron.cjs +95 -0
  572. package/dist/actions/triggers/cron.cjs.map +1 -0
  573. package/dist/actions/triggers/cron.d.cts +1 -0
  574. package/dist/actions/triggers/cron.d.ts +1 -0
  575. package/dist/actions/triggers/cron.js +83 -0
  576. package/dist/actions/triggers/cron.js.map +1 -0
  577. package/dist/actions/triggers/index.cjs +9 -0
  578. package/dist/actions/triggers/index.cjs.map +1 -0
  579. package/dist/actions/triggers/index.d.cts +1 -0
  580. package/dist/actions/triggers/index.d.ts +1 -0
  581. package/dist/actions/triggers/index.js +9 -0
  582. package/dist/actions/triggers/index.js.map +1 -0
  583. package/dist/actions/triggers/manual.cjs +105 -0
  584. package/dist/actions/triggers/manual.cjs.map +1 -0
  585. package/dist/actions/triggers/manual.d.cts +1 -0
  586. package/dist/actions/triggers/manual.d.ts +1 -0
  587. package/dist/actions/triggers/manual.js +103 -0
  588. package/dist/actions/triggers/manual.js.map +1 -0
  589. package/dist/actions/types.d.cts +373 -0
  590. package/dist/actions/types.d.cts.map +1 -0
  591. package/dist/actions/types.d.ts +373 -0
  592. package/dist/actions/types.d.ts.map +1 -0
  593. package/dist/database/adapter-factory.cjs +188 -0
  594. package/dist/database/adapter-factory.cjs.map +1 -0
  595. package/dist/database/adapter-factory.js +187 -0
  596. package/dist/database/adapter-factory.js.map +1 -0
  597. package/dist/database/adapter.cjs +33 -0
  598. package/dist/database/adapter.cjs.map +1 -0
  599. package/dist/database/adapter.d.cts +76 -0
  600. package/dist/database/adapter.d.cts.map +1 -0
  601. package/dist/database/adapter.d.ts +76 -0
  602. package/dist/database/adapter.d.ts.map +1 -0
  603. package/dist/database/adapter.js +33 -0
  604. package/dist/database/adapter.js.map +1 -0
  605. package/dist/database/adapters/connection-bridge.cjs +119 -0
  606. package/dist/database/adapters/connection-bridge.cjs.map +1 -0
  607. package/dist/database/adapters/connection-bridge.js +118 -0
  608. package/dist/database/adapters/connection-bridge.js.map +1 -0
  609. package/dist/database/adapters/kysely-adapter.cjs +138 -0
  610. package/dist/database/adapters/kysely-adapter.cjs.map +1 -0
  611. package/dist/database/adapters/kysely-adapter.js +137 -0
  612. package/dist/database/adapters/kysely-adapter.js.map +1 -0
  613. package/dist/database/connection.cjs +277 -0
  614. package/dist/database/connection.cjs.map +1 -0
  615. package/dist/database/connection.d.cts +115 -0
  616. package/dist/database/connection.d.cts.map +1 -0
  617. package/dist/database/connection.d.ts +115 -0
  618. package/dist/database/connection.d.ts.map +1 -0
  619. package/dist/database/connection.js +271 -0
  620. package/dist/database/connection.js.map +1 -0
  621. package/dist/database/core-schema.cjs +644 -0
  622. package/dist/database/core-schema.cjs.map +1 -0
  623. package/dist/database/core-schema.d.cts +22 -0
  624. package/dist/database/core-schema.d.cts.map +1 -0
  625. package/dist/database/core-schema.d.ts +22 -0
  626. package/dist/database/core-schema.d.ts.map +1 -0
  627. package/dist/database/core-schema.js +642 -0
  628. package/dist/database/core-schema.js.map +1 -0
  629. package/dist/database/index.cjs +4 -0
  630. package/dist/database/index.d.cts +10 -0
  631. package/dist/database/index.d.cts.map +1 -0
  632. package/dist/database/index.d.ts +10 -0
  633. package/dist/database/index.d.ts.map +1 -0
  634. package/dist/database/index.js +5 -0
  635. package/dist/database/prisma-schema-generator.cjs +219 -0
  636. package/dist/database/prisma-schema-generator.cjs.map +1 -0
  637. package/dist/database/prisma-schema-generator.d.cts +19 -0
  638. package/dist/database/prisma-schema-generator.d.cts.map +1 -0
  639. package/dist/database/prisma-schema-generator.d.ts +19 -0
  640. package/dist/database/prisma-schema-generator.d.ts.map +1 -0
  641. package/dist/database/prisma-schema-generator.js +218 -0
  642. package/dist/database/prisma-schema-generator.js.map +1 -0
  643. package/dist/database/schema-generator.cjs +576 -0
  644. package/dist/database/schema-generator.cjs.map +1 -0
  645. package/dist/database/schema-generator.d.cts +18 -0
  646. package/dist/database/schema-generator.d.cts.map +1 -0
  647. package/dist/database/schema-generator.d.ts +18 -0
  648. package/dist/database/schema-generator.d.ts.map +1 -0
  649. package/dist/database/schema-generator.js +571 -0
  650. package/dist/database/schema-generator.js.map +1 -0
  651. package/dist/database/schema-merger.cjs +153 -0
  652. package/dist/database/schema-merger.cjs.map +1 -0
  653. package/dist/database/schema-merger.d.cts +53 -0
  654. package/dist/database/schema-merger.d.cts.map +1 -0
  655. package/dist/database/schema-merger.d.ts +53 -0
  656. package/dist/database/schema-merger.d.ts.map +1 -0
  657. package/dist/database/schema-merger.js +152 -0
  658. package/dist/database/schema-merger.js.map +1 -0
  659. package/dist/database/schema-metadata.cjs +98 -0
  660. package/dist/database/schema-metadata.cjs.map +1 -0
  661. package/dist/database/schema-metadata.js +98 -0
  662. package/dist/database/schema-metadata.js.map +1 -0
  663. package/dist/database/schema-mysql.cjs +288 -0
  664. package/dist/database/schema-mysql.cjs.map +1 -0
  665. package/dist/database/schema-mysql.d.cts +2117 -0
  666. package/dist/database/schema-mysql.d.cts.map +1 -0
  667. package/dist/database/schema-mysql.d.ts +2117 -0
  668. package/dist/database/schema-mysql.d.ts.map +1 -0
  669. package/dist/database/schema-mysql.js +263 -0
  670. package/dist/database/schema-mysql.js.map +1 -0
  671. package/dist/database/schema-postgres.cjs +312 -0
  672. package/dist/database/schema-postgres.cjs.map +1 -0
  673. package/dist/database/schema-postgres.d.cts +2127 -0
  674. package/dist/database/schema-postgres.d.cts.map +1 -0
  675. package/dist/database/schema-postgres.d.ts +2127 -0
  676. package/dist/database/schema-postgres.d.ts.map +1 -0
  677. package/dist/database/schema-postgres.js +280 -0
  678. package/dist/database/schema-postgres.js.map +1 -0
  679. package/dist/database/schema-sqlite.cjs +247 -0
  680. package/dist/database/schema-sqlite.cjs.map +1 -0
  681. package/dist/database/schema-sqlite.d.cts +2294 -0
  682. package/dist/database/schema-sqlite.d.cts.map +1 -0
  683. package/dist/database/schema-sqlite.d.ts +2294 -0
  684. package/dist/database/schema-sqlite.d.ts.map +1 -0
  685. package/dist/database/schema-sqlite.js +222 -0
  686. package/dist/database/schema-sqlite.js.map +1 -0
  687. package/dist/database/schema-verification.cjs +123 -0
  688. package/dist/database/schema-verification.cjs.map +1 -0
  689. package/dist/database/schema-verification.d.cts +40 -0
  690. package/dist/database/schema-verification.d.cts.map +1 -0
  691. package/dist/database/schema-verification.d.ts +40 -0
  692. package/dist/database/schema-verification.d.ts.map +1 -0
  693. package/dist/database/schema-verification.js +123 -0
  694. package/dist/database/schema-verification.js.map +1 -0
  695. package/dist/database/schema.cjs +3 -0
  696. package/dist/database/schema.d.cts +3 -0
  697. package/dist/database/schema.d.ts +3 -0
  698. package/dist/database/schema.js +4 -0
  699. package/dist/index.cjs +199 -0
  700. package/dist/index.d.cts +70 -0
  701. package/dist/index.d.ts +70 -0
  702. package/dist/index.js +56 -0
  703. package/dist/invect-core.cjs +1688 -0
  704. package/dist/invect-core.cjs.map +1 -0
  705. package/dist/invect-core.d.cts +846 -0
  706. package/dist/invect-core.d.cts.map +1 -0
  707. package/dist/invect-core.d.ts +846 -0
  708. package/dist/invect-core.d.ts.map +1 -0
  709. package/dist/invect-core.js +1688 -0
  710. package/dist/invect-core.js.map +1 -0
  711. package/dist/nodes/agent-executor.cjs +881 -0
  712. package/dist/nodes/agent-executor.cjs.map +1 -0
  713. package/dist/nodes/agent-executor.d.cts +243 -0
  714. package/dist/nodes/agent-executor.d.cts.map +1 -0
  715. package/dist/nodes/agent-executor.d.ts +243 -0
  716. package/dist/nodes/agent-executor.d.ts.map +1 -0
  717. package/dist/nodes/agent-executor.js +877 -0
  718. package/dist/nodes/agent-executor.js.map +1 -0
  719. package/dist/nodes/base-node.cjs +174 -0
  720. package/dist/nodes/base-node.cjs.map +1 -0
  721. package/dist/nodes/base-node.d.cts +125 -0
  722. package/dist/nodes/base-node.d.cts.map +1 -0
  723. package/dist/nodes/base-node.d.ts +125 -0
  724. package/dist/nodes/base-node.d.ts.map +1 -0
  725. package/dist/nodes/base-node.js +170 -0
  726. package/dist/nodes/base-node.js.map +1 -0
  727. package/dist/nodes/executor-registry.cjs +46 -0
  728. package/dist/nodes/executor-registry.cjs.map +1 -0
  729. package/dist/nodes/executor-registry.d.cts +18 -0
  730. package/dist/nodes/executor-registry.d.cts.map +1 -0
  731. package/dist/nodes/executor-registry.d.ts +18 -0
  732. package/dist/nodes/executor-registry.d.ts.map +1 -0
  733. package/dist/nodes/executor-registry.js +46 -0
  734. package/dist/nodes/executor-registry.js.map +1 -0
  735. package/dist/nodes/index.cjs +2 -0
  736. package/dist/nodes/index.d.cts +3 -0
  737. package/dist/nodes/index.d.ts +3 -0
  738. package/dist/nodes/index.js +3 -0
  739. package/dist/services/agent-tool-executions/agent-tool-execution.service.cjs +110 -0
  740. package/dist/services/agent-tool-executions/agent-tool-execution.service.cjs.map +1 -0
  741. package/dist/services/agent-tool-executions/agent-tool-execution.service.d.cts +42 -0
  742. package/dist/services/agent-tool-executions/agent-tool-execution.service.d.cts.map +1 -0
  743. package/dist/services/agent-tool-executions/agent-tool-execution.service.d.ts +42 -0
  744. package/dist/services/agent-tool-executions/agent-tool-execution.service.d.ts.map +1 -0
  745. package/dist/services/agent-tool-executions/agent-tool-execution.service.js +110 -0
  746. package/dist/services/agent-tool-executions/agent-tool-execution.service.js.map +1 -0
  747. package/dist/services/agent-tool-executions/agent-tool-executions.model.cjs +152 -0
  748. package/dist/services/agent-tool-executions/agent-tool-executions.model.cjs.map +1 -0
  749. package/dist/services/agent-tool-executions/agent-tool-executions.model.d.cts +71 -0
  750. package/dist/services/agent-tool-executions/agent-tool-executions.model.d.cts.map +1 -0
  751. package/dist/services/agent-tool-executions/agent-tool-executions.model.d.ts +71 -0
  752. package/dist/services/agent-tool-executions/agent-tool-executions.model.d.ts.map +1 -0
  753. package/dist/services/agent-tool-executions/agent-tool-executions.model.js +152 -0
  754. package/dist/services/agent-tool-executions/agent-tool-executions.model.js.map +1 -0
  755. package/dist/services/agent-tools/agent-tool-registry.cjs +101 -0
  756. package/dist/services/agent-tools/agent-tool-registry.cjs.map +1 -0
  757. package/dist/services/agent-tools/agent-tool-registry.d.cts +51 -0
  758. package/dist/services/agent-tools/agent-tool-registry.d.cts.map +1 -0
  759. package/dist/services/agent-tools/agent-tool-registry.d.ts +51 -0
  760. package/dist/services/agent-tools/agent-tool-registry.d.ts.map +1 -0
  761. package/dist/services/agent-tools/agent-tool-registry.js +98 -0
  762. package/dist/services/agent-tools/agent-tool-registry.js.map +1 -0
  763. package/dist/services/agent-tools/builtin/index.cjs +17 -0
  764. package/dist/services/agent-tools/builtin/index.cjs.map +1 -0
  765. package/dist/services/agent-tools/builtin/index.js +17 -0
  766. package/dist/services/agent-tools/builtin/index.js.map +1 -0
  767. package/dist/services/agent-tools/builtin/json-logic-tool.cjs +73 -0
  768. package/dist/services/agent-tools/builtin/json-logic-tool.cjs.map +1 -0
  769. package/dist/services/agent-tools/builtin/json-logic-tool.js +70 -0
  770. package/dist/services/agent-tools/builtin/json-logic-tool.js.map +1 -0
  771. package/dist/services/agent-tools/builtin/math-tool.cjs +117 -0
  772. package/dist/services/agent-tools/builtin/math-tool.cjs.map +1 -0
  773. package/dist/services/agent-tools/builtin/math-tool.js +116 -0
  774. package/dist/services/agent-tools/builtin/math-tool.js.map +1 -0
  775. package/dist/services/agent-tools/index.cjs +2 -0
  776. package/dist/services/agent-tools/index.js +3 -0
  777. package/dist/services/ai/ai-types.cjs +37 -0
  778. package/dist/services/ai/ai-types.cjs.map +1 -0
  779. package/dist/services/ai/ai-types.d.cts +105 -0
  780. package/dist/services/ai/ai-types.d.cts.map +1 -0
  781. package/dist/services/ai/ai-types.d.ts +105 -0
  782. package/dist/services/ai/ai-types.d.ts.map +1 -0
  783. package/dist/services/ai/ai-types.js +35 -0
  784. package/dist/services/ai/ai-types.js.map +1 -0
  785. package/dist/services/ai/anthropic-adapter.cjs +411 -0
  786. package/dist/services/ai/anthropic-adapter.cjs.map +1 -0
  787. package/dist/services/ai/anthropic-adapter.d.cts +1 -0
  788. package/dist/services/ai/anthropic-adapter.d.ts +1 -0
  789. package/dist/services/ai/anthropic-adapter.js +409 -0
  790. package/dist/services/ai/anthropic-adapter.js.map +1 -0
  791. package/dist/services/ai/base-client.cjs +345 -0
  792. package/dist/services/ai/base-client.cjs.map +1 -0
  793. package/dist/services/ai/base-client.d.cts +138 -0
  794. package/dist/services/ai/base-client.d.cts.map +1 -0
  795. package/dist/services/ai/base-client.d.ts +138 -0
  796. package/dist/services/ai/base-client.d.ts.map +1 -0
  797. package/dist/services/ai/base-client.js +345 -0
  798. package/dist/services/ai/base-client.js.map +1 -0
  799. package/dist/services/ai/openai-adapter.cjs +460 -0
  800. package/dist/services/ai/openai-adapter.cjs.map +1 -0
  801. package/dist/services/ai/openai-adapter.d.cts +1 -0
  802. package/dist/services/ai/openai-adapter.d.ts +1 -0
  803. package/dist/services/ai/openai-adapter.js +458 -0
  804. package/dist/services/ai/openai-adapter.js.map +1 -0
  805. package/dist/services/ai/openrouter-adapter.cjs +124 -0
  806. package/dist/services/ai/openrouter-adapter.cjs.map +1 -0
  807. package/dist/services/ai/openrouter-adapter.d.cts +1 -0
  808. package/dist/services/ai/openrouter-adapter.d.ts +1 -0
  809. package/dist/services/ai/openrouter-adapter.js +122 -0
  810. package/dist/services/ai/openrouter-adapter.js.map +1 -0
  811. package/dist/services/ai/provider-adapter.cjs +72 -0
  812. package/dist/services/ai/provider-adapter.cjs.map +1 -0
  813. package/dist/services/ai/provider-adapter.d.cts +81 -0
  814. package/dist/services/ai/provider-adapter.d.cts.map +1 -0
  815. package/dist/services/ai/provider-adapter.d.ts +81 -0
  816. package/dist/services/ai/provider-adapter.d.ts.map +1 -0
  817. package/dist/services/ai/provider-adapter.js +72 -0
  818. package/dist/services/ai/provider-adapter.js.map +1 -0
  819. package/dist/services/auth/authorization.service.cjs +259 -0
  820. package/dist/services/auth/authorization.service.cjs.map +1 -0
  821. package/dist/services/auth/authorization.service.d.cts +102 -0
  822. package/dist/services/auth/authorization.service.d.cts.map +1 -0
  823. package/dist/services/auth/authorization.service.d.ts +102 -0
  824. package/dist/services/auth/authorization.service.d.ts.map +1 -0
  825. package/dist/services/auth/authorization.service.js +257 -0
  826. package/dist/services/auth/authorization.service.js.map +1 -0
  827. package/dist/services/auth/flow-access.service.cjs +259 -0
  828. package/dist/services/auth/flow-access.service.cjs.map +1 -0
  829. package/dist/services/auth/flow-access.service.d.cts +89 -0
  830. package/dist/services/auth/flow-access.service.d.cts.map +1 -0
  831. package/dist/services/auth/flow-access.service.d.ts +89 -0
  832. package/dist/services/auth/flow-access.service.d.ts.map +1 -0
  833. package/dist/services/auth/flow-access.service.js +259 -0
  834. package/dist/services/auth/flow-access.service.js.map +1 -0
  835. package/dist/services/auth/index.d.ts +2 -0
  836. package/dist/services/batch-jobs/batch-jobs.model.cjs +213 -0
  837. package/dist/services/batch-jobs/batch-jobs.model.cjs.map +1 -0
  838. package/dist/services/batch-jobs/batch-jobs.model.d.cts +79 -0
  839. package/dist/services/batch-jobs/batch-jobs.model.d.cts.map +1 -0
  840. package/dist/services/batch-jobs/batch-jobs.model.d.ts +79 -0
  841. package/dist/services/batch-jobs/batch-jobs.model.d.ts.map +1 -0
  842. package/dist/services/batch-jobs/batch-jobs.model.js +213 -0
  843. package/dist/services/batch-jobs/batch-jobs.model.js.map +1 -0
  844. package/dist/services/batch-jobs/batch-jobs.service.cjs +178 -0
  845. package/dist/services/batch-jobs/batch-jobs.service.cjs.map +1 -0
  846. package/dist/services/batch-jobs/batch-jobs.service.d.cts +83 -0
  847. package/dist/services/batch-jobs/batch-jobs.service.d.cts.map +1 -0
  848. package/dist/services/batch-jobs/batch-jobs.service.d.ts +83 -0
  849. package/dist/services/batch-jobs/batch-jobs.service.d.ts.map +1 -0
  850. package/dist/services/batch-jobs/batch-jobs.service.js +178 -0
  851. package/dist/services/batch-jobs/batch-jobs.service.js.map +1 -0
  852. package/dist/services/chat/chat-messages.model.cjs +143 -0
  853. package/dist/services/chat/chat-messages.model.cjs.map +1 -0
  854. package/dist/services/chat/chat-messages.model.d.cts +43 -0
  855. package/dist/services/chat/chat-messages.model.d.cts.map +1 -0
  856. package/dist/services/chat/chat-messages.model.d.ts +43 -0
  857. package/dist/services/chat/chat-messages.model.d.ts.map +1 -0
  858. package/dist/services/chat/chat-messages.model.js +142 -0
  859. package/dist/services/chat/chat-messages.model.js.map +1 -0
  860. package/dist/services/chat/chat-stream-session.cjs +181 -0
  861. package/dist/services/chat/chat-stream-session.cjs.map +1 -0
  862. package/dist/services/chat/chat-stream-session.d.cts +1 -0
  863. package/dist/services/chat/chat-stream-session.d.ts +1 -0
  864. package/dist/services/chat/chat-stream-session.js +181 -0
  865. package/dist/services/chat/chat-stream-session.js.map +1 -0
  866. package/dist/services/chat/chat-stream.service.cjs +205 -0
  867. package/dist/services/chat/chat-stream.service.cjs.map +1 -0
  868. package/dist/services/chat/chat-stream.service.d.cts +84 -0
  869. package/dist/services/chat/chat-stream.service.d.cts.map +1 -0
  870. package/dist/services/chat/chat-stream.service.d.ts +84 -0
  871. package/dist/services/chat/chat-stream.service.d.ts.map +1 -0
  872. package/dist/services/chat/chat-stream.service.js +205 -0
  873. package/dist/services/chat/chat-stream.service.js.map +1 -0
  874. package/dist/services/chat/chat-toolkit.cjs +125 -0
  875. package/dist/services/chat/chat-toolkit.cjs.map +1 -0
  876. package/dist/services/chat/chat-toolkit.d.cts +58 -0
  877. package/dist/services/chat/chat-toolkit.d.cts.map +1 -0
  878. package/dist/services/chat/chat-toolkit.d.ts +58 -0
  879. package/dist/services/chat/chat-toolkit.d.ts.map +1 -0
  880. package/dist/services/chat/chat-toolkit.js +124 -0
  881. package/dist/services/chat/chat-toolkit.js.map +1 -0
  882. package/dist/services/chat/chat-types.cjs +24 -0
  883. package/dist/services/chat/chat-types.cjs.map +1 -0
  884. package/dist/services/chat/chat-types.d.cts +134 -0
  885. package/dist/services/chat/chat-types.d.cts.map +1 -0
  886. package/dist/services/chat/chat-types.d.ts +134 -0
  887. package/dist/services/chat/chat-types.d.ts.map +1 -0
  888. package/dist/services/chat/chat-types.js +23 -0
  889. package/dist/services/chat/chat-types.js.map +1 -0
  890. package/dist/services/chat/index.cjs +5 -0
  891. package/dist/services/chat/index.d.cts +3 -0
  892. package/dist/services/chat/index.d.ts +3 -0
  893. package/dist/services/chat/index.js +6 -0
  894. package/dist/services/chat/system-prompt.cjs +223 -0
  895. package/dist/services/chat/system-prompt.cjs.map +1 -0
  896. package/dist/services/chat/system-prompt.d.cts +1 -0
  897. package/dist/services/chat/system-prompt.d.ts +1 -0
  898. package/dist/services/chat/system-prompt.js +223 -0
  899. package/dist/services/chat/system-prompt.js.map +1 -0
  900. package/dist/services/chat/tools/agent-tools.cjs +472 -0
  901. package/dist/services/chat/tools/agent-tools.cjs.map +1 -0
  902. package/dist/services/chat/tools/agent-tools.js +471 -0
  903. package/dist/services/chat/tools/agent-tools.js.map +1 -0
  904. package/dist/services/chat/tools/context-tools.cjs +252 -0
  905. package/dist/services/chat/tools/context-tools.cjs.map +1 -0
  906. package/dist/services/chat/tools/context-tools.js +251 -0
  907. package/dist/services/chat/tools/context-tools.js.map +1 -0
  908. package/dist/services/chat/tools/flow-tools.cjs +244 -0
  909. package/dist/services/chat/tools/flow-tools.cjs.map +1 -0
  910. package/dist/services/chat/tools/flow-tools.js +243 -0
  911. package/dist/services/chat/tools/flow-tools.js.map +1 -0
  912. package/dist/services/chat/tools/index.cjs +22 -0
  913. package/dist/services/chat/tools/index.cjs.map +1 -0
  914. package/dist/services/chat/tools/index.js +22 -0
  915. package/dist/services/chat/tools/index.js.map +1 -0
  916. package/dist/services/chat/tools/node-tools.cjs +323 -0
  917. package/dist/services/chat/tools/node-tools.cjs.map +1 -0
  918. package/dist/services/chat/tools/node-tools.js +322 -0
  919. package/dist/services/chat/tools/node-tools.js.map +1 -0
  920. package/dist/services/chat/tools/plan-tools.cjs +94 -0
  921. package/dist/services/chat/tools/plan-tools.cjs.map +1 -0
  922. package/dist/services/chat/tools/plan-tools.js +93 -0
  923. package/dist/services/chat/tools/plan-tools.js.map +1 -0
  924. package/dist/services/chat/tools/run-tools.cjs +121 -0
  925. package/dist/services/chat/tools/run-tools.cjs.map +1 -0
  926. package/dist/services/chat/tools/run-tools.js +120 -0
  927. package/dist/services/chat/tools/run-tools.js.map +1 -0
  928. package/dist/services/credentials/credentials.model.cjs +313 -0
  929. package/dist/services/credentials/credentials.model.cjs.map +1 -0
  930. package/dist/services/credentials/credentials.model.d.cts +27 -0
  931. package/dist/services/credentials/credentials.model.d.cts.map +1 -0
  932. package/dist/services/credentials/credentials.model.d.ts +27 -0
  933. package/dist/services/credentials/credentials.model.d.ts.map +1 -0
  934. package/dist/services/credentials/credentials.model.js +312 -0
  935. package/dist/services/credentials/credentials.model.js.map +1 -0
  936. package/dist/services/credentials/credentials.service.cjs +358 -0
  937. package/dist/services/credentials/credentials.service.cjs.map +1 -0
  938. package/dist/services/credentials/credentials.service.d.cts +156 -0
  939. package/dist/services/credentials/credentials.service.d.cts.map +1 -0
  940. package/dist/services/credentials/credentials.service.d.ts +156 -0
  941. package/dist/services/credentials/credentials.service.d.ts.map +1 -0
  942. package/dist/services/credentials/credentials.service.js +357 -0
  943. package/dist/services/credentials/credentials.service.js.map +1 -0
  944. package/dist/services/credentials/encryption.service.cjs +121 -0
  945. package/dist/services/credentials/encryption.service.cjs.map +1 -0
  946. package/dist/services/credentials/encryption.service.d.cts +70 -0
  947. package/dist/services/credentials/encryption.service.d.cts.map +1 -0
  948. package/dist/services/credentials/encryption.service.d.ts +70 -0
  949. package/dist/services/credentials/encryption.service.d.ts.map +1 -0
  950. package/dist/services/credentials/encryption.service.js +119 -0
  951. package/dist/services/credentials/encryption.service.js.map +1 -0
  952. package/dist/services/credentials/index.d.cts +4 -0
  953. package/dist/services/credentials/index.d.ts +4 -0
  954. package/dist/services/credentials/oauth2-providers.cjs +668 -0
  955. package/dist/services/credentials/oauth2-providers.cjs.map +1 -0
  956. package/dist/services/credentials/oauth2-providers.d.cts +39 -0
  957. package/dist/services/credentials/oauth2-providers.d.cts.map +1 -0
  958. package/dist/services/credentials/oauth2-providers.d.ts +39 -0
  959. package/dist/services/credentials/oauth2-providers.d.ts.map +1 -0
  960. package/dist/services/credentials/oauth2-providers.js +667 -0
  961. package/dist/services/credentials/oauth2-providers.js.map +1 -0
  962. package/dist/services/credentials/oauth2.service.cjs +252 -0
  963. package/dist/services/credentials/oauth2.service.cjs.map +1 -0
  964. package/dist/services/credentials/oauth2.service.d.cts +132 -0
  965. package/dist/services/credentials/oauth2.service.d.cts.map +1 -0
  966. package/dist/services/credentials/oauth2.service.d.ts +132 -0
  967. package/dist/services/credentials/oauth2.service.d.ts.map +1 -0
  968. package/dist/services/credentials/oauth2.service.js +251 -0
  969. package/dist/services/credentials/oauth2.service.js.map +1 -0
  970. package/dist/services/database/database.service.cjs +469 -0
  971. package/dist/services/database/database.service.cjs.map +1 -0
  972. package/dist/services/database/database.service.d.cts +162 -0
  973. package/dist/services/database/database.service.d.cts.map +1 -0
  974. package/dist/services/database/database.service.d.ts +162 -0
  975. package/dist/services/database/database.service.d.ts.map +1 -0
  976. package/dist/services/database/database.service.js +469 -0
  977. package/dist/services/database/database.service.js.map +1 -0
  978. package/dist/services/execution-event-bus.cjs +80 -0
  979. package/dist/services/execution-event-bus.cjs.map +1 -0
  980. package/dist/services/execution-event-bus.d.cts +57 -0
  981. package/dist/services/execution-event-bus.d.cts.map +1 -0
  982. package/dist/services/execution-event-bus.d.ts +57 -0
  983. package/dist/services/execution-event-bus.d.ts.map +1 -0
  984. package/dist/services/execution-event-bus.js +77 -0
  985. package/dist/services/execution-event-bus.js.map +1 -0
  986. package/dist/services/flow-orchestration/flow-run-coordinator.cjs +499 -0
  987. package/dist/services/flow-orchestration/flow-run-coordinator.cjs.map +1 -0
  988. package/dist/services/flow-orchestration/flow-run-coordinator.js +499 -0
  989. package/dist/services/flow-orchestration/flow-run-coordinator.js.map +1 -0
  990. package/dist/services/flow-orchestration/node-execution-coordinator.cjs +657 -0
  991. package/dist/services/flow-orchestration/node-execution-coordinator.cjs.map +1 -0
  992. package/dist/services/flow-orchestration/node-execution-coordinator.js +657 -0
  993. package/dist/services/flow-orchestration/node-execution-coordinator.js.map +1 -0
  994. package/dist/services/flow-orchestration.service.cjs +493 -0
  995. package/dist/services/flow-orchestration.service.cjs.map +1 -0
  996. package/dist/services/flow-orchestration.service.d.cts +149 -0
  997. package/dist/services/flow-orchestration.service.d.cts.map +1 -0
  998. package/dist/services/flow-orchestration.service.d.ts +149 -0
  999. package/dist/services/flow-orchestration.service.d.ts.map +1 -0
  1000. package/dist/services/flow-orchestration.service.js +493 -0
  1001. package/dist/services/flow-orchestration.service.js.map +1 -0
  1002. package/dist/services/flow-runs/flow-runs.model.cjs +403 -0
  1003. package/dist/services/flow-runs/flow-runs.model.cjs.map +1 -0
  1004. package/dist/services/flow-runs/flow-runs.model.d.cts +113 -0
  1005. package/dist/services/flow-runs/flow-runs.model.d.cts.map +1 -0
  1006. package/dist/services/flow-runs/flow-runs.model.d.ts +113 -0
  1007. package/dist/services/flow-runs/flow-runs.model.d.ts.map +1 -0
  1008. package/dist/services/flow-runs/flow-runs.model.js +403 -0
  1009. package/dist/services/flow-runs/flow-runs.model.js.map +1 -0
  1010. package/dist/services/flow-runs/flow-runs.service.cjs +273 -0
  1011. package/dist/services/flow-runs/flow-runs.service.cjs.map +1 -0
  1012. package/dist/services/flow-runs/flow-runs.service.d.cts +129 -0
  1013. package/dist/services/flow-runs/flow-runs.service.d.cts.map +1 -0
  1014. package/dist/services/flow-runs/flow-runs.service.d.ts +129 -0
  1015. package/dist/services/flow-runs/flow-runs.service.d.ts.map +1 -0
  1016. package/dist/services/flow-runs/flow-runs.service.js +273 -0
  1017. package/dist/services/flow-runs/flow-runs.service.js.map +1 -0
  1018. package/dist/services/flow-validator.cjs +149 -0
  1019. package/dist/services/flow-validator.cjs.map +1 -0
  1020. package/dist/services/flow-validator.js +149 -0
  1021. package/dist/services/flow-validator.js.map +1 -0
  1022. package/dist/services/flow-versions/flow-versions.model.cjs +231 -0
  1023. package/dist/services/flow-versions/flow-versions.model.cjs.map +1 -0
  1024. package/dist/services/flow-versions/flow-versions.model.d.cts +55 -0
  1025. package/dist/services/flow-versions/flow-versions.model.d.cts.map +1 -0
  1026. package/dist/services/flow-versions/flow-versions.model.d.ts +55 -0
  1027. package/dist/services/flow-versions/flow-versions.model.d.ts.map +1 -0
  1028. package/dist/services/flow-versions/flow-versions.model.js +231 -0
  1029. package/dist/services/flow-versions/flow-versions.model.js.map +1 -0
  1030. package/dist/services/flow-versions/flow-versions.service.cjs +72 -0
  1031. package/dist/services/flow-versions/flow-versions.service.cjs.map +1 -0
  1032. package/dist/services/flow-versions/flow-versions.service.d.cts +63 -0
  1033. package/dist/services/flow-versions/flow-versions.service.d.cts.map +1 -0
  1034. package/dist/services/flow-versions/flow-versions.service.d.ts +63 -0
  1035. package/dist/services/flow-versions/flow-versions.service.d.ts.map +1 -0
  1036. package/dist/services/flow-versions/flow-versions.service.js +72 -0
  1037. package/dist/services/flow-versions/flow-versions.service.js.map +1 -0
  1038. package/dist/services/flow-versions/schemas-fresh.cjs +90 -0
  1039. package/dist/services/flow-versions/schemas-fresh.cjs.map +1 -0
  1040. package/dist/services/flow-versions/schemas-fresh.d.cts +201 -0
  1041. package/dist/services/flow-versions/schemas-fresh.d.cts.map +1 -0
  1042. package/dist/services/flow-versions/schemas-fresh.d.ts +201 -0
  1043. package/dist/services/flow-versions/schemas-fresh.d.ts.map +1 -0
  1044. package/dist/services/flow-versions/schemas-fresh.js +85 -0
  1045. package/dist/services/flow-versions/schemas-fresh.js.map +1 -0
  1046. package/dist/services/flows/flows.model.cjs +273 -0
  1047. package/dist/services/flows/flows.model.cjs.map +1 -0
  1048. package/dist/services/flows/flows.model.d.cts +105 -0
  1049. package/dist/services/flows/flows.model.d.cts.map +1 -0
  1050. package/dist/services/flows/flows.model.d.ts +105 -0
  1051. package/dist/services/flows/flows.model.d.ts.map +1 -0
  1052. package/dist/services/flows/flows.model.js +273 -0
  1053. package/dist/services/flows/flows.model.js.map +1 -0
  1054. package/dist/services/flows/flows.service.cjs +134 -0
  1055. package/dist/services/flows/flows.service.cjs.map +1 -0
  1056. package/dist/services/flows/flows.service.d.cts +105 -0
  1057. package/dist/services/flows/flows.service.d.cts.map +1 -0
  1058. package/dist/services/flows/flows.service.d.ts +105 -0
  1059. package/dist/services/flows/flows.service.d.ts.map +1 -0
  1060. package/dist/services/flows/flows.service.js +134 -0
  1061. package/dist/services/flows/flows.service.js.map +1 -0
  1062. package/dist/services/graph.service.cjs +375 -0
  1063. package/dist/services/graph.service.cjs.map +1 -0
  1064. package/dist/services/graph.service.d.cts +90 -0
  1065. package/dist/services/graph.service.d.cts.map +1 -0
  1066. package/dist/services/graph.service.d.ts +90 -0
  1067. package/dist/services/graph.service.d.ts.map +1 -0
  1068. package/dist/services/graph.service.js +375 -0
  1069. package/dist/services/graph.service.js.map +1 -0
  1070. package/dist/services/node-data.service.cjs +232 -0
  1071. package/dist/services/node-data.service.cjs.map +1 -0
  1072. package/dist/services/node-data.service.d.cts +119 -0
  1073. package/dist/services/node-data.service.d.cts.map +1 -0
  1074. package/dist/services/node-data.service.d.ts +119 -0
  1075. package/dist/services/node-data.service.d.ts.map +1 -0
  1076. package/dist/services/node-data.service.js +230 -0
  1077. package/dist/services/node-data.service.js.map +1 -0
  1078. package/dist/services/node-executions/node-execution.service.cjs +236 -0
  1079. package/dist/services/node-executions/node-execution.service.cjs.map +1 -0
  1080. package/dist/services/node-executions/node-execution.service.d.cts +126 -0
  1081. package/dist/services/node-executions/node-execution.service.d.cts.map +1 -0
  1082. package/dist/services/node-executions/node-execution.service.d.ts +126 -0
  1083. package/dist/services/node-executions/node-execution.service.d.ts.map +1 -0
  1084. package/dist/services/node-executions/node-execution.service.js +236 -0
  1085. package/dist/services/node-executions/node-execution.service.js.map +1 -0
  1086. package/dist/services/node-executions/node-executions.model.cjs +300 -0
  1087. package/dist/services/node-executions/node-executions.model.cjs.map +1 -0
  1088. package/dist/services/node-executions/node-executions.model.d.cts +102 -0
  1089. package/dist/services/node-executions/node-executions.model.d.cts.map +1 -0
  1090. package/dist/services/node-executions/node-executions.model.d.ts +102 -0
  1091. package/dist/services/node-executions/node-executions.model.d.ts.map +1 -0
  1092. package/dist/services/node-executions/node-executions.model.js +300 -0
  1093. package/dist/services/node-executions/node-executions.model.js.map +1 -0
  1094. package/dist/services/plugin-manager.cjs +205 -0
  1095. package/dist/services/plugin-manager.cjs.map +1 -0
  1096. package/dist/services/plugin-manager.js +205 -0
  1097. package/dist/services/plugin-manager.js.map +1 -0
  1098. package/dist/services/react-flow-renderer.service.cjs +236 -0
  1099. package/dist/services/react-flow-renderer.service.cjs.map +1 -0
  1100. package/dist/services/react-flow-renderer.service.d.cts +149 -0
  1101. package/dist/services/react-flow-renderer.service.d.cts.map +1 -0
  1102. package/dist/services/react-flow-renderer.service.d.ts +149 -0
  1103. package/dist/services/react-flow-renderer.service.d.ts.map +1 -0
  1104. package/dist/services/react-flow-renderer.service.js +235 -0
  1105. package/dist/services/react-flow-renderer.service.js.map +1 -0
  1106. package/dist/services/service-factory.cjs +301 -0
  1107. package/dist/services/service-factory.cjs.map +1 -0
  1108. package/dist/services/service-factory.d.cts +172 -0
  1109. package/dist/services/service-factory.d.cts.map +1 -0
  1110. package/dist/services/service-factory.d.ts +172 -0
  1111. package/dist/services/service-factory.d.ts.map +1 -0
  1112. package/dist/services/service-factory.js +301 -0
  1113. package/dist/services/service-factory.js.map +1 -0
  1114. package/dist/services/templating/index.cjs +2 -0
  1115. package/dist/services/templating/index.d.ts +2 -0
  1116. package/dist/services/templating/index.js +3 -0
  1117. package/dist/services/templating/js-expression.service.cjs +148 -0
  1118. package/dist/services/templating/js-expression.service.cjs.map +1 -0
  1119. package/dist/services/templating/js-expression.service.d.cts +61 -0
  1120. package/dist/services/templating/js-expression.service.d.cts.map +1 -0
  1121. package/dist/services/templating/js-expression.service.d.ts +60 -0
  1122. package/dist/services/templating/js-expression.service.d.ts.map +1 -0
  1123. package/dist/services/templating/js-expression.service.js +143 -0
  1124. package/dist/services/templating/js-expression.service.js.map +1 -0
  1125. package/dist/services/templating/template.service.cjs +182 -0
  1126. package/dist/services/templating/template.service.cjs.map +1 -0
  1127. package/dist/services/templating/template.service.d.cts +62 -0
  1128. package/dist/services/templating/template.service.d.cts.map +1 -0
  1129. package/dist/services/templating/template.service.d.ts +62 -0
  1130. package/dist/services/templating/template.service.d.ts.map +1 -0
  1131. package/dist/services/templating/template.service.js +180 -0
  1132. package/dist/services/templating/template.service.js.map +1 -0
  1133. package/dist/services/triggers/cron-scheduler.service.cjs +141 -0
  1134. package/dist/services/triggers/cron-scheduler.service.cjs.map +1 -0
  1135. package/dist/services/triggers/cron-scheduler.service.d.cts +36 -0
  1136. package/dist/services/triggers/cron-scheduler.service.d.cts.map +1 -0
  1137. package/dist/services/triggers/cron-scheduler.service.d.ts +36 -0
  1138. package/dist/services/triggers/cron-scheduler.service.d.ts.map +1 -0
  1139. package/dist/services/triggers/cron-scheduler.service.js +140 -0
  1140. package/dist/services/triggers/cron-scheduler.service.js.map +1 -0
  1141. package/dist/services/triggers/flow-triggers.model.cjs +241 -0
  1142. package/dist/services/triggers/flow-triggers.model.cjs.map +1 -0
  1143. package/dist/services/triggers/flow-triggers.model.d.cts +53 -0
  1144. package/dist/services/triggers/flow-triggers.model.d.cts.map +1 -0
  1145. package/dist/services/triggers/flow-triggers.model.d.ts +53 -0
  1146. package/dist/services/triggers/flow-triggers.model.d.ts.map +1 -0
  1147. package/dist/services/triggers/flow-triggers.model.js +241 -0
  1148. package/dist/services/triggers/flow-triggers.model.js.map +1 -0
  1149. package/dist/services/triggers/flow-triggers.service.cjs +218 -0
  1150. package/dist/services/triggers/flow-triggers.service.cjs.map +1 -0
  1151. package/dist/services/triggers/flow-triggers.service.d.cts +77 -0
  1152. package/dist/services/triggers/flow-triggers.service.d.cts.map +1 -0
  1153. package/dist/services/triggers/flow-triggers.service.d.ts +77 -0
  1154. package/dist/services/triggers/flow-triggers.service.d.ts.map +1 -0
  1155. package/dist/services/triggers/flow-triggers.service.js +217 -0
  1156. package/dist/services/triggers/flow-triggers.service.js.map +1 -0
  1157. package/dist/services/triggers/index.cjs +3 -0
  1158. package/dist/services/triggers/index.d.cts +4 -0
  1159. package/dist/services/triggers/index.d.ts +4 -0
  1160. package/dist/services/triggers/index.js +4 -0
  1161. package/dist/services/triggers/trigger.types.d.cts +63 -0
  1162. package/dist/services/triggers/trigger.types.d.cts.map +1 -0
  1163. package/dist/services/triggers/trigger.types.d.ts +63 -0
  1164. package/dist/services/triggers/trigger.types.d.ts.map +1 -0
  1165. package/dist/types/agent-tool.types.cjs +20 -0
  1166. package/dist/types/agent-tool.types.cjs.map +1 -0
  1167. package/dist/types/agent-tool.types.d.cts +211 -0
  1168. package/dist/types/agent-tool.types.d.cts.map +1 -0
  1169. package/dist/types/agent-tool.types.d.ts +211 -0
  1170. package/dist/types/agent-tool.types.d.ts.map +1 -0
  1171. package/dist/types/agent-tool.types.js +18 -0
  1172. package/dist/types/agent-tool.types.js.map +1 -0
  1173. package/dist/types/auth.types.cjs +76 -0
  1174. package/dist/types/auth.types.cjs.map +1 -0
  1175. package/dist/types/auth.types.d.cts +235 -0
  1176. package/dist/types/auth.types.d.cts.map +1 -0
  1177. package/dist/types/auth.types.d.ts +235 -0
  1178. package/dist/types/auth.types.d.ts.map +1 -0
  1179. package/dist/types/auth.types.js +75 -0
  1180. package/dist/types/auth.types.js.map +1 -0
  1181. package/dist/types/base.cjs +25 -0
  1182. package/dist/types/base.cjs.map +1 -0
  1183. package/dist/types/base.d.cts +21 -0
  1184. package/dist/types/base.d.cts.map +1 -0
  1185. package/dist/types/base.d.ts +21 -0
  1186. package/dist/types/base.d.ts.map +1 -0
  1187. package/dist/types/base.js +24 -0
  1188. package/dist/types/base.js.map +1 -0
  1189. package/dist/types/common/errors.types.cjs +46 -0
  1190. package/dist/types/common/errors.types.cjs.map +1 -0
  1191. package/dist/types/common/errors.types.js +44 -0
  1192. package/dist/types/common/errors.types.js.map +1 -0
  1193. package/dist/types/graph-node-types.cjs +46 -0
  1194. package/dist/types/graph-node-types.cjs.map +1 -0
  1195. package/dist/types/graph-node-types.d.cts +32 -0
  1196. package/dist/types/graph-node-types.d.cts.map +1 -0
  1197. package/dist/types/graph-node-types.d.ts +32 -0
  1198. package/dist/types/graph-node-types.d.ts.map +1 -0
  1199. package/dist/types/graph-node-types.js +45 -0
  1200. package/dist/types/graph-node-types.js.map +1 -0
  1201. package/dist/types/node-config-update.types.d.cts +33 -0
  1202. package/dist/types/node-config-update.types.d.cts.map +1 -0
  1203. package/dist/types/node-config-update.types.d.ts +33 -0
  1204. package/dist/types/node-config-update.types.d.ts.map +1 -0
  1205. package/dist/types/node-definition.types.d.cts +88 -0
  1206. package/dist/types/node-definition.types.d.cts.map +1 -0
  1207. package/dist/types/node-definition.types.d.ts +88 -0
  1208. package/dist/types/node-definition.types.d.ts.map +1 -0
  1209. package/dist/types/node-execution.types.d.cts +39 -0
  1210. package/dist/types/node-execution.types.d.cts.map +1 -0
  1211. package/dist/types/node-execution.types.d.ts +39 -0
  1212. package/dist/types/node-execution.types.d.ts.map +1 -0
  1213. package/dist/types/node-io-types.cjs +19 -0
  1214. package/dist/types/node-io-types.cjs.map +1 -0
  1215. package/dist/types/node-io-types.d.cts +65 -0
  1216. package/dist/types/node-io-types.d.cts.map +1 -0
  1217. package/dist/types/node-io-types.d.ts +65 -0
  1218. package/dist/types/node-io-types.d.ts.map +1 -0
  1219. package/dist/types/node-io-types.js +18 -0
  1220. package/dist/types/node-io-types.js.map +1 -0
  1221. package/dist/types/node-output-schemas.cjs +51 -0
  1222. package/dist/types/node-output-schemas.cjs.map +1 -0
  1223. package/dist/types/node-output-schemas.js +50 -0
  1224. package/dist/types/node-output-schemas.js.map +1 -0
  1225. package/dist/types/plugin.types.d.cts +654 -0
  1226. package/dist/types/plugin.types.d.cts.map +1 -0
  1227. package/dist/types/plugin.types.d.ts +654 -0
  1228. package/dist/types/plugin.types.d.ts.map +1 -0
  1229. package/dist/types/schemas/flow/create-flow-version.schema.cjs +1 -0
  1230. package/dist/types/schemas/flow/create-flow-version.schema.d.ts +1 -0
  1231. package/dist/types/schemas/flow/create-flow-version.schema.js +2 -0
  1232. package/dist/types/schemas/flow/create-flow.schema.cjs +9 -0
  1233. package/dist/types/schemas/flow/create-flow.schema.cjs.map +1 -0
  1234. package/dist/types/schemas/flow/create-flow.schema.d.cts +14 -0
  1235. package/dist/types/schemas/flow/create-flow.schema.d.cts.map +1 -0
  1236. package/dist/types/schemas/flow/create-flow.schema.d.ts +14 -0
  1237. package/dist/types/schemas/flow/create-flow.schema.d.ts.map +1 -0
  1238. package/dist/types/schemas/flow/create-flow.schema.js +10 -0
  1239. package/dist/types/schemas/flow/create-flow.schema.js.map +1 -0
  1240. package/dist/types/schemas/flow/delete-flow.schema.cjs +11 -0
  1241. package/dist/types/schemas/flow/delete-flow.schema.cjs.map +1 -0
  1242. package/dist/types/schemas/flow/delete-flow.schema.d.ts +1 -0
  1243. package/dist/types/schemas/flow/delete-flow.schema.js +11 -0
  1244. package/dist/types/schemas/flow/delete-flow.schema.js.map +1 -0
  1245. package/dist/types/schemas/flow/flow-executions.schema.cjs +36 -0
  1246. package/dist/types/schemas/flow/flow-executions.schema.cjs.map +1 -0
  1247. package/dist/types/schemas/flow/flow-executions.schema.d.ts +1 -0
  1248. package/dist/types/schemas/flow/flow-executions.schema.js +35 -0
  1249. package/dist/types/schemas/flow/flow-executions.schema.js.map +1 -0
  1250. package/dist/types/schemas/flow/get-flow-by-id-response.schema.cjs +7 -0
  1251. package/dist/types/schemas/flow/get-flow-by-id-response.schema.cjs.map +1 -0
  1252. package/dist/types/schemas/flow/get-flow-by-id-response.schema.d.ts +1 -0
  1253. package/dist/types/schemas/flow/get-flow-by-id-response.schema.js +7 -0
  1254. package/dist/types/schemas/flow/get-flow-by-id-response.schema.js.map +1 -0
  1255. package/dist/types/schemas/flow/get-flow-versions-response.schema.cjs +1 -0
  1256. package/dist/types/schemas/flow/get-flow-versions-response.schema.d.ts +1 -0
  1257. package/dist/types/schemas/flow/get-flow-versions-response.schema.js +2 -0
  1258. package/dist/types/schemas/flow/get-flows-response.schema.cjs +6 -0
  1259. package/dist/types/schemas/flow/get-flows-response.schema.cjs.map +1 -0
  1260. package/dist/types/schemas/flow/get-flows-response.schema.d.ts +1 -0
  1261. package/dist/types/schemas/flow/get-flows-response.schema.js +7 -0
  1262. package/dist/types/schemas/flow/get-flows-response.schema.js.map +1 -0
  1263. package/dist/types/schemas/flow/index.cjs +9 -0
  1264. package/dist/types/schemas/flow/index.d.ts +1 -0
  1265. package/dist/types/schemas/flow/index.js +10 -0
  1266. package/dist/types/schemas/flow/update-flow.schema.cjs +1 -0
  1267. package/dist/types/schemas/flow/update-flow.schema.d.ts +1 -0
  1268. package/dist/types/schemas/flow/update-flow.schema.js +2 -0
  1269. package/dist/types/schemas/flow/validate-flow.schema.cjs +19 -0
  1270. package/dist/types/schemas/flow/validate-flow.schema.cjs.map +1 -0
  1271. package/dist/types/schemas/flow/validate-flow.schema.d.ts +1 -0
  1272. package/dist/types/schemas/flow/validate-flow.schema.js +19 -0
  1273. package/dist/types/schemas/flow/validate-flow.schema.js.map +1 -0
  1274. package/dist/types/schemas/index.cjs +3 -0
  1275. package/dist/types/schemas/index.d.ts +2 -0
  1276. package/dist/types/schemas/index.js +4 -0
  1277. package/dist/types/schemas/pagination-sort-filter.cjs +56 -0
  1278. package/dist/types/schemas/pagination-sort-filter.cjs.map +1 -0
  1279. package/dist/types/schemas/pagination-sort-filter.d.cts +38 -0
  1280. package/dist/types/schemas/pagination-sort-filter.d.cts.map +1 -0
  1281. package/dist/types/schemas/pagination-sort-filter.d.ts +38 -0
  1282. package/dist/types/schemas/pagination-sort-filter.d.ts.map +1 -0
  1283. package/dist/types/schemas/pagination-sort-filter.js +50 -0
  1284. package/dist/types/schemas/pagination-sort-filter.js.map +1 -0
  1285. package/dist/types/schemas-fresh/invect-config.cjs +181 -0
  1286. package/dist/types/schemas-fresh/invect-config.cjs.map +1 -0
  1287. package/dist/types/schemas-fresh/invect-config.d.cts +207 -0
  1288. package/dist/types/schemas-fresh/invect-config.d.cts.map +1 -0
  1289. package/dist/types/schemas-fresh/invect-config.d.ts +207 -0
  1290. package/dist/types/schemas-fresh/invect-config.d.ts.map +1 -0
  1291. package/dist/types/schemas-fresh/invect-config.js +174 -0
  1292. package/dist/types/schemas-fresh/invect-config.js.map +1 -0
  1293. package/dist/types/validation/common.schemas.cjs +41 -0
  1294. package/dist/types/validation/common.schemas.cjs.map +1 -0
  1295. package/dist/types/validation/common.schemas.js +39 -0
  1296. package/dist/types/validation/common.schemas.js.map +1 -0
  1297. package/dist/types/validation/flow.schemas.cjs +49 -0
  1298. package/dist/types/validation/flow.schemas.cjs.map +1 -0
  1299. package/dist/types/validation/flow.schemas.js +46 -0
  1300. package/dist/types/validation/flow.schemas.js.map +1 -0
  1301. package/dist/types/validation.cjs +49 -0
  1302. package/dist/types/validation.cjs.map +1 -0
  1303. package/dist/types/validation.d.cts +49 -0
  1304. package/dist/types/validation.d.cts.map +1 -0
  1305. package/dist/types/validation.d.ts +49 -0
  1306. package/dist/types/validation.d.ts.map +1 -0
  1307. package/dist/types/validation.js +48 -0
  1308. package/dist/types/validation.js.map +1 -0
  1309. package/dist/types-export.cjs +11 -0
  1310. package/dist/types-export.d.cts +25 -0
  1311. package/dist/types-export.d.ts +25 -0
  1312. package/dist/types-export.js +5 -0
  1313. package/dist/types-fresh.cjs +9 -0
  1314. package/dist/types-fresh.cjs.map +1 -0
  1315. package/dist/types-fresh.d.cts +129 -0
  1316. package/dist/types-fresh.d.cts.map +1 -0
  1317. package/dist/types-fresh.d.ts +129 -0
  1318. package/dist/types-fresh.d.ts.map +1 -0
  1319. package/dist/types-fresh.js +8 -0
  1320. package/dist/types-fresh.js.map +1 -0
  1321. package/dist/utils/id-generator.cjs +34 -0
  1322. package/dist/utils/id-generator.cjs.map +1 -0
  1323. package/dist/utils/id-generator.js +34 -0
  1324. package/dist/utils/id-generator.js.map +1 -0
  1325. package/dist/utils/logger.cjs +285 -0
  1326. package/dist/utils/logger.cjs.map +1 -0
  1327. package/dist/utils/logger.d.cts +161 -0
  1328. package/dist/utils/logger.d.cts.map +1 -0
  1329. package/dist/utils/logger.d.ts +160 -0
  1330. package/dist/utils/logger.d.ts.map +1 -0
  1331. package/dist/utils/logger.js +282 -0
  1332. package/dist/utils/logger.js.map +1 -0
  1333. package/dist/utils/node-slug.cjs +13 -0
  1334. package/dist/utils/node-slug.cjs.map +1 -0
  1335. package/dist/utils/node-slug.d.cts +8 -0
  1336. package/dist/utils/node-slug.d.cts.map +1 -0
  1337. package/dist/utils/node-slug.d.ts +8 -0
  1338. package/dist/utils/node-slug.d.ts.map +1 -0
  1339. package/dist/utils/node-slug.js +13 -0
  1340. package/dist/utils/node-slug.js.map +1 -0
  1341. package/dist/utils/provider-detection.cjs +72 -0
  1342. package/dist/utils/provider-detection.cjs.map +1 -0
  1343. package/dist/utils/provider-detection.js +72 -0
  1344. package/dist/utils/provider-detection.js.map +1 -0
  1345. package/dist/utils/url-safe-id.cjs +52 -0
  1346. package/dist/utils/url-safe-id.cjs.map +1 -0
  1347. package/dist/utils/url-safe-id.js +52 -0
  1348. package/dist/utils/url-safe-id.js.map +1 -0
  1349. package/package.json +121 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-providers.js","names":[],"sources":["../../../src/services/credentials/oauth2-providers.ts"],"sourcesContent":["/**\n * OAuth2 Provider Definitions\n *\n * Registry of OAuth2 providers with their configuration.\n * Each provider defines the URLs, scopes, and parameters needed for OAuth2 flow.\n *\n * Scopes and configurations verified against FlowiseAI/Flowise repository:\n * https://github.com/FlowiseAI/Flowise/tree/main/packages/components/credentials\n */\n\nexport interface OAuth2ProviderDefinition {\n /** Unique provider identifier */\n id: string;\n /** Human-readable name */\n name: string;\n /** Description of what this provider is for */\n description: string;\n /** Icon name (lucide icon) */\n icon?: string;\n /** OAuth2 authorization endpoint */\n authorizationUrl: string;\n /** OAuth2 token endpoint */\n tokenUrl: string;\n /** Default scopes for this provider */\n defaultScopes: string[];\n /** Additional query parameters for authorization request */\n additionalAuthParams?: Record<string, string>;\n /** Whether this provider supports refresh tokens */\n supportsRefresh: boolean;\n /** Separator for scopes in the authorization URL (default: \" \"). Linear uses \",\". */\n scopeSeparator?: string;\n /** Documentation URL for setup instructions */\n docsUrl?: string;\n /** Category for grouping in UI - based on product function, not company */\n category:\n | 'productivity' // Docs, spreadsheets, office suites\n | 'storage' // Cloud file storage and sync\n | 'communication' // Email, messaging, video conferencing\n | 'development' // Code repos, version control, CI/CD\n | 'project_management' // Task tracking, issue tracking, project tools\n | 'crm_sales' // Customer relationship management, sales pipelines\n | 'marketing' // Email marketing, social media, analytics\n | 'payments' // Payment processing, billing\n | 'support' // Customer support, helpdesk, ticketing\n | 'design' // Design tools, creative software\n | 'other';\n}\n\n/**\n * Built-in OAuth2 provider definitions\n * Verified against FlowiseAI credential definitions\n */\nexport const OAUTH2_PROVIDERS: Record<string, OAuth2ProviderDefinition> = {\n // =============================================================================\n // GOOGLE PROVIDERS\n // =============================================================================\n\n // Google Docs - Verified from FlowiseAI GoogleDocsOAuth2.credential.ts\n google_docs: {\n id: 'google_docs',\n name: 'Google Docs',\n description: 'Access Google Docs for document creation and editing',\n icon: 'FileText',\n authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth',\n tokenUrl: 'https://oauth2.googleapis.com/token',\n defaultScopes: [\n 'https://www.googleapis.com/auth/documents',\n 'https://www.googleapis.com/auth/drive',\n 'https://www.googleapis.com/auth/drive.file',\n ],\n additionalAuthParams: {\n access_type: 'offline',\n prompt: 'consent',\n },\n supportsRefresh: true,\n docsUrl: 'https://developers.google.com/docs/api/quickstart',\n category: 'productivity',\n },\n\n // Google Sheets - Verified from FlowiseAI GoogleSheetsOAuth2.credential.ts\n google_sheets: {\n id: 'google_sheets',\n name: 'Google Sheets',\n description: 'Access Google Sheets for spreadsheet operations',\n icon: 'Sheet',\n authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth',\n tokenUrl: 'https://oauth2.googleapis.com/token',\n defaultScopes: [\n 'https://www.googleapis.com/auth/drive.file',\n 'https://www.googleapis.com/auth/spreadsheets',\n 'https://www.googleapis.com/auth/drive.metadata',\n ],\n additionalAuthParams: {\n access_type: 'offline',\n prompt: 'consent',\n },\n supportsRefresh: true,\n docsUrl: 'https://developers.google.com/sheets/api/quickstart',\n category: 'productivity',\n },\n\n // Google Drive - Verified from FlowiseAI GoogleDriveOAuth2.credential.ts\n google_drive: {\n id: 'google_drive',\n name: 'Google Drive',\n description: 'Access Google Drive for file management',\n icon: 'HardDrive',\n authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth',\n tokenUrl: 'https://oauth2.googleapis.com/token',\n defaultScopes: [\n 'https://www.googleapis.com/auth/drive',\n 'https://www.googleapis.com/auth/drive.appdata',\n 'https://www.googleapis.com/auth/drive.photos.readonly',\n ],\n additionalAuthParams: {\n access_type: 'offline',\n prompt: 'consent',\n },\n supportsRefresh: true,\n docsUrl: 'https://developers.google.com/drive/api/quickstart',\n category: 'storage',\n },\n\n // Gmail - Verified from FlowiseAI GmailOAuth2.credential.ts\n // Updated scopes to match Flowise: gmail.readonly, gmail.compose, gmail.modify, gmail.labels\n google_gmail: {\n id: 'google_gmail',\n name: 'Gmail',\n description: 'Access Gmail for email operations',\n icon: 'Mail',\n authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth',\n tokenUrl: 'https://oauth2.googleapis.com/token',\n defaultScopes: [\n 'https://www.googleapis.com/auth/gmail.readonly',\n 'https://www.googleapis.com/auth/gmail.compose',\n 'https://www.googleapis.com/auth/gmail.modify',\n 'https://www.googleapis.com/auth/gmail.labels',\n ],\n additionalAuthParams: {\n access_type: 'offline',\n prompt: 'consent',\n },\n supportsRefresh: true,\n docsUrl: 'https://developers.google.com/gmail/api/quickstart',\n category: 'communication',\n },\n\n // Google Calendar - Verified from FlowiseAI GoogleCalendarOAuth2.credential.ts\n google_calendar: {\n id: 'google_calendar',\n name: 'Google Calendar',\n description: 'Access Google Calendar for event management',\n icon: 'Calendar',\n authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth',\n tokenUrl: 'https://oauth2.googleapis.com/token',\n defaultScopes: [\n 'https://www.googleapis.com/auth/calendar',\n 'https://www.googleapis.com/auth/calendar.events',\n ],\n additionalAuthParams: {\n access_type: 'offline',\n prompt: 'consent',\n },\n supportsRefresh: true,\n docsUrl: 'https://developers.google.com/calendar/api/quickstart',\n category: 'productivity',\n },\n\n // =============================================================================\n // MICROSOFT PROVIDERS\n // =============================================================================\n\n // Microsoft 365 (General) - Base Microsoft OAuth2 / Graph API\n microsoft: {\n id: 'microsoft',\n name: 'Microsoft 365',\n description:\n 'Access Microsoft 365 services via Graph API — calendars, mail, meetings, and more',\n icon: 'Cloud',\n authorizationUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',\n tokenUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',\n defaultScopes: [\n 'openid',\n 'profile',\n 'email',\n 'offline_access',\n 'User.Read',\n 'Calendars.Read',\n 'Mail.Read',\n 'Mail.ReadBasic',\n 'OnlineMeetings.Read',\n 'OnlineMeetingTranscript.Read.All',\n ],\n supportsRefresh: true,\n docsUrl:\n 'https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow',\n category: 'productivity',\n },\n\n // Microsoft Outlook - Verified from FlowiseAI MicrosoftOutlookOAuth2.credential.ts\n microsoft_outlook: {\n id: 'microsoft_outlook',\n name: 'Microsoft Outlook',\n description: 'Access Outlook for email, calendar, and contacts',\n icon: 'Mail',\n authorizationUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',\n tokenUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',\n defaultScopes: [\n 'openid',\n 'offline_access',\n 'Contacts.Read',\n 'Contacts.ReadWrite',\n 'Calendars.Read',\n 'Calendars.Read.Shared',\n 'Calendars.ReadWrite',\n 'Mail.Read',\n 'Mail.ReadWrite',\n 'Mail.ReadWrite.Shared',\n 'Mail.Send',\n 'Mail.Send.Shared',\n 'MailboxSettings.Read',\n ],\n supportsRefresh: true,\n docsUrl: 'https://docs.microsoft.com/en-us/graph/api/resources/mail-api-overview',\n category: 'communication',\n },\n\n // Microsoft Teams - Verified from FlowiseAI MicrosoftTeamsOAuth2.credential.ts\n microsoft_teams: {\n id: 'microsoft_teams',\n name: 'Microsoft Teams',\n description: 'Access Microsoft Teams for messaging and collaboration',\n icon: 'Users',\n authorizationUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',\n tokenUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',\n defaultScopes: [\n // Basic authentication\n 'openid',\n 'offline_access',\n // User permissions\n 'User.Read',\n 'User.ReadWrite.All',\n // Teams and Groups\n 'Group.ReadWrite.All',\n 'Team.ReadBasic.All',\n 'Team.Create',\n 'TeamMember.ReadWrite.All',\n // Channels\n 'Channel.ReadBasic.All',\n 'Channel.Create',\n 'Channel.Delete.All',\n 'ChannelMember.ReadWrite.All',\n // Chat operations\n 'Chat.ReadWrite',\n 'Chat.Create',\n 'ChatMember.ReadWrite',\n // Messages\n 'ChatMessage.Send',\n 'ChatMessage.Read',\n 'ChannelMessage.Send',\n 'ChannelMessage.Read.All',\n // Reactions and advanced features\n 'TeamsActivity.Send',\n ],\n supportsRefresh: true,\n docsUrl: 'https://docs.microsoft.com/en-us/graph/api/resources/teams-api-overview',\n category: 'communication',\n },\n\n // Microsoft OneDrive\n microsoft_onedrive: {\n id: 'microsoft_onedrive',\n name: 'Microsoft OneDrive',\n description: 'Access OneDrive for file storage and management',\n icon: 'HardDrive',\n authorizationUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',\n tokenUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',\n defaultScopes: [\n 'openid',\n 'offline_access',\n 'Files.Read',\n 'Files.Read.All',\n 'Files.ReadWrite',\n 'Files.ReadWrite.All',\n ],\n supportsRefresh: true,\n docsUrl: 'https://docs.microsoft.com/en-us/onedrive/developer/rest-api/',\n category: 'storage',\n },\n\n // =============================================================================\n // DEVELOPMENT\n // =============================================================================\n\n // GitHub - Verified from FlowiseAI (uses API tokens, not full OAuth2 in Flowise)\n github: {\n id: 'github',\n name: 'GitHub',\n description: 'Access GitHub repositories and issues',\n icon: 'Github',\n authorizationUrl: 'https://github.com/login/oauth/authorize',\n tokenUrl: 'https://github.com/login/oauth/access_token',\n defaultScopes: ['repo', 'read:user', 'user:email'],\n supportsRefresh: false, // GitHub tokens don't expire by default\n docsUrl: 'https://docs.github.com/en/apps/oauth-apps',\n category: 'development',\n },\n\n // =============================================================================\n // COMMUNICATION\n // =============================================================================\n\n // Slack - Based on FlowiseAI SlackApi.credential.ts (uses bot tokens)\n slack: {\n id: 'slack',\n name: 'Slack',\n description: 'Access Slack for messaging and channel operations',\n icon: 'MessageSquare',\n authorizationUrl: 'https://slack.com/oauth/v2/authorize',\n tokenUrl: 'https://slack.com/api/oauth.v2.access',\n defaultScopes: [\n 'channels:read',\n 'channels:write',\n 'chat:write',\n 'users:read',\n 'im:read',\n 'im:write',\n 'groups:read',\n ],\n supportsRefresh: true,\n docsUrl: 'https://api.slack.com/authentication/oauth-v2',\n category: 'communication',\n },\n\n // =============================================================================\n // PROJECT MANAGEMENT\n // =============================================================================\n\n // Jira (Atlassian Cloud) - Verified from FlowiseAI JiraApi.credential.ts\n jira: {\n id: 'jira',\n name: 'Jira',\n description: 'Access Jira for issue tracking and project management',\n icon: 'Bug',\n authorizationUrl: 'https://auth.atlassian.com/authorize',\n tokenUrl: 'https://auth.atlassian.com/oauth/token',\n defaultScopes: ['read:jira-work', 'write:jira-work', 'read:jira-user', 'offline_access'],\n additionalAuthParams: {\n audience: 'api.atlassian.com',\n prompt: 'consent',\n },\n supportsRefresh: true,\n docsUrl: 'https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/',\n category: 'project_management',\n },\n\n // Confluence Cloud - Based on FlowiseAI ConfluenceCloudApi.credential.ts\n confluence: {\n id: 'confluence',\n name: 'Confluence',\n description: 'Access Confluence for documentation and wiki pages',\n icon: 'BookOpen',\n authorizationUrl: 'https://auth.atlassian.com/authorize',\n tokenUrl: 'https://auth.atlassian.com/oauth/token',\n defaultScopes: [\n 'read:confluence-content.all',\n 'read:confluence-space.summary',\n 'write:confluence-content',\n 'offline_access',\n ],\n additionalAuthParams: {\n audience: 'api.atlassian.com',\n prompt: 'consent',\n },\n supportsRefresh: true,\n docsUrl: 'https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/',\n category: 'productivity',\n },\n\n // =============================================================================\n // OTHER PROVIDERS\n // =============================================================================\n\n // Notion - Verified (Notion uses internal OAuth, no traditional scopes)\n notion: {\n id: 'notion',\n name: 'Notion',\n description: 'Access Notion workspaces and pages',\n icon: 'FileText',\n authorizationUrl: 'https://api.notion.com/v1/oauth/authorize',\n tokenUrl: 'https://api.notion.com/v1/oauth/token',\n defaultScopes: [], // Notion doesn't use scopes, permissions are set during integration setup\n additionalAuthParams: {\n owner: 'user',\n },\n supportsRefresh: false,\n docsUrl: 'https://developers.notion.com/docs/authorization',\n category: 'productivity',\n },\n\n // Linear - Verified\n linear: {\n id: 'linear',\n name: 'Linear',\n description: 'Access Linear for issue tracking and project management',\n icon: 'CheckSquare',\n authorizationUrl: 'https://linear.app/oauth/authorize',\n tokenUrl: 'https://api.linear.app/oauth/token',\n defaultScopes: ['read', 'write', 'issues:create', 'comments:create'],\n scopeSeparator: ',',\n supportsRefresh: true,\n docsUrl: 'https://developers.linear.app/docs/oauth/authentication',\n category: 'project_management',\n },\n\n // Airtable - Verified\n airtable: {\n id: 'airtable',\n name: 'Airtable',\n description: 'Access Airtable bases and records',\n icon: 'Table',\n authorizationUrl: 'https://airtable.com/oauth2/v1/authorize',\n tokenUrl: 'https://airtable.com/oauth2/v1/token',\n defaultScopes: [\n 'data.records:read',\n 'data.records:write',\n 'schema.bases:read',\n 'schema.bases:write',\n ],\n supportsRefresh: true,\n docsUrl: 'https://airtable.com/developers/web/api/oauth-reference',\n category: 'productivity',\n },\n\n // Figma - Based on FlowiseAI FigmaApi.credential.ts\n figma: {\n id: 'figma',\n name: 'Figma',\n description: 'Access Figma for design files and collaboration',\n icon: 'Figma',\n authorizationUrl: 'https://www.figma.com/oauth',\n tokenUrl: 'https://www.figma.com/api/oauth/token',\n defaultScopes: ['files:read', 'file_comments:write'],\n supportsRefresh: true,\n docsUrl: 'https://www.figma.com/developers/api#authentication',\n category: 'design',\n },\n\n // Dropbox\n dropbox: {\n id: 'dropbox',\n name: 'Dropbox',\n description: 'Access Dropbox for file storage and sharing',\n icon: 'Cloud',\n authorizationUrl: 'https://www.dropbox.com/oauth2/authorize',\n tokenUrl: 'https://api.dropboxapi.com/oauth2/token',\n defaultScopes: [\n 'account_info.read',\n 'files.content.read',\n 'files.content.write',\n 'files.metadata.read',\n 'files.metadata.write',\n ],\n additionalAuthParams: {\n token_access_type: 'offline',\n },\n supportsRefresh: true,\n docsUrl: 'https://www.dropbox.com/developers/documentation/http/documentation',\n category: 'storage',\n },\n\n // HubSpot\n hubspot: {\n id: 'hubspot',\n name: 'HubSpot',\n description: 'Access HubSpot CRM for contacts, deals, and marketing',\n icon: 'Users',\n authorizationUrl: 'https://app.hubspot.com/oauth/authorize',\n tokenUrl: 'https://api.hubapi.com/oauth/v1/token',\n defaultScopes: [\n 'crm.objects.contacts.read',\n 'crm.objects.contacts.write',\n 'crm.objects.companies.read',\n 'crm.objects.deals.read',\n 'crm.objects.deals.write',\n ],\n supportsRefresh: true,\n docsUrl: 'https://developers.hubspot.com/docs/api/oauth-quickstart-guide',\n category: 'crm_sales',\n },\n\n // Salesforce\n salesforce: {\n id: 'salesforce',\n name: 'Salesforce',\n description: 'Access Salesforce CRM for sales and customer data',\n icon: 'Cloud',\n authorizationUrl: 'https://login.salesforce.com/services/oauth2/authorize',\n tokenUrl: 'https://login.salesforce.com/services/oauth2/token',\n defaultScopes: ['api', 'refresh_token', 'offline_access'],\n supportsRefresh: true,\n docsUrl:\n 'https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_oauth_and_connected_apps.htm',\n category: 'crm_sales',\n },\n\n // Asana\n asana: {\n id: 'asana',\n name: 'Asana',\n description: 'Access Asana for task and project management',\n icon: 'CheckSquare',\n authorizationUrl: 'https://app.asana.com/-/oauth_authorize',\n tokenUrl: 'https://app.asana.com/-/oauth_token',\n defaultScopes: ['default'], // Asana uses 'default' scope for full access\n supportsRefresh: true,\n docsUrl: 'https://developers.asana.com/docs/oauth',\n category: 'project_management',\n },\n\n // Trello\n trello: {\n id: 'trello',\n name: 'Trello',\n description: 'Access Trello boards, cards, and lists',\n icon: 'Layout',\n authorizationUrl: 'https://trello.com/1/authorize',\n tokenUrl: 'https://trello.com/1/OAuthGetAccessToken',\n defaultScopes: ['read', 'write'],\n additionalAuthParams: {\n expiration: 'never',\n name: 'Invect',\n },\n supportsRefresh: false, // Trello uses OAuth 1.0a style with non-expiring tokens\n docsUrl: 'https://developer.atlassian.com/cloud/trello/guides/rest-api/authorization/',\n category: 'project_management',\n },\n\n // Zoom\n zoom: {\n id: 'zoom',\n name: 'Zoom',\n description: 'Access Zoom for meetings and webinars',\n icon: 'Video',\n authorizationUrl: 'https://zoom.us/oauth/authorize',\n tokenUrl: 'https://zoom.us/oauth/token',\n defaultScopes: ['meeting:read', 'meeting:write', 'user:read', 'webinar:read', 'webinar:write'],\n supportsRefresh: true,\n docsUrl: 'https://developers.zoom.us/docs/integrations/oauth/',\n category: 'communication',\n },\n\n // Discord\n discord: {\n id: 'discord',\n name: 'Discord',\n description: 'Access Discord for messaging and server management',\n icon: 'MessageSquare',\n authorizationUrl: 'https://discord.com/api/oauth2/authorize',\n tokenUrl: 'https://discord.com/api/oauth2/token',\n defaultScopes: ['identify', 'email', 'guilds', 'guilds.members.read', 'bot', 'messages.read'],\n supportsRefresh: true,\n docsUrl: 'https://discord.com/developers/docs/topics/oauth2',\n category: 'communication',\n },\n\n // Twitter/X\n twitter: {\n id: 'twitter',\n name: 'Twitter / X',\n description: 'Access Twitter/X for tweets and user data',\n icon: 'Twitter',\n authorizationUrl: 'https://twitter.com/i/oauth2/authorize',\n tokenUrl: 'https://api.twitter.com/2/oauth2/token',\n defaultScopes: ['tweet.read', 'tweet.write', 'users.read', 'offline.access'],\n additionalAuthParams: {\n code_challenge_method: 'S256',\n },\n supportsRefresh: true,\n docsUrl: 'https://developer.twitter.com/en/docs/authentication/oauth-2-0',\n category: 'marketing',\n },\n\n // Spotify\n spotify: {\n id: 'spotify',\n name: 'Spotify',\n description: 'Access Spotify for music and playlist management',\n icon: 'Music',\n authorizationUrl: 'https://accounts.spotify.com/authorize',\n tokenUrl: 'https://accounts.spotify.com/api/token',\n defaultScopes: [\n 'user-read-email',\n 'user-read-private',\n 'playlist-read-private',\n 'playlist-modify-public',\n 'playlist-modify-private',\n ],\n supportsRefresh: true,\n docsUrl: 'https://developer.spotify.com/documentation/web-api/tutorials/code-flow',\n category: 'other',\n },\n\n // Shopify\n shopify: {\n id: 'shopify',\n name: 'Shopify',\n description: 'Access Shopify for e-commerce store management',\n icon: 'ShoppingBag',\n authorizationUrl: 'https://{shop}.myshopify.com/admin/oauth/authorize',\n tokenUrl: 'https://{shop}.myshopify.com/admin/oauth/access_token',\n defaultScopes: [\n 'read_products',\n 'write_products',\n 'read_orders',\n 'write_orders',\n 'read_customers',\n ],\n supportsRefresh: false, // Shopify tokens don't expire\n docsUrl: 'https://shopify.dev/docs/apps/auth/oauth',\n category: 'other', // ecommerce\n },\n\n // Intercom\n intercom: {\n id: 'intercom',\n name: 'Intercom',\n description: 'Access Intercom for customer messaging and support',\n icon: 'MessageCircle',\n authorizationUrl: 'https://app.intercom.com/oauth',\n tokenUrl: 'https://api.intercom.io/auth/eagle/token',\n defaultScopes: [], // Intercom doesn't use scopes in OAuth flow\n supportsRefresh: false,\n docsUrl: 'https://developers.intercom.com/building-apps/docs/setting-up-oauth',\n category: 'support',\n },\n\n // Zendesk\n zendesk: {\n id: 'zendesk',\n name: 'Zendesk',\n description: 'Access Zendesk for customer support and ticketing',\n icon: 'Headphones',\n authorizationUrl: 'https://{subdomain}.zendesk.com/oauth/authorizations/new',\n tokenUrl: 'https://{subdomain}.zendesk.com/oauth/tokens',\n defaultScopes: ['read', 'write'],\n supportsRefresh: true,\n docsUrl: 'https://developer.zendesk.com/documentation/live-chat/getting-started/auth/',\n category: 'support',\n },\n\n // Box\n box: {\n id: 'box',\n name: 'Box',\n description: 'Access Box for file storage and collaboration',\n icon: 'Box',\n authorizationUrl: 'https://account.box.com/api/oauth2/authorize',\n tokenUrl: 'https://api.box.com/oauth2/token',\n defaultScopes: [], // Box doesn't use scopes in authorization\n supportsRefresh: true,\n docsUrl: 'https://developer.box.com/guides/authentication/oauth2/',\n category: 'storage',\n },\n\n // Pipedrive\n pipedrive: {\n id: 'pipedrive',\n name: 'Pipedrive',\n description: 'Access Pipedrive CRM for sales pipeline management',\n icon: 'TrendingUp',\n authorizationUrl: 'https://oauth.pipedrive.com/oauth/authorize',\n tokenUrl: 'https://oauth.pipedrive.com/oauth/token',\n defaultScopes: [], // Pipedrive uses app-level permissions, not OAuth scopes\n supportsRefresh: true,\n docsUrl: 'https://pipedrive.readme.io/docs/marketplace-oauth-authorization',\n category: 'crm_sales',\n },\n\n // Monday.com\n monday: {\n id: 'monday',\n name: 'Monday.com',\n description: 'Access Monday.com for work management',\n icon: 'Calendar',\n authorizationUrl: 'https://auth.monday.com/oauth2/authorize',\n tokenUrl: 'https://auth.monday.com/oauth2/token',\n defaultScopes: ['me:read', 'boards:read', 'boards:write'],\n supportsRefresh: true,\n docsUrl: 'https://developer.monday.com/apps/docs/oauth',\n category: 'project_management',\n },\n\n // ClickUp\n clickup: {\n id: 'clickup',\n name: 'ClickUp',\n description: 'Access ClickUp for project and task management',\n icon: 'CheckCircle',\n authorizationUrl: 'https://app.clickup.com/api',\n tokenUrl: 'https://api.clickup.com/api/v2/oauth/token',\n defaultScopes: [], // ClickUp doesn't use OAuth scopes\n supportsRefresh: true,\n docsUrl: 'https://clickup.com/api/developer-portal/authentication/',\n category: 'project_management',\n },\n\n // Freshdesk\n freshdesk: {\n id: 'freshdesk',\n name: 'Freshdesk',\n description: 'Access Freshdesk for customer support ticketing',\n icon: 'Headphones',\n authorizationUrl: 'https://{domain}.freshdesk.com/oauth/authorize',\n tokenUrl: 'https://{domain}.freshdesk.com/oauth/token',\n defaultScopes: [], // Freshdesk uses API key or OAuth without scopes\n supportsRefresh: true,\n docsUrl: 'https://developers.freshdesk.com/api/#authentication',\n category: 'support',\n },\n\n // QuickBooks\n quickbooks: {\n id: 'quickbooks',\n name: 'QuickBooks',\n description: 'Access QuickBooks for accounting and financial data',\n icon: 'DollarSign',\n authorizationUrl: 'https://appcenter.intuit.com/connect/oauth2',\n tokenUrl: 'https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer',\n defaultScopes: ['com.intuit.quickbooks.accounting'],\n supportsRefresh: true,\n docsUrl:\n 'https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0',\n category: 'payments', // accounting/finance\n },\n\n // Mailchimp\n mailchimp: {\n id: 'mailchimp',\n name: 'Mailchimp',\n description: 'Access Mailchimp for email marketing and audiences',\n icon: 'Mail',\n authorizationUrl: 'https://login.mailchimp.com/oauth2/authorize',\n tokenUrl: 'https://login.mailchimp.com/oauth2/token',\n defaultScopes: [], // Mailchimp doesn't use OAuth scopes\n supportsRefresh: false, // Mailchimp tokens don't expire\n docsUrl: 'https://mailchimp.com/developer/marketing/guides/access-user-data-oauth-2/',\n category: 'marketing',\n },\n\n // Stripe\n stripe: {\n id: 'stripe',\n name: 'Stripe',\n description: 'Access Stripe for payment processing',\n icon: 'CreditCard',\n authorizationUrl: 'https://connect.stripe.com/oauth/authorize',\n tokenUrl: 'https://connect.stripe.com/oauth/token',\n defaultScopes: ['read_write'],\n supportsRefresh: true,\n docsUrl: 'https://stripe.com/docs/connect/oauth-reference',\n category: 'payments',\n },\n\n // PayPal\n paypal: {\n id: 'paypal',\n name: 'PayPal',\n description: 'Access PayPal for payment processing',\n icon: 'DollarSign',\n authorizationUrl: 'https://www.paypal.com/signin/authorize',\n tokenUrl: 'https://api.paypal.com/v1/oauth2/token',\n defaultScopes: ['openid', 'email'],\n supportsRefresh: true,\n docsUrl: 'https://developer.paypal.com/docs/log-in-with-paypal/integrate/',\n category: 'payments',\n },\n};\n\n/**\n * Get a provider definition by ID\n */\nexport function getOAuth2Provider(providerId: string): OAuth2ProviderDefinition | undefined {\n return OAUTH2_PROVIDERS[providerId];\n}\n\n/**\n * Get all provider definitions\n */\nexport function getAllOAuth2Providers(): OAuth2ProviderDefinition[] {\n return Object.values(OAUTH2_PROVIDERS);\n}\n\n/**\n * Get providers by category\n */\nexport function getOAuth2ProvidersByCategory(\n category: OAuth2ProviderDefinition['category'],\n): OAuth2ProviderDefinition[] {\n return Object.values(OAUTH2_PROVIDERS).filter((p) => p.category === category);\n}\n"],"mappings":";;;;;AAoDA,MAAa,mBAA6D;CAMxE,aAAa;EACX,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GACb;GACA;GACA;GACD;EACD,sBAAsB;GACpB,aAAa;GACb,QAAQ;GACT;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAGD,eAAe;EACb,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GACb;GACA;GACA;GACD;EACD,sBAAsB;GACpB,aAAa;GACb,QAAQ;GACT;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAGD,cAAc;EACZ,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GACb;GACA;GACA;GACD;EACD,sBAAsB;GACpB,aAAa;GACb,QAAQ;GACT;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAID,cAAc;EACZ,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GACb;GACA;GACA;GACA;GACD;EACD,sBAAsB;GACpB,aAAa;GACb,QAAQ;GACT;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAGD,iBAAiB;EACf,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe,CACb,4CACA,kDACD;EACD,sBAAsB;GACpB,aAAa;GACb,QAAQ;GACT;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAOD,WAAW;EACT,IAAI;EACJ,MAAM;EACN,aACE;EACF,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GACb;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,iBAAiB;EACjB,SACE;EACF,UAAU;EACX;CAGD,mBAAmB;EACjB,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GACb;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAGD,iBAAiB;EACf,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GAEb;GACA;GAEA;GACA;GAEA;GACA;GACA;GACA;GAEA;GACA;GACA;GACA;GAEA;GACA;GACA;GAEA;GACA;GACA;GACA;GAEA;GACD;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAGD,oBAAoB;EAClB,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GACb;GACA;GACA;GACA;GACA;GACA;GACD;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAOD,QAAQ;EACN,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GAAC;GAAQ;GAAa;GAAa;EAClD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAOD,OAAO;EACL,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GACb;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAOD,MAAM;EACJ,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GAAC;GAAkB;GAAmB;GAAkB;GAAiB;EACxF,sBAAsB;GACpB,UAAU;GACV,QAAQ;GACT;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAGD,YAAY;EACV,IAAI;EACJ,MAAM;EACN,aAAa;EACb,MAAM;EACN,kBAAkB;EAClB,UAAU;EACV,eAAe;GACb;GACA;GACA;GACA;GACD;EACD,sBAAsB;GACpB,UAAU;GACV,QAAQ;GACT;EACD,iBAAiB;EACjB,SAAS;EACT,UAAU;EACX;CAOD,QAAQ;EACN,IAAI;EACJ,MAAM;EACN,aAAa;EACb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"}
@@ -0,0 +1,252 @@
1
+ require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_oauth2_providers = require("./oauth2-providers.cjs");
3
+ let crypto = require("crypto");
4
+ //#region src/services/credentials/oauth2.service.ts
5
+ /**
6
+ * OAuth2 Service
7
+ *
8
+ * Handles OAuth2 authorization flow:
9
+ * 1. Generate authorization URL with state
10
+ * 2. Exchange authorization code for tokens
11
+ * 3. Refresh access tokens when expired
12
+ */
13
+ const pendingStates = /* @__PURE__ */ new Map();
14
+ const STATE_EXPIRY_MS = 600 * 1e3;
15
+ function cleanupExpiredStates() {
16
+ const now = Date.now();
17
+ for (const [state, pending] of pendingStates.entries()) if (now - pending.createdAt > STATE_EXPIRY_MS) pendingStates.delete(state);
18
+ }
19
+ setInterval(cleanupExpiredStates, 300 * 1e3);
20
+ /**
21
+ * OAuth2 Service for handling authorization flows
22
+ */
23
+ var OAuth2Service = class {
24
+ constructor(logger) {
25
+ this.logger = logger;
26
+ }
27
+ /**
28
+ * Get all available OAuth2 providers
29
+ */
30
+ getProviders() {
31
+ return require_oauth2_providers.getAllOAuth2Providers();
32
+ }
33
+ /**
34
+ * Get a specific OAuth2 provider
35
+ */
36
+ getProvider(providerId) {
37
+ return require_oauth2_providers.getOAuth2Provider(providerId);
38
+ }
39
+ /**
40
+ * Start an OAuth2 authorization flow
41
+ *
42
+ * @param providerId - The OAuth2 provider ID
43
+ * @param appConfig - OAuth app credentials and redirect URI
44
+ * @param options - Additional options
45
+ * @returns Authorization URL and state to redirect user to
46
+ */
47
+ startAuthorizationFlow(providerId, appConfig, options = {}) {
48
+ const provider = require_oauth2_providers.getOAuth2Provider(providerId);
49
+ if (!provider) throw new Error(`Unknown OAuth2 provider: ${providerId}`);
50
+ const state = (0, crypto.randomBytes)(32).toString("hex");
51
+ const codeVerifier = (0, crypto.randomBytes)(32).toString("base64url");
52
+ const codeChallenge = (0, crypto.createHash)("sha256").update(codeVerifier).digest("base64url");
53
+ const params = new URLSearchParams({
54
+ client_id: appConfig.clientId,
55
+ redirect_uri: appConfig.redirectUri,
56
+ response_type: "code",
57
+ state,
58
+ code_challenge: codeChallenge,
59
+ code_challenge_method: "S256"
60
+ });
61
+ const scopes = options.scopes ?? provider.defaultScopes;
62
+ if (scopes.length > 0) {
63
+ const separator = provider.scopeSeparator ?? " ";
64
+ params.set("scope", scopes.join(separator));
65
+ }
66
+ if (provider.additionalAuthParams) for (const [key, value] of Object.entries(provider.additionalAuthParams)) params.set(key, value);
67
+ const authorizationUrl = `${provider.authorizationUrl}?${params.toString()}`;
68
+ const pendingState = {
69
+ state,
70
+ providerId,
71
+ codeVerifier,
72
+ returnUrl: options.returnUrl,
73
+ credentialName: options.credentialName,
74
+ createdAt: Date.now()
75
+ };
76
+ pendingStates.set(state, pendingState);
77
+ this.logger.debug("Started OAuth2 flow", {
78
+ providerId,
79
+ state
80
+ });
81
+ return {
82
+ authorizationUrl,
83
+ state,
84
+ codeVerifier
85
+ };
86
+ }
87
+ /**
88
+ * Get pending OAuth2 state
89
+ */
90
+ getPendingState(state) {
91
+ return pendingStates.get(state);
92
+ }
93
+ /**
94
+ * Remove pending OAuth2 state (after successful exchange)
95
+ */
96
+ removePendingState(state) {
97
+ pendingStates.delete(state);
98
+ }
99
+ /**
100
+ * Exchange authorization code for tokens
101
+ *
102
+ * @param code - Authorization code from callback
103
+ * @param state - State parameter for verification
104
+ * @param appConfig - OAuth app credentials
105
+ * @returns OAuth2 tokens
106
+ */
107
+ async exchangeCodeForTokens(code, state, appConfig) {
108
+ const pendingState = pendingStates.get(state);
109
+ if (!pendingState) throw new Error("Invalid or expired OAuth state. Please try again.");
110
+ const provider = require_oauth2_providers.getOAuth2Provider(pendingState.providerId);
111
+ if (!provider) throw new Error(`Unknown OAuth2 provider: ${pendingState.providerId}`);
112
+ const params = new URLSearchParams({
113
+ grant_type: "authorization_code",
114
+ code,
115
+ redirect_uri: appConfig.redirectUri,
116
+ client_id: appConfig.clientId,
117
+ client_secret: appConfig.clientSecret
118
+ });
119
+ if (pendingState.codeVerifier) params.set("code_verifier", pendingState.codeVerifier);
120
+ this.logger.debug("Exchanging code for tokens", { providerId: pendingState.providerId });
121
+ const response = await fetch(provider.tokenUrl, {
122
+ method: "POST",
123
+ headers: {
124
+ "Content-Type": "application/x-www-form-urlencoded",
125
+ Accept: "application/json"
126
+ },
127
+ body: params.toString()
128
+ });
129
+ if (!response.ok) {
130
+ const errorText = await response.text();
131
+ this.logger.error("Token exchange failed", {
132
+ status: response.status,
133
+ error: errorText
134
+ });
135
+ throw new Error(`Token exchange failed: ${errorText}`);
136
+ }
137
+ const data = await response.json();
138
+ const tokens = {
139
+ accessToken: data.access_token,
140
+ refreshToken: data.refresh_token,
141
+ tokenType: data.token_type || "Bearer",
142
+ expiresIn: data.expires_in,
143
+ scope: data.scope,
144
+ raw: data
145
+ };
146
+ pendingStates.delete(state);
147
+ this.logger.info("OAuth2 tokens obtained", {
148
+ providerId: pendingState.providerId,
149
+ hasRefreshToken: !!tokens.refreshToken,
150
+ expiresIn: tokens.expiresIn
151
+ });
152
+ return {
153
+ tokens,
154
+ pendingState
155
+ };
156
+ }
157
+ /**
158
+ * Refresh an expired access token
159
+ *
160
+ * @param refreshToken - The refresh token
161
+ * @param providerId - The OAuth2 provider ID
162
+ * @param appConfig - OAuth app credentials
163
+ * @returns New OAuth2 tokens
164
+ */
165
+ async refreshAccessToken(refreshToken, providerId, appConfig) {
166
+ const provider = require_oauth2_providers.getOAuth2Provider(providerId);
167
+ if (!provider) throw new Error(`Unknown OAuth2 provider: ${providerId}`);
168
+ if (!provider.supportsRefresh) throw new Error(`Provider ${providerId} does not support token refresh`);
169
+ const params = new URLSearchParams({
170
+ grant_type: "refresh_token",
171
+ refresh_token: refreshToken,
172
+ client_id: appConfig.clientId,
173
+ client_secret: appConfig.clientSecret
174
+ });
175
+ this.logger.debug("Refreshing access token", { providerId });
176
+ const response = await fetch(provider.tokenUrl, {
177
+ method: "POST",
178
+ headers: {
179
+ "Content-Type": "application/x-www-form-urlencoded",
180
+ Accept: "application/json"
181
+ },
182
+ body: params.toString()
183
+ });
184
+ if (!response.ok) {
185
+ const errorText = await response.text();
186
+ this.logger.error("Token refresh failed", {
187
+ status: response.status,
188
+ error: errorText
189
+ });
190
+ throw new Error(`Token refresh failed: ${errorText}`);
191
+ }
192
+ const data = await response.json();
193
+ const tokens = {
194
+ accessToken: data.access_token,
195
+ refreshToken: data.refresh_token || refreshToken,
196
+ tokenType: data.token_type || "Bearer",
197
+ expiresIn: data.expires_in,
198
+ scope: data.scope,
199
+ raw: data
200
+ };
201
+ this.logger.info("Access token refreshed", {
202
+ providerId,
203
+ expiresIn: tokens.expiresIn
204
+ });
205
+ return tokens;
206
+ }
207
+ /**
208
+ * Build a CredentialConfig from OAuth2 tokens
209
+ */
210
+ buildCredentialConfig(tokens, providerId, appConfig) {
211
+ const now = /* @__PURE__ */ new Date();
212
+ const expiresAt = tokens.expiresIn ? new Date(now.getTime() + tokens.expiresIn * 1e3).toISOString() : void 0;
213
+ return {
214
+ accessToken: tokens.accessToken,
215
+ refreshToken: tokens.refreshToken,
216
+ tokenType: tokens.tokenType,
217
+ scope: tokens.scope,
218
+ expiresAt,
219
+ oauth2Provider: providerId,
220
+ clientId: appConfig.clientId,
221
+ clientSecret: appConfig.clientSecret
222
+ };
223
+ }
224
+ /**
225
+ * Check if a credential's access token is expired or about to expire
226
+ *
227
+ * @param config - The credential config
228
+ * @param bufferSeconds - Buffer time before actual expiry (default 5 minutes)
229
+ */
230
+ isTokenExpired(config, bufferSeconds = 300) {
231
+ if (!config.expiresAt) return false;
232
+ const expiresAt = new Date(config.expiresAt);
233
+ const bufferMs = bufferSeconds * 1e3;
234
+ return expiresAt.getTime() - bufferMs < Date.now();
235
+ }
236
+ /**
237
+ * Check if a credential can be refreshed
238
+ */
239
+ canRefresh(config) {
240
+ return !!(config.refreshToken && config.oauth2Provider);
241
+ }
242
+ };
243
+ /**
244
+ * Create OAuth2 service instance
245
+ */
246
+ function createOAuth2Service(logger) {
247
+ return new OAuth2Service(logger);
248
+ }
249
+ //#endregion
250
+ exports.createOAuth2Service = createOAuth2Service;
251
+
252
+ //# sourceMappingURL=oauth2.service.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.service.cjs","names":["getAllOAuth2Providers","getOAuth2Provider"],"sources":["../../../src/services/credentials/oauth2.service.ts"],"sourcesContent":["/**\n * OAuth2 Service\n *\n * Handles OAuth2 authorization flow:\n * 1. Generate authorization URL with state\n * 2. Exchange authorization code for tokens\n * 3. Refresh access tokens when expired\n */\n\nimport { randomBytes, createHash } from 'crypto';\nimport type { Logger } from 'src/types/schemas';\nimport type { CredentialConfig } from 'src/database/schema-sqlite';\nimport {\n getOAuth2Provider,\n getAllOAuth2Providers,\n type OAuth2ProviderDefinition,\n} from './oauth2-providers';\n\n/**\n * OAuth2 configuration for the Invect application\n */\nexport interface OAuth2AppConfig {\n /** Client ID from the OAuth provider */\n clientId: string;\n /** Client secret from the OAuth provider */\n clientSecret: string;\n /** Redirect URI registered with the provider */\n redirectUri: string;\n}\n\n/**\n * Result of starting an OAuth2 flow\n */\nexport interface OAuth2StartResult {\n /** URL to redirect the user to */\n authorizationUrl: string;\n /** State parameter for CSRF protection (store and verify on callback) */\n state: string;\n /** Code verifier for PKCE (store and use during token exchange) */\n codeVerifier?: string;\n}\n\n/**\n * OAuth2 tokens received from provider\n */\nexport interface OAuth2Tokens {\n accessToken: string;\n refreshToken?: string;\n tokenType: string;\n expiresIn?: number; // seconds until expiry\n scope?: string;\n /** Additional provider-specific data */\n raw?: Record<string, unknown>;\n}\n\n/**\n * Pending OAuth2 flow state\n * Store this temporarily during the OAuth flow\n */\nexport interface OAuth2PendingState {\n state: string;\n providerId: string;\n codeVerifier?: string;\n /** Original URL to redirect back to after OAuth completes */\n returnUrl?: string;\n /** Custom credential name */\n credentialName?: string;\n /** Timestamp when this state was created */\n createdAt: number;\n}\n\n// In-memory store for pending OAuth states (should use Redis in production)\nconst pendingStates = new Map<string, OAuth2PendingState>();\n\n// Clean up expired states (older than 10 minutes)\nconst STATE_EXPIRY_MS = 10 * 60 * 1000;\n\nfunction cleanupExpiredStates() {\n const now = Date.now();\n for (const [state, pending] of pendingStates.entries()) {\n if (now - pending.createdAt > STATE_EXPIRY_MS) {\n pendingStates.delete(state);\n }\n }\n}\n\n// Run cleanup every 5 minutes\nsetInterval(cleanupExpiredStates, 5 * 60 * 1000);\n\n/**\n * OAuth2 Service for handling authorization flows\n */\nexport class OAuth2Service {\n constructor(private readonly logger: Logger) {}\n\n /**\n * Get all available OAuth2 providers\n */\n getProviders(): OAuth2ProviderDefinition[] {\n return getAllOAuth2Providers();\n }\n\n /**\n * Get a specific OAuth2 provider\n */\n getProvider(providerId: string): OAuth2ProviderDefinition | undefined {\n return getOAuth2Provider(providerId);\n }\n\n /**\n * Start an OAuth2 authorization flow\n *\n * @param providerId - The OAuth2 provider ID\n * @param appConfig - OAuth app credentials and redirect URI\n * @param options - Additional options\n * @returns Authorization URL and state to redirect user to\n */\n startAuthorizationFlow(\n providerId: string,\n appConfig: OAuth2AppConfig,\n options: {\n scopes?: string[];\n returnUrl?: string;\n credentialName?: string;\n } = {},\n ): OAuth2StartResult {\n const provider = getOAuth2Provider(providerId);\n if (!provider) {\n throw new Error(`Unknown OAuth2 provider: ${providerId}`);\n }\n\n // Generate cryptographically secure state\n const state = randomBytes(32).toString('hex');\n\n // Generate PKCE code verifier and challenge\n const codeVerifier = randomBytes(32).toString('base64url');\n const codeChallenge = createHash('sha256').update(codeVerifier).digest('base64url');\n\n // Build authorization URL\n const params = new URLSearchParams({\n client_id: appConfig.clientId,\n redirect_uri: appConfig.redirectUri,\n response_type: 'code',\n state,\n code_challenge: codeChallenge,\n code_challenge_method: 'S256',\n });\n\n // Add scopes\n const scopes = options.scopes ?? provider.defaultScopes;\n if (scopes.length > 0) {\n const separator = provider.scopeSeparator ?? ' ';\n params.set('scope', scopes.join(separator));\n }\n\n // Add provider-specific additional params\n if (provider.additionalAuthParams) {\n for (const [key, value] of Object.entries(provider.additionalAuthParams)) {\n params.set(key, value);\n }\n }\n\n const authorizationUrl = `${provider.authorizationUrl}?${params.toString()}`;\n\n // Store pending state\n const pendingState: OAuth2PendingState = {\n state,\n providerId,\n codeVerifier,\n returnUrl: options.returnUrl,\n credentialName: options.credentialName,\n createdAt: Date.now(),\n };\n pendingStates.set(state, pendingState);\n\n this.logger.debug('Started OAuth2 flow', { providerId, state });\n\n return {\n authorizationUrl,\n state,\n codeVerifier,\n };\n }\n\n /**\n * Get pending OAuth2 state\n */\n getPendingState(state: string): OAuth2PendingState | undefined {\n return pendingStates.get(state);\n }\n\n /**\n * Remove pending OAuth2 state (after successful exchange)\n */\n removePendingState(state: string): void {\n pendingStates.delete(state);\n }\n\n /**\n * Exchange authorization code for tokens\n *\n * @param code - Authorization code from callback\n * @param state - State parameter for verification\n * @param appConfig - OAuth app credentials\n * @returns OAuth2 tokens\n */\n async exchangeCodeForTokens(\n code: string,\n state: string,\n appConfig: OAuth2AppConfig,\n ): Promise<{ tokens: OAuth2Tokens; pendingState: OAuth2PendingState }> {\n // Verify and retrieve pending state\n const pendingState = pendingStates.get(state);\n if (!pendingState) {\n throw new Error('Invalid or expired OAuth state. Please try again.');\n }\n\n const provider = getOAuth2Provider(pendingState.providerId);\n if (!provider) {\n throw new Error(`Unknown OAuth2 provider: ${pendingState.providerId}`);\n }\n\n // Build token request\n const params = new URLSearchParams({\n grant_type: 'authorization_code',\n code,\n redirect_uri: appConfig.redirectUri,\n client_id: appConfig.clientId,\n client_secret: appConfig.clientSecret,\n });\n\n // Add PKCE code verifier if available\n if (pendingState.codeVerifier) {\n params.set('code_verifier', pendingState.codeVerifier);\n }\n\n this.logger.debug('Exchanging code for tokens', { providerId: pendingState.providerId });\n\n // Exchange code for tokens\n const response = await fetch(provider.tokenUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Accept: 'application/json',\n },\n body: params.toString(),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n this.logger.error('Token exchange failed', { status: response.status, error: errorText });\n throw new Error(`Token exchange failed: ${errorText}`);\n }\n\n const data = (await response.json()) as Record<string, unknown>;\n\n // Parse tokens\n const tokens: OAuth2Tokens = {\n accessToken: data.access_token as string,\n refreshToken: data.refresh_token as string | undefined,\n tokenType: (data.token_type as string) || 'Bearer',\n expiresIn: data.expires_in as number | undefined,\n scope: data.scope as string | undefined,\n raw: data,\n };\n\n // Remove used state\n pendingStates.delete(state);\n\n this.logger.info('OAuth2 tokens obtained', {\n providerId: pendingState.providerId,\n hasRefreshToken: !!tokens.refreshToken,\n expiresIn: tokens.expiresIn,\n });\n\n return { tokens, pendingState };\n }\n\n /**\n * Refresh an expired access token\n *\n * @param refreshToken - The refresh token\n * @param providerId - The OAuth2 provider ID\n * @param appConfig - OAuth app credentials\n * @returns New OAuth2 tokens\n */\n async refreshAccessToken(\n refreshToken: string,\n providerId: string,\n appConfig: OAuth2AppConfig,\n ): Promise<OAuth2Tokens> {\n const provider = getOAuth2Provider(providerId);\n if (!provider) {\n throw new Error(`Unknown OAuth2 provider: ${providerId}`);\n }\n\n if (!provider.supportsRefresh) {\n throw new Error(`Provider ${providerId} does not support token refresh`);\n }\n\n const params = new URLSearchParams({\n grant_type: 'refresh_token',\n refresh_token: refreshToken,\n client_id: appConfig.clientId,\n client_secret: appConfig.clientSecret,\n });\n\n this.logger.debug('Refreshing access token', { providerId });\n\n const response = await fetch(provider.tokenUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Accept: 'application/json',\n },\n body: params.toString(),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n this.logger.error('Token refresh failed', { status: response.status, error: errorText });\n throw new Error(`Token refresh failed: ${errorText}`);\n }\n\n const data = (await response.json()) as Record<string, unknown>;\n\n const tokens: OAuth2Tokens = {\n accessToken: data.access_token as string,\n // Some providers return a new refresh token\n refreshToken: (data.refresh_token as string | undefined) || refreshToken,\n tokenType: (data.token_type as string) || 'Bearer',\n expiresIn: data.expires_in as number | undefined,\n scope: data.scope as string | undefined,\n raw: data,\n };\n\n this.logger.info('Access token refreshed', {\n providerId,\n expiresIn: tokens.expiresIn,\n });\n\n return tokens;\n }\n\n /**\n * Build a CredentialConfig from OAuth2 tokens\n */\n buildCredentialConfig(\n tokens: OAuth2Tokens,\n providerId: string,\n appConfig: { clientId: string; clientSecret: string },\n ): CredentialConfig {\n const now = new Date();\n const expiresAt = tokens.expiresIn\n ? new Date(now.getTime() + tokens.expiresIn * 1000).toISOString()\n : undefined;\n\n return {\n accessToken: tokens.accessToken,\n refreshToken: tokens.refreshToken,\n tokenType: tokens.tokenType,\n scope: tokens.scope,\n expiresAt,\n // Store provider info for refresh\n oauth2Provider: providerId,\n clientId: appConfig.clientId,\n clientSecret: appConfig.clientSecret,\n };\n }\n\n /**\n * Check if a credential's access token is expired or about to expire\n *\n * @param config - The credential config\n * @param bufferSeconds - Buffer time before actual expiry (default 5 minutes)\n */\n isTokenExpired(config: CredentialConfig, bufferSeconds: number = 300): boolean {\n if (!config.expiresAt) {\n return false; // No expiry means it doesn't expire (or we don't know)\n }\n\n const expiresAt = new Date(config.expiresAt);\n const bufferMs = bufferSeconds * 1000;\n return expiresAt.getTime() - bufferMs < Date.now();\n }\n\n /**\n * Check if a credential can be refreshed\n */\n canRefresh(config: CredentialConfig): boolean {\n return !!(config.refreshToken && config.oauth2Provider);\n }\n}\n\n/**\n * Create OAuth2 service instance\n */\nexport function createOAuth2Service(logger: Logger): OAuth2Service {\n return new OAuth2Service(logger);\n}\n"],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import { Logger } from "../../types/schemas-fresh/invect-config.cjs";
2
+ import { OAuth2ProviderDefinition } from "./oauth2-providers.cjs";
3
+ import { CredentialConfig } from "../../database/schema-sqlite.cjs";
4
+
5
+ //#region src/services/credentials/oauth2.service.d.ts
6
+ /**
7
+ * OAuth2 configuration for the Invect application
8
+ */
9
+ interface OAuth2AppConfig {
10
+ /** Client ID from the OAuth provider */
11
+ clientId: string;
12
+ /** Client secret from the OAuth provider */
13
+ clientSecret: string;
14
+ /** Redirect URI registered with the provider */
15
+ redirectUri: string;
16
+ }
17
+ /**
18
+ * Result of starting an OAuth2 flow
19
+ */
20
+ interface OAuth2StartResult {
21
+ /** URL to redirect the user to */
22
+ authorizationUrl: string;
23
+ /** State parameter for CSRF protection (store and verify on callback) */
24
+ state: string;
25
+ /** Code verifier for PKCE (store and use during token exchange) */
26
+ codeVerifier?: string;
27
+ }
28
+ /**
29
+ * OAuth2 tokens received from provider
30
+ */
31
+ interface OAuth2Tokens {
32
+ accessToken: string;
33
+ refreshToken?: string;
34
+ tokenType: string;
35
+ expiresIn?: number;
36
+ scope?: string;
37
+ /** Additional provider-specific data */
38
+ raw?: Record<string, unknown>;
39
+ }
40
+ /**
41
+ * Pending OAuth2 flow state
42
+ * Store this temporarily during the OAuth flow
43
+ */
44
+ interface OAuth2PendingState {
45
+ state: string;
46
+ providerId: string;
47
+ codeVerifier?: string;
48
+ /** Original URL to redirect back to after OAuth completes */
49
+ returnUrl?: string;
50
+ /** Custom credential name */
51
+ credentialName?: string;
52
+ /** Timestamp when this state was created */
53
+ createdAt: number;
54
+ }
55
+ /**
56
+ * OAuth2 Service for handling authorization flows
57
+ */
58
+ declare class OAuth2Service {
59
+ private readonly logger;
60
+ constructor(logger: Logger);
61
+ /**
62
+ * Get all available OAuth2 providers
63
+ */
64
+ getProviders(): OAuth2ProviderDefinition[];
65
+ /**
66
+ * Get a specific OAuth2 provider
67
+ */
68
+ getProvider(providerId: string): OAuth2ProviderDefinition | undefined;
69
+ /**
70
+ * Start an OAuth2 authorization flow
71
+ *
72
+ * @param providerId - The OAuth2 provider ID
73
+ * @param appConfig - OAuth app credentials and redirect URI
74
+ * @param options - Additional options
75
+ * @returns Authorization URL and state to redirect user to
76
+ */
77
+ startAuthorizationFlow(providerId: string, appConfig: OAuth2AppConfig, options?: {
78
+ scopes?: string[];
79
+ returnUrl?: string;
80
+ credentialName?: string;
81
+ }): OAuth2StartResult;
82
+ /**
83
+ * Get pending OAuth2 state
84
+ */
85
+ getPendingState(state: string): OAuth2PendingState | undefined;
86
+ /**
87
+ * Remove pending OAuth2 state (after successful exchange)
88
+ */
89
+ removePendingState(state: string): void;
90
+ /**
91
+ * Exchange authorization code for tokens
92
+ *
93
+ * @param code - Authorization code from callback
94
+ * @param state - State parameter for verification
95
+ * @param appConfig - OAuth app credentials
96
+ * @returns OAuth2 tokens
97
+ */
98
+ exchangeCodeForTokens(code: string, state: string, appConfig: OAuth2AppConfig): Promise<{
99
+ tokens: OAuth2Tokens;
100
+ pendingState: OAuth2PendingState;
101
+ }>;
102
+ /**
103
+ * Refresh an expired access token
104
+ *
105
+ * @param refreshToken - The refresh token
106
+ * @param providerId - The OAuth2 provider ID
107
+ * @param appConfig - OAuth app credentials
108
+ * @returns New OAuth2 tokens
109
+ */
110
+ refreshAccessToken(refreshToken: string, providerId: string, appConfig: OAuth2AppConfig): Promise<OAuth2Tokens>;
111
+ /**
112
+ * Build a CredentialConfig from OAuth2 tokens
113
+ */
114
+ buildCredentialConfig(tokens: OAuth2Tokens, providerId: string, appConfig: {
115
+ clientId: string;
116
+ clientSecret: string;
117
+ }): CredentialConfig;
118
+ /**
119
+ * Check if a credential's access token is expired or about to expire
120
+ *
121
+ * @param config - The credential config
122
+ * @param bufferSeconds - Buffer time before actual expiry (default 5 minutes)
123
+ */
124
+ isTokenExpired(config: CredentialConfig, bufferSeconds?: number): boolean;
125
+ /**
126
+ * Check if a credential can be refreshed
127
+ */
128
+ canRefresh(config: CredentialConfig): boolean;
129
+ }
130
+ //#endregion
131
+ export { OAuth2AppConfig, OAuth2PendingState, OAuth2Service, OAuth2StartResult, OAuth2Tokens };
132
+ //# sourceMappingURL=oauth2.service.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.service.d.cts","names":[],"sources":["../../../src/services/credentials/oauth2.service.ts"],"mappings":";;;;;;;;UAqBiB,eAAA;EAYiB;EAVhC,QAAA;EAUgC;EARhC,YAAA;EAYA;EAVA,WAAA;AAAA;;AAkBF;;UAZiB,iBAAA;EAmBH;EAjBZ,gBAAA;EAYA;EAVA,KAAA;EAYA;EAVA,YAAA;AAAA;;;;UAMe,YAAA;EACf,WAAA;EACA,YAAA;EACA,SAAA;EACA,SAAA;EACA,KAAA;EAYA;EAVA,GAAA,GAAM,MAAA;AAAA;;;;AAwCR;UAjCiB,kBAAA;EACf,KAAA;EACA,UAAA;EACA,YAAA;EA2CiC;EAzCjC,SAAA;EA6DG;EA3DH,cAAA;EA+Ia;EA7Ib,SAAA;AAAA;;;;cAwBW,aAAA;EAAA,iBACkB,MAAA;cAAA,MAAA,EAAQ,MAAA;EA2Rd;;;EAtRvB,YAAA,CAAA,GAAgB,wBAAA;EALa;;;EAY7B,WAAA,CAAY,UAAA,WAAqB,wBAAA;EAPjC;;;;;;;;EAmBA,sBAAA,CACE,UAAA,UACA,SAAA,EAAW,eAAA,EACX,OAAA;IACE,MAAA;IACA,SAAA;IACA,cAAA;EAAA,IAED,iBAAA;EAAA;;;EA8DH,eAAA,CAAgB,KAAA,WAAgB,kBAAA;EAOhC;;;EAAA,kBAAA,CAAmB,KAAA;EAcjB;;;;;;;;EAFI,qBAAA,CACJ,IAAA,UACA,KAAA,UACA,SAAA,EAAW,eAAA,GACV,OAAA;IAAU,MAAA,EAAQ,YAAA;IAAc,YAAA,EAAc,kBAAA;EAAA;EA+E/C;;;;;;;;EAHI,kBAAA,CACJ,YAAA,UACA,UAAA,UACA,SAAA,EAAW,eAAA,GACV,OAAA,CAAQ,YAAA;EA4DT;;;EAHF,qBAAA,CACE,MAAA,EAAQ,YAAA,EACR,UAAA,UACA,SAAA;IAAa,QAAA;IAAkB,YAAA;EAAA,IAC9B,gBAAA;EAsCgB;;;;;;EAbnB,cAAA,CAAe,MAAA,EAAQ,gBAAA,EAAkB,aAAA;;;;EAazC,UAAA,CAAW,MAAA,EAAQ,gBAAA;AAAA"}
@@ -0,0 +1,132 @@
1
+ import { Logger } from "../../types/schemas-fresh/invect-config.js";
2
+ import { OAuth2ProviderDefinition } from "./oauth2-providers.js";
3
+ import { CredentialConfig } from "../../database/schema-sqlite.js";
4
+
5
+ //#region src/services/credentials/oauth2.service.d.ts
6
+ /**
7
+ * OAuth2 configuration for the Invect application
8
+ */
9
+ interface OAuth2AppConfig {
10
+ /** Client ID from the OAuth provider */
11
+ clientId: string;
12
+ /** Client secret from the OAuth provider */
13
+ clientSecret: string;
14
+ /** Redirect URI registered with the provider */
15
+ redirectUri: string;
16
+ }
17
+ /**
18
+ * Result of starting an OAuth2 flow
19
+ */
20
+ interface OAuth2StartResult {
21
+ /** URL to redirect the user to */
22
+ authorizationUrl: string;
23
+ /** State parameter for CSRF protection (store and verify on callback) */
24
+ state: string;
25
+ /** Code verifier for PKCE (store and use during token exchange) */
26
+ codeVerifier?: string;
27
+ }
28
+ /**
29
+ * OAuth2 tokens received from provider
30
+ */
31
+ interface OAuth2Tokens {
32
+ accessToken: string;
33
+ refreshToken?: string;
34
+ tokenType: string;
35
+ expiresIn?: number;
36
+ scope?: string;
37
+ /** Additional provider-specific data */
38
+ raw?: Record<string, unknown>;
39
+ }
40
+ /**
41
+ * Pending OAuth2 flow state
42
+ * Store this temporarily during the OAuth flow
43
+ */
44
+ interface OAuth2PendingState {
45
+ state: string;
46
+ providerId: string;
47
+ codeVerifier?: string;
48
+ /** Original URL to redirect back to after OAuth completes */
49
+ returnUrl?: string;
50
+ /** Custom credential name */
51
+ credentialName?: string;
52
+ /** Timestamp when this state was created */
53
+ createdAt: number;
54
+ }
55
+ /**
56
+ * OAuth2 Service for handling authorization flows
57
+ */
58
+ declare class OAuth2Service {
59
+ private readonly logger;
60
+ constructor(logger: Logger);
61
+ /**
62
+ * Get all available OAuth2 providers
63
+ */
64
+ getProviders(): OAuth2ProviderDefinition[];
65
+ /**
66
+ * Get a specific OAuth2 provider
67
+ */
68
+ getProvider(providerId: string): OAuth2ProviderDefinition | undefined;
69
+ /**
70
+ * Start an OAuth2 authorization flow
71
+ *
72
+ * @param providerId - The OAuth2 provider ID
73
+ * @param appConfig - OAuth app credentials and redirect URI
74
+ * @param options - Additional options
75
+ * @returns Authorization URL and state to redirect user to
76
+ */
77
+ startAuthorizationFlow(providerId: string, appConfig: OAuth2AppConfig, options?: {
78
+ scopes?: string[];
79
+ returnUrl?: string;
80
+ credentialName?: string;
81
+ }): OAuth2StartResult;
82
+ /**
83
+ * Get pending OAuth2 state
84
+ */
85
+ getPendingState(state: string): OAuth2PendingState | undefined;
86
+ /**
87
+ * Remove pending OAuth2 state (after successful exchange)
88
+ */
89
+ removePendingState(state: string): void;
90
+ /**
91
+ * Exchange authorization code for tokens
92
+ *
93
+ * @param code - Authorization code from callback
94
+ * @param state - State parameter for verification
95
+ * @param appConfig - OAuth app credentials
96
+ * @returns OAuth2 tokens
97
+ */
98
+ exchangeCodeForTokens(code: string, state: string, appConfig: OAuth2AppConfig): Promise<{
99
+ tokens: OAuth2Tokens;
100
+ pendingState: OAuth2PendingState;
101
+ }>;
102
+ /**
103
+ * Refresh an expired access token
104
+ *
105
+ * @param refreshToken - The refresh token
106
+ * @param providerId - The OAuth2 provider ID
107
+ * @param appConfig - OAuth app credentials
108
+ * @returns New OAuth2 tokens
109
+ */
110
+ refreshAccessToken(refreshToken: string, providerId: string, appConfig: OAuth2AppConfig): Promise<OAuth2Tokens>;
111
+ /**
112
+ * Build a CredentialConfig from OAuth2 tokens
113
+ */
114
+ buildCredentialConfig(tokens: OAuth2Tokens, providerId: string, appConfig: {
115
+ clientId: string;
116
+ clientSecret: string;
117
+ }): CredentialConfig;
118
+ /**
119
+ * Check if a credential's access token is expired or about to expire
120
+ *
121
+ * @param config - The credential config
122
+ * @param bufferSeconds - Buffer time before actual expiry (default 5 minutes)
123
+ */
124
+ isTokenExpired(config: CredentialConfig, bufferSeconds?: number): boolean;
125
+ /**
126
+ * Check if a credential can be refreshed
127
+ */
128
+ canRefresh(config: CredentialConfig): boolean;
129
+ }
130
+ //#endregion
131
+ export { OAuth2AppConfig, OAuth2PendingState, OAuth2Service, OAuth2StartResult, OAuth2Tokens };
132
+ //# sourceMappingURL=oauth2.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.service.d.ts","names":[],"sources":["../../../src/services/credentials/oauth2.service.ts"],"mappings":";;;;;;;;UAqBiB,eAAA;EAYA;EAVf,QAAA;;EAEA,YAAA;EAUA;EARA,WAAA;AAAA;;;AAkBF;UAZiB,iBAAA;;EAEf,gBAAA;EAWA;EATA,KAAA;EAWA;EATA,YAAA;AAAA;;;;UAMe,YAAA;EACf,WAAA;EACA,YAAA;EACA,SAAA;EACA,SAAA;EACA,KAAA;EAWA;EATA,GAAA,GAAM,MAAA;AAAA;;;;;UAOS,kBAAA;EACf,KAAA;EACA,UAAA;EACA,YAAA;EAoCgB;EAlChB,SAAA;EAuDa;EArDb,cAAA;EAyHgC;EAvHhC,SAAA;AAAA;;;;cAwBW,aAAA;EAAA,iBACkB,MAAA;cAAA,MAAA,EAAQ,MAAA;EAkQlC;;;EA7PH,YAAA,CAAA,GAAgB,wBAAA;EAmSmB;;;EA5RnC,WAAA,CAAY,UAAA,WAAqB,wBAAA;EAZJ;;;;;;;;EAwB7B,sBAAA,CACE,UAAA,UACA,SAAA,EAAW,eAAA,EACX,OAAA;IACE,MAAA;IACA,SAAA;IACA,cAAA;EAAA,IAED,iBAAA;EALD;;;EAmEF,eAAA,CAAgB,KAAA,WAAgB,kBAAA;EAAA;;;EAOhC,kBAAA,CAAmB,KAAA;EAajB;;;;;;;;EADI,qBAAA,CACJ,IAAA,UACA,KAAA,UACA,SAAA,EAAW,eAAA,GACV,OAAA;IAAU,MAAA,EAAQ,YAAA;IAAc,YAAA,EAAc,kBAAA;EAAA;EA+EpC;;;;;;;;EAHP,kBAAA,CACJ,YAAA,UACA,UAAA,UACA,SAAA,EAAW,eAAA,GACV,OAAA,CAAQ,YAAA;EA4DsB;;;EAHjC,qBAAA,CACE,MAAA,EAAQ,YAAA,EACR,UAAA,UACA,SAAA;IAAa,QAAA;IAAkB,YAAA;EAAA,IAC9B,gBAAA;EAsCH;;;;;;EAbA,cAAA,CAAe,MAAA,EAAQ,gBAAA,EAAkB,aAAA;;;;EAazC,UAAA,CAAW,MAAA,EAAQ,gBAAA;AAAA"}