exisjs 0.6.1 → 0.7.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 (564) hide show
  1. package/README.md +9 -3
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +2 -8
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/dev.d.ts.map +1 -1
  6. package/dist/cli/commands/dev.js +33 -44
  7. package/dist/cli/commands/dev.js.map +1 -1
  8. package/dist/cli/commands/exports.d.ts.map +1 -1
  9. package/dist/cli/commands/exports.js +5 -32
  10. package/dist/cli/commands/exports.js.map +1 -1
  11. package/dist/cli/commands/generate.d.ts +2 -13
  12. package/dist/cli/commands/generate.d.ts.map +1 -1
  13. package/dist/cli/commands/generate.js +27 -60
  14. package/dist/cli/commands/generate.js.map +1 -1
  15. package/dist/cli/commands/init.d.ts.map +1 -1
  16. package/dist/cli/commands/init.js +4 -4
  17. package/dist/cli/commands/init.js.map +1 -1
  18. package/dist/cli/commands/start.d.ts.map +1 -1
  19. package/dist/cli/commands/start.js +2 -6
  20. package/dist/cli/commands/start.js.map +1 -1
  21. package/dist/cli/index.js +11 -23
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/cli/routes.d.ts.map +1 -1
  24. package/dist/cli/routes.js +20 -8
  25. package/dist/cli/routes.js.map +1 -1
  26. package/dist/config/config.d.ts +2 -1
  27. package/dist/config/config.d.ts.map +1 -1
  28. package/dist/config/config.js +7 -5
  29. package/dist/config/config.js.map +1 -1
  30. package/dist/config/env.d.ts.map +1 -1
  31. package/dist/config/env.js +3 -2
  32. package/dist/config/env.js.map +1 -1
  33. package/dist/config/types.d.ts +7 -2
  34. package/dist/config/types.d.ts.map +1 -1
  35. package/dist/decorators/constants.d.ts +9 -2
  36. package/dist/decorators/constants.d.ts.map +1 -1
  37. package/dist/decorators/constants.js +3 -2
  38. package/dist/decorators/constants.js.map +1 -1
  39. package/dist/decorators/core/metadata.d.ts +31 -0
  40. package/dist/decorators/core/metadata.d.ts.map +1 -1
  41. package/dist/decorators/core/metadata.js +110 -1
  42. package/dist/decorators/core/metadata.js.map +1 -1
  43. package/dist/decorators/core.d.ts +19 -4
  44. package/dist/decorators/core.d.ts.map +1 -1
  45. package/dist/decorators/core.js +29 -4
  46. package/dist/decorators/core.js.map +1 -1
  47. package/dist/decorators/middleware.d.ts +17 -17
  48. package/dist/decorators/middleware.d.ts.map +1 -1
  49. package/dist/decorators/middleware.js +111 -208
  50. package/dist/decorators/middleware.js.map +1 -1
  51. package/dist/decorators/params.d.ts +54 -12
  52. package/dist/decorators/params.d.ts.map +1 -1
  53. package/dist/decorators/params.js +40 -20
  54. package/dist/decorators/params.js.map +1 -1
  55. package/dist/decorators/routing.d.ts +0 -2
  56. package/dist/decorators/routing.d.ts.map +1 -1
  57. package/dist/decorators/routing.js +3 -4
  58. package/dist/decorators/routing.js.map +1 -1
  59. package/dist/di/container.d.ts +5 -1
  60. package/dist/di/container.d.ts.map +1 -1
  61. package/dist/di/container.js +56 -8
  62. package/dist/di/container.js.map +1 -1
  63. package/dist/di/decorators.d.ts +30 -0
  64. package/dist/di/decorators.d.ts.map +1 -0
  65. package/dist/di/decorators.js +59 -0
  66. package/dist/di/decorators.js.map +1 -0
  67. package/dist/di/index.d.ts +1 -0
  68. package/dist/di/index.d.ts.map +1 -1
  69. package/dist/di/index.js +4 -1
  70. package/dist/di/index.js.map +1 -1
  71. package/dist/docs/ARCHITECTURE.md +46 -285
  72. package/dist/docs/BENCHMARKS.md +5 -5
  73. package/dist/docs/README.md +8 -11
  74. package/dist/docs/content/boundaries.mdx +151 -0
  75. package/dist/docs/content/cli/commands.mdx +66 -104
  76. package/dist/docs/content/cli/overview.mdx +37 -47
  77. package/dist/docs/content/cli/usage.mdx +29 -15
  78. package/dist/docs/content/decorators.mdx +142 -81
  79. package/dist/docs/content/installation.mdx +20 -1
  80. package/dist/docs/content/middleware.mdx +65 -291
  81. package/dist/docs/content/modules.mdx +22 -1
  82. package/dist/docs/content/providers.mdx +33 -1
  83. package/dist/docs/content/security.mdx +44 -246
  84. package/dist/docs/content/structure.mdx +227 -100
  85. package/dist/docs/content/validation.mdx +0 -17
  86. package/dist/docs/reference/decorators.mdx +34 -216
  87. package/dist/docs/reference/di.mdx +35 -11
  88. package/dist/docs/reference/logger.mdx +100 -0
  89. package/dist/docs/reference/middleware.mdx +41 -217
  90. package/dist/docs/reference/router.mdx +9 -9
  91. package/dist/docs/reference/validator.mdx +2 -5
  92. package/dist/error/errors.d.ts.map +1 -1
  93. package/dist/error/errors.js +19 -5
  94. package/dist/error/errors.js.map +1 -1
  95. package/dist/index.d.ts +0 -1
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +1 -4
  98. package/dist/index.js.map +1 -1
  99. package/dist/lib/start-server.js +10 -0
  100. package/dist/lib/start-server.js.map +1 -1
  101. package/dist/logger/index.d.ts +81 -0
  102. package/dist/logger/index.d.ts.map +1 -0
  103. package/dist/logger/index.js +142 -0
  104. package/dist/logger/index.js.map +1 -0
  105. package/dist/middleware/dedupe.d.ts +1 -1
  106. package/dist/middleware/dedupe.js +1 -1
  107. package/dist/middleware/middleware.d.ts +3 -5
  108. package/dist/middleware/middleware.d.ts.map +1 -1
  109. package/dist/middleware/middleware.js +2 -6
  110. package/dist/middleware/middleware.js.map +1 -1
  111. package/dist/middleware/rate-limit.d.ts +0 -2
  112. package/dist/middleware/rate-limit.d.ts.map +1 -1
  113. package/dist/middleware/rate-limit.js +2 -14
  114. package/dist/middleware/rate-limit.js.map +1 -1
  115. package/dist/module/index.d.ts +2 -0
  116. package/dist/module/index.d.ts.map +1 -1
  117. package/dist/module/index.js +3 -1
  118. package/dist/module/index.js.map +1 -1
  119. package/dist/plugin/manager.d.ts +1 -1
  120. package/dist/plugin/manager.d.ts.map +1 -1
  121. package/dist/plugin/manager.js +47 -0
  122. package/dist/plugin/manager.js.map +1 -1
  123. package/dist/router/{gateway.d.ts → boundary.d.ts} +21 -13
  124. package/dist/router/boundary.d.ts.map +1 -0
  125. package/dist/router/boundary.js +11 -0
  126. package/dist/router/boundary.js.map +1 -0
  127. package/dist/router/controller-registrar.d.ts.map +1 -1
  128. package/dist/router/controller-registrar.js +33 -6
  129. package/dist/router/controller-registrar.js.map +1 -1
  130. package/dist/router/index.d.ts +3 -6
  131. package/dist/router/index.d.ts.map +1 -1
  132. package/dist/router/index.js +3 -7
  133. package/dist/router/index.js.map +1 -1
  134. package/dist/router/route-builder.d.ts +0 -28
  135. package/dist/router/route-builder.d.ts.map +1 -1
  136. package/dist/router/route-builder.js +2 -5
  137. package/dist/router/route-builder.js.map +1 -1
  138. package/dist/router/route-scanner.d.ts +1 -2
  139. package/dist/router/route-scanner.d.ts.map +1 -1
  140. package/dist/router/route-scanner.js +225 -203
  141. package/dist/router/route-scanner.js.map +1 -1
  142. package/dist/router/router.d.ts +4 -6
  143. package/dist/router/router.d.ts.map +1 -1
  144. package/dist/router/router.js +36 -72
  145. package/dist/router/router.js.map +1 -1
  146. package/dist/router/types.d.ts +2 -6
  147. package/dist/router/types.d.ts.map +1 -1
  148. package/dist/server/{bun-adapter.d.ts → adapters/bun-adapter.d.ts} +1 -1
  149. package/dist/server/adapters/bun-adapter.d.ts.map +1 -0
  150. package/dist/server/{bun-adapter.js → adapters/bun-adapter.js} +2 -24
  151. package/dist/server/adapters/bun-adapter.js.map +1 -0
  152. package/dist/server/{uws-adapter.d.ts → adapters/uws-adapter.d.ts} +1 -1
  153. package/dist/server/adapters/uws-adapter.d.ts.map +1 -0
  154. package/dist/server/{uws-adapter.js → adapters/uws-adapter.js} +1 -28
  155. package/dist/server/adapters/uws-adapter.js.map +1 -0
  156. package/dist/server/app.d.ts +10 -31
  157. package/dist/server/app.d.ts.map +1 -1
  158. package/dist/server/app.js +20 -135
  159. package/dist/server/app.js.map +1 -1
  160. package/dist/server/bootstrapper.d.ts +4 -15
  161. package/dist/server/bootstrapper.d.ts.map +1 -1
  162. package/dist/server/bootstrapper.js +30 -229
  163. package/dist/server/bootstrapper.js.map +1 -1
  164. package/dist/server/define.d.ts +2 -2
  165. package/dist/server/define.d.ts.map +1 -1
  166. package/dist/server/define.js +3 -3
  167. package/dist/server/define.js.map +1 -1
  168. package/dist/server/engines/bun-engine.d.ts +16 -0
  169. package/dist/server/engines/bun-engine.d.ts.map +1 -0
  170. package/dist/server/engines/bun-engine.js +41 -0
  171. package/dist/server/engines/bun-engine.js.map +1 -0
  172. package/dist/server/engines/engine.d.ts +16 -0
  173. package/dist/server/engines/engine.d.ts.map +1 -0
  174. package/dist/{queue/types.js → server/engines/engine.js} +1 -1
  175. package/dist/server/engines/engine.js.map +1 -0
  176. package/dist/server/engines/node-engine.d.ts +22 -0
  177. package/dist/server/engines/node-engine.d.ts.map +1 -0
  178. package/dist/server/engines/node-engine.js +130 -0
  179. package/dist/server/engines/node-engine.js.map +1 -0
  180. package/dist/server/engines/uws-engine.d.ts +16 -0
  181. package/dist/server/engines/uws-engine.d.ts.map +1 -0
  182. package/dist/server/engines/uws-engine.js +48 -0
  183. package/dist/server/engines/uws-engine.js.map +1 -0
  184. package/dist/server/request-handler.d.ts +0 -1
  185. package/dist/server/request-handler.d.ts.map +1 -1
  186. package/dist/server/request-handler.js +74 -48
  187. package/dist/server/request-handler.js.map +1 -1
  188. package/dist/server/request.d.ts +0 -8
  189. package/dist/server/request.d.ts.map +1 -1
  190. package/dist/server/request.js +0 -16
  191. package/dist/server/request.js.map +1 -1
  192. package/dist/server/response.d.ts.map +1 -1
  193. package/dist/server/response.js +2 -1
  194. package/dist/server/response.js.map +1 -1
  195. package/dist/utils/logger.d.ts.map +1 -1
  196. package/dist/utils/logger.js +0 -1
  197. package/dist/utils/logger.js.map +1 -1
  198. package/dist/utils/time.d.ts +6 -0
  199. package/dist/utils/time.d.ts.map +1 -0
  200. package/dist/utils/time.js +15 -0
  201. package/dist/utils/time.js.map +1 -0
  202. package/dist/validator/index.d.ts +1 -7
  203. package/dist/validator/index.d.ts.map +1 -1
  204. package/dist/validator/index.js +1 -5
  205. package/dist/validator/index.js.map +1 -1
  206. package/dist/validator/tex-types.d.ts +15 -2
  207. package/dist/validator/tex-types.d.ts.map +1 -1
  208. package/dist/validator/tex-types.js +8 -0
  209. package/dist/validator/tex-types.js.map +1 -1
  210. package/dist/validator/tex.d.ts.map +1 -1
  211. package/dist/validator/tex.js +21 -2
  212. package/dist/validator/tex.js.map +1 -1
  213. package/package.json +9 -151
  214. package/dist/adapters/aws-lambda.d.ts +0 -21
  215. package/dist/adapters/aws-lambda.d.ts.map +0 -1
  216. package/dist/adapters/aws-lambda.js +0 -125
  217. package/dist/adapters/aws-lambda.js.map +0 -1
  218. package/dist/adapters/bun.d.ts +0 -9
  219. package/dist/adapters/bun.d.ts.map +0 -1
  220. package/dist/adapters/bun.js +0 -23
  221. package/dist/adapters/bun.js.map +0 -1
  222. package/dist/adapters/cloudflare.d.ts +0 -10
  223. package/dist/adapters/cloudflare.d.ts.map +0 -1
  224. package/dist/adapters/cloudflare.js +0 -22
  225. package/dist/adapters/cloudflare.js.map +0 -1
  226. package/dist/adapters/deno.d.ts +0 -7
  227. package/dist/adapters/deno.d.ts.map +0 -1
  228. package/dist/adapters/deno.js +0 -21
  229. package/dist/adapters/deno.js.map +0 -1
  230. package/dist/adapters/fastly.d.ts +0 -6
  231. package/dist/adapters/fastly.d.ts.map +0 -1
  232. package/dist/adapters/fastly.js +0 -20
  233. package/dist/adapters/fastly.js.map +0 -1
  234. package/dist/adapters/fetch.d.ts +0 -30
  235. package/dist/adapters/fetch.d.ts.map +0 -1
  236. package/dist/adapters/fetch.js +0 -119
  237. package/dist/adapters/fetch.js.map +0 -1
  238. package/dist/adapters/index.d.ts +0 -9
  239. package/dist/adapters/index.d.ts.map +0 -1
  240. package/dist/adapters/index.js +0 -28
  241. package/dist/adapters/index.js.map +0 -1
  242. package/dist/adapters/netlify.d.ts +0 -8
  243. package/dist/adapters/netlify.d.ts.map +0 -1
  244. package/dist/adapters/netlify.js +0 -20
  245. package/dist/adapters/netlify.js.map +0 -1
  246. package/dist/adapters/vercel.d.ts +0 -17
  247. package/dist/adapters/vercel.d.ts.map +0 -1
  248. package/dist/adapters/vercel.js +0 -23
  249. package/dist/adapters/vercel.js.map +0 -1
  250. package/dist/auth/index.d.ts +0 -8
  251. package/dist/auth/index.d.ts.map +0 -1
  252. package/dist/auth/index.js +0 -49
  253. package/dist/auth/index.js.map +0 -1
  254. package/dist/auth/jwt.d.ts +0 -20
  255. package/dist/auth/jwt.d.ts.map +0 -1
  256. package/dist/auth/jwt.js +0 -59
  257. package/dist/auth/jwt.js.map +0 -1
  258. package/dist/auth/oauth/core.d.ts +0 -96
  259. package/dist/auth/oauth/core.d.ts.map +0 -1
  260. package/dist/auth/oauth/core.js +0 -203
  261. package/dist/auth/oauth/core.js.map +0 -1
  262. package/dist/auth/oauth/index.d.ts +0 -45
  263. package/dist/auth/oauth/index.d.ts.map +0 -1
  264. package/dist/auth/oauth/index.js +0 -64
  265. package/dist/auth/oauth/index.js.map +0 -1
  266. package/dist/auth/oauth/middleware.d.ts +0 -63
  267. package/dist/auth/oauth/middleware.d.ts.map +0 -1
  268. package/dist/auth/oauth/middleware.js +0 -164
  269. package/dist/auth/oauth/middleware.js.map +0 -1
  270. package/dist/auth/oauth/providers/custom.d.ts +0 -41
  271. package/dist/auth/oauth/providers/custom.d.ts.map +0 -1
  272. package/dist/auth/oauth/providers/custom.js +0 -204
  273. package/dist/auth/oauth/providers/custom.js.map +0 -1
  274. package/dist/auth/oauth/providers/discord.d.ts +0 -23
  275. package/dist/auth/oauth/providers/discord.d.ts.map +0 -1
  276. package/dist/auth/oauth/providers/discord.js +0 -130
  277. package/dist/auth/oauth/providers/discord.js.map +0 -1
  278. package/dist/auth/oauth/providers/facebook.d.ts +0 -28
  279. package/dist/auth/oauth/providers/facebook.d.ts.map +0 -1
  280. package/dist/auth/oauth/providers/facebook.js +0 -124
  281. package/dist/auth/oauth/providers/facebook.js.map +0 -1
  282. package/dist/auth/oauth/providers/github.d.ts +0 -25
  283. package/dist/auth/oauth/providers/github.d.ts.map +0 -1
  284. package/dist/auth/oauth/providers/github.js +0 -132
  285. package/dist/auth/oauth/providers/github.js.map +0 -1
  286. package/dist/auth/oauth/providers/google.d.ts +0 -23
  287. package/dist/auth/oauth/providers/google.d.ts.map +0 -1
  288. package/dist/auth/oauth/providers/google.js +0 -134
  289. package/dist/auth/oauth/providers/google.js.map +0 -1
  290. package/dist/auth/oauth/providers/microsoft.d.ts +0 -28
  291. package/dist/auth/oauth/providers/microsoft.d.ts.map +0 -1
  292. package/dist/auth/oauth/providers/microsoft.js +0 -136
  293. package/dist/auth/oauth/providers/microsoft.js.map +0 -1
  294. package/dist/auth/oauth/types.d.ts +0 -158
  295. package/dist/auth/oauth/types.d.ts.map +0 -1
  296. package/dist/auth/oauth/types.js +0 -4
  297. package/dist/auth/oauth/types.js.map +0 -1
  298. package/dist/auth/password.d.ts +0 -25
  299. package/dist/auth/password.d.ts.map +0 -1
  300. package/dist/auth/password.js +0 -93
  301. package/dist/auth/password.js.map +0 -1
  302. package/dist/auth/rbac.d.ts +0 -10
  303. package/dist/auth/rbac.d.ts.map +0 -1
  304. package/dist/auth/rbac.js +0 -34
  305. package/dist/auth/rbac.js.map +0 -1
  306. package/dist/auth/session.d.ts +0 -26
  307. package/dist/auth/session.d.ts.map +0 -1
  308. package/dist/auth/session.js +0 -134
  309. package/dist/auth/session.js.map +0 -1
  310. package/dist/cache/index.d.ts +0 -4
  311. package/dist/cache/index.d.ts.map +0 -1
  312. package/dist/cache/index.js +0 -25
  313. package/dist/cache/index.js.map +0 -1
  314. package/dist/cache/store.d.ts +0 -58
  315. package/dist/cache/store.d.ts.map +0 -1
  316. package/dist/cache/store.js +0 -298
  317. package/dist/cache/store.js.map +0 -1
  318. package/dist/cron/parser.d.ts +0 -2
  319. package/dist/cron/parser.d.ts.map +0 -1
  320. package/dist/cron/parser.js +0 -52
  321. package/dist/cron/parser.js.map +0 -1
  322. package/dist/cron/scheduler.d.ts +0 -23
  323. package/dist/cron/scheduler.d.ts.map +0 -1
  324. package/dist/cron/scheduler.js +0 -114
  325. package/dist/cron/scheduler.js.map +0 -1
  326. package/dist/database/adapters/mongodb.d.ts +0 -58
  327. package/dist/database/adapters/mongodb.d.ts.map +0 -1
  328. package/dist/database/adapters/mongodb.js +0 -264
  329. package/dist/database/adapters/mongodb.js.map +0 -1
  330. package/dist/database/adapters/mysql.d.ts +0 -27
  331. package/dist/database/adapters/mysql.d.ts.map +0 -1
  332. package/dist/database/adapters/mysql.js +0 -188
  333. package/dist/database/adapters/mysql.js.map +0 -1
  334. package/dist/database/adapters/postgres.d.ts +0 -28
  335. package/dist/database/adapters/postgres.d.ts.map +0 -1
  336. package/dist/database/adapters/postgres.js +0 -174
  337. package/dist/database/adapters/postgres.js.map +0 -1
  338. package/dist/database/adapters/sqlite.d.ts +0 -27
  339. package/dist/database/adapters/sqlite.d.ts.map +0 -1
  340. package/dist/database/adapters/sqlite.js +0 -149
  341. package/dist/database/adapters/sqlite.js.map +0 -1
  342. package/dist/database/index.d.ts +0 -42
  343. package/dist/database/index.d.ts.map +0 -1
  344. package/dist/database/index.js +0 -58
  345. package/dist/database/index.js.map +0 -1
  346. package/dist/database/manager.d.ts +0 -141
  347. package/dist/database/manager.d.ts.map +0 -1
  348. package/dist/database/manager.js +0 -337
  349. package/dist/database/manager.js.map +0 -1
  350. package/dist/database/migration.d.ts +0 -57
  351. package/dist/database/migration.d.ts.map +0 -1
  352. package/dist/database/migration.js +0 -329
  353. package/dist/database/migration.js.map +0 -1
  354. package/dist/database/query-builder.d.ts +0 -95
  355. package/dist/database/query-builder.d.ts.map +0 -1
  356. package/dist/database/query-builder.js +0 -404
  357. package/dist/database/query-builder.js.map +0 -1
  358. package/dist/database/sql/index.d.ts +0 -18
  359. package/dist/database/sql/index.d.ts.map +0 -1
  360. package/dist/database/sql/index.js +0 -74
  361. package/dist/database/sql/index.js.map +0 -1
  362. package/dist/database/sql/schema.d.ts +0 -38
  363. package/dist/database/sql/schema.d.ts.map +0 -1
  364. package/dist/database/sql/schema.js +0 -80
  365. package/dist/database/sql/schema.js.map +0 -1
  366. package/dist/database/synchronizer.d.ts +0 -12
  367. package/dist/database/synchronizer.d.ts.map +0 -1
  368. package/dist/database/synchronizer.js +0 -82
  369. package/dist/database/synchronizer.js.map +0 -1
  370. package/dist/database/types.d.ts +0 -184
  371. package/dist/database/types.d.ts.map +0 -1
  372. package/dist/database/types.js +0 -4
  373. package/dist/database/types.js.map +0 -1
  374. package/dist/dataloader/dataloader.d.ts +0 -23
  375. package/dist/dataloader/dataloader.d.ts.map +0 -1
  376. package/dist/dataloader/dataloader.js +0 -98
  377. package/dist/dataloader/dataloader.js.map +0 -1
  378. package/dist/dataloader/index.d.ts +0 -3
  379. package/dist/dataloader/index.d.ts.map +0 -1
  380. package/dist/dataloader/index.js +0 -19
  381. package/dist/dataloader/index.js.map +0 -1
  382. package/dist/dataloader/registry.d.ts +0 -17
  383. package/dist/dataloader/registry.d.ts.map +0 -1
  384. package/dist/dataloader/registry.js +0 -47
  385. package/dist/dataloader/registry.js.map +0 -1
  386. package/dist/dev/dep-graph.d.ts +0 -2
  387. package/dist/dev/dep-graph.d.ts.map +0 -1
  388. package/dist/dev/dep-graph.js +0 -111
  389. package/dist/dev/dep-graph.js.map +0 -1
  390. package/dist/dev/hot-reload.d.ts +0 -30
  391. package/dist/dev/hot-reload.d.ts.map +0 -1
  392. package/dist/dev/hot-reload.js +0 -262
  393. package/dist/dev/hot-reload.js.map +0 -1
  394. package/dist/docs/content/adapters.mdx +0 -199
  395. package/dist/docs/content/cache.mdx +0 -239
  396. package/dist/docs/content/circuit-breaker.mdx +0 -130
  397. package/dist/docs/content/cron.mdx +0 -109
  398. package/dist/docs/content/database.mdx +0 -278
  399. package/dist/docs/content/gateways.mdx +0 -376
  400. package/dist/docs/content/oauth.mdx +0 -179
  401. package/dist/docs/content/queues.mdx +0 -177
  402. package/dist/docs/content/rpc.mdx +0 -146
  403. package/dist/docs/content/sse.mdx +0 -159
  404. package/dist/docs/content/websockets.mdx +0 -289
  405. package/dist/docs/integrations/README.md +0 -23
  406. package/dist/docs/integrations/jwt.mdx +0 -151
  407. package/dist/docs/integrations/mongo.mdx +0 -183
  408. package/dist/docs/integrations/observability.mdx +0 -125
  409. package/dist/docs/integrations/openai.mdx +0 -108
  410. package/dist/docs/integrations/postgres.mdx +0 -190
  411. package/dist/docs/integrations/posthog.mdx +0 -122
  412. package/dist/docs/integrations/redis.mdx +0 -141
  413. package/dist/docs/integrations/resend.mdx +0 -117
  414. package/dist/docs/integrations/s3.mdx +0 -122
  415. package/dist/docs/integrations/swagger.mdx +0 -113
  416. package/dist/docs/reference/adapters.mdx +0 -130
  417. package/dist/docs/reference/auth.mdx +0 -183
  418. package/dist/docs/reference/cache.mdx +0 -132
  419. package/dist/docs/reference/circuit-breaker.mdx +0 -71
  420. package/dist/docs/reference/queue.mdx +0 -155
  421. package/dist/docs/reference/storage.mdx +0 -116
  422. package/dist/docs/reference/swagger.mdx +0 -132
  423. package/dist/integrations/drizzle.d.ts +0 -10
  424. package/dist/integrations/drizzle.d.ts.map +0 -1
  425. package/dist/integrations/drizzle.js +0 -34
  426. package/dist/integrations/drizzle.js.map +0 -1
  427. package/dist/integrations/jwt.d.ts +0 -12
  428. package/dist/integrations/jwt.d.ts.map +0 -1
  429. package/dist/integrations/jwt.js +0 -29
  430. package/dist/integrations/jwt.js.map +0 -1
  431. package/dist/integrations/mongodb.d.ts +0 -13
  432. package/dist/integrations/mongodb.d.ts.map +0 -1
  433. package/dist/integrations/mongodb.js +0 -48
  434. package/dist/integrations/mongodb.js.map +0 -1
  435. package/dist/integrations/mongoose.d.ts +0 -13
  436. package/dist/integrations/mongoose.d.ts.map +0 -1
  437. package/dist/integrations/mongoose.js +0 -84
  438. package/dist/integrations/mongoose.js.map +0 -1
  439. package/dist/integrations/openai.d.ts +0 -12
  440. package/dist/integrations/openai.d.ts.map +0 -1
  441. package/dist/integrations/openai.js +0 -47
  442. package/dist/integrations/openai.js.map +0 -1
  443. package/dist/integrations/postgres.d.ts +0 -13
  444. package/dist/integrations/postgres.d.ts.map +0 -1
  445. package/dist/integrations/postgres.js +0 -55
  446. package/dist/integrations/postgres.js.map +0 -1
  447. package/dist/integrations/posthog.d.ts +0 -13
  448. package/dist/integrations/posthog.d.ts.map +0 -1
  449. package/dist/integrations/posthog.js +0 -49
  450. package/dist/integrations/posthog.js.map +0 -1
  451. package/dist/integrations/prisma.d.ts +0 -10
  452. package/dist/integrations/prisma.d.ts.map +0 -1
  453. package/dist/integrations/prisma.js +0 -39
  454. package/dist/integrations/prisma.js.map +0 -1
  455. package/dist/integrations/redis.d.ts +0 -12
  456. package/dist/integrations/redis.d.ts.map +0 -1
  457. package/dist/integrations/redis.js +0 -48
  458. package/dist/integrations/redis.js.map +0 -1
  459. package/dist/integrations/resend.d.ts +0 -12
  460. package/dist/integrations/resend.d.ts.map +0 -1
  461. package/dist/integrations/resend.js +0 -47
  462. package/dist/integrations/resend.js.map +0 -1
  463. package/dist/integrations/s3.d.ts +0 -15
  464. package/dist/integrations/s3.d.ts.map +0 -1
  465. package/dist/integrations/s3.js +0 -60
  466. package/dist/integrations/s3.js.map +0 -1
  467. package/dist/integrations/supabase.d.ts +0 -13
  468. package/dist/integrations/supabase.d.ts.map +0 -1
  469. package/dist/integrations/supabase.js +0 -51
  470. package/dist/integrations/supabase.js.map +0 -1
  471. package/dist/middleware/cache.d.ts +0 -21
  472. package/dist/middleware/cache.d.ts.map +0 -1
  473. package/dist/middleware/cache.js +0 -156
  474. package/dist/middleware/cache.js.map +0 -1
  475. package/dist/observability/health.d.ts +0 -23
  476. package/dist/observability/health.d.ts.map +0 -1
  477. package/dist/observability/health.js +0 -49
  478. package/dist/observability/health.js.map +0 -1
  479. package/dist/observability/index.d.ts +0 -4
  480. package/dist/observability/index.d.ts.map +0 -1
  481. package/dist/observability/index.js +0 -10
  482. package/dist/observability/index.js.map +0 -1
  483. package/dist/observability/metrics.d.ts +0 -6
  484. package/dist/observability/metrics.d.ts.map +0 -1
  485. package/dist/observability/metrics.js +0 -60
  486. package/dist/observability/metrics.js.map +0 -1
  487. package/dist/observability/otel.d.ts +0 -27
  488. package/dist/observability/otel.d.ts.map +0 -1
  489. package/dist/observability/otel.js +0 -45
  490. package/dist/observability/otel.js.map +0 -1
  491. package/dist/observability/prometheus.d.ts +0 -30
  492. package/dist/observability/prometheus.d.ts.map +0 -1
  493. package/dist/observability/prometheus.js +0 -31
  494. package/dist/observability/prometheus.js.map +0 -1
  495. package/dist/queue/client.d.ts +0 -13
  496. package/dist/queue/client.d.ts.map +0 -1
  497. package/dist/queue/client.js +0 -83
  498. package/dist/queue/client.js.map +0 -1
  499. package/dist/queue/drivers/MemoryDriver.d.ts +0 -21
  500. package/dist/queue/drivers/MemoryDriver.d.ts.map +0 -1
  501. package/dist/queue/drivers/MemoryDriver.js +0 -176
  502. package/dist/queue/drivers/MemoryDriver.js.map +0 -1
  503. package/dist/queue/drivers/RedisDriver.d.ts +0 -19
  504. package/dist/queue/drivers/RedisDriver.d.ts.map +0 -1
  505. package/dist/queue/drivers/RedisDriver.js +0 -130
  506. package/dist/queue/drivers/RedisDriver.js.map +0 -1
  507. package/dist/queue/index.d.ts +0 -18
  508. package/dist/queue/index.d.ts.map +0 -1
  509. package/dist/queue/index.js +0 -37
  510. package/dist/queue/index.js.map +0 -1
  511. package/dist/queue/manager.d.ts +0 -18
  512. package/dist/queue/manager.d.ts.map +0 -1
  513. package/dist/queue/manager.js +0 -59
  514. package/dist/queue/manager.js.map +0 -1
  515. package/dist/queue/types.d.ts +0 -55
  516. package/dist/queue/types.d.ts.map +0 -1
  517. package/dist/queue/types.js.map +0 -1
  518. package/dist/queue/worker.d.ts +0 -18
  519. package/dist/queue/worker.d.ts.map +0 -1
  520. package/dist/queue/worker.js +0 -176
  521. package/dist/queue/worker.js.map +0 -1
  522. package/dist/router/gateway.d.ts.map +0 -1
  523. package/dist/router/gateway.js +0 -11
  524. package/dist/router/gateway.js.map +0 -1
  525. package/dist/server/bun-adapter.d.ts.map +0 -1
  526. package/dist/server/bun-adapter.js.map +0 -1
  527. package/dist/server/sse.d.ts +0 -16
  528. package/dist/server/sse.d.ts.map +0 -1
  529. package/dist/server/sse.js +0 -51
  530. package/dist/server/sse.js.map +0 -1
  531. package/dist/server/uws-adapter.d.ts.map +0 -1
  532. package/dist/server/uws-adapter.js.map +0 -1
  533. package/dist/storage/index.d.ts +0 -15
  534. package/dist/storage/index.d.ts.map +0 -1
  535. package/dist/storage/index.js +0 -7
  536. package/dist/storage/index.js.map +0 -1
  537. package/dist/swagger/index.d.ts +0 -9
  538. package/dist/swagger/index.d.ts.map +0 -1
  539. package/dist/swagger/index.js +0 -165
  540. package/dist/swagger/index.js.map +0 -1
  541. package/dist/threads/pool.d.ts +0 -14
  542. package/dist/threads/pool.d.ts.map +0 -1
  543. package/dist/threads/pool.js +0 -93
  544. package/dist/threads/pool.js.map +0 -1
  545. package/dist/threads/worker-runner.d.ts +0 -2
  546. package/dist/threads/worker-runner.d.ts.map +0 -1
  547. package/dist/threads/worker-runner.js +0 -71
  548. package/dist/threads/worker-runner.js.map +0 -1
  549. package/dist/validator/validator.d.ts +0 -360
  550. package/dist/validator/validator.d.ts.map +0 -1
  551. package/dist/validator/validator.js +0 -931
  552. package/dist/validator/validator.js.map +0 -1
  553. package/dist/websocket/orchestrator.d.ts +0 -11
  554. package/dist/websocket/orchestrator.d.ts.map +0 -1
  555. package/dist/websocket/orchestrator.js +0 -238
  556. package/dist/websocket/orchestrator.js.map +0 -1
  557. package/dist/websocket/server.d.ts +0 -66
  558. package/dist/websocket/server.d.ts.map +0 -1
  559. package/dist/websocket/server.js +0 -158
  560. package/dist/websocket/server.js.map +0 -1
  561. package/dist/websocket/socket.d.ts +0 -119
  562. package/dist/websocket/socket.d.ts.map +0 -1
  563. package/dist/websocket/socket.js +0 -242
  564. package/dist/websocket/socket.js.map +0 -1
