@authup/server-core 1.0.0-beta.56 → 1.0.0-beta.57

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 (410) hide show
  1. package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
  2. package/dist/adapters/database/domains/role/entity.mjs +2 -1
  3. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  4. package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.d.ts +25 -0
  5. package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.d.ts.map +1 -0
  6. package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.mjs +60 -0
  7. package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.mjs.map +1 -0
  8. package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.d.ts +25 -0
  9. package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.d.ts.map +1 -0
  10. package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.mjs +60 -0
  11. package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.mjs.map +1 -0
  12. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +1 -1
  13. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  14. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +1 -1
  15. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  16. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs +1 -1
  17. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs.map +1 -1
  18. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +1 -1
  19. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  20. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +1 -1
  21. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  22. package/dist/adapters/http/controllers/entities/client/module.d.ts +6 -6
  23. package/dist/adapters/http/controllers/entities/client/module.d.ts.map +1 -1
  24. package/dist/adapters/http/controllers/entities/client/module.mjs +30 -7
  25. package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
  26. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts +5 -5
  27. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts.map +1 -1
  28. package/dist/adapters/http/controllers/entities/client-permission/module.mjs +23 -5
  29. package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
  30. package/dist/adapters/http/controllers/entities/client-role/module.d.ts +4 -4
  31. package/dist/adapters/http/controllers/entities/client-role/module.d.ts.map +1 -1
  32. package/dist/adapters/http/controllers/entities/client-role/module.mjs +19 -4
  33. package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
  34. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts +4 -4
  35. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts.map +1 -1
  36. package/dist/adapters/http/controllers/entities/client-scope/module.mjs +19 -4
  37. package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
  38. package/dist/adapters/http/controllers/entities/consent/module.d.ts +3 -3
  39. package/dist/adapters/http/controllers/entities/consent/module.d.ts.map +1 -1
  40. package/dist/adapters/http/controllers/entities/consent/module.mjs +15 -3
  41. package/dist/adapters/http/controllers/entities/consent/module.mjs.map +1 -1
  42. package/dist/adapters/http/controllers/entities/event/module.d.ts +2 -2
  43. package/dist/adapters/http/controllers/entities/event/module.d.ts.map +1 -1
  44. package/dist/adapters/http/controllers/entities/event/module.mjs +11 -2
  45. package/dist/adapters/http/controllers/entities/event/module.mjs.map +1 -1
  46. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts +5 -5
  47. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts.map +1 -1
  48. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +23 -5
  49. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs.map +1 -1
  50. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +6 -6
  51. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  52. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +23 -7
  53. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  54. package/dist/adapters/http/controllers/entities/key/module.d.ts +5 -5
  55. package/dist/adapters/http/controllers/entities/key/module.d.ts.map +1 -1
  56. package/dist/adapters/http/controllers/entities/key/module.mjs +23 -5
  57. package/dist/adapters/http/controllers/entities/key/module.mjs.map +1 -1
  58. package/dist/adapters/http/controllers/entities/permission/module.d.ts +6 -6
  59. package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
  60. package/dist/adapters/http/controllers/entities/permission/module.mjs +27 -6
  61. package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
  62. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts +4 -4
  63. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts.map +1 -1
  64. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +19 -4
  65. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
  66. package/dist/adapters/http/controllers/entities/policy/module.d.ts +7 -7
  67. package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
  68. package/dist/adapters/http/controllers/entities/policy/module.mjs +27 -6
  69. package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
  70. package/dist/adapters/http/controllers/entities/realm/module.d.ts +6 -6
  71. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  72. package/dist/adapters/http/controllers/entities/realm/module.mjs +29 -8
  73. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  74. package/dist/adapters/http/controllers/entities/role/module.d.ts +6 -6
  75. package/dist/adapters/http/controllers/entities/role/module.d.ts.map +1 -1
  76. package/dist/adapters/http/controllers/entities/role/module.mjs +27 -6
  77. package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
  78. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts +5 -5
  79. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts.map +1 -1
  80. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +23 -5
  81. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
  82. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts +5 -5
  83. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts.map +1 -1
  84. package/dist/adapters/http/controllers/entities/role-permission/module.mjs +23 -5
  85. package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
  86. package/dist/adapters/http/controllers/entities/scope/module.d.ts +6 -6
  87. package/dist/adapters/http/controllers/entities/scope/module.d.ts.map +1 -1
  88. package/dist/adapters/http/controllers/entities/scope/module.mjs +27 -6
  89. package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
  90. package/dist/adapters/http/controllers/entities/session/module.d.ts +3 -3
  91. package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -1
  92. package/dist/adapters/http/controllers/entities/session/module.mjs +15 -3
  93. package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
  94. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts +5 -5
  95. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts.map +1 -1
  96. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs +23 -5
  97. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs.map +1 -1
  98. package/dist/adapters/http/controllers/entities/user/module.d.ts +6 -6
  99. package/dist/adapters/http/controllers/entities/user/module.d.ts.map +1 -1
  100. package/dist/adapters/http/controllers/entities/user/module.mjs +27 -6
  101. package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
  102. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts +5 -5
  103. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts.map +1 -1
  104. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +23 -5
  105. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
  106. package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts +4 -4
  107. package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts.map +1 -1
  108. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs +19 -4
  109. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs.map +1 -1
  110. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts +5 -5
  111. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts.map +1 -1
  112. package/dist/adapters/http/controllers/entities/user-permission/module.mjs +23 -5
  113. package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
  114. package/dist/adapters/http/controllers/entities/user-role/module.d.ts +4 -4
  115. package/dist/adapters/http/controllers/entities/user-role/module.d.ts.map +1 -1
  116. package/dist/adapters/http/controllers/entities/user-role/module.mjs +19 -4
  117. package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
  118. package/dist/adapters/http/controllers/index.mjs +2 -1
  119. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +1 -1
  120. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -1
  121. package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
  122. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  123. package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
  124. package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -1
  125. package/dist/adapters/http/controllers/workflows/logout/module.mjs +5 -1
  126. package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
  127. package/dist/adapters/http/controllers/workflows/userinfo/index.d.ts +2 -0
  128. package/dist/adapters/http/controllers/workflows/userinfo/index.d.ts.map +1 -0
  129. package/dist/adapters/http/controllers/workflows/userinfo/index.mjs +5 -0
  130. package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts +18 -0
  131. package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts.map +1 -0
  132. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs +53 -0
  133. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs.map +1 -0
  134. package/dist/adapters/http/index.mjs +2 -1
  135. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +1 -0
  136. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  137. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +8 -0
  138. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  139. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
  140. package/dist/adapters/http/middleware/built-in/rate-limit.mjs +2 -0
  141. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  142. package/dist/adapters/http/request/event-context.mjs +1 -1
  143. package/dist/adapters/http/request/event-context.mjs.map +1 -1
  144. package/dist/app/factory.d.ts +2 -1
  145. package/dist/app/factory.d.ts.map +1 -1
  146. package/dist/app/factory.mjs +2 -2
  147. package/dist/app/factory.mjs.map +1 -1
  148. package/dist/app/index.d.ts +1 -0
  149. package/dist/app/index.d.ts.map +1 -1
  150. package/dist/app/index.mjs +5 -1
  151. package/dist/app/modules/authentication/repositories/session.mjs +2 -2
  152. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  153. package/dist/app/modules/components/module.d.ts +3 -0
  154. package/dist/app/modules/components/module.d.ts.map +1 -1
  155. package/dist/app/modules/components/module.mjs +17 -2
  156. package/dist/app/modules/components/module.mjs.map +1 -1
  157. package/dist/app/modules/config/constants.d.ts +1 -0
  158. package/dist/app/modules/config/constants.d.ts.map +1 -1
  159. package/dist/app/modules/config/constants.mjs +1 -0
  160. package/dist/app/modules/config/constants.mjs.map +1 -1
  161. package/dist/app/modules/config/helpers.d.ts +9 -0
  162. package/dist/app/modules/config/helpers.d.ts.map +1 -0
  163. package/dist/app/modules/config/helpers.mjs +21 -0
  164. package/dist/app/modules/config/helpers.mjs.map +1 -0
  165. package/dist/app/modules/config/index.d.ts +2 -0
  166. package/dist/app/modules/config/index.d.ts.map +1 -1
  167. package/dist/app/modules/config/index.mjs +6 -1
  168. package/dist/app/modules/config/module.d.ts.map +1 -1
  169. package/dist/app/modules/config/module.mjs +2 -7
  170. package/dist/app/modules/config/module.mjs.map +1 -1
  171. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  172. package/dist/app/modules/config/normalize.mjs +4 -0
  173. package/dist/app/modules/config/normalize.mjs.map +1 -1
  174. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  175. package/dist/app/modules/config/read/env.mjs +2 -0
  176. package/dist/app/modules/config/read/env.mjs.map +1 -1
  177. package/dist/app/modules/config/read/fs.d.ts.map +1 -1
  178. package/dist/app/modules/config/read/fs.mjs +31 -8
  179. package/dist/app/modules/config/read/fs.mjs.map +1 -1
  180. package/dist/app/modules/config/trust-proxy.d.ts +28 -0
  181. package/dist/app/modules/config/trust-proxy.d.ts.map +1 -0
  182. package/dist/app/modules/config/trust-proxy.mjs +64 -0
  183. package/dist/app/modules/config/trust-proxy.mjs.map +1 -0
  184. package/dist/app/modules/config/types.d.ts +18 -0
  185. package/dist/app/modules/config/types.d.ts.map +1 -1
  186. package/dist/app/modules/config/validator.d.ts.map +1 -1
  187. package/dist/app/modules/config/validator.mjs +7 -0
  188. package/dist/app/modules/config/validator.mjs.map +1 -1
  189. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  190. package/dist/app/modules/database/repositories/client/repository.mjs +3 -4
  191. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  192. package/dist/app/modules/database/repositories/client-permission/repository.mjs +2 -2
  193. package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
  194. package/dist/app/modules/database/repositories/client-role/repository.mjs +2 -2
  195. package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
  196. package/dist/app/modules/database/repositories/client-scope/repository.mjs +2 -2
  197. package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
  198. package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -1
  199. package/dist/app/modules/database/repositories/event/repository.mjs +4 -3
  200. package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -1
  201. package/dist/app/modules/database/repositories/identity-provider/repository.mjs +2 -2
  202. package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
  203. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs +2 -2
  204. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
  205. package/dist/app/modules/database/repositories/key/repository.mjs +2 -2
  206. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
  207. package/dist/app/modules/database/repositories/permission/repository.mjs +2 -2
  208. package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
  209. package/dist/app/modules/database/repositories/permission-policy/repository.mjs +2 -2
  210. package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
  211. package/dist/app/modules/database/repositories/policy/repository.mjs +2 -2
  212. package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
  213. package/dist/app/modules/database/repositories/query.d.ts +20 -0
  214. package/dist/app/modules/database/repositories/query.d.ts.map +1 -1
  215. package/dist/app/modules/database/repositories/query.mjs +26 -3
  216. package/dist/app/modules/database/repositories/query.mjs.map +1 -1
  217. package/dist/app/modules/database/repositories/realm/repository.mjs +2 -2
  218. package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
  219. package/dist/app/modules/database/repositories/role/repository.mjs +2 -2
  220. package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
  221. package/dist/app/modules/database/repositories/role-attribute/repository.mjs +2 -2
  222. package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
  223. package/dist/app/modules/database/repositories/role-permission/repository.mjs +2 -2
  224. package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
  225. package/dist/app/modules/database/repositories/schema-validation.d.ts +17 -3
  226. package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -1
  227. package/dist/app/modules/database/repositories/schema-validation.mjs +29 -5
  228. package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -1
  229. package/dist/app/modules/database/repositories/scope/repository.mjs +2 -2
  230. package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
  231. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +2 -2
  232. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs.map +1 -1
  233. package/dist/app/modules/database/repositories/user/repository.mjs +2 -2
  234. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  235. package/dist/app/modules/database/repositories/user-attribute/repository.mjs +2 -2
  236. package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
  237. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs +2 -2
  238. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs.map +1 -1
  239. package/dist/app/modules/database/repositories/user-permission/repository.mjs +2 -2
  240. package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
  241. package/dist/app/modules/database/repositories/user-role/repository.mjs +2 -2
  242. package/dist/app/modules/database/repositories/user-role/repository.mjs.map +1 -1
  243. package/dist/app/modules/http/constants.d.ts +2 -13
  244. package/dist/app/modules/http/constants.d.ts.map +1 -1
  245. package/dist/app/modules/http/constants.mjs.map +1 -1
  246. package/dist/app/modules/http/module.d.ts.map +1 -1
  247. package/dist/app/modules/http/module.mjs +7 -1
  248. package/dist/app/modules/http/module.mjs.map +1 -1
  249. package/dist/app/modules/http/modules/controller.d.ts +4 -2
  250. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  251. package/dist/app/modules/http/modules/controller.mjs +16 -3
  252. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  253. package/dist/app/modules/index.mjs +5 -1
  254. package/dist/app/modules/oauth2/repositories/consent/repository.mjs +2 -2
  255. package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -1
  256. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  257. package/dist/app/modules/provisioning/module.mjs +12 -4
  258. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  259. package/dist/app/types.d.ts +5 -0
  260. package/dist/app/types.d.ts.map +1 -0
  261. package/dist/app/types.mjs +4 -0
  262. package/dist/cli/commands/healthcheck.d.ts +2 -1
  263. package/dist/cli/commands/healthcheck.d.ts.map +1 -1
  264. package/dist/cli/commands/healthcheck.mjs +3 -2
  265. package/dist/cli/commands/healthcheck.mjs.map +1 -1
  266. package/dist/cli/commands/index.d.ts +0 -1
  267. package/dist/cli/commands/index.d.ts.map +1 -1
  268. package/dist/cli/commands/index.mjs +1 -2
  269. package/dist/cli/commands/migration.d.ts +2 -1
  270. package/dist/cli/commands/migration.d.ts.map +1 -1
  271. package/dist/cli/commands/migration.mjs +3 -2
  272. package/dist/cli/commands/migration.mjs.map +1 -1
  273. package/dist/cli/commands/start.d.ts +2 -1
  274. package/dist/cli/commands/start.d.ts.map +1 -1
  275. package/dist/cli/commands/start.mjs +3 -2
  276. package/dist/cli/commands/start.mjs.map +1 -1
  277. package/dist/cli/config.d.ts +18 -0
  278. package/dist/cli/config.d.ts.map +1 -0
  279. package/dist/cli/config.mjs +34 -0
  280. package/dist/cli/config.mjs.map +1 -0
  281. package/dist/cli/module.d.ts +8 -8
  282. package/dist/cli/module.d.ts.map +1 -1
  283. package/dist/cli/module.mjs +8 -28
  284. package/dist/cli/module.mjs.map +1 -1
  285. package/dist/cli/types.d.ts +5 -0
  286. package/dist/cli/types.d.ts.map +1 -0
  287. package/dist/cli/types.mjs +4 -0
  288. package/dist/components/event-cleaner/module.d.ts.map +1 -1
  289. package/dist/components/event-cleaner/module.mjs +26 -14
  290. package/dist/components/event-cleaner/module.mjs.map +1 -1
  291. package/dist/components/index.d.ts +0 -1
  292. package/dist/components/index.d.ts.map +1 -1
  293. package/dist/components/index.mjs +1 -4
  294. package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
  295. package/dist/components/oauth2-cleaner/module.mjs +29 -17
  296. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  297. package/dist/components/types.d.ts +1 -0
  298. package/dist/components/types.d.ts.map +1 -1
  299. package/dist/core/authentication/login-throttle/service.d.ts.map +1 -1
  300. package/dist/core/authentication/login-throttle/service.mjs +2 -1
  301. package/dist/core/authentication/login-throttle/service.mjs.map +1 -1
  302. package/dist/core/entities/client/constants.d.ts +10 -0
  303. package/dist/core/entities/client/constants.d.ts.map +1 -0
  304. package/dist/core/entities/client/constants.mjs +20 -0
  305. package/dist/core/entities/client/constants.mjs.map +1 -0
  306. package/dist/core/entities/client/index.d.ts +1 -0
  307. package/dist/core/entities/client/index.d.ts.map +1 -1
  308. package/dist/core/entities/client/index.mjs +3 -2
  309. package/dist/core/entities/client/schema.d.ts.map +1 -1
  310. package/dist/core/entities/client/schema.mjs +40 -3
  311. package/dist/core/entities/client/schema.mjs.map +1 -1
  312. package/dist/core/entities/client/service.d.ts.map +1 -1
  313. package/dist/core/entities/client/service.mjs +8 -60
  314. package/dist/core/entities/client/service.mjs.map +1 -1
  315. package/dist/core/entities/client/web-client.d.ts +39 -3
  316. package/dist/core/entities/client/web-client.d.ts.map +1 -1
  317. package/dist/core/entities/client/web-client.mjs +68 -12
  318. package/dist/core/entities/client/web-client.mjs.map +1 -1
  319. package/dist/core/entities/client-scope/schema.d.ts.map +1 -1
  320. package/dist/core/entities/client-scope/schema.mjs +3 -1
  321. package/dist/core/entities/client-scope/schema.mjs.map +1 -1
  322. package/dist/core/entities/event/constants.d.ts +7 -0
  323. package/dist/core/entities/event/constants.d.ts.map +1 -1
  324. package/dist/core/entities/event/constants.mjs +7 -1
  325. package/dist/core/entities/event/constants.mjs.map +1 -1
  326. package/dist/core/entities/event/index.mjs +2 -2
  327. package/dist/core/entities/event/service.mjs +1 -1
  328. package/dist/core/entities/event/service.mjs.map +1 -1
  329. package/dist/core/entities/index.mjs +4 -3
  330. package/dist/core/entities/role/schema.d.ts.map +1 -1
  331. package/dist/core/entities/role/schema.mjs +4 -0
  332. package/dist/core/entities/role/schema.mjs.map +1 -1
  333. package/dist/core/entities/session/schema.d.ts.map +1 -1
  334. package/dist/core/entities/session/schema.mjs +2 -0
  335. package/dist/core/entities/session/schema.mjs.map +1 -1
  336. package/dist/core/entities/user/schema.d.ts.map +1 -1
  337. package/dist/core/entities/user/schema.mjs +2 -0
  338. package/dist/core/entities/user/schema.mjs.map +1 -1
  339. package/dist/core/identity/password-recovery/check.mjs +4 -4
  340. package/dist/core/identity/password-recovery/check.mjs.map +1 -1
  341. package/dist/core/identity/registration/check.mjs +2 -2
  342. package/dist/core/identity/registration/check.mjs.map +1 -1
  343. package/dist/core/index.mjs +5 -3
  344. package/dist/core/key/check.mjs +2 -2
  345. package/dist/core/key/check.mjs.map +1 -1
  346. package/dist/core/provisioning/entities/client/relations-validator.d.ts.map +1 -1
  347. package/dist/core/provisioning/entities/client/relations-validator.mjs +2 -0
  348. package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
  349. package/dist/core/provisioning/entities/client/types.d.ts +8 -0
  350. package/dist/core/provisioning/entities/client/types.d.ts.map +1 -1
  351. package/dist/core/provisioning/synchronizer/client/module.d.ts +3 -1
  352. package/dist/core/provisioning/synchronizer/client/module.d.ts.map +1 -1
  353. package/dist/core/provisioning/synchronizer/client/module.mjs +10 -0
  354. package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
  355. package/dist/core/provisioning/synchronizer/client/types.d.ts +3 -1
  356. package/dist/core/provisioning/synchronizer/client/types.d.ts.map +1 -1
  357. package/dist/core/provisioning/synchronizer/entity-resolver.d.ts +4 -1
  358. package/dist/core/provisioning/synchronizer/entity-resolver.d.ts.map +1 -1
  359. package/dist/core/provisioning/synchronizer/entity-resolver.mjs +14 -29
  360. package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
  361. package/dist/core/provisioning/synchronizer/index.d.ts +1 -0
  362. package/dist/core/provisioning/synchronizer/index.d.ts.map +1 -1
  363. package/dist/core/provisioning/synchronizer/realm/module.d.ts.map +1 -1
  364. package/dist/core/provisioning/synchronizer/realm/module.mjs +8 -8
  365. package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
  366. package/dist/core/provisioning/synchronizer/types.d.ts +11 -0
  367. package/dist/core/provisioning/synchronizer/types.d.ts.map +1 -0
  368. package/dist/core/provisioning/synchronizer/types.mjs +4 -0
  369. package/dist/core/query/describe.d.ts +25 -0
  370. package/dist/core/query/describe.d.ts.map +1 -0
  371. package/dist/core/query/describe.mjs +50 -0
  372. package/dist/core/query/describe.mjs.map +1 -0
  373. package/dist/core/query/fields.d.ts +44 -0
  374. package/dist/core/query/fields.d.ts.map +1 -0
  375. package/dist/core/query/fields.mjs +46 -0
  376. package/dist/core/query/fields.mjs.map +1 -0
  377. package/dist/core/query/index.d.ts +1 -0
  378. package/dist/core/query/index.d.ts.map +1 -1
  379. package/dist/core/query/index.mjs +2 -1
  380. package/dist/core/query/module.d.ts +1 -1
  381. package/dist/core/query/module.mjs +1 -1
  382. package/dist/core/query/module.mjs.map +1 -1
  383. package/dist/index.mjs +6 -2
  384. package/dist/swagger.json +852 -145
  385. package/dist/ui/client/.vite/ssr-manifest.json +858 -750
  386. package/dist/ui/client/assets/index-Bk6-OZy9.css +2 -0
  387. package/dist/ui/client/assets/index-DO6_7NTJ.js +106 -0
  388. package/dist/ui/client/index.html +2 -2
  389. package/dist/ui/server/server.js +2472 -6357
  390. package/package.json +40 -40
  391. package/dist/cli/commands/reset.d.ts +0 -2
  392. package/dist/cli/commands/reset.d.ts.map +0 -1
  393. package/dist/cli/commands/reset.mjs +0 -23
  394. package/dist/cli/commands/reset.mjs.map +0 -1
  395. package/dist/components/database/index.d.ts +0 -2
  396. package/dist/components/database/index.d.ts.map +0 -1
  397. package/dist/components/database/index.mjs +0 -7
  398. package/dist/components/database/unique-entries/factory.d.ts +0 -4
  399. package/dist/components/database/unique-entries/factory.d.ts.map +0 -1
  400. package/dist/components/database/unique-entries/factory.mjs +0 -12
  401. package/dist/components/database/unique-entries/factory.mjs.map +0 -1
  402. package/dist/components/database/unique-entries/index.d.ts +0 -3
  403. package/dist/components/database/unique-entries/index.d.ts.map +0 -1
  404. package/dist/components/database/unique-entries/index.mjs +0 -6
  405. package/dist/components/database/unique-entries/module.d.ts +0 -15
  406. package/dist/components/database/unique-entries/module.d.ts.map +0 -1
  407. package/dist/components/database/unique-entries/module.mjs +0 -69
  408. package/dist/components/database/unique-entries/module.mjs.map +0 -1
  409. package/dist/ui/client/assets/index-C05uGFDe.js +0 -131
  410. package/dist/ui/client/assets/index-CiHrf73J.css +0 -2
