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,164 +0,0 @@
1
- "use strict";
2
- /**
3
- * OAuth Middleware Helpers.
4
- *
5
- * Express-style middleware functions for handling OAuth redirects, callbacks,
6
- * and authentication guards in ExisJS route handlers.
7
- *
8
- * @example
9
- * ```ts
10
- * import { oauthRedirect, oauthCallback, requireAuth } from 'exisjs/auth/oauth'
11
- *
12
- * app.get('/auth/google', oauthRedirect('google'))
13
- * app.get('/auth/google/callback', oauthCallback('google', {
14
- * onSuccess: async (req, res, profile, tokens) => {
15
- * // Create or update user in your database
16
- * req.session.userId = profile.id
17
- * res.redirect('/dashboard')
18
- * },
19
- * }))
20
- *
21
- * // Protect routes
22
- * app.get('/dashboard', requireAuth(), (req, res) => {
23
- * res.json({ user: req.user })
24
- * })
25
- * ```
26
- */
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.oauthRedirect = oauthRedirect;
29
- exports.oauthCallback = oauthCallback;
30
- exports.requireAuth = requireAuth;
31
- const errors_1 = require("../../error/errors");
32
- const core_1 = require("./core");
33
- const DEFAULT_STATE_KEY = '_exis_oauth_state';
34
- const STATE_MAX_AGE_MS = 10 * 60 * 1000; // 10 minutes
35
- /**
36
- * Middleware that redirects the user to an OAuth provider's login page.
37
- * Stores the state and code verifier in the user's session for validation on callback.
38
- *
39
- * @param provider The OAuth provider name (e.g. 'google', 'github')
40
- * @param options Optional settings like additional params or disabling PKCE
41
- */
42
- function oauthRedirect(provider, options) {
43
- return (req, res, _next) => {
44
- const stateKey = options?.stateKey || DEFAULT_STATE_KEY;
45
- const { url, flowState } = core_1.OAuth.getAuthUrl(provider, {
46
- usePKCE: options?.usePKCE,
47
- additionalParams: options?.additionalParams,
48
- });
49
- // Store the flow state in session
50
- if (req.session) {
51
- req.session[stateKey] = flowState;
52
- }
53
- else {
54
- // If no session middleware, store in a signed cookie
55
- res.cookie(stateKey, JSON.stringify(flowState), {
56
- httpOnly: true,
57
- secure: process.env.NODE_ENV === 'production',
58
- sameSite: 'Lax',
59
- maxAge: STATE_MAX_AGE_MS / 1000,
60
- path: '/',
61
- });
62
- }
63
- res.redirect(url);
64
- };
65
- }
66
- /**
67
- * Middleware that handles the OAuth callback from a provider.
68
- * Validates the state, exchanges the authorization code for tokens,
69
- * fetches the user profile, and calls the onSuccess callback.
70
- *
71
- * @param provider The OAuth provider name
72
- * @param options Callback options including onSuccess and onError handlers
73
- */
74
- function oauthCallback(provider, options) {
75
- const stateKey = options.stateKey || DEFAULT_STATE_KEY;
76
- return async (req, res, next) => {
77
- try {
78
- // 1. Extract code and state from the callback query params
79
- const code = req.query?.code;
80
- const returnedState = req.query?.state;
81
- const error = req.query?.error;
82
- // Handle provider-side errors
83
- if (error) {
84
- const errorDesc = req.query?.error_description || error;
85
- throw new Error(`OAuth error from ${provider}: ${errorDesc}`);
86
- }
87
- if (!code) {
88
- throw errors_1.HttpError.badRequest('Missing authorization code in OAuth callback');
89
- }
90
- // 2. Retrieve and validate the stored state
91
- let flowState;
92
- if (req.session && req.session[stateKey]) {
93
- flowState = req.session[stateKey];
94
- // Clean up
95
- delete req.session[stateKey];
96
- }
97
- else if (req.cookies?.[stateKey]) {
98
- try {
99
- flowState = JSON.parse(req.cookies[stateKey]);
100
- }
101
- catch {
102
- // Invalid cookie
103
- }
104
- // Clear the cookie
105
- res.cookie(stateKey, '', { maxAge: 0, path: '/' });
106
- }
107
- if (!flowState) {
108
- throw errors_1.HttpError.badRequest('OAuth state not found. The session may have expired. Please try again.');
109
- }
110
- // Validate state matches
111
- if (flowState.state !== returnedState) {
112
- throw errors_1.HttpError.badRequest('OAuth state mismatch. This may be a CSRF attack. Please try again.');
113
- }
114
- // Validate state age
115
- if (Date.now() - flowState.createdAt > STATE_MAX_AGE_MS) {
116
- throw errors_1.HttpError.badRequest('OAuth state has expired. Please try again.');
117
- }
118
- // Validate provider
119
- if (flowState.provider !== provider) {
120
- throw errors_1.HttpError.badRequest(`OAuth provider mismatch. Expected '${flowState.provider}', got '${provider}'.`);
121
- }
122
- // 3. Exchange code for tokens and get the user profile
123
- const { profile, tokens } = await core_1.OAuth.handleCallback(provider, code, flowState.codeVerifier);
124
- // 4. Call the success handler
125
- await options.onSuccess(req, res, profile, tokens);
126
- }
127
- catch (err) {
128
- if (options.onError) {
129
- await options.onError(req, res, err instanceof Error ? err : new Error(String(err)));
130
- }
131
- else {
132
- next(err);
133
- }
134
- }
135
- };
136
- }
137
- /**
138
- * Guard middleware that ensures the user is authenticated.
139
- * Checks for `req.user` or `req.session.userId` to determine authentication status.
140
- *
141
- * @param options Configuration options
142
- */
143
- function requireAuth(options) {
144
- return (req, res, next) => {
145
- let authenticated;
146
- if (options?.isAuthenticated) {
147
- authenticated = options.isAuthenticated(req);
148
- }
149
- else {
150
- // Default check: req.user exists or session has a userId
151
- authenticated = !!(req.user ||
152
- (req.session && req.session.userId));
153
- }
154
- if (authenticated) {
155
- return next();
156
- }
157
- // Not authenticated
158
- if (options?.redirectTo && req.headers.accept?.includes('text/html')) {
159
- return res.redirect(options.redirectTo);
160
- }
161
- return next(errors_1.HttpError.unauthorized(options?.message || 'Authentication required'));
162
- };
163
- }
164
- //# sourceMappingURL=middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/auth/oauth/middleware.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Custom OAuth Provider.
3
- *
4
- * A generic adapter for any OAuth 2.0 compliant provider that isn't
5
- * built in. Configure with your own auth/token/userinfo URLs and
6
- * an optional profile mapping function.
7
- *
8
- * @example
9
- * ```ts
10
- * import { OAuth } from 'exisjs/auth'
11
- *
12
- * OAuth.custom({
13
- * name: 'keycloak',
14
- * authUrl: 'https://keycloak.example.com/realms/main/protocol/openid-connect/auth',
15
- * tokenUrl: 'https://keycloak.example.com/realms/main/protocol/openid-connect/token',
16
- * userInfoUrl: 'https://keycloak.example.com/realms/main/protocol/openid-connect/userinfo',
17
- * clientId: process.env.KC_CLIENT_ID!,
18
- * clientSecret: process.env.KC_CLIENT_SECRET!,
19
- * redirectUri: 'http://localhost:3000/auth/keycloak/callback',
20
- * scopes: ['openid', 'profile', 'email'],
21
- * mapProfile: (raw) => ({
22
- * id: raw.sub as string,
23
- * email: raw.email as string,
24
- * emailVerified: raw.email_verified as boolean,
25
- * name: raw.preferred_username as string,
26
- * }),
27
- * })
28
- * ```
29
- */
30
- import type { OAuthProviderAdapter, OAuthTokens, OAuthUserProfile, CustomOAuthProviderConfig } from '../types';
31
- export declare class CustomProvider implements OAuthProviderAdapter {
32
- readonly name: string;
33
- private config;
34
- constructor(config: CustomOAuthProviderConfig);
35
- getAuthorizationUrl(state: string, codeVerifier?: string): string;
36
- exchangeCode(code: string, codeVerifier?: string): Promise<OAuthTokens>;
37
- getUserProfile(tokens: OAuthTokens): Promise<OAuthUserProfile>;
38
- refreshToken(refreshToken: string): Promise<OAuthTokens>;
39
- revokeToken(token: string): Promise<void>;
40
- }
41
- //# sourceMappingURL=custom.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/custom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,UAAU,CAAA;AAEjB,qBAAa,cAAe,YAAW,oBAAoB;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,EAAE,yBAAyB;IAK7C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAwB3D,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC;IAoDjB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6C9D,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA6CxD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAoChD"}
@@ -1,204 +0,0 @@
1
- "use strict";
2
- /**
3
- * Custom OAuth Provider.
4
- *
5
- * A generic adapter for any OAuth 2.0 compliant provider that isn't
6
- * built in. Configure with your own auth/token/userinfo URLs and
7
- * an optional profile mapping function.
8
- *
9
- * @example
10
- * ```ts
11
- * import { OAuth } from 'exisjs/auth'
12
- *
13
- * OAuth.custom({
14
- * name: 'keycloak',
15
- * authUrl: 'https://keycloak.example.com/realms/main/protocol/openid-connect/auth',
16
- * tokenUrl: 'https://keycloak.example.com/realms/main/protocol/openid-connect/token',
17
- * userInfoUrl: 'https://keycloak.example.com/realms/main/protocol/openid-connect/userinfo',
18
- * clientId: process.env.KC_CLIENT_ID!,
19
- * clientSecret: process.env.KC_CLIENT_SECRET!,
20
- * redirectUri: 'http://localhost:3000/auth/keycloak/callback',
21
- * scopes: ['openid', 'profile', 'email'],
22
- * mapProfile: (raw) => ({
23
- * id: raw.sub as string,
24
- * email: raw.email as string,
25
- * emailVerified: raw.email_verified as boolean,
26
- * name: raw.preferred_username as string,
27
- * }),
28
- * })
29
- * ```
30
- */
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.CustomProvider = void 0;
33
- const node_crypto_1 = require("node:crypto");
34
- class CustomProvider {
35
- constructor(config) {
36
- this.name = config.name;
37
- this.config = config;
38
- }
39
- getAuthorizationUrl(state, codeVerifier) {
40
- const scopes = this.config.scopes || [];
41
- const params = new URLSearchParams({
42
- client_id: this.config.clientId,
43
- redirect_uri: this.config.redirectUri,
44
- response_type: 'code',
45
- state,
46
- });
47
- if (scopes.length > 0) {
48
- params.set('scope', scopes.join(' '));
49
- }
50
- if (codeVerifier) {
51
- const challenge = (0, node_crypto_1.createHash)('sha256')
52
- .update(codeVerifier)
53
- .digest('base64url');
54
- params.set('code_challenge', challenge);
55
- params.set('code_challenge_method', 'S256');
56
- }
57
- return `${this.config.authUrl}?${params.toString()}`;
58
- }
59
- async exchangeCode(code, codeVerifier) {
60
- const body = {
61
- code,
62
- grant_type: 'authorization_code',
63
- redirect_uri: this.config.redirectUri,
64
- };
65
- if (codeVerifier) {
66
- body.code_verifier = codeVerifier;
67
- }
68
- const headers = {
69
- 'Content-Type': 'application/x-www-form-urlencoded',
70
- Accept: 'application/json',
71
- };
72
- if (this.config.authMethod === 'header') {
73
- // Send client credentials as Basic auth header
74
- headers.Authorization =
75
- 'Basic ' +
76
- Buffer.from(`${this.config.clientId}:${this.config.clientSecret}`).toString('base64');
77
- }
78
- else {
79
- // Send client credentials in the request body (default)
80
- body.client_id = this.config.clientId;
81
- body.client_secret = this.config.clientSecret;
82
- }
83
- const response = await fetch(this.config.tokenUrl, {
84
- method: 'POST',
85
- headers,
86
- body: new URLSearchParams(body),
87
- });
88
- if (!response.ok) {
89
- const error = await response.text();
90
- throw new Error(`${this.name} token exchange failed: ${error}`);
91
- }
92
- const data = (await response.json());
93
- return {
94
- accessToken: data.access_token,
95
- refreshToken: data.refresh_token,
96
- expiresIn: data.expires_in,
97
- tokenType: data.token_type || 'Bearer',
98
- idToken: data.id_token,
99
- scope: data.scope,
100
- };
101
- }
102
- async getUserProfile(tokens) {
103
- const response = await fetch(this.config.userInfoUrl, {
104
- headers: { Authorization: `Bearer ${tokens.accessToken}` },
105
- });
106
- if (!response.ok) {
107
- throw new Error(`${this.name} user info request failed: ${response.statusText}`);
108
- }
109
- const raw = (await response.json());
110
- // Use custom profile mapper if provided
111
- if (this.config.mapProfile) {
112
- const mapped = this.config.mapProfile(raw);
113
- return {
114
- ...mapped,
115
- emailVerified: mapped.emailVerified ?? false,
116
- provider: this.name,
117
- raw,
118
- };
119
- }
120
- // Best-effort field mapping for common OpenID Connect fields
121
- return {
122
- id: String(raw.sub || raw.id || raw.user_id || ''),
123
- email: String(raw.email || ''),
124
- emailVerified: raw.email_verified ?? false,
125
- name: String(raw.name ||
126
- raw.preferred_username ||
127
- raw.username ||
128
- raw.display_name ||
129
- ''),
130
- firstName: raw.given_name,
131
- lastName: raw.family_name,
132
- avatar: (raw.picture || raw.avatar || raw.avatar_url),
133
- provider: this.name,
134
- raw,
135
- };
136
- }
137
- async refreshToken(refreshToken) {
138
- const body = {
139
- refresh_token: refreshToken,
140
- grant_type: 'refresh_token',
141
- };
142
- const headers = {
143
- 'Content-Type': 'application/x-www-form-urlencoded',
144
- Accept: 'application/json',
145
- };
146
- if (this.config.authMethod === 'header') {
147
- headers.Authorization =
148
- 'Basic ' +
149
- Buffer.from(`${this.config.clientId}:${this.config.clientSecret}`).toString('base64');
150
- }
151
- else {
152
- body.client_id = this.config.clientId;
153
- body.client_secret = this.config.clientSecret;
154
- }
155
- const response = await fetch(this.config.tokenUrl, {
156
- method: 'POST',
157
- headers,
158
- body: new URLSearchParams(body),
159
- });
160
- if (!response.ok) {
161
- const error = await response.text();
162
- throw new Error(`${this.name} token refresh failed: ${error}`);
163
- }
164
- const data = (await response.json());
165
- return {
166
- accessToken: data.access_token,
167
- refreshToken: data.refresh_token || refreshToken,
168
- expiresIn: data.expires_in,
169
- tokenType: data.token_type || 'Bearer',
170
- idToken: data.id_token,
171
- scope: data.scope,
172
- };
173
- }
174
- async revokeToken(token) {
175
- if (!this.config.revokeUrl) {
176
- throw new Error(`${this.name} does not have a revocation endpoint configured. ` +
177
- 'Set revokeUrl in the provider config.');
178
- }
179
- const body = { token };
180
- const headers = {
181
- 'Content-Type': 'application/x-www-form-urlencoded',
182
- };
183
- if (this.config.authMethod === 'header') {
184
- headers.Authorization =
185
- 'Basic ' +
186
- Buffer.from(`${this.config.clientId}:${this.config.clientSecret}`).toString('base64');
187
- }
188
- else {
189
- body.client_id = this.config.clientId;
190
- body.client_secret = this.config.clientSecret;
191
- }
192
- const response = await fetch(this.config.revokeUrl, {
193
- method: 'POST',
194
- headers,
195
- body: new URLSearchParams(body),
196
- });
197
- if (!response.ok) {
198
- const error = await response.text();
199
- throw new Error(`${this.name} token revocation failed: ${error}`);
200
- }
201
- }
202
- }
203
- exports.CustomProvider = CustomProvider;
204
- //# sourceMappingURL=custom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/custom.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Discord OAuth Provider.
3
- *
4
- * Endpoints:
5
- * Auth: https://discord.com/api/oauth2/authorize
6
- * Token: https://discord.com/api/oauth2/token
7
- * UserInfo: https://discord.com/api/v10/users/@me
8
- * Revoke: https://discord.com/api/oauth2/token/revoke
9
- *
10
- * Default scopes: identify, email
11
- */
12
- import type { OAuthProviderAdapter, OAuthProviderConfig, OAuthTokens, OAuthUserProfile } from '../types';
13
- export declare class DiscordProvider implements OAuthProviderAdapter {
14
- readonly name: "discord";
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=discord.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/discord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAA;AASjB,qBAAa,eAAgB,YAAW,oBAAoB;IAC1D,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAS;IAElC,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,mBAAmB;IAIvC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM;IAa5D,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,CAAC;IA6BjB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoC9D,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA4BxD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBhD"}
@@ -1,130 +0,0 @@
1
- "use strict";
2
- /**
3
- * Discord OAuth Provider.
4
- *
5
- * Endpoints:
6
- * Auth: https://discord.com/api/oauth2/authorize
7
- * Token: https://discord.com/api/oauth2/token
8
- * UserInfo: https://discord.com/api/v10/users/@me
9
- * Revoke: https://discord.com/api/oauth2/token/revoke
10
- *
11
- * Default scopes: identify, email
12
- */
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.DiscordProvider = void 0;
15
- const AUTH_URL = 'https://discord.com/api/oauth2/authorize';
16
- const TOKEN_URL = 'https://discord.com/api/oauth2/token';
17
- const USERINFO_URL = 'https://discord.com/api/v10/users/@me';
18
- const REVOKE_URL = 'https://discord.com/api/oauth2/token/revoke';
19
- const DEFAULT_SCOPES = ['identify', 'email'];
20
- class DiscordProvider {
21
- constructor(config) {
22
- this.name = 'discord';
23
- this.config = config;
24
- }
25
- getAuthorizationUrl(state, _codeVerifier) {
26
- const scopes = this.config.scopes || DEFAULT_SCOPES;
27
- const params = new URLSearchParams({
28
- client_id: this.config.clientId,
29
- redirect_uri: this.config.redirectUri,
30
- response_type: 'code',
31
- scope: scopes.join(' '),
32
- state,
33
- });
34
- return `${AUTH_URL}?${params.toString()}`;
35
- }
36
- async exchangeCode(code, _codeVerifier) {
37
- const response = await fetch(TOKEN_URL, {
38
- method: 'POST',
39
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
40
- body: new URLSearchParams({
41
- client_id: this.config.clientId,
42
- client_secret: this.config.clientSecret,
43
- code,
44
- grant_type: 'authorization_code',
45
- redirect_uri: this.config.redirectUri,
46
- }),
47
- });
48
- if (!response.ok) {
49
- const error = await response.text();
50
- throw new Error(`Discord token exchange failed: ${error}`);
51
- }
52
- const data = (await response.json());
53
- return {
54
- accessToken: data.access_token,
55
- refreshToken: data.refresh_token,
56
- expiresIn: data.expires_in,
57
- tokenType: data.token_type || 'Bearer',
58
- scope: data.scope,
59
- };
60
- }
61
- async getUserProfile(tokens) {
62
- const response = await fetch(USERINFO_URL, {
63
- headers: { Authorization: `Bearer ${tokens.accessToken}` },
64
- });
65
- if (!response.ok) {
66
- throw new Error(`Discord user info request failed: ${response.statusText}`);
67
- }
68
- const data = (await response.json());
69
- // Build avatar URL
70
- let avatar;
71
- if (data.avatar) {
72
- const ext = data.avatar.startsWith('a_') ? 'gif' : 'png';
73
- avatar = `https://cdn.discordapp.com/avatars/${data.id}/${data.avatar}.${ext}`;
74
- }
75
- // Discord username: pre-2023 has discriminator, post-2023 uses display name
76
- const displayName = data.global_name || data.username || '';
77
- return {
78
- id: data.id,
79
- email: data.email || '',
80
- emailVerified: data.verified ?? false,
81
- name: displayName,
82
- firstName: undefined,
83
- lastName: undefined,
84
- avatar,
85
- provider: 'discord',
86
- raw: data,
87
- };
88
- }
89
- async refreshToken(refreshToken) {
90
- const response = await fetch(TOKEN_URL, {
91
- method: 'POST',
92
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
93
- body: new URLSearchParams({
94
- client_id: this.config.clientId,
95
- client_secret: this.config.clientSecret,
96
- refresh_token: refreshToken,
97
- grant_type: 'refresh_token',
98
- }),
99
- });
100
- if (!response.ok) {
101
- const error = await response.text();
102
- throw new Error(`Discord token refresh failed: ${error}`);
103
- }
104
- const data = (await response.json());
105
- return {
106
- accessToken: data.access_token,
107
- refreshToken: data.refresh_token || refreshToken,
108
- expiresIn: data.expires_in,
109
- tokenType: data.token_type || 'Bearer',
110
- scope: data.scope,
111
- };
112
- }
113
- async revokeToken(token) {
114
- const response = await fetch(REVOKE_URL, {
115
- method: 'POST',
116
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
117
- body: new URLSearchParams({
118
- client_id: this.config.clientId,
119
- client_secret: this.config.clientSecret,
120
- token,
121
- }),
122
- });
123
- if (!response.ok) {
124
- const error = await response.text();
125
- throw new Error(`Discord token revocation failed: ${error}`);
126
- }
127
- }
128
- }
129
- exports.DiscordProvider = DiscordProvider;
130
- //# sourceMappingURL=discord.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discord.js","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/discord.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Facebook OAuth Provider.
3
- *
4
- * Endpoints:
5
- * Auth: https://www.facebook.com/v19.0/dialog/oauth
6
- * Token: https://graph.facebook.com/v19.0/oauth/access_token
7
- * UserInfo: https://graph.facebook.com/v19.0/me
8
- *
9
- * Default scopes: email, public_profile
10
- *
11
- * Note: Facebook uses Graph API versioning. This implementation uses v19.0.
12
- */
13
- import type { OAuthProviderAdapter, OAuthProviderConfig, OAuthTokens, OAuthUserProfile } from '../types';
14
- export declare class FacebookProvider implements OAuthProviderAdapter {
15
- readonly name: "facebook";
16
- private config;
17
- constructor(config: OAuthProviderConfig);
18
- getAuthorizationUrl(state: string, _codeVerifier?: string): string;
19
- exchangeCode(code: string, _codeVerifier?: string): Promise<OAuthTokens>;
20
- getUserProfile(tokens: OAuthTokens): Promise<OAuthUserProfile>;
21
- refreshToken(_refreshToken: string): Promise<OAuthTokens>;
22
- /**
23
- * Exchange a short-lived token for a long-lived token (~60 days).
24
- */
25
- exchangeForLongLived(shortLivedToken: string): Promise<OAuthTokens>;
26
- revokeToken(token: string): Promise<void>;
27
- }
28
- //# sourceMappingURL=facebook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"facebook.d.ts","sourceRoot":"","sources":["../../../../src/auth/oauth/providers/facebook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAA;AASjB,qBAAa,gBAAiB,YAAW,oBAAoB;IAC3D,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAS;IAEnC,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,mBAAmB;IAIvC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM;IAa5D,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,CAAC;IAgCjB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoC9D,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAU/D;;OAEG;IACG,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAwBnE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAYhD"}