@@ -1,124 +0,0 @@
1
- "use strict";
2
- /**
3
- * Facebook OAuth Provider.
4
- *
5
- * Endpoints:
6
- * Auth: https://www.facebook.com/v19.0/dialog/oauth
7
- * Token: https://graph.facebook.com/v19.0/oauth/access_token
8
- * UserInfo: https://graph.facebook.com/v19.0/me
9
- *
10
- * Default scopes: email, public_profile
11
- *
12
- * Note: Facebook uses Graph API versioning. This implementation uses v19.0.
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.FacebookProvider = void 0;
16
- const GRAPH_VERSION = 'v19.0';
17
- const AUTH_URL = `https://www.facebook.com/${GRAPH_VERSION}/dialog/oauth`;
18
- const TOKEN_URL = `https://graph.facebook.com/${GRAPH_VERSION}/oauth/access_token`;
19
- const USERINFO_URL = `https://graph.facebook.com/${GRAPH_VERSION}/me`;
20
- const DEFAULT_SCOPES = ['email', 'public_profile'];
21
- class FacebookProvider {
22
- constructor(config) {
23
- this.name = 'facebook';
24
- this.config = config;
25
- }
26
- getAuthorizationUrl(state, _codeVerifier) {
27
- const scopes = this.config.scopes || DEFAULT_SCOPES;
28
- const params = new URLSearchParams({
29
- client_id: this.config.clientId,
30
- redirect_uri: this.config.redirectUri,
31
- response_type: 'code',
32
- scope: scopes.join(','),
33
- state,
34
- });
35
- return `${AUTH_URL}?${params.toString()}`;
36
- }
37
- async exchangeCode(code, _codeVerifier) {
38
- const params = new URLSearchParams({
39
- client_id: this.config.clientId,
40
- client_secret: this.config.clientSecret,
41
- code,
42
- redirect_uri: this.config.redirectUri,
43
- });
44
- const response = await fetch(`${TOKEN_URL}?${params.toString()}`, {
45
- method: 'GET',
46
- });
47
- if (!response.ok) {
48
- const error = await response.text();
49
- throw new Error(`Facebook token exchange failed: ${error}`);
50
- }
51
- const data = (await response.json());
52
- if (data.error) {
53
- throw new Error(`Facebook token exchange failed: ${data.error.message || data.error}`);
54
- }
55
- return {
56
- accessToken: data.access_token,
57
- expiresIn: data.expires_in,
58
- tokenType: data.token_type || 'Bearer',
59
- };
60
- }
61
- async getUserProfile(tokens) {
62
- const fields = 'id,name,email,first_name,last_name,picture.type(large)';
63
- const response = await fetch(`${USERINFO_URL}?fields=${encodeURIComponent(fields)}&access_token=${encodeURIComponent(tokens.accessToken)}`);
64
- if (!response.ok) {
65
- throw new Error(`Facebook user info request failed: ${response.statusText}`);
66
- }
67
- const data = (await response.json());
68
- if (data.error) {
69
- throw new Error(`Facebook user info request failed: ${data.error.message || data.error}`);
70
- }
71
- // Extract profile picture URL
72
- const avatar = data.picture?.data?.url || undefined;
73
- return {
74
- id: data.id,
75
- email: data.email || '',
76
- emailVerified: !!data.email, // Facebook only returns email if verified
77
- name: data.name || '',
78
- firstName: data.first_name,
79
- lastName: data.last_name,
80
- avatar,
81
- provider: 'facebook',
82
- raw: data,
83
- };
84
- }
85
- async refreshToken(_refreshToken) {
86
- // Facebook uses long-lived tokens instead of refresh tokens
87
- // To extend a token, exchange a short-lived token for a long-lived one
88
- throw new Error('Facebook does not support standard refresh tokens. ' +
89
- 'Use the long-lived token exchange endpoint instead: ' +
90
- `${TOKEN_URL}?grant_type=fb_exchange_token&client_id=...&client_secret=...&fb_exchange_token=...`);
91
- }
92
- /**
93
- * Exchange a short-lived token for a long-lived token (~60 days).
94
- */
95
- async exchangeForLongLived(shortLivedToken) {
96
- const params = new URLSearchParams({
97
- grant_type: 'fb_exchange_token',
98
- client_id: this.config.clientId,
99
- client_secret: this.config.clientSecret,
100
- fb_exchange_token: shortLivedToken,
101
- });
102
- const response = await fetch(`${TOKEN_URL}?${params.toString()}`);
103
- if (!response.ok) {
104
- const error = await response.text();
105
- throw new Error(`Facebook long-lived token exchange failed: ${error}`);
106
- }
107
- const data = (await response.json());
108
- return {
109
- accessToken: data.access_token,
110
- expiresIn: data.expires_in,
111
- tokenType: data.token_type || 'Bearer',
112
- };
113
- }
114
- async revokeToken(token) {
115
- // Facebook uses a DELETE request to revoke permissions
116
- const response = await fetch(`https://graph.facebook.com/${GRAPH_VERSION}/me/permissions?access_token=${encodeURIComponent(token)}`, { method: 'DELETE' });
117
- if (!response.ok) {
118
- const error = await response.text();
119
- throw new Error(`Facebook token revocation failed: ${error}`);
120
- }
121
- }
122
- }
123
- exports.FacebookProvider = FacebookProvider;
124
- //# sourceMappingURL=facebook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"facebook.js","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/facebook.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * GitHub OAuth Provider.
3
- *
4
- * Endpoints:
5
- * Auth: https://github.com/login/oauth/authorize
6
- * Token: https://github.com/login/oauth/access_token
7
- * UserInfo: https://api.github.com/user
8
- * Emails: https://api.github.com/user/emails
9
- *
10
- * Default scopes: user:email, read:user
11
- *
12
- * Note: GitHub does not support PKCE or refresh tokens in the standard OAuth flow.
13
- */
14
- import type { OAuthProviderAdapter, OAuthProviderConfig, OAuthTokens, OAuthUserProfile } from '../types';
15
- export declare class GithubProvider implements OAuthProviderAdapter {
16
- readonly name: "github";
17
- private config;
18
- constructor(config: OAuthProviderConfig);
19
- getAuthorizationUrl(state: string, _codeVerifier?: string): string;
20
- exchangeCode(code: string, _codeVerifier?: string): Promise<OAuthTokens>;
21
- getUserProfile(tokens: OAuthTokens): Promise<OAuthUserProfile>;
22
- refreshToken(_refreshToken: string): Promise<OAuthTokens>;
23
- revokeToken(token: string): Promise<void>;
24
- }
25
- //# sourceMappingURL=github.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/github.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAA;AASjB,qBAAa,cAAe,YAAW,oBAAoB;IACzD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IAEjC,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,mBAAmB;IAIvC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM;IAY5D,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,CAAC;IAmCjB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoD9D,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOzD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBhD"}
@@ -1,132 +0,0 @@
1
- "use strict";
2
- /**
3
- * GitHub OAuth Provider.
4
- *
5
- * Endpoints:
6
- * Auth: https://github.com/login/oauth/authorize
7
- * Token: https://github.com/login/oauth/access_token
8
- * UserInfo: https://api.github.com/user
9
- * Emails: https://api.github.com/user/emails
10
- *
11
- * Default scopes: user:email, read:user
12
- *
13
- * Note: GitHub does not support PKCE or refresh tokens in the standard OAuth flow.
14
- */
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.GithubProvider = void 0;
17
- const AUTH_URL = 'https://github.com/login/oauth/authorize';
18
- const TOKEN_URL = 'https://github.com/login/oauth/access_token';
19
- const USERINFO_URL = 'https://api.github.com/user';
20
- const EMAILS_URL = 'https://api.github.com/user/emails';
21
- const DEFAULT_SCOPES = ['user:email', 'read:user'];
22
- class GithubProvider {
23
- constructor(config) {
24
- this.name = 'github';
25
- this.config = config;
26
- }
27
- getAuthorizationUrl(state, _codeVerifier) {
28
- const scopes = this.config.scopes || DEFAULT_SCOPES;
29
- const params = new URLSearchParams({
30
- client_id: this.config.clientId,
31
- redirect_uri: this.config.redirectUri,
32
- scope: scopes.join(' '),
33
- state,
34
- });
35
- return `${AUTH_URL}?${params.toString()}`;
36
- }
37
- async exchangeCode(code, _codeVerifier) {
38
- const response = await fetch(TOKEN_URL, {
39
- method: 'POST',
40
- headers: {
41
- 'Content-Type': 'application/json',
42
- Accept: 'application/json',
43
- },
44
- body: JSON.stringify({
45
- client_id: this.config.clientId,
46
- client_secret: this.config.clientSecret,
47
- code,
48
- redirect_uri: this.config.redirectUri,
49
- }),
50
- });
51
- if (!response.ok) {
52
- const error = await response.text();
53
- throw new Error(`GitHub token exchange failed: ${error}`);
54
- }
55
- const data = (await response.json());
56
- if (data.error) {
57
- throw new Error(`GitHub token exchange failed: ${data.error_description || data.error}`);
58
- }
59
- return {
60
- accessToken: data.access_token,
61
- tokenType: data.token_type || 'Bearer',
62
- scope: data.scope,
63
- };
64
- }
65
- async getUserProfile(tokens) {
66
- const headers = {
67
- Authorization: `Bearer ${tokens.accessToken}`,
68
- Accept: 'application/json',
69
- };
70
- // Fetch user info
71
- const userResponse = await fetch(USERINFO_URL, { headers });
72
- if (!userResponse.ok) {
73
- throw new Error(`GitHub user info request failed: ${userResponse.statusText}`);
74
- }
75
- const userData = (await userResponse.json());
76
- // Fetch emails (since the user endpoint might not include email)
77
- let email = userData.email || '';
78
- let emailVerified = false;
79
- if (!email || tokens.scope?.includes('user:email')) {
80
- try {
81
- const emailsResponse = await fetch(EMAILS_URL, { headers });
82
- if (emailsResponse.ok) {
83
- const emails = (await emailsResponse.json());
84
- const primaryEmail = emails.find((e) => e.primary) || emails[0];
85
- if (primaryEmail) {
86
- email = primaryEmail.email;
87
- emailVerified = primaryEmail.verified ?? false;
88
- }
89
- }
90
- }
91
- catch {
92
- // Non-critical: proceed with whatever email we have
93
- }
94
- }
95
- // Parse name
96
- const fullName = userData.name || userData.login || '';
97
- const nameParts = fullName.split(' ');
98
- return {
99
- id: String(userData.id),
100
- email,
101
- emailVerified,
102
- name: fullName,
103
- firstName: nameParts[0] || undefined,
104
- lastName: nameParts.length > 1 ? nameParts.slice(1).join(' ') : undefined,
105
- avatar: userData.avatar_url,
106
- provider: 'github',
107
- raw: userData,
108
- };
109
- }
110
- async refreshToken(_refreshToken) {
111
- throw new Error('GitHub OAuth does not support refresh tokens in the standard flow. ' +
112
- 'The user must re-authenticate.');
113
- }
114
- async revokeToken(token) {
115
- // GitHub uses the application API to revoke tokens
116
- const response = await fetch(`https://api.github.com/applications/${this.config.clientId}/token`, {
117
- method: 'DELETE',
118
- headers: {
119
- Authorization: 'Basic ' +
120
- Buffer.from(`${this.config.clientId}:${this.config.clientSecret}`).toString('base64'),
121
- Accept: 'application/vnd.github+json',
122
- },
123
- body: JSON.stringify({ access_token: token }),
124
- });
125
- if (!response.ok && response.status !== 404) {
126
- const error = await response.text();
127
- throw new Error(`GitHub token revocation failed: ${error}`);
128
- }
129
- }
130
- }
131
- exports.GithubProvider = GithubProvider;
132
- //# sourceMappingURL=github.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/github.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Google OAuth 2.0 + OpenID Connect Provider.
3
- *
4
- * Endpoints:
5
- * Auth: https://accounts.google.com/o/oauth2/v2/auth
6
- * Token: https://oauth2.googleapis.com/token
7
- * UserInfo: https://www.googleapis.com/oauth2/v3/userinfo
8
- * Revoke: https://oauth2.googleapis.com/revoke
9
- *
10
- * Default scopes: openid, email, profile
11
- */
12
- import type { OAuthProviderAdapter, OAuthProviderConfig, OAuthTokens, OAuthUserProfile } from '../types';
13
- export declare class GoogleProvider implements OAuthProviderAdapter {
14
- readonly name: "google";
15
- private config;
16
- constructor(config: OAuthProviderConfig);
17
- getAuthorizationUrl(state: string, codeVerifier?: string): string;
18
- exchangeCode(code: string, codeVerifier?: string): Promise<OAuthTokens>;
19
- getUserProfile(tokens: OAuthTokens): Promise<OAuthUserProfile>;
20
- refreshToken(refreshToken: string): Promise<OAuthTokens>;
21
- revokeToken(token: string): Promise<void>;
22
- }
23
- //# sourceMappingURL=google.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/google.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAA;AASjB,qBAAa,cAAe,YAAW,oBAAoB;IACzD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IAEjC,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,mBAAmB;IAIvC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAuB3D,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC;IAoCjB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0B9D,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA6BxD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAchD"}
@@ -1,134 +0,0 @@
1
- "use strict";
2
- /**
3
- * Google OAuth 2.0 + OpenID Connect Provider.
4
- *
5
- * Endpoints:
6
- * Auth: https://accounts.google.com/o/oauth2/v2/auth
7
- * Token: https://oauth2.googleapis.com/token
8
- * UserInfo: https://www.googleapis.com/oauth2/v3/userinfo
9
- * Revoke: https://oauth2.googleapis.com/revoke
10
- *
11
- * Default scopes: openid, email, profile
12
- */
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.GoogleProvider = void 0;
15
- const node_crypto_1 = require("node:crypto");
16
- const AUTH_URL = 'https://accounts.google.com/o/oauth2/v2/auth';
17
- const TOKEN_URL = 'https://oauth2.googleapis.com/token';
18
- const USERINFO_URL = 'https://www.googleapis.com/oauth2/v3/userinfo';
19
- const REVOKE_URL = 'https://oauth2.googleapis.com/revoke';
20
- const DEFAULT_SCOPES = ['openid', 'email', 'profile'];
21
- class GoogleProvider {
22
- constructor(config) {
23
- this.name = 'google';
24
- this.config = config;
25
- }
26
- getAuthorizationUrl(state, codeVerifier) {
27
- const scopes = this.config.scopes || DEFAULT_SCOPES;
28
- const params = new URLSearchParams({
29
- client_id: this.config.clientId,
30
- redirect_uri: this.config.redirectUri,
31
- response_type: 'code',
32
- scope: scopes.join(' '),
33
- state,
34
- access_type: 'offline', // Request refresh token
35
- prompt: 'consent',
36
- });
37
- if (codeVerifier) {
38
- const challenge = (0, node_crypto_1.createHash)('sha256')
39
- .update(codeVerifier)
40
- .digest('base64url');
41
- params.set('code_challenge', challenge);
42
- params.set('code_challenge_method', 'S256');
43
- }
44
- return `${AUTH_URL}?${params.toString()}`;
45
- }
46
- async exchangeCode(code, codeVerifier) {
47
- const body = {
48
- client_id: this.config.clientId,
49
- client_secret: this.config.clientSecret,
50
- code,
51
- grant_type: 'authorization_code',
52
- redirect_uri: this.config.redirectUri,
53
- };
54
- if (codeVerifier) {
55
- body.code_verifier = codeVerifier;
56
- }
57
- const response = await fetch(TOKEN_URL, {
58
- method: 'POST',
59
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
60
- body: new URLSearchParams(body),
61
- });
62
- if (!response.ok) {
63
- const error = await response.text();
64
- throw new Error(`Google token exchange failed: ${error}`);
65
- }
66
- const data = (await response.json());
67
- return {
68
- accessToken: data.access_token,
69
- refreshToken: data.refresh_token,
70
- expiresIn: data.expires_in,
71
- tokenType: data.token_type || 'Bearer',
72
- idToken: data.id_token,
73
- scope: data.scope,
74
- };
75
- }
76
- async getUserProfile(tokens) {
77
- const response = await fetch(USERINFO_URL, {
78
- headers: { Authorization: `Bearer ${tokens.accessToken}` },
79
- });
80
- if (!response.ok) {
81
- throw new Error(`Google user info request failed: ${response.statusText}`);
82
- }
83
- const data = (await response.json());
84
- return {
85
- id: data.sub,
86
- email: data.email,
87
- emailVerified: data.email_verified ?? false,
88
- name: data.name ||
89
- `${data.given_name || ''} ${data.family_name || ''}`.trim(),
90
- firstName: data.given_name,
91
- lastName: data.family_name,
92
- avatar: data.picture,
93
- provider: 'google',
94
- raw: data,
95
- };
96
- }
97
- async refreshToken(refreshToken) {
98
- const response = await fetch(TOKEN_URL, {
99
- method: 'POST',
100
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
101
- body: new URLSearchParams({
102
- client_id: this.config.clientId,
103
- client_secret: this.config.clientSecret,
104
- refresh_token: refreshToken,
105
- grant_type: 'refresh_token',
106
- }),
107
- });
108
- if (!response.ok) {
109
- const error = await response.text();
110
- throw new Error(`Google token refresh failed: ${error}`);
111
- }
112
- const data = (await response.json());
113
- return {
114
- accessToken: data.access_token,
115
- refreshToken: data.refresh_token || refreshToken,
116
- expiresIn: data.expires_in,
117
- tokenType: data.token_type || 'Bearer',
118
- idToken: data.id_token,
119
- scope: data.scope,
120
- };
121
- }
122
- async revokeToken(token) {
123
- const response = await fetch(`${REVOKE_URL}?token=${encodeURIComponent(token)}`, {
124
- method: 'POST',
125
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
126
- });
127
- if (!response.ok) {
128
- const error = await response.text();
129
- throw new Error(`Google token revocation failed: ${error}`);
130
- }
131
- }
132
- }
133
- exports.GoogleProvider = GoogleProvider;
134
- //# sourceMappingURL=google.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google.js","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/google.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Microsoft Entra ID (Azure AD) OAuth Provider.
3
- *
4
- * Endpoints:
5
- * Auth: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize
6
- * Token: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
7
- * UserInfo: https://graph.microsoft.com/v1.0/me
8
- *
9
- * Supports multi-tenant ('common'), organizations-only ('organizations'),
10
- * or a specific tenant ID.
11
- *
12
- * Default scopes: openid, email, profile, User.Read
13
- */
14
- import type { OAuthProviderAdapter, OAuthProviderConfig, OAuthTokens, OAuthUserProfile } from '../types';
15
- export declare class MicrosoftProvider implements OAuthProviderAdapter {
16
- readonly name: "microsoft";
17
- private config;
18
- private tenant;
19
- constructor(config: OAuthProviderConfig);
20
- private get authUrl();
21
- private get tokenUrl();
22
- getAuthorizationUrl(state: string, codeVerifier?: string): string;
23
- exchangeCode(code: string, codeVerifier?: string): Promise<OAuthTokens>;
24
- getUserProfile(tokens: OAuthTokens): Promise<OAuthUserProfile>;
25
- refreshToken(refreshToken: string): Promise<OAuthTokens>;
26
- revokeToken(_token: string): Promise<void>;
27
- }
28
- //# sourceMappingURL=microsoft.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"microsoft.d.ts","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/microsoft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAA;AAKjB,qBAAa,iBAAkB,YAAW,oBAAoB;IAC5D,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IAEpC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,mBAAmB;IAKvC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,KAAK,QAAQ,GAEnB;IAED,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAsB3D,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC;IAoCjB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0B9D,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA6BxD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUjD"}
@@ -1,136 +0,0 @@
1
- "use strict";
2
- /**
3
- * Microsoft Entra ID (Azure AD) OAuth Provider.
4
- *
5
- * Endpoints:
6
- * Auth: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize
7
- * Token: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
8
- * UserInfo: https://graph.microsoft.com/v1.0/me
9
- *
10
- * Supports multi-tenant ('common'), organizations-only ('organizations'),
11
- * or a specific tenant ID.
12
- *
13
- * Default scopes: openid, email, profile, User.Read
14
- */
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.MicrosoftProvider = void 0;
17
- const node_crypto_1 = require("node:crypto");
18
- const USERINFO_URL = 'https://graph.microsoft.com/v1.0/me';
19
- const DEFAULT_SCOPES = ['openid', 'email', 'profile', 'User.Read'];
20
- class MicrosoftProvider {
21
- constructor(config) {
22
- this.name = 'microsoft';
23
- this.config = config;
24
- this.tenant = config.tenant || 'common';
25
- }
26
- get authUrl() {
27
- return `https://login.microsoftonline.com/${this.tenant}/oauth2/v2.0/authorize`;
28
- }
29
- get tokenUrl() {
30
- return `https://login.microsoftonline.com/${this.tenant}/oauth2/v2.0/token`;
31
- }
32
- getAuthorizationUrl(state, codeVerifier) {
33
- const scopes = this.config.scopes || DEFAULT_SCOPES;
34
- const params = new URLSearchParams({
35
- client_id: this.config.clientId,
36
- redirect_uri: this.config.redirectUri,
37
- response_type: 'code',
38
- scope: scopes.join(' '),
39
- state,
40
- response_mode: 'query',
41
- });
42
- if (codeVerifier) {
43
- const challenge = (0, node_crypto_1.createHash)('sha256')
44
- .update(codeVerifier)
45
- .digest('base64url');
46
- params.set('code_challenge', challenge);
47
- params.set('code_challenge_method', 'S256');
48
- }
49
- return `${this.authUrl}?${params.toString()}`;
50
- }
51
- async exchangeCode(code, codeVerifier) {
52
- const body = {
53
- client_id: this.config.clientId,
54
- client_secret: this.config.clientSecret,
55
- code,
56
- grant_type: 'authorization_code',
57
- redirect_uri: this.config.redirectUri,
58
- };
59
- if (codeVerifier) {
60
- body.code_verifier = codeVerifier;
61
- }
62
- const response = await fetch(this.tokenUrl, {
63
- method: 'POST',
64
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
65
- body: new URLSearchParams(body),
66
- });
67
- if (!response.ok) {
68
- const error = await response.text();
69
- throw new Error(`Microsoft token exchange failed: ${error}`);
70
- }
71
- const data = (await response.json());
72
- return {
73
- accessToken: data.access_token,
74
- refreshToken: data.refresh_token,
75
- expiresIn: data.expires_in,
76
- tokenType: data.token_type || 'Bearer',
77
- idToken: data.id_token,
78
- scope: data.scope,
79
- };
80
- }
81
- async getUserProfile(tokens) {
82
- const response = await fetch(USERINFO_URL, {
83
- headers: { Authorization: `Bearer ${tokens.accessToken}` },
84
- });
85
- if (!response.ok) {
86
- throw new Error(`Microsoft user info request failed: ${response.statusText}`);
87
- }
88
- const data = (await response.json());
89
- return {
90
- id: data.id,
91
- email: data.mail || data.userPrincipalName || '',
92
- emailVerified: true, // Microsoft verifies emails by default
93
- name: data.displayName || '',
94
- firstName: data.givenName,
95
- lastName: data.surname,
96
- avatar: undefined, // Graph API requires a separate photo request
97
- provider: 'microsoft',
98
- raw: data,
99
- };
100
- }
101
- async refreshToken(refreshToken) {
102
- const response = await fetch(this.tokenUrl, {
103
- method: 'POST',
104
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
105
- body: new URLSearchParams({
106
- client_id: this.config.clientId,
107
- client_secret: this.config.clientSecret,
108
- refresh_token: refreshToken,
109
- grant_type: 'refresh_token',
110
- }),
111
- });
112
- if (!response.ok) {
113
- const error = await response.text();
114
- throw new Error(`Microsoft token refresh failed: ${error}`);
115
- }
116
- const data = (await response.json());
117
- return {
118
- accessToken: data.access_token,
119
- refreshToken: data.refresh_token || refreshToken,
120
- expiresIn: data.expires_in,
121
- tokenType: data.token_type || 'Bearer',
122
- idToken: data.id_token,
123
- scope: data.scope,
124
- };
125
- }
126
- async revokeToken(_token) {
127
- // Microsoft's v2.0 endpoint does not have a standard revocation endpoint.
128
- // Token revocation is handled via the admin portal or by signing the user out.
129
- // The logout URL can be used instead:
130
- // https://login.microsoftonline.com/{tenant}/oauth2/v2.0/logout
131
- throw new Error('Microsoft does not provide a standard token revocation endpoint. ' +
132
- 'Use the logout endpoint or revoke via the Azure admin portal.');
133
- }
134
- }
135
- exports.MicrosoftProvider = MicrosoftProvider;
136
- //# sourceMappingURL=microsoft.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"microsoft.js","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/microsoft.ts"],"names":[],"mappings":"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"}