@@ -4,15 +4,16 @@ import.meta.url;
4
4
  import { ConfigInjectionKey } from "../../app/modules/config/constants.mjs";
5
5
  import { ApplicationBuilder } from "../../app/builder.mjs";
6
6
  import "../../app/index.mjs";
7
+ import { createCLIConfigModule } from "../config.mjs";
7
8
  import process from "node:process";
8
9
  import { defineCommand } from "citty";
9
10
  import http from "node:http";
10
11
  //#region src/cli/commands/healthcheck.ts
11
- function defineCLIHealthCheckCommand() {
12
+ function defineCLIHealthCheckCommand(configFs = {}) {
12
13
  return defineCommand({
13
14
  meta: { name: "healthcheck" },
14
15
  async setup() {
15
- const app = new ApplicationBuilder().withConfig().build();
16
+ const app = new ApplicationBuilder().withConfig(createCLIConfigModule(configFs)).build();
16
17
  await app.setup();
17
18
  const config = app.container.resolve(ConfigInjectionKey);
18
19
  const healthCheck = http.request({
@@ -1 +1 @@
1
- {"version":3,"file":"healthcheck.mjs","names":["defineCommand","http","process","ApplicationBuilder","ConfigInjectionKey","defineCLIHealthCheckCommand","meta","name","setup","app","withConfig","build","config","container","resolve","healthCheck","request","path","host","port","timeout","res","statusCode","exit","on","end"],"sources":["../../../src/cli/commands/healthcheck.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport http from 'node:http';\nimport process from 'node:process';\nimport { ApplicationBuilder, ConfigInjectionKey } from '../../app/index.ts';\n\nexport function defineCLIHealthCheckCommand() {\n return defineCommand({\n meta: { name: 'healthcheck' },\n async setup() {\n const app = new ApplicationBuilder()\n .withConfig()\n .build();\n\n await app.setup();\n\n const config = app.container.resolve(ConfigInjectionKey);\n\n const healthCheck = http.request(\n {\n path: '/metrics',\n host: '0.0.0.0',\n port: config.port,\n timeout: 2000,\n },\n (res) => {\n if (res.statusCode === 200) {\n process.exit(0);\n } else {\n process.exit(1);\n }\n },\n );\n\n healthCheck.on('error', () => {\n process.exit(1);\n });\n\n healthCheck.end();\n },\n });\n}\n"],"mappings":";;;;;;;;;;AAYA,SAAgBK,8BAAAA;CACZ,OAAOL,cAAc;EACjBM,MAAM,EAAEC,MAAM,cAAc;EAC5B,MAAMC,QAAAA;GACF,MAAMC,MAAM,IAAIN,mBAAAA,CAAAA,CACXO,WAAU,CAAA,CACVC,MAAK;GAEV,MAAMF,IAAID,MAAK;GAEf,MAAMI,SAASH,IAAII,UAAUC,QAAQV,kBAAAA;GAErC,MAAMW,cAAcd,KAAKe,QACrB;IACIC,MAAM;IACNC,MAAM;IACNC,MAAMP,OAAOO;IACbC,SAAS;GACb,IACCC,QAAAA;IACG,IAAIA,IAAIC,eAAe,KACnBpB,QAAQqB,KAAK,CAAA;SAEbrB,QAAQqB,KAAK,CAAA;GAErB,CAAA;GAGJR,YAAYS,GAAG,eAAS;IACpBtB,QAAQqB,KAAK,CAAA;GACjB,CAAA;GAEAR,YAAYU,IAAG;EACnB;CACJ,CAAA;AACJ"}
1
+ {"version":3,"file":"healthcheck.mjs","names":["defineCommand","http","process","ApplicationBuilder","ConfigInjectionKey","createCLIConfigModule","defineCLIHealthCheckCommand","configFs","meta","name","setup","app","withConfig","build","config","container","resolve","healthCheck","request","path","host","port","timeout","res","statusCode","exit","on","end"],"sources":["../../../src/cli/commands/healthcheck.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport http from 'node:http';\nimport process from 'node:process';\nimport type { ConfigReadFsOptions } from '../../app/index.ts';\nimport { ApplicationBuilder, ConfigInjectionKey } from '../../app/index.ts';\nimport { createCLIConfigModule } from '../config.ts';\n\nexport function defineCLIHealthCheckCommand(configFs: ConfigReadFsOptions = {}) {\n return defineCommand({\n meta: { name: 'healthcheck' },\n async setup() {\n const app = new ApplicationBuilder()\n .withConfig(createCLIConfigModule(configFs))\n .build();\n\n await app.setup();\n\n const config = app.container.resolve(ConfigInjectionKey);\n\n const healthCheck = http.request(\n {\n path: '/metrics',\n host: '0.0.0.0',\n port: config.port,\n timeout: 2000,\n },\n (res) => {\n if (res.statusCode === 200) {\n process.exit(0);\n } else {\n process.exit(1);\n }\n },\n );\n\n healthCheck.on('error', () => {\n process.exit(1);\n });\n\n healthCheck.end();\n },\n });\n}\n"],"mappings":";;;;;;;;;;;AAcA,SAAgBM,4BAA4BC,WAAgC,CAAC,GAAC;CAC1E,OAAOP,cAAc;EACjBQ,MAAM,EAAEC,MAAM,cAAc;EAC5B,MAAMC,QAAAA;GACF,MAAMC,MAAM,IAAIR,mBAAAA,CAAAA,CACXS,WAAWP,sBAAsBE,QAAAA,CAAAA,CAAAA,CACjCM,MAAK;GAEV,MAAMF,IAAID,MAAK;GAEf,MAAMI,SAASH,IAAII,UAAUC,QAAQZ,kBAAAA;GAErC,MAAMa,cAAchB,KAAKiB,QACrB;IACIC,MAAM;IACNC,MAAM;IACNC,MAAMP,OAAOO;IACbC,SAAS;GACb,IACCC,QAAAA;IACG,IAAIA,IAAIC,eAAe,KACnBtB,QAAQuB,KAAK,CAAA;SAEbvB,QAAQuB,KAAK,CAAA;GAErB,CAAA;GAGJR,YAAYS,GAAG,eAAS;IACpBxB,QAAQuB,KAAK,CAAA;GACjB,CAAA;GAEAR,YAAYU,IAAG;EACnB;CACJ,CAAA;AACJ"}
@@ -1,5 +1,4 @@
1
1
  export * from './healthcheck.ts';
2
2
  export * from './migration.ts';
3
- export * from './reset.ts';
4
3
  export * from './start.ts';
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAOA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAOA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -3,6 +3,5 @@ import "node:url";
3
3
  import.meta.url;
4
4
  import { defineCLIHealthCheckCommand } from "./healthcheck.mjs";
5
5
  import { defineCLIMigrationCommand } from "./migration.mjs";
6
- import { defineCLIResetCommand } from "./reset.mjs";
7
6
  import { defineCLIStartCommand } from "./start.mjs";
8
- export { defineCLIHealthCheckCommand, defineCLIMigrationCommand, defineCLIResetCommand, defineCLIStartCommand };
7
+ export { defineCLIHealthCheckCommand, defineCLIMigrationCommand, defineCLIStartCommand };
@@ -1,10 +1,11 @@
1
+ import type { ConfigReadFsOptions } from '../../app/index.ts';
1
2
  declare enum MigrationOperation {
2
3
  GENERATE = "generate",
3
4
  REVERT = "revert",
4
5
  STATUS = "status",
5
6
  RUN = "run"
6
7
  }
7
- export declare function defineCLIMigrationCommand(): import("citty").CommandDef<{
8
+ export declare function defineCLIMigrationCommand(configFs?: ConfigReadFsOptions): import("citty").CommandDef<{
8
9
  readonly operation: {
9
10
  readonly required: true;
10
11
  readonly type: "positional";
@@ -1 +1 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migration.ts"],"names":[],"mappings":"AA4BA,aAAK,kBAAkB;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,GAAG,QAAQ;CACd;AAsID,wBAAgB,yBAAyB;;;;;;;GAyCxC"}
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migration.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAW9D,aAAK,kBAAkB;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,GAAG,QAAQ;CACd;AAsID,wBAAgB,yBAAyB,CAAC,QAAQ,GAAE,mBAAwB;;;;;;;GAyC3E"}
@@ -9,6 +9,7 @@ import { LoggerInjectionKey } from "../../app/modules/logger/constants.mjs";
9
9
  import { CODE_PATH } from "../../path.mjs";
10
10
  import { ApplicationBuilder } from "../../app/builder.mjs";
11
11
  import "../../app/index.mjs";
12
+ import { createCLIConfigModule } from "../config.mjs";
12
13
  import { DataSource } from "typeorm";
13
14
  import path from "node:path";
14
15
  import process from "node:process";
@@ -107,7 +108,7 @@ async function generateMigrations() {
107
108
  }
108
109
  }
109
110
  }
110
- function defineCLIMigrationCommand() {
111
+ function defineCLIMigrationCommand(configFs = {}) {
111
112
  return defineCommand({
112
113
  meta: { name: "migration" },
113
114
  args: { operation: {
@@ -120,7 +121,7 @@ function defineCLIMigrationCommand() {
120
121
  try {
121
122
  if (context.args.operation === "generate") await generateMigrations();
122
123
  else {
123
- const app = new ApplicationBuilder().withConfig().withLogger().build();
124
+ const app = new ApplicationBuilder().withConfig(createCLIConfigModule(configFs)).withLogger().build();
124
125
  app.addModule({
125
126
  name: ModuleName.DATABASE,
126
127
  dependencies: [ModuleName.CONFIG, ModuleName.LOGGER],
@@ -1 +1 @@
1
- {"version":3,"file":"migration.mjs","names":["defineCommand","path","process","checkDatabase","createDatabase","dropDatabase","generateMigration","transformFilePath","DataSource","DataSourceOptionsBuilder","ApplicationBuilder","ConfigInjectionKey","LoggerInjectionKey","ModuleName","CODE_PATH","MigrationOperation","runMigrationOperation","container","operation","config","resolve","logger","optionsBuilder","options","db","buildWith","buildWithEnv","debug","type","database","Array","isArray","migrations","i","length","check","exists","synchronize","ifNotExist","dataSource","logging","initialize","undoLastMigration","showMigrations","runMigrations","isInitialized","destroy","e","error","generateMigrations","connections","host","port","username","password","baseDirectory","join","timestamp","Date","now","connection","dataSourceOptions","directoryPath","name","prettify","console","defineCLIMigrationCommand","meta","args","required","Object","values","valueHint","setup","context","app","withConfig","withLogger","build","addModule","DATABASE","dependencies","CONFIG","LOGGER","exit"],"sources":["../../../src/cli/commands/migration.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport path from 'node:path';\nimport process from 'node:process';\nimport {\n checkDatabase,\n createDatabase, \n dropDatabase, \n generateMigration, \n transformFilePath,\n} from 'typeorm-extension';\nimport { DataSource, type DataSourceOptions } from 'typeorm';\nimport { DataSourceOptionsBuilder } from '../../adapters/database/index.ts';\nimport {\n ApplicationBuilder, \n ConfigInjectionKey, \n LoggerInjectionKey, \n ModuleName,\n} from '../../app/index.ts';\nimport type { IContainer } from 'eldin';\nimport { CODE_PATH } from '../../path.ts';\n\nenum MigrationOperation {\n GENERATE = 'generate',\n REVERT = 'revert',\n STATUS = 'status',\n RUN = 'run',\n}\n\nasync function runMigrationOperation(\n container: IContainer,\n operation: string,\n): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\n\n const optionsBuilder = new DataSourceOptionsBuilder();\n\n let options: DataSourceOptions;\n if (config.db) {\n options = optionsBuilder.buildWith(config.db);\n } else {\n options = optionsBuilder.buildWithEnv();\n }\n\n logger.debug(`Type: ${options.type}`);\n logger.debug(`Database: ${options.database}`);\n\n if (Array.isArray(options.migrations)) {\n for (let i = 0; i < options.migrations.length; i++) {\n if (typeof options.migrations[i] === 'string') {\n logger.debug(`Migration-Directory: ${options.migrations[i]}`);\n }\n }\n } else if (typeof options.migrations === 'string') {\n logger.debug(`Migration-Directory: ${options.migrations}`);\n }\n\n const check = await checkDatabase({ options });\n\n if (!check.exists) {\n await createDatabase({\n options,\n synchronize: false,\n ifNotExist: true, \n });\n }\n\n const dataSource = new DataSource({\n ...options,\n logging: ['error', 'schema', 'migration'],\n });\n\n try {\n await dataSource.initialize();\n\n if (operation === MigrationOperation.REVERT) {\n await dataSource.undoLastMigration();\n } else if (operation === MigrationOperation.STATUS) {\n await dataSource.showMigrations();\n } else {\n await dataSource.runMigrations();\n }\n } finally {\n if (dataSource.isInitialized) {\n try {\n await dataSource.destroy();\n } catch (e) {\n logger.error(`Failed to destroy data source after migration operation: ${e}`);\n }\n }\n }\n}\n\nasync function generateMigrations(): Promise<void> {\n const optionsBuilder = new DataSourceOptionsBuilder();\n\n const connections: DataSourceOptions[] = [\n {\n type: 'postgres',\n database: 'migrations',\n host: 'localhost',\n port: 5432,\n username: 'postgres',\n password: 'start123',\n },\n {\n type: 'mysql',\n database: 'migrations',\n host: 'localhost',\n port: 3306,\n username: 'root',\n password: 'start123',\n },\n ];\n\n const baseDirectory = transformFilePath(\n path.join(CODE_PATH, 'adapters', 'database', 'migrations'),\n './src',\n './dist',\n );\n\n const timestamp = Date.now();\n\n for (const connection of connections) {\n const dataSourceOptions = optionsBuilder.buildWith(connection);\n const directoryPath = path.join(baseDirectory, dataSourceOptions.type);\n\n await dropDatabase({ options: dataSourceOptions });\n await createDatabase({\n options: dataSourceOptions,\n synchronize: false, \n });\n\n const dataSource = new DataSource(dataSourceOptions);\n\n try {\n await dataSource.initialize();\n\n await dataSource.runMigrations();\n\n await generateMigration({\n dataSource,\n name: 'Default',\n directoryPath,\n timestamp,\n prettify: true,\n });\n } finally {\n if (dataSource.isInitialized) {\n try {\n await dataSource.destroy();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }\n }\n }\n}\n\nexport function defineCLIMigrationCommand() {\n return defineCommand({\n meta: { name: 'migration' },\n args: {\n operation: {\n required: true,\n type: 'positional',\n options: Object.values(MigrationOperation),\n valueHint: Object.values(MigrationOperation).join('|'),\n },\n },\n async setup(context) {\n try {\n if (context.args.operation === MigrationOperation.GENERATE) {\n await generateMigrations();\n } else {\n const app = new ApplicationBuilder()\n .withConfig()\n .withLogger()\n .build();\n\n app.addModule({\n name: ModuleName.DATABASE,\n dependencies: [ModuleName.CONFIG, ModuleName.LOGGER],\n async setup(container: IContainer): Promise<void> {\n await runMigrationOperation(container, context.args.operation);\n },\n });\n\n await app.setup();\n }\n\n process.exit(0);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n\n process.exit(1);\n }\n },\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"migration.mjs","names":["defineCommand","path","process","checkDatabase","createDatabase","dropDatabase","generateMigration","transformFilePath","DataSource","DataSourceOptionsBuilder","ApplicationBuilder","ConfigInjectionKey","LoggerInjectionKey","ModuleName","CODE_PATH","createCLIConfigModule","MigrationOperation","runMigrationOperation","container","operation","config","resolve","logger","optionsBuilder","options","db","buildWith","buildWithEnv","debug","type","database","Array","isArray","migrations","i","length","check","exists","synchronize","ifNotExist","dataSource","logging","initialize","undoLastMigration","showMigrations","runMigrations","isInitialized","destroy","e","error","generateMigrations","connections","host","port","username","password","baseDirectory","join","timestamp","Date","now","connection","dataSourceOptions","directoryPath","name","prettify","console","defineCLIMigrationCommand","configFs","meta","args","required","Object","values","valueHint","setup","context","app","withConfig","withLogger","build","addModule","DATABASE","dependencies","CONFIG","LOGGER","exit"],"sources":["../../../src/cli/commands/migration.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport path from 'node:path';\nimport process from 'node:process';\nimport {\n checkDatabase,\n createDatabase, \n dropDatabase, \n generateMigration, \n transformFilePath,\n} from 'typeorm-extension';\nimport { DataSource, type DataSourceOptions } from 'typeorm';\nimport { DataSourceOptionsBuilder } from '../../adapters/database/index.ts';\nimport type { ConfigReadFsOptions } from '../../app/index.ts';\nimport {\n ApplicationBuilder,\n ConfigInjectionKey,\n LoggerInjectionKey,\n ModuleName,\n} from '../../app/index.ts';\nimport type { IContainer } from 'eldin';\nimport { CODE_PATH } from '../../path.ts';\nimport { createCLIConfigModule } from '../config.ts';\n\nenum MigrationOperation {\n GENERATE = 'generate',\n REVERT = 'revert',\n STATUS = 'status',\n RUN = 'run',\n}\n\nasync function runMigrationOperation(\n container: IContainer,\n operation: string,\n): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\n\n const optionsBuilder = new DataSourceOptionsBuilder();\n\n let options: DataSourceOptions;\n if (config.db) {\n options = optionsBuilder.buildWith(config.db);\n } else {\n options = optionsBuilder.buildWithEnv();\n }\n\n logger.debug(`Type: ${options.type}`);\n logger.debug(`Database: ${options.database}`);\n\n if (Array.isArray(options.migrations)) {\n for (let i = 0; i < options.migrations.length; i++) {\n if (typeof options.migrations[i] === 'string') {\n logger.debug(`Migration-Directory: ${options.migrations[i]}`);\n }\n }\n } else if (typeof options.migrations === 'string') {\n logger.debug(`Migration-Directory: ${options.migrations}`);\n }\n\n const check = await checkDatabase({ options });\n\n if (!check.exists) {\n await createDatabase({\n options,\n synchronize: false,\n ifNotExist: true, \n });\n }\n\n const dataSource = new DataSource({\n ...options,\n logging: ['error', 'schema', 'migration'],\n });\n\n try {\n await dataSource.initialize();\n\n if (operation === MigrationOperation.REVERT) {\n await dataSource.undoLastMigration();\n } else if (operation === MigrationOperation.STATUS) {\n await dataSource.showMigrations();\n } else {\n await dataSource.runMigrations();\n }\n } finally {\n if (dataSource.isInitialized) {\n try {\n await dataSource.destroy();\n } catch (e) {\n logger.error(`Failed to destroy data source after migration operation: ${e}`);\n }\n }\n }\n}\n\nasync function generateMigrations(): Promise<void> {\n const optionsBuilder = new DataSourceOptionsBuilder();\n\n const connections: DataSourceOptions[] = [\n {\n type: 'postgres',\n database: 'migrations',\n host: 'localhost',\n port: 5432,\n username: 'postgres',\n password: 'start123',\n },\n {\n type: 'mysql',\n database: 'migrations',\n host: 'localhost',\n port: 3306,\n username: 'root',\n password: 'start123',\n },\n ];\n\n const baseDirectory = transformFilePath(\n path.join(CODE_PATH, 'adapters', 'database', 'migrations'),\n './src',\n './dist',\n );\n\n const timestamp = Date.now();\n\n for (const connection of connections) {\n const dataSourceOptions = optionsBuilder.buildWith(connection);\n const directoryPath = path.join(baseDirectory, dataSourceOptions.type);\n\n await dropDatabase({ options: dataSourceOptions });\n await createDatabase({\n options: dataSourceOptions,\n synchronize: false, \n });\n\n const dataSource = new DataSource(dataSourceOptions);\n\n try {\n await dataSource.initialize();\n\n await dataSource.runMigrations();\n\n await generateMigration({\n dataSource,\n name: 'Default',\n directoryPath,\n timestamp,\n prettify: true,\n });\n } finally {\n if (dataSource.isInitialized) {\n try {\n await dataSource.destroy();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }\n }\n }\n}\n\nexport function defineCLIMigrationCommand(configFs: ConfigReadFsOptions = {}) {\n return defineCommand({\n meta: { name: 'migration' },\n args: {\n operation: {\n required: true,\n type: 'positional',\n options: Object.values(MigrationOperation),\n valueHint: Object.values(MigrationOperation).join('|'),\n },\n },\n async setup(context) {\n try {\n if (context.args.operation === MigrationOperation.GENERATE) {\n await generateMigrations();\n } else {\n const app = new ApplicationBuilder()\n .withConfig(createCLIConfigModule(configFs))\n .withLogger()\n .build();\n\n app.addModule({\n name: ModuleName.DATABASE,\n dependencies: [ModuleName.CONFIG, ModuleName.LOGGER],\n async setup(container: IContainer): Promise<void> {\n await runMigrationOperation(container, context.args.operation);\n },\n });\n\n await app.setup();\n }\n\n process.exit(0);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n\n process.exit(1);\n }\n },\n });\n}\n"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare function defineCLIStartCommand(): import("citty").CommandDef<import("citty").ArgsDef>;
1
+ import type { ConfigReadFsOptions } from '../../app/index.ts';
2
+ export declare function defineCLIStartCommand(configFs?: ConfigReadFsOptions): import("citty").CommandDef<import("citty").ArgsDef>;
2
3
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAaA,wBAAgB,qBAAqB,wDAkCpC"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,mBAAwB,uDAkCvE"}
@@ -3,15 +3,16 @@ import "node:url";
3
3
  import.meta.url;
4
4
  import { createApplication } from "../../app/factory.mjs";
5
5
  import "../../app/index.mjs";
6
+ import { createCLIConfigModule } from "../config.mjs";
6
7
  import process from "node:process";
7
8
  import { defineCommand } from "citty";
8
9
  //#region src/cli/commands/start.ts
9
10
  const FORCE_EXIT_TIMEOUT_MS = 1e4;
10
- function defineCLIStartCommand() {
11
+ function defineCLIStartCommand(configFs = {}) {
11
12
  return defineCommand({
12
13
  meta: { name: "start" },
13
14
  async setup() {
14
- const app = createApplication();
15
+ const app = createApplication({ config: createCLIConfigModule(configFs) });
15
16
  await app.setup();
16
17
  let shuttingDown = false;
17
18
  const shutdown = async (signal) => {
@@ -1 +1 @@
1
- {"version":3,"file":"start.mjs","names":["defineCommand","process","createApplication","FORCE_EXIT_TIMEOUT_MS","defineCLIStartCommand","meta","name","setup","app","shuttingDown","shutdown","signal","exit","force","setTimeout","stderr","write","unref","teardown","err","stack","String","on"],"sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport process from 'node:process';\nimport { createApplication } from '../../app/index.ts';\n\nconst FORCE_EXIT_TIMEOUT_MS = 10_000;\n\nexport function defineCLIStartCommand() {\n return defineCommand({\n meta: { name: 'start' },\n async setup() {\n const app = createApplication();\n\n await app.setup();\n\n let shuttingDown = false;\n const shutdown = async (signal: NodeJS.Signals) => {\n if (shuttingDown) {\n process.exit(1);\n }\n shuttingDown = true;\n\n const force = setTimeout(() => {\n process.stderr.write(`\\n${signal} teardown timed out after ${FORCE_EXIT_TIMEOUT_MS}ms — forcing exit.\\n`);\n process.exit(1);\n }, FORCE_EXIT_TIMEOUT_MS);\n force.unref();\n\n try {\n await app.teardown();\n process.exit(0);\n } catch (err) {\n process.stderr.write(`Error during ${signal} teardown: ${(err as Error).stack ?? String(err)}\\n`);\n process.exit(1);\n }\n };\n\n process.on('SIGINT', shutdown);\n process.on('SIGTERM', shutdown);\n },\n });\n}\n"],"mappings":";;;;;;;;AAWA,MAAMG,wBAAwB;AAE9B,SAAgBC,wBAAAA;CACZ,OAAOJ,cAAc;EACjBK,MAAM,EAAEC,MAAM,QAAQ;EACtB,MAAMC,QAAAA;GACF,MAAMC,MAAMN,kBAAAA;GAEZ,MAAMM,IAAID,MAAK;GAEf,IAAIE,eAAe;GACnB,MAAMC,WAAW,OAAOC,WAAAA;IACpB,IAAIF,cACAR,QAAQW,KAAK,CAAA;IAEjBH,eAAe;IAMfI,iBAJyB;KACrBZ,QAAQc,OAAOC,MAAM,KAAKL,OAAO,4BAA4BR,sBAAsB,qBAAqB;KACxGF,QAAQW,KAAK,CAAA;IACjB,GAAGT,qBACHU,CAAAA,CAAMI,MAAK;IAEX,IAAI;KACA,MAAMT,IAAIU,SAAQ;KAClBjB,QAAQW,KAAK,CAAA;IACjB,SAASO,KAAK;KACVlB,QAAQc,OAAOC,MAAM,gBAAgBL,OAAO,aAAa,IAAeS,SAASC,OAAOF,GAAAA,EAAK,GAAG;KAChGlB,QAAQW,KAAK,CAAA;IACjB;GACJ;GAEAX,QAAQqB,GAAG,UAAUZ,QAAAA;GACrBT,QAAQqB,GAAG,WAAWZ,QAAAA;EAC1B;CACJ,CAAA;AACJ"}
1
+ {"version":3,"file":"start.mjs","names":["defineCommand","process","createApplication","createCLIConfigModule","FORCE_EXIT_TIMEOUT_MS","defineCLIStartCommand","configFs","meta","name","setup","app","config","shuttingDown","shutdown","signal","exit","force","setTimeout","stderr","write","unref","teardown","err","stack","String","on"],"sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport process from 'node:process';\nimport type { ConfigReadFsOptions } from '../../app/index.ts';\nimport { createApplication } from '../../app/index.ts';\nimport { createCLIConfigModule } from '../config.ts';\n\nconst FORCE_EXIT_TIMEOUT_MS = 10_000;\n\nexport function defineCLIStartCommand(configFs: ConfigReadFsOptions = {}) {\n return defineCommand({\n meta: { name: 'start' },\n async setup() {\n const app = createApplication({ config: createCLIConfigModule(configFs) });\n\n await app.setup();\n\n let shuttingDown = false;\n const shutdown = async (signal: NodeJS.Signals) => {\n if (shuttingDown) {\n process.exit(1);\n }\n shuttingDown = true;\n\n const force = setTimeout(() => {\n process.stderr.write(`\\n${signal} teardown timed out after ${FORCE_EXIT_TIMEOUT_MS}ms — forcing exit.\\n`);\n process.exit(1);\n }, FORCE_EXIT_TIMEOUT_MS);\n force.unref();\n\n try {\n await app.teardown();\n process.exit(0);\n } catch (err) {\n process.stderr.write(`Error during ${signal} teardown: ${(err as Error).stack ?? String(err)}\\n`);\n process.exit(1);\n }\n };\n\n process.on('SIGINT', shutdown);\n process.on('SIGTERM', shutdown);\n },\n });\n}\n"],"mappings":";;;;;;;;;AAaA,MAAMI,wBAAwB;AAE9B,SAAgBC,sBAAsBC,WAAgC,CAAC,GAAC;CACpE,OAAON,cAAc;EACjBO,MAAM,EAAEC,MAAM,QAAQ;EACtB,MAAMC,QAAAA;GACF,MAAMC,MAAMR,kBAAkB,EAAES,QAAQR,sBAAsBG,QAAAA,EAAU,CAAA;GAExE,MAAMI,IAAID,MAAK;GAEf,IAAIG,eAAe;GACnB,MAAMC,WAAW,OAAOC,WAAAA;IACpB,IAAIF,cACAX,QAAQc,KAAK,CAAA;IAEjBH,eAAe;IAMfI,iBAJyB;KACrBf,QAAQiB,OAAOC,MAAM,KAAKL,OAAO,4BAA4BV,sBAAsB,qBAAqB;KACxGH,QAAQc,KAAK,CAAA;IACjB,GAAGX,qBACHY,CAAAA,CAAMI,MAAK;IAEX,IAAI;KACA,MAAMV,IAAIW,SAAQ;KAClBpB,QAAQc,KAAK,CAAA;IACjB,SAASO,KAAK;KACVrB,QAAQiB,OAAOC,MAAM,gBAAgBL,OAAO,aAAa,IAAeS,SAASC,OAAOF,GAAAA,EAAK,GAAG;KAChGrB,QAAQc,KAAK,CAAA;IACjB;GACJ;GAEAd,QAAQwB,GAAG,UAAUZ,QAAAA;GACrBZ,QAAQwB,GAAG,WAAWZ,QAAAA;EAC1B;CACJ,CAAA;AACJ"}
@@ -0,0 +1,18 @@
1
+ import type { ConfigReadFsOptions } from '../app/index.ts';
2
+ import { ConfigModule } from '../app/index.ts';
3
+ import type { CLIConfigArgs } from './types.ts';
4
+ export declare const CLI_CONFIG_ARGS: {
5
+ configDirectory: {
6
+ type: "string";
7
+ description: string;
8
+ alias: string;
9
+ };
10
+ configFile: {
11
+ type: "string";
12
+ description: string;
13
+ alias: string;
14
+ };
15
+ };
16
+ export declare function applyCLIConfigArgs(options: ConfigReadFsOptions, args: CLIConfigArgs): ConfigReadFsOptions;
17
+ export declare function createCLIConfigModule(options?: ConfigReadFsOptions): ConfigModule;
18
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,eAAe;;;;;;;;;;;CAWT,CAAC;AAEpB,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,aAAa,GACnB,mBAAmB,CAUtB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,mBAAwB,GAAI,YAAY,CAKtF"}
@@ -0,0 +1,34 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { readConfig } from "../app/modules/config/helpers.mjs";
5
+ import { ConfigModule } from "../app/modules/config/module.mjs";
6
+ import "../app/index.mjs";
7
+ //#region src/cli/config.ts
8
+ const CLI_CONFIG_ARGS = {
9
+ configDirectory: {
10
+ type: "string",
11
+ description: "Config directory path",
12
+ alias: "cD"
13
+ },
14
+ configFile: {
15
+ type: "string",
16
+ description: "Name of one or more configuration files.",
17
+ alias: "cF"
18
+ }
19
+ };
20
+ function applyCLIConfigArgs(options, args) {
21
+ if (args.configDirectory) options.cwd = args.configDirectory;
22
+ if (args.configFile) options.file = args.configFile;
23
+ return options;
24
+ }
25
+ function createCLIConfigModule(options = {}) {
26
+ return new ConfigModule(() => readConfig({
27
+ env: true,
28
+ fs: options
29
+ }));
30
+ }
31
+ //#endregion
32
+ export { CLI_CONFIG_ARGS, applyCLIConfigArgs, createCLIConfigModule };
33
+
34
+ //# sourceMappingURL=config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.mjs","names":["ConfigModule","readConfig","CLI_CONFIG_ARGS","configDirectory","type","description","alias","configFile","applyCLIConfigArgs","options","args","cwd","file","createCLIConfigModule","env","fs"],"sources":["../../src/cli/config.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ArgsDef } from 'citty';\nimport type { ConfigReadFsOptions } from '../app/index.ts';\nimport { ConfigModule, readConfig } from '../app/index.ts';\nimport type { CLIConfigArgs } from './types.ts';\n\nexport const CLI_CONFIG_ARGS = {\n configDirectory: {\n type: 'string',\n description: 'Config directory path',\n alias: 'cD',\n },\n configFile: {\n type: 'string',\n description: 'Name of one or more configuration files.',\n alias: 'cF',\n },\n} satisfies ArgsDef;\n\nexport function applyCLIConfigArgs(\n options: ConfigReadFsOptions,\n args: CLIConfigArgs,\n) : ConfigReadFsOptions {\n if (args.configDirectory) {\n options.cwd = args.configDirectory;\n }\n\n if (args.configFile) {\n options.file = args.configFile;\n }\n\n return options;\n}\n\nexport function createCLIConfigModule(options: ConfigReadFsOptions = {}) : ConfigModule {\n return new ConfigModule(() => readConfig({\n env: true,\n fs: options,\n }));\n}\n"],"mappings":";;;;;;;AAYA,MAAaE,kBAAkB;CAC3BC,iBAAiB;EACbC,MAAM;EACNC,aAAa;EACbC,OAAO;CACX;CACAC,YAAY;EACRH,MAAM;EACNC,aAAa;EACbC,OAAO;CACX;AACJ;AAEA,SAAgBE,mBACZC,SACAC,MAAmB;CAEnB,IAAIA,KAAKP,iBACLM,QAAQE,MAAMD,KAAKP;CAGvB,IAAIO,KAAKH,YACLE,QAAQG,OAAOF,KAAKH;CAGxB,OAAOE;AACX;AAEA,SAAgBI,sBAAsBJ,UAA+B,CAAC,GAAC;CACnE,OAAO,IAAIT,mBAAmBC,WAAW;EACrCa,KAAK;EACLC,IAAIN;CACR,CAAA,CAAA;AACJ"}
@@ -1,13 +1,13 @@
1
1
  export declare function createCLIEntryPointCommand(): Promise<import("citty").CommandDef<{
2
- readonly configDirectory: {
3
- readonly type: "string";
4
- readonly description: "Config directory path";
5
- readonly alias: "cD";
2
+ configDirectory: {
3
+ type: "string";
4
+ description: string;
5
+ alias: string;
6
6
  };
7
- readonly configFile: {
8
- readonly type: "string";
9
- readonly description: "Name of one or more configuration files.";
10
- readonly alias: "cF";
7
+ configFile: {
8
+ type: "string";
9
+ description: string;
10
+ alias: string;
11
11
  };
12
12
  }>>;
13
13
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/cli/module.ts"],"names":[],"mappings":"AAoBA,wBAAsB,0BAA0B;;;;;;;;;;;IA2C/C"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/cli/module.ts"],"names":[],"mappings":"AAmBA,wBAAsB,0BAA0B;;;;;;;;;;;IAyB/C"}
@@ -1,12 +1,9 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
- import { normalizeConfig } from "../app/modules/config/normalize.mjs";
5
- import { readConfigRaw } from "../app/modules/config/read/module.mjs";
6
- import "../app/modules/config/read/index.mjs";
4
+ import { CLI_CONFIG_ARGS, applyCLIConfigArgs } from "./config.mjs";
7
5
  import { defineCLIHealthCheckCommand } from "./commands/healthcheck.mjs";
8
6
  import { defineCLIMigrationCommand } from "./commands/migration.mjs";
9
- import { defineCLIResetCommand } from "./commands/reset.mjs";
10
7
  import { defineCLIStartCommand } from "./commands/start.mjs";
11
8
  import "./commands/index.mjs";
12
9
  import path from "node:path";
@@ -17,6 +14,7 @@ import { defineCommand } from "citty";
17
14
  async function createCLIEntryPointCommand() {
18
15
  const pkgRaw = await fs.promises.readFile(path.join(process.cwd(), "package.json"), { encoding: "utf8" });
19
16
  const pkg = JSON.parse(pkgRaw);
17
+ const configFs = {};
20
18
  return defineCommand({
21
19
  meta: {
22
20
  name: pkg.name,
@@ -24,31 +22,13 @@ async function createCLIEntryPointCommand() {
24
22
  description: pkg.description
25
23
  },
26
24
  subCommands: {
27
- healthcheck: defineCLIHealthCheckCommand(),
28
- migration: defineCLIMigrationCommand(),
29
- reset: defineCLIResetCommand(),
30
- start: defineCLIStartCommand()
25
+ healthcheck: defineCLIHealthCheckCommand(configFs),
26
+ migration: defineCLIMigrationCommand(configFs),
27
+ start: defineCLIStartCommand(configFs)
31
28
  },
32
- args: {
33
- configDirectory: {
34
- type: "string",
35
- description: "Config directory path",
36
- alias: "cD"
37
- },
38
- configFile: {
39
- type: "string",
40
- description: "Name of one or more configuration files.",
41
- alias: "cF"
42
- }
43
- },
44
- async setup(context) {
45
- await normalizeConfig(await readConfigRaw({
46
- env: true,
47
- fs: {
48
- cwd: context.args.configDirectory,
49
- file: context.args.configFile
50
- }
51
- }));
29
+ args: CLI_CONFIG_ARGS,
30
+ setup(context) {
31
+ applyCLIConfigArgs(configFs, context.args);
52
32
  }
53
33
  });
54
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["defineCommand","fs","path","process","normalizeConfig","readConfigRaw","defineCLIHealthCheckCommand","defineCLIMigrationCommand","defineCLIResetCommand","defineCLIStartCommand","createCLIEntryPointCommand","pkgRaw","promises","readFile","join","cwd","encoding","pkg","JSON","parse","meta","name","version","description","subCommands","healthcheck","migration","reset","start","args","configDirectory","type","alias","configFile","setup","context","raw","env","file"],"sources":["../../src/cli/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\nimport { normalizeConfig } from '../app/modules/config/normalize.ts';\nimport { readConfigRaw } from '../app/modules/config/read/index.ts';\nimport {\n defineCLIHealthCheckCommand,\n defineCLIMigrationCommand,\n defineCLIResetCommand,\n defineCLIStartCommand,\n} from './commands/index.ts';\n\nexport async function createCLIEntryPointCommand() {\n const pkgRaw = await fs.promises.readFile(\n path.join(process.cwd(), 'package.json'),\n { encoding: 'utf8' },\n );\n const pkg = JSON.parse(pkgRaw);\n\n return defineCommand({\n meta: {\n name: pkg.name,\n version: pkg.version,\n description: pkg.description,\n },\n subCommands: {\n healthcheck: defineCLIHealthCheckCommand(),\n migration: defineCLIMigrationCommand(),\n reset: defineCLIResetCommand(),\n start: defineCLIStartCommand(),\n },\n args: {\n configDirectory: {\n type: 'string',\n description: 'Config directory path',\n alias: 'cD',\n },\n configFile: {\n type: 'string',\n description: 'Name of one or more configuration files.',\n alias: 'cF',\n },\n },\n async setup(context) {\n const raw = await readConfigRaw({\n env: true,\n fs: {\n cwd: context.args.configDirectory,\n file: context.args.configFile,\n },\n });\n\n await normalizeConfig(raw);\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAoBA,eAAsBU,6BAAAA;CAClB,MAAMC,SAAS,MAAMV,GAAGW,SAASC,SAC7BX,KAAKY,KAAKX,QAAQY,IAAG,GAAI,cAAA,GACzB,EAAEC,UAAU,OAAO,CAAA;CAEvB,MAAMC,MAAMC,KAAKC,MAAMR,MAAAA;CAEvB,OAAOX,cAAc;EACjBoB,MAAM;GACFC,MAAMJ,IAAII;GACVC,SAASL,IAAIK;GACbC,aAAaN,IAAIM;EACrB;EACAC,aAAa;GACTC,aAAanB,4BAAAA;GACboB,WAAWnB,0BAAAA;GACXoB,OAAOnB,sBAAAA;GACPoB,OAAOnB,sBAAAA;EACX;EACAoB,MAAM;GACFC,iBAAiB;IACbC,MAAM;IACNR,aAAa;IACbS,OAAO;GACX;GACAC,YAAY;IACRF,MAAM;IACNR,aAAa;IACbS,OAAO;GACX;EACJ;EACA,MAAME,MAAMC,SAAO;GASf,MAAM/B,gBAAgBgC,MARJ/B,cAAc;IAC5BgC,KAAK;IACLpC,IAAI;KACAc,KAAKoB,QAAQN,KAAKC;KAClBQ,MAAMH,QAAQN,KAAKI;IACvB;GACJ,CAAA,CAEsBG;EAC1B;CACJ,CAAA;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["defineCommand","fs","path","process","CLI_CONFIG_ARGS","applyCLIConfigArgs","defineCLIHealthCheckCommand","defineCLIMigrationCommand","defineCLIStartCommand","createCLIEntryPointCommand","pkgRaw","promises","readFile","join","cwd","encoding","pkg","JSON","parse","configFs","meta","name","version","description","subCommands","healthcheck","migration","start","args","setup","context"],"sources":["../../src/cli/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\nimport type { ConfigReadFsOptions } from '../app/index.ts';\nimport { CLI_CONFIG_ARGS, applyCLIConfigArgs } from './config.ts';\nimport {\n defineCLIHealthCheckCommand,\n defineCLIMigrationCommand,\n defineCLIStartCommand,\n} from './commands/index.ts';\n\nexport async function createCLIEntryPointCommand() {\n const pkgRaw = await fs.promises.readFile(\n path.join(process.cwd(), 'package.json'),\n { encoding: 'utf8' },\n );\n const pkg = JSON.parse(pkgRaw);\n\n const configFs : ConfigReadFsOptions = {};\n\n return defineCommand({\n meta: {\n name: pkg.name,\n version: pkg.version,\n description: pkg.description,\n },\n subCommands: {\n healthcheck: defineCLIHealthCheckCommand(configFs),\n migration: defineCLIMigrationCommand(configFs),\n start: defineCLIStartCommand(configFs),\n },\n args: CLI_CONFIG_ARGS,\n setup(context) {\n applyCLIConfigArgs(configFs, context.args);\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;AAmBA,eAAsBS,6BAAAA;CAClB,MAAMC,SAAS,MAAMT,GAAGU,SAASC,SAC7BV,KAAKW,KAAKV,QAAQW,IAAG,GAAI,cAAA,GACzB,EAAEC,UAAU,OAAO,CAAA;CAEvB,MAAMC,MAAMC,KAAKC,MAAMR,MAAAA;CAEvB,MAAMS,WAAiC,CAAC;CAExC,OAAOnB,cAAc;EACjBoB,MAAM;GACFC,MAAML,IAAIK;GACVC,SAASN,IAAIM;GACbC,aAAaP,IAAIO;EACrB;EACAC,aAAa;GACTC,aAAanB,4BAA4Ba,QAAAA;GACzCO,WAAWnB,0BAA0BY,QAAAA;GACrCQ,OAAOnB,sBAAsBW,QAAAA;EACjC;EACAS,MAAMxB;EACNyB,MAAMC,SAAO;GACTzB,mBAAmBc,UAAUW,QAAQF,IAAI;EAC7C;CACJ,CAAA;AACJ"}
@@ -0,0 +1,5 @@
1
+ export type CLIConfigArgs = {
2
+ configDirectory?: string;
3
+ configFile?: string;
4
+ };
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,aAAa,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/components/event-cleaner/module.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,2BAA2B,CACvC,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACf,SAAS,CA4BZ"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/components/event-cleaner/module.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,2BAA2B,CACvC,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACf,SAAS,CA2CZ"}
@@ -8,21 +8,33 @@ import "../../app/modules/database/repositories/index.mjs";
8
8
  import cron from "node-cron";
9
9
  //#region src/components/event-cleaner/module.ts
10
10
  function createEventCleanerComponent(dataSource, logger) {
11
- return { async start() {
12
- const repository = new EventRepositoryAdapter(dataSource.getRepository(EventEntity));
13
- const execute = async () => {
14
- try {
15
- await repository.deleteExpired((/* @__PURE__ */ new Date()).toISOString());
16
- } catch (e) {
17
- logger?.warn("Sweeping expired audit events failed.");
18
- logger?.warn(e);
19
- }
20
- };
21
- await execute();
22
- cron.schedule("* * * * *", async () => {
11
+ let task;
12
+ let stopped = false;
13
+ return {
14
+ async start() {
15
+ const repository = new EventRepositoryAdapter(dataSource.getRepository(EventEntity));
16
+ const execute = async () => {
17
+ try {
18
+ await repository.deleteExpired((/* @__PURE__ */ new Date()).toISOString());
19
+ } catch (e) {
20
+ logger?.warn("Sweeping expired audit events failed.");
21
+ logger?.warn(e);
22
+ }
23
+ };
23
24
  await execute();
24
- });
25
- } };
25
+ if (stopped) return;
26
+ task = cron.schedule("* * * * *", async () => {
27
+ await execute();
28
+ });
29
+ },
30
+ async stop() {
31
+ stopped = true;
32
+ if (task) {
33
+ await task.stop();
34
+ task = void 0;
35
+ }
36
+ }
37
+ };
26
38
  }
27
39
  //#endregion
28
40
  export { createEventCleanerComponent };
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["cron","EventEntity","EventRepositoryAdapter","createEventCleanerComponent","dataSource","logger","start","repository","getRepository","execute","deleteExpired","Date","toISOString","e","warn","schedule"],"sources":["../../../src/components/event-cleaner/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport cron from 'node-cron';\nimport type { Event } from '@authup/core-kit';\nimport type { Logger } from '@authup/server-kit';\nimport type { DataSource } from 'typeorm';\nimport { EventEntity } from '../../adapters/database/domains/index.ts';\nimport { EventRepositoryAdapter } from '../../app/modules/database/repositories/index.ts';\nimport type { Component } from '../types.ts';\n\nexport function createEventCleanerComponent(\n dataSource: DataSource,\n logger?: Logger,\n) : Component {\n return {\n async start() {\n const repository = new EventRepositoryAdapter(\n dataSource.getRepository<Event>(EventEntity),\n );\n\n // A failed sweep must never take the process down (start() is\n // fire-and-forget → an uncaught rejection is fatal on modern\n // node); the next tick simply retries.\n const execute = async () => {\n try {\n // Rows carry a per-row expires_at stamped at write time from\n // eventLogRetentionDays; null = keep forever.\n await repository.deleteExpired(new Date().toISOString());\n } catch (e) {\n logger?.warn('Sweeping expired audit events failed.');\n logger?.warn(e);\n }\n };\n\n await execute();\n\n cron.schedule('* * * * *', async () => {\n await execute();\n });\n },\n };\n}\n"],"mappings":";;;;;;;;;AAeA,SAAgBG,4BACZC,YACAC,QAAe;CAEf,OAAO,EACH,MAAMC,QAAAA;EACF,MAAMC,aAAa,IAAIL,uBACnBE,WAAWI,cAAqBP,WAAAA,CAAAA;EAMpC,MAAMQ,UAAU,YAAA;GACZ,IAAI;IAGA,MAAMF,WAAWG,+BAAc,IAAIC,KAAAA,EAAAA,CAAOC,YAAW,CAAA;GACzD,SAASC,GAAG;IACRR,QAAQS,KAAK,uCAAA;IACbT,QAAQS,KAAKD,CAAAA;GACjB;EACJ;EAEA,MAAMJ,QAAAA;EAENT,KAAKe,SAAS,aAAa,YAAA;GACvB,MAAMN,QAAAA;EACV,CAAA;CACJ,EACJ;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["cron","EventEntity","EventRepositoryAdapter","createEventCleanerComponent","dataSource","logger","task","stopped","start","repository","getRepository","execute","deleteExpired","Date","toISOString","e","warn","schedule","stop","undefined"],"sources":["../../../src/components/event-cleaner/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ScheduledTask } from 'node-cron';\nimport cron from 'node-cron';\nimport type { Event } from '@authup/core-kit';\nimport type { Logger } from '@authup/server-kit';\nimport type { DataSource } from 'typeorm';\nimport { EventEntity } from '../../adapters/database/domains/index.ts';\nimport { EventRepositoryAdapter } from '../../app/modules/database/repositories/index.ts';\nimport type { Component } from '../types.ts';\n\nexport function createEventCleanerComponent(\n dataSource: DataSource,\n logger?: Logger,\n) : Component {\n let task : ScheduledTask | undefined;\n let stopped = false;\n\n return {\n async start() {\n const repository = new EventRepositoryAdapter(\n dataSource.getRepository<Event>(EventEntity),\n );\n\n // A failed sweep must never take the process down (start() is\n // fire-and-forget → an uncaught rejection is fatal on modern\n // node); the next tick simply retries.\n const execute = async () => {\n try {\n // Rows carry a per-row expires_at stamped at write time from\n // eventLogRetentionDays; null = keep forever.\n await repository.deleteExpired(new Date().toISOString());\n } catch (e) {\n logger?.warn('Sweeping expired audit events failed.');\n logger?.warn(e);\n }\n };\n\n await execute();\n\n if (stopped) {\n return;\n }\n\n task = cron.schedule('* * * * *', async () => {\n await execute();\n });\n },\n async stop() {\n stopped = true;\n\n if (task) {\n await task.stop();\n task = undefined;\n }\n },\n };\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgBG,4BACZC,YACAC,QAAe;CAEf,IAAIC;CACJ,IAAIC,UAAU;CAEd,OAAO;EACH,MAAMC,QAAAA;GACF,MAAMC,aAAa,IAAIP,uBACnBE,WAAWM,cAAqBT,WAAAA,CAAAA;GAMpC,MAAMU,UAAU,YAAA;IACZ,IAAI;KAGA,MAAMF,WAAWG,+BAAc,IAAIC,KAAAA,EAAAA,CAAOC,YAAW,CAAA;IACzD,SAASC,GAAG;KACRV,QAAQW,KAAK,uCAAA;KACbX,QAAQW,KAAKD,CAAAA;IACjB;GACJ;GAEA,MAAMJ,QAAAA;GAEN,IAAIJ,SACA;GAGJD,OAAON,KAAKiB,SAAS,aAAa,YAAA;IAC9B,MAAMN,QAAAA;GACV,CAAA;EACJ;EACA,MAAMO,OAAAA;GACFX,UAAU;GAEV,IAAID,MAAM;IACN,MAAMA,KAAKY,KAAI;IACfZ,OAAOa,KAAAA;GACX;EACJ;CACJ;AACJ"}
@@ -1,4 +1,3 @@
1
- export * from './database/index.ts';
2
1
  export * from './event-cleaner/index.ts';
3
2
  export * from './oauth2-cleaner/index.ts';
4
3
  export * from './types.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAOA,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAOA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC"}
@@ -1,11 +1,8 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
- import { DatabaseUniqueEntriesComponent } from "./database/unique-entries/module.mjs";
5
- import { createDatabaseUniqueEntriesComponent } from "./database/unique-entries/factory.mjs";
6
- import "./database/index.mjs";
7
4
  import { createEventCleanerComponent } from "./event-cleaner/module.mjs";
8
5
  import "./event-cleaner/index.mjs";
9
6
  import { createOAuth2CleanerComponent } from "./oauth2-cleaner/module.mjs";
10
7
  import "./oauth2-cleaner/index.mjs";
11
- export { DatabaseUniqueEntriesComponent, createDatabaseUniqueEntriesComponent, createEventCleanerComponent, createOAuth2CleanerComponent };
8
+ export { createEventCleanerComponent, createOAuth2CleanerComponent };
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/components/oauth2-cleaner/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,4BAA4B,CACxC,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACf,SAAS,CAkCZ"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/components/oauth2-cleaner/module.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,4BAA4B,CACxC,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACf,SAAS,CAiDZ"}
@@ -8,24 +8,36 @@ import { LessThan } from "typeorm";
8
8
  import cron from "node-cron";
9
9
  //#region src/components/oauth2-cleaner/module.ts
10
10
  function createOAuth2CleanerComponent(dataSource, logger) {
11
- return { async start() {
12
- const sessionRepository = dataSource.getRepository(SessionEntity);
13
- const sessionTokenRepository = dataSource.getRepository(SessionTokenEntity);
14
- const execute = async () => {
15
- try {
16
- const isoDate = (/* @__PURE__ */ new Date()).toISOString();
17
- await sessionTokenRepository.delete({ expiresAt: LessThan(isoDate) });
18
- await sessionRepository.delete({ expiresAt: LessThan(isoDate) });
19
- } catch (e) {
20
- logger?.warn("Sweeping expired sessions failed.");
21
- logger?.warn(e);
22
- }
23
- };
24
- await execute();
25
- cron.schedule("* * * * *", async () => {
11
+ let task;
12
+ let stopped = false;
13
+ return {
14
+ async start() {
15
+ const sessionRepository = dataSource.getRepository(SessionEntity);
16
+ const sessionTokenRepository = dataSource.getRepository(SessionTokenEntity);
17
+ const execute = async () => {
18
+ try {
19
+ const isoDate = (/* @__PURE__ */ new Date()).toISOString();
20
+ await sessionTokenRepository.delete({ expiresAt: LessThan(isoDate) });
21
+ await sessionRepository.delete({ expiresAt: LessThan(isoDate) });
22
+ } catch (e) {
23
+ logger?.warn("Sweeping expired sessions failed.");
24
+ logger?.warn(e);
25
+ }
26
+ };
26
27
  await execute();
27
- });
28
- } };
28
+ if (stopped) return;
29
+ task = cron.schedule("* * * * *", async () => {
30
+ await execute();
31
+ });
32
+ },
33
+ async stop() {
34
+ stopped = true;
35
+ if (task) {
36
+ await task.stop();
37
+ task = void 0;
38
+ }
39
+ }
40
+ };
29
41
  }
30
42
  //#endregion
31
43
  export { createOAuth2CleanerComponent };
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["cron","LessThan","SessionEntity","SessionTokenEntity","createOAuth2CleanerComponent","dataSource","logger","start","sessionRepository","getRepository","sessionTokenRepository","execute","isoDate","Date","toISOString","delete","expiresAt","e","warn","schedule"],"sources":["../../../src/components/oauth2-cleaner/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport cron from 'node-cron';\nimport type { Logger } from '@authup/server-kit';\nimport type { DataSource } from 'typeorm';\nimport { LessThan } from 'typeorm';\nimport { SessionEntity, SessionTokenEntity } from '../../adapters/database/domains/index.ts';\nimport type { Component } from '../types.ts';\n\nexport function createOAuth2CleanerComponent(\n dataSource: DataSource,\n logger?: Logger,\n) : Component {\n return {\n async start() {\n const sessionRepository = dataSource.getRepository(SessionEntity);\n const sessionTokenRepository = dataSource.getRepository(SessionTokenEntity);\n\n // A failed sweep must never take the process down (start() is\n // fire-and-forget → an uncaught rejection is fatal on modern\n // node); the next tick simply retries.\n const execute = async () => {\n try {\n const isoDate = new Date().toISOString();\n\n // Sweep expired session-token rows first: the auth_session_tokens\n // volume dominates (one row per access token, ~15min TTL) and a\n // deleted session cascade-drops its remaining rows anyway.\n await sessionTokenRepository\n .delete({ expiresAt: LessThan(isoDate) });\n\n await sessionRepository\n .delete({ expiresAt: LessThan(isoDate) });\n } catch (e) {\n logger?.warn('Sweeping expired sessions failed.');\n logger?.warn(e);\n }\n };\n\n await execute();\n\n cron.schedule('* * * * *', async () => {\n await execute();\n });\n },\n };\n}\n"],"mappings":";;;;;;;;;AAcA,SAAgBI,6BACZC,YACAC,QAAe;CAEf,OAAO,EACH,MAAMC,QAAAA;EACF,MAAMC,oBAAoBH,WAAWI,cAAcP,aAAAA;EACnD,MAAMQ,yBAAyBL,WAAWI,cAAcN,kBAAAA;EAKxD,MAAMQ,UAAU,YAAA;GACZ,IAAI;IACA,MAAMC,2BAAU,IAAIC,KAAAA,EAAAA,CAAOC,YAAW;IAKtC,MAAMJ,uBACDK,OAAO,EAAEC,WAAWf,SAASW,OAAAA,EAAS,CAAA;IAE3C,MAAMJ,kBACDO,OAAO,EAAEC,WAAWf,SAASW,OAAAA,EAAS,CAAA;GAC/C,SAASK,GAAG;IACRX,QAAQY,KAAK,mCAAA;IACbZ,QAAQY,KAAKD,CAAAA;GACjB;EACJ;EAEA,MAAMN,QAAAA;EAENX,KAAKmB,SAAS,aAAa,YAAA;GACvB,MAAMR,QAAAA;EACV,CAAA;CACJ,EACJ;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["cron","LessThan","SessionEntity","SessionTokenEntity","createOAuth2CleanerComponent","dataSource","logger","task","stopped","start","sessionRepository","getRepository","sessionTokenRepository","execute","isoDate","Date","toISOString","delete","expiresAt","e","warn","schedule","stop","undefined"],"sources":["../../../src/components/oauth2-cleaner/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ScheduledTask } from 'node-cron';\nimport cron from 'node-cron';\nimport type { Logger } from '@authup/server-kit';\nimport type { DataSource } from 'typeorm';\nimport { LessThan } from 'typeorm';\nimport { SessionEntity, SessionTokenEntity } from '../../adapters/database/domains/index.ts';\nimport type { Component } from '../types.ts';\n\nexport function createOAuth2CleanerComponent(\n dataSource: DataSource,\n logger?: Logger,\n) : Component {\n let task : ScheduledTask | undefined;\n let stopped = false;\n\n return {\n async start() {\n const sessionRepository = dataSource.getRepository(SessionEntity);\n const sessionTokenRepository = dataSource.getRepository(SessionTokenEntity);\n\n // A failed sweep must never take the process down (start() is\n // fire-and-forget → an uncaught rejection is fatal on modern\n // node); the next tick simply retries.\n const execute = async () => {\n try {\n const isoDate = new Date().toISOString();\n\n // Sweep expired session-token rows first: the auth_session_tokens\n // volume dominates (one row per access token, ~15min TTL) and a\n // deleted session cascade-drops its remaining rows anyway.\n await sessionTokenRepository\n .delete({ expiresAt: LessThan(isoDate) });\n\n await sessionRepository\n .delete({ expiresAt: LessThan(isoDate) });\n } catch (e) {\n logger?.warn('Sweeping expired sessions failed.');\n logger?.warn(e);\n }\n };\n\n await execute();\n\n if (stopped) {\n return;\n }\n\n task = cron.schedule('* * * * *', async () => {\n await execute();\n });\n },\n async stop() {\n stopped = true;\n\n if (task) {\n await task.stop();\n task = undefined;\n }\n },\n };\n}\n"],"mappings":";;;;;;;;;AAeA,SAAgBI,6BACZC,YACAC,QAAe;CAEf,IAAIC;CACJ,IAAIC,UAAU;CAEd,OAAO;EACH,MAAMC,QAAAA;GACF,MAAMC,oBAAoBL,WAAWM,cAAcT,aAAAA;GACnD,MAAMU,yBAAyBP,WAAWM,cAAcR,kBAAAA;GAKxD,MAAMU,UAAU,YAAA;IACZ,IAAI;KACA,MAAMC,2BAAU,IAAIC,KAAAA,EAAAA,CAAOC,YAAW;KAKtC,MAAMJ,uBACDK,OAAO,EAAEC,WAAWjB,SAASa,OAAAA,EAAS,CAAA;KAE3C,MAAMJ,kBACDO,OAAO,EAAEC,WAAWjB,SAASa,OAAAA,EAAS,CAAA;IAC/C,SAASK,GAAG;KACRb,QAAQc,KAAK,mCAAA;KACbd,QAAQc,KAAKD,CAAAA;IACjB;GACJ;GAEA,MAAMN,QAAAA;GAEN,IAAIL,SACA;GAGJD,OAAOP,KAAKqB,SAAS,aAAa,YAAA;IAC9B,MAAMR,QAAAA;GACV,CAAA;EACJ;EACA,MAAMS,OAAAA;GACFd,UAAU;GAEV,IAAID,MAAM;IACN,MAAMA,KAAKe,KAAI;IACff,OAAOgB,KAAAA;GACX;EACJ;CACJ;AACJ"}
@@ -1,4 +1,5 @@
1
1
  export type Component = {
2
2
  start: () => Promise<void>;
3
+ stop: () => Promise<void>;
3
4
  };
4
5
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,SAAS,GAAG;IACpB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,SAAS,GAAG;IACpB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/authentication/login-throttle/service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,oBAAqB,YAAW,qBAAqB;IAC9D,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAEvC,SAAS,CAAC,OAAO,EAAE,2BAA2B,CAAC;gBAEnC,GAAG,EAAE,2BAA2B;IAKtC,kBAAkB,CACpB,GAAG,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC1B,GACF,OAAO,CAAC,IAAI,CAAC;CA4BnB"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/authentication/login-throttle/service.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,oBAAqB,YAAW,qBAAqB;IAC9D,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAEvC,SAAS,CAAC,OAAO,EAAE,2BAA2B,CAAC;gBAEnC,GAAG,EAAE,2BAA2B;IAKtC,kBAAkB,CACpB,GAAG,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC1B,GACF,OAAO,CAAC,IAAI,CAAC;CA+BnB"}