@authup/server-core 1.0.0-beta.63 → 1.0.0-beta.64

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 (710) hide show
  1. package/dist/adapters/database/data-source/options/module.d.ts +1 -0
  2. package/dist/adapters/database/data-source/options/module.d.ts.map +1 -1
  3. package/dist/adapters/database/data-source/options/module.mjs +33 -4
  4. package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
  5. package/dist/adapters/database/domains/client/entity.d.ts +1 -2
  6. package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
  7. package/dist/adapters/database/domains/client/entity.mjs +7 -14
  8. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  9. package/dist/adapters/database/domains/identity-provider-attribute/subscriber.d.ts +2 -1
  10. package/dist/adapters/database/domains/identity-provider-attribute/subscriber.d.ts.map +1 -1
  11. package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs +2 -2
  12. package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs.map +1 -1
  13. package/dist/adapters/database/domains/session/entity.d.ts +8 -0
  14. package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
  15. package/dist/adapters/database/domains/session/entity.mjs +19 -0
  16. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  17. package/dist/adapters/database/domains/user/entity.d.ts +1 -0
  18. package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
  19. package/dist/adapters/database/domains/user/entity.mjs +6 -0
  20. package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
  21. package/dist/adapters/database/extra-attribute-repository/repository.mjs +1 -1
  22. package/dist/adapters/database/extra-attribute-repository/repository.mjs.map +1 -1
  23. package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs +4 -2
  24. package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs.map +1 -1
  25. package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs +1 -1
  26. package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs.map +1 -1
  27. package/dist/adapters/database/index.mjs +3 -3
  28. package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts +56 -0
  29. package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts.map +1 -0
  30. package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.mjs +105 -0
  31. package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.mjs.map +1 -0
  32. package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.d.ts +56 -0
  33. package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.d.ts.map +1 -0
  34. package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs +104 -0
  35. package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs.map +1 -0
  36. package/dist/adapters/database/subscriber/module.d.ts +6 -2
  37. package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
  38. package/dist/adapters/database/subscriber/module.mjs +9 -5
  39. package/dist/adapters/database/subscriber/module.mjs.map +1 -1
  40. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +1 -1
  41. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  42. package/dist/adapters/http/constants.d.ts +18 -0
  43. package/dist/adapters/http/constants.d.ts.map +1 -0
  44. package/dist/adapters/http/constants.mjs +23 -0
  45. package/dist/adapters/http/constants.mjs.map +1 -0
  46. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +3 -3
  47. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  48. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +6 -0
  49. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
  50. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  51. package/dist/adapters/http/controllers/entities/realm/module.mjs +2 -0
  52. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  53. package/dist/adapters/http/controllers/entities/session/module.d.ts +33 -1
  54. package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -1
  55. package/dist/adapters/http/controllers/entities/session/module.mjs +74 -0
  56. package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
  57. package/dist/adapters/http/controllers/index.mjs +3 -1
  58. package/dist/adapters/http/controllers/workflows/account/index.d.ts +1 -0
  59. package/dist/adapters/http/controllers/workflows/account/index.d.ts.map +1 -1
  60. package/dist/adapters/http/controllers/workflows/account/module.d.ts +25 -16
  61. package/dist/adapters/http/controllers/workflows/account/module.d.ts.map +1 -1
  62. package/dist/adapters/http/controllers/workflows/account/module.mjs +40 -17
  63. package/dist/adapters/http/controllers/workflows/account/module.mjs.map +1 -1
  64. package/dist/adapters/http/controllers/workflows/account/types.d.ts +33 -0
  65. package/dist/adapters/http/controllers/workflows/account/types.d.ts.map +1 -0
  66. package/dist/adapters/http/controllers/workflows/activate/module.d.ts +8 -4
  67. package/dist/adapters/http/controllers/workflows/activate/module.d.ts.map +1 -1
  68. package/dist/adapters/http/controllers/workflows/activate/module.mjs +7 -9
  69. package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
  70. package/dist/adapters/http/controllers/workflows/admin/index.d.ts.map +1 -0
  71. package/dist/adapters/http/controllers/workflows/admin/index.mjs +5 -0
  72. package/dist/adapters/http/controllers/workflows/admin/module.d.ts +30 -0
  73. package/dist/adapters/http/controllers/workflows/admin/module.d.ts.map +1 -0
  74. package/dist/adapters/http/controllers/workflows/admin/module.mjs +88 -0
  75. package/dist/adapters/http/controllers/workflows/admin/module.mjs.map +1 -0
  76. package/dist/adapters/http/controllers/workflows/admin/types.d.ts +14 -0
  77. package/dist/adapters/http/controllers/workflows/admin/types.d.ts.map +1 -0
  78. package/dist/adapters/http/controllers/workflows/auth-console.d.ts +16 -0
  79. package/dist/adapters/http/controllers/workflows/auth-console.d.ts.map +1 -0
  80. package/dist/adapters/http/controllers/workflows/auth-console.mjs +32 -0
  81. package/dist/adapters/http/controllers/workflows/auth-console.mjs.map +1 -0
  82. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts +16 -1
  83. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
  84. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +40 -22
  85. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  86. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +5 -0
  87. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
  88. package/dist/adapters/http/controllers/workflows/console-login/index.d.ts +3 -0
  89. package/dist/adapters/http/controllers/workflows/console-login/index.d.ts.map +1 -0
  90. package/dist/adapters/http/controllers/workflows/console-login/index.mjs +5 -0
  91. package/dist/adapters/http/controllers/workflows/console-login/module.d.ts +83 -0
  92. package/dist/adapters/http/controllers/workflows/console-login/module.d.ts.map +1 -0
  93. package/dist/adapters/http/controllers/workflows/console-login/module.mjs +230 -0
  94. package/dist/adapters/http/controllers/workflows/console-login/module.mjs.map +1 -0
  95. package/dist/adapters/http/controllers/workflows/console-login/types.d.ts +58 -0
  96. package/dist/adapters/http/controllers/workflows/console-login/types.d.ts.map +1 -0
  97. package/dist/adapters/http/controllers/workflows/index.d.ts +2 -0
  98. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  99. package/dist/adapters/http/controllers/workflows/index.mjs +5 -1
  100. package/dist/adapters/http/controllers/workflows/logout/module.d.ts +32 -3
  101. package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -1
  102. package/dist/adapters/http/controllers/workflows/logout/module.mjs +48 -24
  103. package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
  104. package/dist/adapters/http/controllers/workflows/logout/types.d.ts +1 -1
  105. package/dist/adapters/http/controllers/workflows/logout/types.d.ts.map +1 -1
  106. package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts +8 -4
  107. package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts.map +1 -1
  108. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +7 -9
  109. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
  110. package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts +8 -4
  111. package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts.map +1 -1
  112. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +7 -10
  113. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
  114. package/dist/adapters/http/controllers/workflows/register/module.d.ts +8 -4
  115. package/dist/adapters/http/controllers/workflows/register/module.d.ts.map +1 -1
  116. package/dist/adapters/http/controllers/workflows/register/module.mjs +7 -9
  117. package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
  118. package/dist/adapters/http/controllers/workflows/status/module.mjs +1 -1
  119. package/dist/adapters/http/controllers/workflows/token/module.d.ts +45 -2
  120. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  121. package/dist/adapters/http/controllers/workflows/token/module.mjs +102 -24
  122. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  123. package/dist/adapters/http/cookie/index.d.ts +2 -0
  124. package/dist/adapters/http/cookie/index.d.ts.map +1 -0
  125. package/dist/adapters/http/cookie/index.mjs +5 -0
  126. package/dist/adapters/http/cookie/session.d.ts +35 -0
  127. package/dist/adapters/http/cookie/session.d.ts.map +1 -0
  128. package/dist/adapters/http/cookie/session.mjs +62 -0
  129. package/dist/adapters/http/cookie/session.mjs.map +1 -0
  130. package/dist/adapters/http/index.d.ts +2 -0
  131. package/dist/adapters/http/index.d.ts.map +1 -1
  132. package/dist/adapters/http/index.mjs +20 -16
  133. package/dist/adapters/http/internal-client/index.d.ts +3 -0
  134. package/dist/adapters/http/internal-client/index.d.ts.map +1 -0
  135. package/dist/adapters/http/internal-client/index.mjs +5 -0
  136. package/dist/adapters/http/internal-client/module.d.ts +21 -0
  137. package/dist/adapters/http/internal-client/module.d.ts.map +1 -0
  138. package/dist/adapters/http/{ui/auth-console/http-client.mjs → internal-client/module.mjs} +16 -15
  139. package/dist/adapters/http/internal-client/module.mjs.map +1 -0
  140. package/dist/adapters/http/internal-client/types.d.ts +13 -0
  141. package/dist/adapters/http/internal-client/types.d.ts.map +1 -0
  142. package/dist/adapters/http/middleware/built-in/authorization/index.d.ts +1 -0
  143. package/dist/adapters/http/middleware/built-in/authorization/index.d.ts.map +1 -1
  144. package/dist/adapters/http/middleware/built-in/authorization/index.mjs +2 -1
  145. package/dist/adapters/http/middleware/built-in/authorization/issuance.d.ts +45 -0
  146. package/dist/adapters/http/middleware/built-in/authorization/issuance.d.ts.map +1 -0
  147. package/dist/adapters/http/middleware/built-in/authorization/issuance.mjs +61 -0
  148. package/dist/adapters/http/middleware/built-in/authorization/issuance.mjs.map +1 -0
  149. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +26 -2
  150. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  151. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +67 -1
  152. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  153. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +21 -1
  154. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
  155. package/dist/adapters/http/middleware/built-in/basic.d.ts +2 -2
  156. package/dist/adapters/http/middleware/built-in/basic.d.ts.map +1 -1
  157. package/dist/adapters/http/middleware/built-in/basic.mjs.map +1 -1
  158. package/dist/adapters/http/middleware/built-in/cors.d.ts +8 -2
  159. package/dist/adapters/http/middleware/built-in/cors.d.ts.map +1 -1
  160. package/dist/adapters/http/middleware/built-in/cors.mjs +20 -3
  161. package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
  162. package/dist/adapters/http/middleware/built-in/error.d.ts +2 -2
  163. package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
  164. package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
  165. package/dist/adapters/http/middleware/built-in/index.d.ts +1 -4
  166. package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
  167. package/dist/adapters/http/middleware/built-in/index.mjs +3 -4
  168. package/dist/adapters/http/middleware/built-in/internal-http-client.d.ts +17 -0
  169. package/dist/adapters/http/middleware/built-in/internal-http-client.d.ts.map +1 -0
  170. package/dist/adapters/http/middleware/built-in/internal-http-client.mjs +27 -0
  171. package/dist/adapters/http/middleware/built-in/internal-http-client.mjs.map +1 -0
  172. package/dist/adapters/http/middleware/built-in/logger.mjs +1 -1
  173. package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
  174. package/dist/adapters/http/middleware/built-in/prometheus.d.ts +6 -5
  175. package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
  176. package/dist/adapters/http/middleware/built-in/prometheus.mjs +3 -2
  177. package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
  178. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts +2 -2
  179. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
  180. package/dist/adapters/http/middleware/built-in/rate-limit.mjs +15 -0
  181. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  182. package/dist/adapters/http/middleware/index.mjs +3 -4
  183. package/dist/adapters/http/request/constants.d.ts +1 -1
  184. package/dist/adapters/http/request/constants.d.ts.map +1 -1
  185. package/dist/adapters/http/request/constants.mjs +1 -5
  186. package/dist/adapters/http/request/constants.mjs.map +1 -1
  187. package/dist/adapters/http/request/helpers/index.d.ts +1 -1
  188. package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
  189. package/dist/adapters/http/request/helpers/index.mjs +2 -2
  190. package/dist/adapters/http/request/helpers/locale.d.ts +2 -1
  191. package/dist/adapters/http/request/helpers/locale.d.ts.map +1 -1
  192. package/dist/adapters/http/request/helpers/locale.mjs +1 -1
  193. package/dist/adapters/http/request/helpers/locale.mjs.map +1 -1
  194. package/dist/adapters/http/request/helpers/same-origin.d.ts +38 -0
  195. package/dist/adapters/http/request/helpers/same-origin.d.ts.map +1 -0
  196. package/dist/adapters/http/request/helpers/same-origin.mjs +68 -0
  197. package/dist/adapters/http/request/helpers/same-origin.mjs.map +1 -0
  198. package/dist/adapters/http/request/index.mjs +2 -2
  199. package/dist/adapters/http/request/permission/module.mjs +1 -1
  200. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  201. package/dist/adapters/http/request/types.d.ts +1 -2
  202. package/dist/adapters/http/request/types.d.ts.map +1 -1
  203. package/dist/adapters/shared/ldap/module.d.ts.map +1 -1
  204. package/dist/adapters/shared/ldap/module.mjs +4 -1
  205. package/dist/adapters/shared/ldap/module.mjs.map +1 -1
  206. package/dist/app/builder.d.ts +4 -4
  207. package/dist/app/builder.d.ts.map +1 -1
  208. package/dist/app/builder.mjs +7 -4
  209. package/dist/app/builder.mjs.map +1 -1
  210. package/dist/app/factory.d.ts +10 -0
  211. package/dist/app/factory.d.ts.map +1 -1
  212. package/dist/app/factory.mjs +26 -2
  213. package/dist/app/factory.mjs.map +1 -1
  214. package/dist/app/index.mjs +17 -19
  215. package/dist/app/modules/authentication/module.d.ts.map +1 -1
  216. package/dist/app/modules/authentication/module.mjs +15 -2
  217. package/dist/app/modules/authentication/module.mjs.map +1 -1
  218. package/dist/app/modules/authentication/repositories/session.d.ts +4 -1
  219. package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
  220. package/dist/app/modules/authentication/repositories/session.mjs +20 -3
  221. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  222. package/dist/app/modules/components/index.d.ts +1 -0
  223. package/dist/app/modules/components/index.d.ts.map +1 -1
  224. package/dist/app/modules/components/module.d.ts +3 -1
  225. package/dist/app/modules/components/module.d.ts.map +1 -1
  226. package/dist/app/modules/components/module.mjs +26 -7
  227. package/dist/app/modules/components/module.mjs.map +1 -1
  228. package/dist/app/modules/components/types.d.ts +11 -0
  229. package/dist/app/modules/components/types.d.ts.map +1 -0
  230. package/dist/app/modules/config/app-origins.d.ts +10 -0
  231. package/dist/app/modules/config/app-origins.d.ts.map +1 -0
  232. package/dist/app/modules/config/app-origins.mjs +21 -0
  233. package/dist/app/modules/config/app-origins.mjs.map +1 -0
  234. package/dist/app/modules/config/constants.d.ts +23 -50
  235. package/dist/app/modules/config/constants.d.ts.map +1 -1
  236. package/dist/app/modules/config/constants.mjs +34 -51
  237. package/dist/app/modules/config/constants.mjs.map +1 -1
  238. package/dist/app/modules/config/index.d.ts +2 -3
  239. package/dist/app/modules/config/index.d.ts.map +1 -1
  240. package/dist/app/modules/config/index.mjs +4 -8
  241. package/dist/app/modules/config/module.d.ts +2 -2
  242. package/dist/app/modules/config/module.d.ts.map +1 -1
  243. package/dist/app/modules/config/module.mjs +1 -1
  244. package/dist/app/modules/config/module.mjs.map +1 -1
  245. package/dist/app/modules/config/read.d.ts +29 -0
  246. package/dist/app/modules/config/read.d.ts.map +1 -0
  247. package/dist/app/modules/config/read.mjs +65 -0
  248. package/dist/app/modules/config/read.mjs.map +1 -0
  249. package/dist/app/modules/config/types.d.ts +30 -405
  250. package/dist/app/modules/config/types.d.ts.map +1 -1
  251. package/dist/app/modules/config/validator.d.ts.map +1 -1
  252. package/dist/app/modules/config/validator.mjs +3 -87
  253. package/dist/app/modules/config/validator.mjs.map +1 -1
  254. package/dist/app/modules/database/index.d.ts +1 -0
  255. package/dist/app/modules/database/index.d.ts.map +1 -1
  256. package/dist/app/modules/database/index.mjs +2 -1
  257. package/dist/app/modules/database/migration.d.ts +33 -0
  258. package/dist/app/modules/database/migration.d.ts.map +1 -0
  259. package/dist/app/modules/database/migration.mjs +52 -0
  260. package/dist/app/modules/database/migration.mjs.map +1 -0
  261. package/dist/app/modules/database/module.d.ts.map +1 -1
  262. package/dist/app/modules/database/module.mjs +12 -6
  263. package/dist/app/modules/database/module.mjs.map +1 -1
  264. package/dist/app/modules/database/repositories/client/repository.d.ts +6 -1
  265. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  266. package/dist/app/modules/database/repositories/client/repository.mjs +21 -4
  267. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  268. package/dist/app/modules/database/repositories/event/repository.d.ts +29 -2
  269. package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -1
  270. package/dist/app/modules/database/repositories/event/repository.mjs +42 -24
  271. package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -1
  272. package/dist/app/modules/database/repositories/helpers.d.ts +24 -1
  273. package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
  274. package/dist/app/modules/database/repositories/helpers.mjs +38 -1
  275. package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
  276. package/dist/app/modules/database/repositories/identity-provider/repository.mjs +1 -1
  277. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs +4 -2
  278. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs.map +1 -1
  279. package/dist/app/modules/database/repositories/key/repository.mjs +1 -1
  280. package/dist/app/modules/database/repositories/permission/repository.mjs +1 -1
  281. package/dist/app/modules/database/repositories/policy/repository.mjs +1 -1
  282. package/dist/app/modules/database/repositories/role/repository.mjs +1 -1
  283. package/dist/app/modules/database/repositories/scope/repository.mjs +1 -1
  284. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +1 -1
  285. package/dist/app/modules/database/repositories/user/repository.d.ts +7 -2
  286. package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
  287. package/dist/app/modules/database/repositories/user/repository.mjs +21 -4
  288. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  289. package/dist/app/modules/http/constants.d.ts +3 -1
  290. package/dist/app/modules/http/constants.d.ts.map +1 -1
  291. package/dist/app/modules/http/constants.mjs +3 -2
  292. package/dist/app/modules/http/constants.mjs.map +1 -1
  293. package/dist/app/modules/http/module.d.ts +30 -9
  294. package/dist/app/modules/http/module.d.ts.map +1 -1
  295. package/dist/app/modules/http/module.mjs +31 -33
  296. package/dist/app/modules/http/module.mjs.map +1 -1
  297. package/dist/app/modules/http/modules/controller.d.ts +4 -3
  298. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  299. package/dist/app/modules/http/modules/controller.mjs +65 -36
  300. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  301. package/dist/app/modules/http/modules/middleware.d.ts +13 -22
  302. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  303. package/dist/app/modules/http/modules/middleware.mjs +20 -36
  304. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  305. package/dist/app/modules/identity/module.mjs +4 -4
  306. package/dist/app/modules/identity/repositories/client.mjs +4 -2
  307. package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
  308. package/dist/app/modules/identity/repositories/user.mjs +4 -2
  309. package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
  310. package/dist/app/modules/index.mjs +21 -23
  311. package/dist/app/modules/logger/module.mjs +1 -1
  312. package/dist/app/modules/logger/module.mjs.map +1 -1
  313. package/dist/app/modules/mail/module.d.ts.map +1 -1
  314. package/dist/app/modules/mail/module.mjs.map +1 -1
  315. package/dist/app/modules/oauth2/constants.d.ts +2 -1
  316. package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
  317. package/dist/app/modules/oauth2/constants.mjs +1 -0
  318. package/dist/app/modules/oauth2/constants.mjs.map +1 -1
  319. package/dist/app/modules/oauth2/module.d.ts.map +1 -1
  320. package/dist/app/modules/oauth2/module.mjs +9 -4
  321. package/dist/app/modules/oauth2/module.mjs.map +1 -1
  322. package/dist/app/modules/oauth2/repositories/client/repository.mjs +4 -2
  323. package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
  324. package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -1
  325. package/dist/app/modules/oauth2/repositories/consent/repository.mjs +3 -2
  326. package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -1
  327. package/dist/app/modules/oauth2/repositories/console-login/index.d.ts +2 -0
  328. package/dist/app/modules/oauth2/repositories/console-login/index.d.ts.map +1 -0
  329. package/dist/app/modules/oauth2/repositories/console-login/index.mjs +5 -0
  330. package/dist/app/modules/oauth2/repositories/console-login/store.d.ts +19 -0
  331. package/dist/app/modules/oauth2/repositories/console-login/store.d.ts.map +1 -0
  332. package/dist/app/modules/oauth2/repositories/console-login/store.mjs +47 -0
  333. package/dist/app/modules/oauth2/repositories/console-login/store.mjs.map +1 -0
  334. package/dist/app/modules/oauth2/repositories/constants.d.ts +1 -0
  335. package/dist/app/modules/oauth2/repositories/constants.d.ts.map +1 -1
  336. package/dist/app/modules/oauth2/repositories/constants.mjs +1 -0
  337. package/dist/app/modules/oauth2/repositories/constants.mjs.map +1 -1
  338. package/dist/app/modules/oauth2/repositories/index.d.ts +1 -0
  339. package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
  340. package/dist/app/modules/oauth2/repositories/index.mjs +3 -1
  341. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +2 -2
  342. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
  343. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +5 -3
  344. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
  345. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  346. package/dist/app/modules/provisioning/module.mjs +5 -6
  347. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  348. package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
  349. package/dist/app/modules/provisioning/sources/composite/module.mjs +2 -1
  350. package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
  351. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  352. package/dist/app/modules/provisioning/sources/default/module.mjs +2 -1
  353. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  354. package/dist/app/modules/runtime/module.d.ts.map +1 -1
  355. package/dist/app/modules/runtime/module.mjs +2 -1
  356. package/dist/app/modules/runtime/module.mjs.map +1 -1
  357. package/dist/app/types.d.ts +16 -0
  358. package/dist/app/types.d.ts.map +1 -1
  359. package/dist/cli/commands/config.d.ts +40 -0
  360. package/dist/cli/commands/config.d.ts.map +1 -0
  361. package/dist/cli/commands/config.mjs +65 -0
  362. package/dist/cli/commands/config.mjs.map +1 -0
  363. package/dist/cli/commands/healthcheck.d.ts +3 -2
  364. package/dist/cli/commands/healthcheck.d.ts.map +1 -1
  365. package/dist/cli/commands/healthcheck.mjs +6 -3
  366. package/dist/cli/commands/healthcheck.mjs.map +1 -1
  367. package/dist/cli/commands/index.d.ts +3 -0
  368. package/dist/cli/commands/index.d.ts.map +1 -1
  369. package/dist/cli/commands/index.mjs +3 -1
  370. package/dist/cli/commands/migration.d.ts +3 -10
  371. package/dist/cli/commands/migration.d.ts.map +1 -1
  372. package/dist/cli/commands/migration.mjs +17 -9
  373. package/dist/cli/commands/migration.mjs.map +1 -1
  374. package/dist/cli/commands/shutdown.d.ts +16 -0
  375. package/dist/cli/commands/shutdown.d.ts.map +1 -0
  376. package/dist/cli/commands/shutdown.mjs +41 -0
  377. package/dist/cli/commands/shutdown.mjs.map +1 -0
  378. package/dist/cli/commands/start.d.ts +3 -2
  379. package/dist/cli/commands/start.d.ts.map +1 -1
  380. package/dist/cli/commands/start.mjs +3 -21
  381. package/dist/cli/commands/start.mjs.map +1 -1
  382. package/dist/cli/commands/types.d.ts.map +1 -0
  383. package/dist/cli/index.d.ts +8 -0
  384. package/dist/cli/index.d.ts.map +1 -1
  385. package/dist/cli/index.mjs.map +1 -1
  386. package/dist/cli/module.d.ts +0 -2
  387. package/dist/cli/module.d.ts.map +1 -1
  388. package/dist/cli/module.mjs +4 -3
  389. package/dist/cli/module.mjs.map +1 -1
  390. package/dist/components/oauth2-cleaner/module.d.ts +2 -2
  391. package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
  392. package/dist/components/oauth2-cleaner/module.mjs +10 -7
  393. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  394. package/dist/core/authentication/index.mjs +2 -1
  395. package/dist/core/authentication/session/constants.d.ts +10 -0
  396. package/dist/core/authentication/session/constants.d.ts.map +1 -0
  397. package/dist/core/authentication/session/constants.mjs +16 -0
  398. package/dist/core/authentication/session/constants.mjs.map +1 -0
  399. package/dist/core/authentication/session/index.d.ts +1 -0
  400. package/dist/core/authentication/session/index.d.ts.map +1 -1
  401. package/dist/core/authentication/session/index.mjs +2 -1
  402. package/dist/core/authentication/session/module.d.ts +2 -1
  403. package/dist/core/authentication/session/module.d.ts.map +1 -1
  404. package/dist/core/authentication/session/module.mjs +7 -1
  405. package/dist/core/authentication/session/module.mjs.map +1 -1
  406. package/dist/core/authentication/session/types.d.ts +70 -1
  407. package/dist/core/authentication/session/types.d.ts.map +1 -1
  408. package/dist/core/authentication/session/types.mjs.map +1 -1
  409. package/dist/core/entities/client/schema.d.ts.map +1 -1
  410. package/dist/core/entities/client/schema.mjs +1 -2
  411. package/dist/core/entities/client/schema.mjs.map +1 -1
  412. package/dist/core/entities/client/service.d.ts.map +1 -1
  413. package/dist/core/entities/client/service.mjs +15 -1
  414. package/dist/core/entities/client/service.mjs.map +1 -1
  415. package/dist/core/entities/client/system-clients.d.ts +0 -5
  416. package/dist/core/entities/client/system-clients.d.ts.map +1 -1
  417. package/dist/core/entities/client/system-clients.mjs +0 -6
  418. package/dist/core/entities/client/system-clients.mjs.map +1 -1
  419. package/dist/core/entities/client/types.d.ts +12 -0
  420. package/dist/core/entities/client/types.d.ts.map +1 -1
  421. package/dist/core/entities/client-permission/service.mjs +1 -1
  422. package/dist/core/entities/client-permission/service.mjs.map +1 -1
  423. package/dist/core/entities/event/constants.d.ts +1 -6
  424. package/dist/core/entities/event/constants.d.ts.map +1 -1
  425. package/dist/core/entities/event/constants.mjs +1 -5
  426. package/dist/core/entities/event/constants.mjs.map +1 -1
  427. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
  428. package/dist/core/entities/event/entity-event-handler.mjs +3 -2
  429. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
  430. package/dist/core/entities/event/service.d.ts.map +1 -1
  431. package/dist/core/entities/event/service.mjs +3 -3
  432. package/dist/core/entities/event/service.mjs.map +1 -1
  433. package/dist/core/entities/event/types.d.ts +15 -1
  434. package/dist/core/entities/event/types.d.ts.map +1 -1
  435. package/dist/core/entities/permission/service.mjs +1 -2
  436. package/dist/core/entities/permission/service.mjs.map +1 -1
  437. package/dist/core/entities/role-permission/service.mjs +1 -1
  438. package/dist/core/entities/role-permission/service.mjs.map +1 -1
  439. package/dist/core/entities/session/service.d.ts +13 -1
  440. package/dist/core/entities/session/service.d.ts.map +1 -1
  441. package/dist/core/entities/session/service.mjs +19 -16
  442. package/dist/core/entities/session/service.mjs.map +1 -1
  443. package/dist/core/entities/user/schema.d.ts.map +1 -1
  444. package/dist/core/entities/user/schema.mjs +1 -0
  445. package/dist/core/entities/user/schema.mjs.map +1 -1
  446. package/dist/core/entities/user/service.d.ts.map +1 -1
  447. package/dist/core/entities/user/service.mjs +21 -1
  448. package/dist/core/entities/user/service.mjs.map +1 -1
  449. package/dist/core/entities/user/types.d.ts +12 -0
  450. package/dist/core/entities/user/types.d.ts.map +1 -1
  451. package/dist/core/entities/user-permission/service.mjs +1 -1
  452. package/dist/core/entities/user-permission/service.mjs.map +1 -1
  453. package/dist/core/identity/permission/junction-grant.mjs +1 -1
  454. package/dist/core/identity/permission/junction-grant.mjs.map +1 -1
  455. package/dist/core/identity/provider/account/module.mjs +1 -1
  456. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  457. package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.mjs +1 -1
  458. package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.mjs.map +1 -1
  459. package/dist/core/identity/registration/service.d.ts.map +1 -1
  460. package/dist/core/identity/registration/service.mjs +2 -1
  461. package/dist/core/identity/registration/service.mjs.map +1 -1
  462. package/dist/core/index.mjs +11 -3
  463. package/dist/core/oauth2/authorization/helpers.d.ts +14 -0
  464. package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
  465. package/dist/core/oauth2/authorization/helpers.mjs +9 -1
  466. package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
  467. package/dist/core/oauth2/authorization/index.mjs +2 -2
  468. package/dist/core/oauth2/authorization/module.mjs +1 -1
  469. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  470. package/dist/core/oauth2/backchannel-logout/constants.d.ts +16 -0
  471. package/dist/core/oauth2/backchannel-logout/constants.d.ts.map +1 -0
  472. package/dist/core/oauth2/backchannel-logout/constants.mjs +20 -0
  473. package/dist/core/oauth2/backchannel-logout/constants.mjs.map +1 -0
  474. package/dist/core/oauth2/backchannel-logout/index.d.ts +4 -0
  475. package/dist/core/oauth2/backchannel-logout/index.d.ts.map +1 -0
  476. package/dist/core/oauth2/backchannel-logout/index.mjs +6 -0
  477. package/dist/core/oauth2/backchannel-logout/module.d.ts +26 -0
  478. package/dist/core/oauth2/backchannel-logout/module.d.ts.map +1 -0
  479. package/dist/core/oauth2/backchannel-logout/module.mjs +78 -0
  480. package/dist/core/oauth2/backchannel-logout/module.mjs.map +1 -0
  481. package/dist/core/oauth2/backchannel-logout/types.d.ts +29 -0
  482. package/dist/core/oauth2/backchannel-logout/types.d.ts.map +1 -0
  483. package/dist/core/oauth2/console-login/constants.d.ts +19 -0
  484. package/dist/core/oauth2/console-login/constants.d.ts.map +1 -0
  485. package/dist/core/oauth2/console-login/constants.mjs +24 -0
  486. package/dist/core/oauth2/console-login/constants.mjs.map +1 -0
  487. package/dist/core/oauth2/console-login/index.d.ts +3 -0
  488. package/dist/core/oauth2/console-login/index.d.ts.map +1 -0
  489. package/dist/core/oauth2/console-login/index.mjs +5 -0
  490. package/dist/core/oauth2/console-login/types.d.ts +53 -0
  491. package/dist/core/oauth2/console-login/types.d.ts.map +1 -0
  492. package/dist/core/oauth2/end-session/service.mjs +1 -1
  493. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  494. package/dist/core/oauth2/federated-login/module.mjs +3 -3
  495. package/dist/core/oauth2/federated-login/module.mjs.map +1 -1
  496. package/dist/core/oauth2/index.d.ts +4 -0
  497. package/dist/core/oauth2/index.d.ts.map +1 -1
  498. package/dist/core/oauth2/index.mjs +13 -3
  499. package/dist/core/oauth2/introspection/index.d.ts +3 -0
  500. package/dist/core/oauth2/introspection/index.d.ts.map +1 -0
  501. package/dist/core/oauth2/introspection/index.mjs +5 -0
  502. package/dist/core/oauth2/introspection/module.d.ts +14 -0
  503. package/dist/core/oauth2/introspection/module.d.ts.map +1 -0
  504. package/dist/core/oauth2/introspection/module.mjs +49 -0
  505. package/dist/core/oauth2/introspection/module.mjs.map +1 -0
  506. package/dist/core/oauth2/introspection/types.d.ts +45 -0
  507. package/dist/core/oauth2/introspection/types.d.ts.map +1 -0
  508. package/dist/core/oauth2/introspection/types.mjs +4 -0
  509. package/dist/core/oauth2/openid/claims.d.ts +20 -2
  510. package/dist/core/oauth2/openid/claims.d.ts.map +1 -1
  511. package/dist/core/oauth2/openid/claims.mjs +18 -4
  512. package/dist/core/oauth2/openid/claims.mjs.map +1 -1
  513. package/dist/core/oauth2/session-credential/constants.d.ts +30 -0
  514. package/dist/core/oauth2/session-credential/constants.d.ts.map +1 -0
  515. package/dist/core/oauth2/session-credential/constants.mjs +34 -0
  516. package/dist/core/oauth2/session-credential/constants.mjs.map +1 -0
  517. package/dist/core/oauth2/session-credential/index.d.ts +3 -0
  518. package/dist/core/oauth2/session-credential/index.d.ts.map +1 -0
  519. package/dist/core/oauth2/session-credential/index.mjs +6 -0
  520. package/dist/core/oauth2/session-credential/module.d.ts +31 -0
  521. package/dist/core/oauth2/session-credential/module.d.ts.map +1 -0
  522. package/dist/core/oauth2/session-credential/module.mjs +43 -0
  523. package/dist/core/oauth2/session-credential/module.mjs.map +1 -0
  524. package/dist/core/oauth2/session-token/constants.d.ts +10 -0
  525. package/dist/core/oauth2/session-token/constants.d.ts.map +1 -0
  526. package/dist/core/oauth2/session-token/constants.mjs +16 -0
  527. package/dist/core/oauth2/session-token/constants.mjs.map +1 -0
  528. package/dist/core/oauth2/session-token/index.d.ts +1 -0
  529. package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
  530. package/dist/core/oauth2/session-token/index.mjs +2 -1
  531. package/dist/core/oauth2/session-token/types.d.ts +13 -2
  532. package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
  533. package/dist/core/provisioning/merge/module.mjs +5 -3
  534. package/dist/core/provisioning/merge/module.mjs.map +1 -1
  535. package/dist/core/query/module.mjs +1 -1
  536. package/dist/core/query/module.mjs.map +1 -1
  537. package/dist/core/security/policy/evaluator.mjs +1 -1
  538. package/dist/core/security/policy/evaluator.mjs.map +1 -1
  539. package/dist/index.mjs +62 -59
  540. package/dist/path.mjs +1 -1
  541. package/dist/swagger.json +466 -104
  542. package/dist/utils/error.d.ts +6 -0
  543. package/dist/utils/error.d.ts.map +1 -1
  544. package/dist/utils/error.mjs +6 -2
  545. package/dist/utils/error.mjs.map +1 -1
  546. package/dist/utils/index.mjs +2 -2
  547. package/package.json +31 -25
  548. package/dist/adapters/http/middleware/built-in/assets.d.ts +0 -11
  549. package/dist/adapters/http/middleware/built-in/assets.d.ts.map +0 -1
  550. package/dist/adapters/http/middleware/built-in/assets.mjs +0 -91
  551. package/dist/adapters/http/middleware/built-in/assets.mjs.map +0 -1
  552. package/dist/adapters/http/middleware/built-in/theme.d.ts +0 -15
  553. package/dist/adapters/http/middleware/built-in/theme.d.ts.map +0 -1
  554. package/dist/adapters/http/middleware/built-in/theme.mjs +0 -27
  555. package/dist/adapters/http/middleware/built-in/theme.mjs.map +0 -1
  556. package/dist/adapters/http/middleware/built-in/types.d.ts +0 -14
  557. package/dist/adapters/http/middleware/built-in/types.d.ts.map +0 -1
  558. package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +0 -15
  559. package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts.map +0 -1
  560. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +0 -25
  561. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +0 -1
  562. package/dist/adapters/http/request/helpers/redirect.d.ts +0 -14
  563. package/dist/adapters/http/request/helpers/redirect.d.ts.map +0 -1
  564. package/dist/adapters/http/request/helpers/redirect.mjs +0 -36
  565. package/dist/adapters/http/request/helpers/redirect.mjs.map +0 -1
  566. package/dist/adapters/http/ui/account-console/index.d.ts +0 -4
  567. package/dist/adapters/http/ui/account-console/index.d.ts.map +0 -1
  568. package/dist/adapters/http/ui/account-console/index.mjs +0 -6
  569. package/dist/adapters/http/ui/account-console/module.d.ts +0 -28
  570. package/dist/adapters/http/ui/account-console/module.d.ts.map +0 -1
  571. package/dist/adapters/http/ui/account-console/module.mjs +0 -80
  572. package/dist/adapters/http/ui/account-console/module.mjs.map +0 -1
  573. package/dist/adapters/http/ui/account-console/ref.d.ts +0 -30
  574. package/dist/adapters/http/ui/account-console/ref.d.ts.map +0 -1
  575. package/dist/adapters/http/ui/account-console/ref.mjs +0 -50
  576. package/dist/adapters/http/ui/account-console/ref.mjs.map +0 -1
  577. package/dist/adapters/http/ui/account-console/types.d.ts +0 -11
  578. package/dist/adapters/http/ui/account-console/types.d.ts.map +0 -1
  579. package/dist/adapters/http/ui/auth-console/http-client.d.ts +0 -22
  580. package/dist/adapters/http/ui/auth-console/http-client.d.ts.map +0 -1
  581. package/dist/adapters/http/ui/auth-console/http-client.mjs.map +0 -1
  582. package/dist/adapters/http/ui/auth-console/index.d.ts +0 -6
  583. package/dist/adapters/http/ui/auth-console/index.d.ts.map +0 -1
  584. package/dist/adapters/http/ui/auth-console/index.mjs +0 -8
  585. package/dist/adapters/http/ui/auth-console/module.d.ts +0 -4
  586. package/dist/adapters/http/ui/auth-console/module.d.ts.map +0 -1
  587. package/dist/adapters/http/ui/auth-console/module.mjs +0 -73
  588. package/dist/adapters/http/ui/auth-console/module.mjs.map +0 -1
  589. package/dist/adapters/http/ui/auth-console/resolve.d.ts +0 -21
  590. package/dist/adapters/http/ui/auth-console/resolve.d.ts.map +0 -1
  591. package/dist/adapters/http/ui/auth-console/resolve.mjs +0 -53
  592. package/dist/adapters/http/ui/auth-console/resolve.mjs.map +0 -1
  593. package/dist/adapters/http/ui/auth-console/serve.d.ts +0 -9
  594. package/dist/adapters/http/ui/auth-console/serve.d.ts.map +0 -1
  595. package/dist/adapters/http/ui/auth-console/serve.mjs +0 -35
  596. package/dist/adapters/http/ui/auth-console/serve.mjs.map +0 -1
  597. package/dist/adapters/http/ui/auth-console/types.d.ts +0 -26
  598. package/dist/adapters/http/ui/auth-console/types.d.ts.map +0 -1
  599. package/dist/adapters/http/ui/console-packages/index.d.ts.map +0 -1
  600. package/dist/adapters/http/ui/console-packages/index.mjs +0 -5
  601. package/dist/adapters/http/ui/console-packages/module.d.ts +0 -33
  602. package/dist/adapters/http/ui/console-packages/module.d.ts.map +0 -1
  603. package/dist/adapters/http/ui/console-packages/module.mjs +0 -70
  604. package/dist/adapters/http/ui/console-packages/module.mjs.map +0 -1
  605. package/dist/adapters/http/ui/console-packages/types.d.ts +0 -12
  606. package/dist/adapters/http/ui/console-packages/types.d.ts.map +0 -1
  607. package/dist/adapters/http/ui/index.d.ts +0 -6
  608. package/dist/adapters/http/ui/index.d.ts.map +0 -1
  609. package/dist/adapters/http/ui/index.mjs +0 -25
  610. package/dist/adapters/http/ui/shared/html.d.ts +0 -76
  611. package/dist/adapters/http/ui/shared/html.d.ts.map +0 -1
  612. package/dist/adapters/http/ui/shared/html.mjs +0 -104
  613. package/dist/adapters/http/ui/shared/html.mjs.map +0 -1
  614. package/dist/adapters/http/ui/shared/index.d.ts +0 -2
  615. package/dist/adapters/http/ui/shared/index.d.ts.map +0 -1
  616. package/dist/adapters/http/ui/shared/index.mjs +0 -5
  617. package/dist/adapters/http/ui/theme/apply.d.ts +0 -12
  618. package/dist/adapters/http/ui/theme/apply.d.ts.map +0 -1
  619. package/dist/adapters/http/ui/theme/apply.mjs +0 -29
  620. package/dist/adapters/http/ui/theme/apply.mjs.map +0 -1
  621. package/dist/adapters/http/ui/theme/assets.d.ts +0 -20
  622. package/dist/adapters/http/ui/theme/assets.d.ts.map +0 -1
  623. package/dist/adapters/http/ui/theme/assets.mjs +0 -86
  624. package/dist/adapters/http/ui/theme/assets.mjs.map +0 -1
  625. package/dist/adapters/http/ui/theme/constants.d.ts +0 -16
  626. package/dist/adapters/http/ui/theme/constants.d.ts.map +0 -1
  627. package/dist/adapters/http/ui/theme/constants.mjs +0 -20
  628. package/dist/adapters/http/ui/theme/constants.mjs.map +0 -1
  629. package/dist/adapters/http/ui/theme/contract/constants.d.ts +0 -120
  630. package/dist/adapters/http/ui/theme/contract/constants.d.ts.map +0 -1
  631. package/dist/adapters/http/ui/theme/contract/constants.mjs +0 -136
  632. package/dist/adapters/http/ui/theme/contract/constants.mjs.map +0 -1
  633. package/dist/adapters/http/ui/theme/contract/head.d.ts +0 -12
  634. package/dist/adapters/http/ui/theme/contract/head.d.ts.map +0 -1
  635. package/dist/adapters/http/ui/theme/contract/head.mjs +0 -61
  636. package/dist/adapters/http/ui/theme/contract/head.mjs.map +0 -1
  637. package/dist/adapters/http/ui/theme/contract/index.d.ts +0 -6
  638. package/dist/adapters/http/ui/theme/contract/index.d.ts.map +0 -1
  639. package/dist/adapters/http/ui/theme/contract/index.mjs +0 -8
  640. package/dist/adapters/http/ui/theme/contract/manifest.d.ts +0 -25
  641. package/dist/adapters/http/ui/theme/contract/manifest.d.ts.map +0 -1
  642. package/dist/adapters/http/ui/theme/contract/manifest.mjs +0 -77
  643. package/dist/adapters/http/ui/theme/contract/manifest.mjs.map +0 -1
  644. package/dist/adapters/http/ui/theme/contract/types.d.ts +0 -26
  645. package/dist/adapters/http/ui/theme/contract/types.d.ts.map +0 -1
  646. package/dist/adapters/http/ui/theme/contract/utils.d.ts +0 -11
  647. package/dist/adapters/http/ui/theme/contract/utils.d.ts.map +0 -1
  648. package/dist/adapters/http/ui/theme/contract/utils.mjs +0 -22
  649. package/dist/adapters/http/ui/theme/contract/utils.mjs.map +0 -1
  650. package/dist/adapters/http/ui/theme/index.d.ts +0 -7
  651. package/dist/adapters/http/ui/theme/index.d.ts.map +0 -1
  652. package/dist/adapters/http/ui/theme/index.mjs +0 -13
  653. package/dist/adapters/http/ui/theme/module.d.ts +0 -79
  654. package/dist/adapters/http/ui/theme/module.d.ts.map +0 -1
  655. package/dist/adapters/http/ui/theme/module.mjs +0 -206
  656. package/dist/adapters/http/ui/theme/module.mjs.map +0 -1
  657. package/dist/adapters/http/ui/theme/types.d.ts +0 -42
  658. package/dist/adapters/http/ui/theme/types.d.ts.map +0 -1
  659. package/dist/app/modules/config/helpers.d.ts +0 -9
  660. package/dist/app/modules/config/helpers.d.ts.map +0 -1
  661. package/dist/app/modules/config/helpers.mjs +0 -22
  662. package/dist/app/modules/config/helpers.mjs.map +0 -1
  663. package/dist/app/modules/config/normalize.d.ts +0 -3
  664. package/dist/app/modules/config/normalize.d.ts.map +0 -1
  665. package/dist/app/modules/config/normalize.mjs +0 -117
  666. package/dist/app/modules/config/normalize.mjs.map +0 -1
  667. package/dist/app/modules/config/origins.d.ts +0 -25
  668. package/dist/app/modules/config/origins.d.ts.map +0 -1
  669. package/dist/app/modules/config/origins.mjs +0 -46
  670. package/dist/app/modules/config/origins.mjs.map +0 -1
  671. package/dist/app/modules/config/read/env.d.ts +0 -3
  672. package/dist/app/modules/config/read/env.d.ts.map +0 -1
  673. package/dist/app/modules/config/read/env.mjs +0 -139
  674. package/dist/app/modules/config/read/env.mjs.map +0 -1
  675. package/dist/app/modules/config/read/fs.d.ts +0 -3
  676. package/dist/app/modules/config/read/fs.d.ts.map +0 -1
  677. package/dist/app/modules/config/read/fs.mjs +0 -60
  678. package/dist/app/modules/config/read/fs.mjs.map +0 -1
  679. package/dist/app/modules/config/read/index.d.ts +0 -5
  680. package/dist/app/modules/config/read/index.d.ts.map +0 -1
  681. package/dist/app/modules/config/read/index.mjs +0 -7
  682. package/dist/app/modules/config/read/module.d.ts +0 -4
  683. package/dist/app/modules/config/read/module.d.ts.map +0 -1
  684. package/dist/app/modules/config/read/module.mjs +0 -29
  685. package/dist/app/modules/config/read/module.mjs.map +0 -1
  686. package/dist/app/modules/config/read/types.d.ts +0 -9
  687. package/dist/app/modules/config/read/types.d.ts.map +0 -1
  688. package/dist/app/modules/config/trust-proxy.d.ts +0 -28
  689. package/dist/app/modules/config/trust-proxy.d.ts.map +0 -1
  690. package/dist/app/modules/config/trust-proxy.mjs +0 -64
  691. package/dist/app/modules/config/trust-proxy.mjs.map +0 -1
  692. package/dist/cli/config.d.ts +0 -18
  693. package/dist/cli/config.d.ts.map +0 -1
  694. package/dist/cli/config.mjs +0 -34
  695. package/dist/cli/config.mjs.map +0 -1
  696. package/dist/cli/types.d.ts.map +0 -1
  697. package/dist/utils/host.d.ts +0 -2
  698. package/dist/utils/host.d.ts.map +0 -1
  699. package/dist/utils/host.mjs +0 -12
  700. package/dist/utils/host.mjs.map +0 -1
  701. /package/dist/adapters/http/{middleware/built-in → controllers/workflows/account}/types.mjs +0 -0
  702. /package/dist/adapters/http/{ui/console-packages → controllers/workflows/admin}/index.d.ts +0 -0
  703. /package/dist/adapters/http/{ui/account-console → controllers/workflows/admin}/types.mjs +0 -0
  704. /package/dist/adapters/http/{ui/auth-console → controllers/workflows/console-login}/types.mjs +0 -0
  705. /package/dist/adapters/http/{ui/console-packages → internal-client}/types.mjs +0 -0
  706. /package/dist/{adapters/http/ui/theme/contract → app/modules/components}/types.mjs +0 -0
  707. /package/dist/cli/{types.d.ts → commands/types.d.ts} +0 -0
  708. /package/dist/{adapters/http/ui/theme → cli/commands}/types.mjs +0 -0
  709. /package/dist/{app/modules/config/read → core/oauth2/backchannel-logout}/types.mjs +0 -0
  710. /package/dist/{cli → core/oauth2/console-login}/types.mjs +0 -0
@@ -1,6 +1,7 @@
1
1
  import type { DataSourceOptions } from 'typeorm';
2
2
  export declare class DataSourceOptionsBuilder {
3
3
  buildWithEnv(): DataSourceOptions;
4
+ buildWithEnvOrDefault(): DataSourceOptions;
4
5
  buildWith(options: DataSourceOptions): DataSourceOptions;
5
6
  protected normalize(options: DataSourceOptions): DataSourceOptions;
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/data-source/options/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA6DjD,qBAAa,wBAAwB;IACjC,YAAY;IAUZ,SAAS,CAAC,OAAO,EAAE,iBAAiB;IAMpC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAI,iBAAiB;CA+GtE"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/data-source/options/module.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAqFjD,qBAAa,wBAAwB;IACjC,YAAY;IAeZ,qBAAqB;IAiBrB,SAAS,CAAC,OAAO,EAAE,iBAAiB;IAMpC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAI,iBAAiB;CAoHtE"}
@@ -53,15 +53,40 @@ import { UserPermissionSubscriber } from "../../domains/user-permission/subscrib
53
53
  import { UserRoleEntity } from "../../domains/user-role/entity.mjs";
54
54
  import { UserRoleSubscriber } from "../../domains/user-role/subscriber.mjs";
55
55
  import "../../domains/index.mjs";
56
+ import { DIST_PATH, SRC_PATH } from "../../../../path.mjs";
56
57
  import { AuthupError } from "@authup/errors";
57
- import { CodeTransformation, isCodeTransformation, readDataSourceOptionsFromEnv, transformFilePath } from "typeorm-extension";
58
+ import { CodeTransformation, isCodeTransformation, readDataSourceOptionsFromEnv, useEnv } from "typeorm-extension";
59
+ import path from "node:path";
58
60
  //#region src/adapters/database/data-source/options/module.ts
61
+ const NO_DATABASE_CONFIGURED = "No database is configured. Set DB_TYPE to \"postgres\" or \"mysql\", together with DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD and DB_DATABASE.";
62
+ /**
63
+ * Whether the environment names a database connection without naming a driver.
64
+ *
65
+ * `readDataSourceOptionsFromEnv` reports the TYPE alone, so it answers nothing
66
+ * for an environment that carries every credential but no `DB_TYPE`. Read the
67
+ * connection keys through typeorm-extension's own reader rather than a local
68
+ * key list, so this cannot drift from what it accepts (each one is `DB_*` or
69
+ * its `TYPEORM_*` alias). The list-valued keys are excluded deliberately: they
70
+ * default to `[]` and would report every environment as configured.
71
+ */ function hasDatabaseConnectionEnv() {
72
+ const env = useEnv();
73
+ return typeof env.url !== "undefined" || typeof env.host !== "undefined" || typeof env.port !== "undefined" || typeof env.username !== "undefined" || typeof env.password !== "undefined" || typeof env.database !== "undefined";
74
+ }
59
75
  var DataSourceOptionsBuilder = class {
60
76
  buildWithEnv() {
61
77
  const options = readDataSourceOptionsFromEnv();
62
- if (!options) throw new AuthupError("The database configuration could not be read from env variables.");
78
+ if (!options) throw new AuthupError(NO_DATABASE_CONFIGURED);
63
79
  return this.normalize(options);
64
80
  }
81
+ buildWithEnvOrDefault() {
82
+ const options = readDataSourceOptionsFromEnv();
83
+ if (options) return this.normalize(options);
84
+ if (hasDatabaseConnectionEnv()) throw new AuthupError(NO_DATABASE_CONFIGURED);
85
+ return this.normalize({
86
+ type: "better-sqlite3",
87
+ database: "db.sqlite"
88
+ });
89
+ }
65
90
  buildWith(options) {
66
91
  return this.normalize(options);
67
92
  }
@@ -131,8 +156,12 @@ var DataSourceOptionsBuilder = class {
131
156
  ]
132
157
  };
133
158
  if (options.type === "mysql" || options.type === "postgres") {
134
- let migrationPath = `src/adapters/database/migrations/${options.type}/*.{ts,js,mjs}`;
135
- if (!isCodeTransformation(CodeTransformation.JUST_IN_TIME)) migrationPath = transformFilePath(migrationPath, "./dist", "./src");
159
+ const migrationPath = [
160
+ (isCodeTransformation(CodeTransformation.JUST_IN_TIME) ? SRC_PATH : DIST_PATH).split(path.sep).join("/"),
161
+ "adapters/database/migrations",
162
+ options.type,
163
+ "*.{ts,js,mjs}"
164
+ ].join("/");
136
165
  Object.assign(options, {
137
166
  migrations: [migrationPath],
138
167
  migrationsTransactionMode: "all"
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["AuthupError","CodeTransformation","isCodeTransformation","readDataSourceOptionsFromEnv","transformFilePath","ClientEntity","ClientPermissionEntity","ClientPermissionSubscriber","ClientRoleEntity","ClientRoleSubscriber","ClientScopeEntity","ClientScopeSubscriber","ClientSubscriber","ConsentEntity","ConsentEntitySubscriber","EventEntity","IdentityProviderAccountEntity","IdentityProviderAccountSubscriber","IdentityProviderAttributeEntity","IdentityProviderAttributeMappingEntity","IdentityProviderAttributeSubscriber","IdentityProviderEntity","IdentityProviderPermissionMappingEntity","IdentityProviderRoleMappingEntity","IdentityProviderRoleSubscriber","IdentityProviderSubscriber","KeyEntity","PermissionEntity","PermissionPolicyEntity","PermissionSubscriber","PolicyAttributeEntity","PolicyAttributeSubscriber","PolicyEntity","PolicySubscriber","RealmEntity","RealmSubscriber","RoleAttributeEntity","RoleAttributeSubscriber","RoleEntity","RolePermissionEntity","RolePermissionSubscriber","RoleSubscriber","ScopeEntity","ScopeSubscriber","SessionEntity","SessionTokenEntity","TrustAnchorEntity","UserAttributeEntity","UserAttributeSubscriber","UserAuthenticatorEntity","UserEntity","UserPermissionEntity","UserPermissionSubscriber","UserRoleEntity","UserRoleSubscriber","UserSubscriber","DataSourceOptionsBuilder","buildWithEnv","options","normalize","buildWith","type","logging","entities","migrations","migrationsTransactionMode","subscribers","migrationPath","JUST_IN_TIME","Object","assign"],"sources":["../../../../../src/adapters/database/data-source/options/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-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 { AuthupError } from '@authup/errors';\nimport type { DataSourceOptions } from 'typeorm';\nimport {\n CodeTransformation, \n isCodeTransformation, \n readDataSourceOptionsFromEnv, \n transformFilePath,\n} from 'typeorm-extension';\nimport {\n ClientEntity,\n ClientPermissionEntity,\n ClientPermissionSubscriber,\n ClientRoleEntity,\n ClientRoleSubscriber,\n ClientScopeEntity,\n ClientScopeSubscriber,\n ClientSubscriber,\n ConsentEntity,\n ConsentEntitySubscriber,\n EventEntity,\n IdentityProviderAccountEntity,\n IdentityProviderAccountSubscriber,\n IdentityProviderAttributeEntity,\n IdentityProviderAttributeMappingEntity,\n IdentityProviderAttributeSubscriber,\n IdentityProviderEntity,\n IdentityProviderPermissionMappingEntity,\n IdentityProviderRoleMappingEntity,\n IdentityProviderRoleSubscriber,\n IdentityProviderSubscriber,\n KeyEntity,\n PermissionEntity,\n PermissionPolicyEntity,\n PermissionSubscriber,\n PolicyAttributeEntity,\n PolicyAttributeSubscriber,\n PolicyEntity,\n PolicySubscriber,\n RealmEntity,\n RealmSubscriber,\n RoleAttributeEntity,\n RoleAttributeSubscriber,\n RoleEntity,\n RolePermissionEntity,\n RolePermissionSubscriber,\n RoleSubscriber,\n ScopeEntity,\n ScopeSubscriber,\n SessionEntity,\n SessionTokenEntity,\n TrustAnchorEntity,\n UserAttributeEntity,\n UserAttributeSubscriber,\n UserAuthenticatorEntity,\n UserEntity,\n UserPermissionEntity,\n UserPermissionSubscriber,\n UserRoleEntity,\n UserRoleSubscriber,\n UserSubscriber,\n} from '../../domains/index.ts';\n\nexport class DataSourceOptionsBuilder {\n buildWithEnv() {\n const options = readDataSourceOptionsFromEnv();\n\n if (!options) {\n throw new AuthupError('The database configuration could not be read from env variables.');\n }\n\n return this.normalize(options);\n }\n\n buildWith(options: DataSourceOptions) {\n return this.normalize(options);\n }\n\n // ------------------------------------------------------------------\n\n protected normalize(options: DataSourceOptions) : DataSourceOptions {\n if (\n options.type !== 'mysql' &&\n options.type !== 'postgres' &&\n options.type !== 'better-sqlite3'\n ) {\n throw new AuthupError(`The database type ${options.type} is not supported.`);\n }\n\n options = {\n ...options,\n logging: false,\n entities: [\n ...(options.entities ? options.entities : []) as string[],\n KeyEntity,\n\n EventEntity,\n\n SessionEntity,\n SessionTokenEntity,\n\n TrustAnchorEntity,\n\n ClientEntity,\n ClientPermissionEntity,\n ClientRoleEntity,\n ClientScopeEntity,\n\n ConsentEntity,\n\n IdentityProviderEntity,\n IdentityProviderAttributeEntity,\n IdentityProviderAccountEntity,\n IdentityProviderRoleMappingEntity,\n IdentityProviderPermissionMappingEntity,\n IdentityProviderAttributeMappingEntity,\n\n PermissionEntity,\n PermissionPolicyEntity,\n\n PolicyEntity,\n PolicyAttributeEntity,\n\n RealmEntity,\n\n\n RoleEntity,\n RoleAttributeEntity,\n RolePermissionEntity,\n\n ScopeEntity,\n\n UserEntity,\n UserAttributeEntity,\n UserAuthenticatorEntity,\n UserPermissionEntity,\n UserRoleEntity,\n ],\n migrations: [],\n migrationsTransactionMode: 'each',\n subscribers: [\n ...(options.subscribers || []) as string[],\n ClientSubscriber,\n ClientPermissionSubscriber,\n ClientRoleSubscriber,\n ClientScopeSubscriber,\n\n ConsentEntitySubscriber,\n\n IdentityProviderSubscriber,\n IdentityProviderAccountSubscriber,\n IdentityProviderAttributeSubscriber,\n IdentityProviderRoleSubscriber,\n\n PermissionSubscriber,\n PolicySubscriber,\n PolicyAttributeSubscriber,\n\n RealmSubscriber,\n\n\n RoleSubscriber,\n RoleAttributeSubscriber,\n RolePermissionSubscriber,\n\n ScopeSubscriber,\n\n UserSubscriber,\n UserAttributeSubscriber,\n UserPermissionSubscriber,\n UserRoleSubscriber,\n ],\n };\n\n if (\n options.type === 'mysql' ||\n options.type === 'postgres'\n ) {\n let migrationPath = `src/adapters/database/migrations/${options.type}/*.{ts,js,mjs}`;\n if (!isCodeTransformation(CodeTransformation.JUST_IN_TIME)) {\n migrationPath = transformFilePath(migrationPath, './dist', './src');\n }\n\n Object.assign(options, {\n migrations: [migrationPath],\n migrationsTransactionMode: 'all',\n } as DataSourceOptions);\n }\n\n return options;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEA,IAAawD,2BAAb,MAAaA;CACTC,eAAe;EACX,MAAMC,UAAUvD,6BAAAA;EAEhB,IAAI,CAACuD,SACD,MAAM,IAAI1D,YAAY,kEAAA;EAG1B,OAAO,KAAK2D,UAAUD,OAAAA;CAC1B;CAEAE,UAAUF,SAA4B;EAClC,OAAO,KAAKC,UAAUD,OAAAA;CAC1B;CAIUC,UAAUD,SAAgD;EAChE,IACIA,QAAQG,SAAS,WACjBH,QAAQG,SAAS,cACjBH,QAAQG,SAAS,kBAEjB,MAAM,IAAI7D,YAAY,qBAAqB0D,QAAQG,KAAK,mBAAmB;EAG/EH,UAAU;GACN,GAAGA;GACHI,SAAS;GACTC,UAAU;IACFL,GAAAA,QAAQK,WAAWL,QAAQK,WAAW,CAAA;IAC1CrC;IAEAX;IAEA6B;IACAC;IAEAC;IAEAzC;IACAC;IACAE;IACAE;IAEAG;IAEAQ;IACAH;IACAF;IACAO;IACAD;IACAH;IAEAQ;IACAC;IAEAI;IACAF;IAEAI;IAGAI;IACAF;IACAG;IAEAG;IAEAQ;IACAH;IACAE;IACAE;IACAE;GACH;GACDW,YAAY,CAAA;GACZC,2BAA2B;GAC3BC,aAAa;IACLR,GAAAA,QAAQQ,eAAe,CAAA;IAC3BtD;IACAL;IACAE;IACAE;IAEAG;IAEAW;IACAR;IACAG;IACAI;IAEAK;IACAI;IACAF;IAEAI;IAGAM;IACAJ;IACAG;IAEAG;IAEAY;IACAP;IACAI;IACAE;GACH;EACL;EAEA,IACII,QAAQG,SAAS,WACjBH,QAAQG,SAAS,YACnB;GACE,IAAIM,gBAAgB,oCAAoCT,QAAQG,KAAK;GACrE,IAAI,CAAC3D,qBAAqBD,mBAAmBmE,YAAY,GACrDD,gBAAgB/D,kBAAkB+D,eAAe,UAAU,OAAA;GAG/DE,OAAOC,OAAOZ,SAAS;IACnBM,YAAY,CAACG,aAAc;IAC3BF,2BAA2B;GAC/B,CAAA;EACJ;EAEA,OAAOP;CACX;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["AuthupError","path","CodeTransformation","isCodeTransformation","readDataSourceOptionsFromEnv","useEnv","ClientEntity","ClientPermissionEntity","ClientPermissionSubscriber","ClientRoleEntity","ClientRoleSubscriber","ClientScopeEntity","ClientScopeSubscriber","ClientSubscriber","ConsentEntity","ConsentEntitySubscriber","EventEntity","IdentityProviderAccountEntity","IdentityProviderAccountSubscriber","IdentityProviderAttributeEntity","IdentityProviderAttributeMappingEntity","IdentityProviderAttributeSubscriber","IdentityProviderEntity","IdentityProviderPermissionMappingEntity","IdentityProviderRoleMappingEntity","IdentityProviderRoleSubscriber","IdentityProviderSubscriber","KeyEntity","PermissionEntity","PermissionPolicyEntity","PermissionSubscriber","PolicyAttributeEntity","PolicyAttributeSubscriber","PolicyEntity","PolicySubscriber","RealmEntity","RealmSubscriber","RoleAttributeEntity","RoleAttributeSubscriber","RoleEntity","RolePermissionEntity","RolePermissionSubscriber","RoleSubscriber","ScopeEntity","ScopeSubscriber","SessionEntity","SessionTokenEntity","TrustAnchorEntity","UserAttributeEntity","UserAttributeSubscriber","UserAuthenticatorEntity","UserEntity","UserPermissionEntity","UserPermissionSubscriber","UserRoleEntity","UserRoleSubscriber","UserSubscriber","DIST_PATH","SRC_PATH","NO_DATABASE_CONFIGURED","hasDatabaseConnectionEnv","env","url","host","port","username","password","database","DataSourceOptionsBuilder","buildWithEnv","options","normalize","buildWithEnvOrDefault","type","buildWith","logging","entities","migrations","migrationsTransactionMode","subscribers","migrationRoot","JUST_IN_TIME","migrationPath","split","sep","join","Object","assign"],"sources":["../../../../../src/adapters/database/data-source/options/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-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 { AuthupError } from '@authup/errors';\nimport path from 'node:path';\nimport type { DataSourceOptions } from 'typeorm';\nimport {\n CodeTransformation,\n isCodeTransformation,\n readDataSourceOptionsFromEnv,\n useEnv,\n} from 'typeorm-extension';\nimport {\n ClientEntity,\n ClientPermissionEntity,\n ClientPermissionSubscriber,\n ClientRoleEntity,\n ClientRoleSubscriber,\n ClientScopeEntity,\n ClientScopeSubscriber,\n ClientSubscriber,\n ConsentEntity,\n ConsentEntitySubscriber,\n EventEntity,\n IdentityProviderAccountEntity,\n IdentityProviderAccountSubscriber,\n IdentityProviderAttributeEntity,\n IdentityProviderAttributeMappingEntity,\n IdentityProviderAttributeSubscriber,\n IdentityProviderEntity,\n IdentityProviderPermissionMappingEntity,\n IdentityProviderRoleMappingEntity,\n IdentityProviderRoleSubscriber,\n IdentityProviderSubscriber,\n KeyEntity,\n PermissionEntity,\n PermissionPolicyEntity,\n PermissionSubscriber,\n PolicyAttributeEntity,\n PolicyAttributeSubscriber,\n PolicyEntity,\n PolicySubscriber,\n RealmEntity,\n RealmSubscriber,\n RoleAttributeEntity,\n RoleAttributeSubscriber,\n RoleEntity,\n RolePermissionEntity,\n RolePermissionSubscriber,\n RoleSubscriber,\n ScopeEntity,\n ScopeSubscriber,\n SessionEntity,\n SessionTokenEntity,\n TrustAnchorEntity,\n UserAttributeEntity,\n UserAttributeSubscriber,\n UserAuthenticatorEntity,\n UserEntity,\n UserPermissionEntity,\n UserPermissionSubscriber,\n UserRoleEntity,\n UserRoleSubscriber,\n UserSubscriber,\n} from '../../domains/index.ts';\nimport { DIST_PATH, SRC_PATH } from '../../../../path.ts';\n\nconst NO_DATABASE_CONFIGURED = 'No database is configured. Set DB_TYPE to \"postgres\" or \"mysql\", together with DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD and DB_DATABASE.';\n\n/**\n * Whether the environment names a database connection without naming a driver.\n *\n * `readDataSourceOptionsFromEnv` reports the TYPE alone, so it answers nothing\n * for an environment that carries every credential but no `DB_TYPE`. Read the\n * connection keys through typeorm-extension's own reader rather than a local\n * key list, so this cannot drift from what it accepts (each one is `DB_*` or\n * its `TYPEORM_*` alias). The list-valued keys are excluded deliberately: they\n * default to `[]` and would report every environment as configured.\n */\nfunction hasDatabaseConnectionEnv() : boolean {\n const env = useEnv();\n\n return typeof env.url !== 'undefined' ||\n typeof env.host !== 'undefined' ||\n typeof env.port !== 'undefined' ||\n typeof env.username !== 'undefined' ||\n typeof env.password !== 'undefined' ||\n typeof env.database !== 'undefined';\n}\n\nexport class DataSourceOptionsBuilder {\n buildWithEnv() {\n const options = readDataSourceOptionsFromEnv();\n\n if (!options) {\n throw new AuthupError(NO_DATABASE_CONFIGURED);\n }\n\n return this.normalize(options);\n }\n\n // the application boot path: the `db` config key documents the\n // better-sqlite3 driver default, and DatabaseModule refuses that driver in\n // production downstream. buildWithEnv stays strict for the migration CLI\n // and the CI scripts, which apply no environment check and would otherwise\n // silently target sqlite and report nothing to do.\n buildWithEnvOrDefault() {\n const options = readDataSourceOptionsFromEnv();\n if (options) {\n return this.normalize(options);\n }\n\n // The default answers \"nothing is configured\", never a half-written\n // configuration: a `DB_HOST` or `DB_DATABASE` left without a `DB_TYPE`\n // would otherwise redirect every write to a local file, silently\n // outside production.\n if (hasDatabaseConnectionEnv()) {\n throw new AuthupError(NO_DATABASE_CONFIGURED);\n }\n\n return this.normalize({ type: 'better-sqlite3', database: 'db.sqlite' });\n }\n\n buildWith(options: DataSourceOptions) {\n return this.normalize(options);\n }\n\n // ------------------------------------------------------------------\n\n protected normalize(options: DataSourceOptions) : DataSourceOptions {\n if (\n options.type !== 'mysql' &&\n options.type !== 'postgres' &&\n options.type !== 'better-sqlite3'\n ) {\n throw new AuthupError(`The database type ${options.type} is not supported.`);\n }\n\n options = {\n ...options,\n logging: false,\n entities: [\n ...(options.entities ? options.entities : []) as string[],\n KeyEntity,\n\n EventEntity,\n\n SessionEntity,\n SessionTokenEntity,\n\n TrustAnchorEntity,\n\n ClientEntity,\n ClientPermissionEntity,\n ClientRoleEntity,\n ClientScopeEntity,\n\n ConsentEntity,\n\n IdentityProviderEntity,\n IdentityProviderAttributeEntity,\n IdentityProviderAccountEntity,\n IdentityProviderRoleMappingEntity,\n IdentityProviderPermissionMappingEntity,\n IdentityProviderAttributeMappingEntity,\n\n PermissionEntity,\n PermissionPolicyEntity,\n\n PolicyEntity,\n PolicyAttributeEntity,\n\n RealmEntity,\n\n\n RoleEntity,\n RoleAttributeEntity,\n RolePermissionEntity,\n\n ScopeEntity,\n\n UserEntity,\n UserAttributeEntity,\n UserAuthenticatorEntity,\n UserPermissionEntity,\n UserRoleEntity,\n ],\n migrations: [],\n migrationsTransactionMode: 'each',\n subscribers: [\n ...(options.subscribers || []) as string[],\n ClientSubscriber,\n ClientPermissionSubscriber,\n ClientRoleSubscriber,\n ClientScopeSubscriber,\n\n ConsentEntitySubscriber,\n\n IdentityProviderSubscriber,\n IdentityProviderAccountSubscriber,\n IdentityProviderAttributeSubscriber,\n IdentityProviderRoleSubscriber,\n\n PermissionSubscriber,\n PolicySubscriber,\n PolicyAttributeSubscriber,\n\n RealmSubscriber,\n\n\n RoleSubscriber,\n RoleAttributeSubscriber,\n RolePermissionSubscriber,\n\n ScopeSubscriber,\n\n UserSubscriber,\n UserAttributeSubscriber,\n UserPermissionSubscriber,\n UserRoleSubscriber,\n ],\n };\n\n if (\n options.type === 'mysql' ||\n options.type === 'postgres'\n ) {\n const migrationRoot = isCodeTransformation(CodeTransformation.JUST_IN_TIME) ?\n SRC_PATH :\n DIST_PATH;\n const migrationPath = [\n migrationRoot.split(path.sep).join('/'),\n 'adapters/database/migrations',\n options.type,\n '*.{ts,js,mjs}',\n ].join('/');\n\n Object.assign(options, {\n migrations: [migrationPath],\n migrationsTransactionMode: 'all',\n } as DataSourceOptions);\n }\n\n return options;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA,MAAM2D,yBAAyB;;;;;;;;;;GAY/B,SAASC,2BAAAA;CACL,MAAMC,MAAMxD,OAAAA;CAEZ,OAAO,OAAOwD,IAAIC,QAAQ,eACtB,OAAOD,IAAIE,SAAS,eACpB,OAAOF,IAAIG,SAAS,eACpB,OAAOH,IAAII,aAAa,eACxB,OAAOJ,IAAIK,aAAa,eACxB,OAAOL,IAAIM,aAAa;AAChC;AAEA,IAAaC,2BAAb,MAAaA;CACTC,eAAe;EACX,MAAMC,UAAUlE,6BAAAA;EAEhB,IAAI,CAACkE,SACD,MAAM,IAAItE,YAAY2D,sBAAAA;EAG1B,OAAO,KAAKY,UAAUD,OAAAA;CAC1B;CAOAE,wBAAwB;EACpB,MAAMF,UAAUlE,6BAAAA;EAChB,IAAIkE,SACA,OAAO,KAAKC,UAAUD,OAAAA;EAO1B,IAAIV,yBAAAA,GACA,MAAM,IAAI5D,YAAY2D,sBAAAA;EAG1B,OAAO,KAAKY,UAAU;GAAEE,MAAM;GAAkBN,UAAU;EAAY,CAAA;CAC1E;CAEAO,UAAUJ,SAA4B;EAClC,OAAO,KAAKC,UAAUD,OAAAA;CAC1B;CAIUC,UAAUD,SAAgD;EAChE,IACIA,QAAQG,SAAS,WACjBH,QAAQG,SAAS,cACjBH,QAAQG,SAAS,kBAEjB,MAAM,IAAIzE,YAAY,qBAAqBsE,QAAQG,KAAK,mBAAmB;EAG/EH,UAAU;GACN,GAAGA;GACHK,SAAS;GACTC,UAAU;IACFN,GAAAA,QAAQM,WAAWN,QAAQM,WAAW,CAAA;IAC1CjD;IAEAX;IAEA6B;IACAC;IAEAC;IAEAzC;IACAC;IACAE;IACAE;IAEAG;IAEAQ;IACAH;IACAF;IACAO;IACAD;IACAH;IAEAQ;IACAC;IAEAI;IACAF;IAEAI;IAGAI;IACAF;IACAG;IAEAG;IAEAQ;IACAH;IACAE;IACAE;IACAE;GACH;GACDuB,YAAY,CAAA;GACZC,2BAA2B;GAC3BC,aAAa;IACLT,GAAAA,QAAQS,eAAe,CAAA;IAC3BlE;IACAL;IACAE;IACAE;IAEAG;IAEAW;IACAR;IACAG;IACAI;IAEAK;IACAI;IACAF;IAEAI;IAGAM;IACAJ;IACAG;IAEAG;IAEAY;IACAP;IACAI;IACAE;GACH;EACL;EAEA,IACIe,QAAQG,SAAS,WACjBH,QAAQG,SAAS,YACnB;GAIE,MAAMS,gBAAgB;KAHA/E,qBAAqBD,mBAAmB+E,YAAY,IACtEvB,WACAD,UAAAA,CAEc0B,MAAMlF,KAAKmF,GAAG,CAAA,CAAEC,KAAK,GAAA;IACnC;IACAf,QAAQG;IACR;GACH,CAAA,CAACY,KAAK,GAAA;GAEPC,OAAOC,OAAOjB,SAAS;IACnBO,YAAY,CAACK,aAAc;IAC3BJ,2BAA2B;GAC/B,CAAA;EACJ;EAEA,OAAOR;CACX;AACJ"}
@@ -14,12 +14,11 @@ export declare class ClientEntity implements Client {
14
14
  secretEncrypted: boolean;
15
15
  redirectUri: string | null;
16
16
  postLogoutRedirectUri: string | null;
17
+ backchannelLogoutUri: string | null;
17
18
  accessPolicyId: string | null;
18
19
  accessPolicy: Policy | null;
19
20
  grantTypes: string | null;
20
- scope: string | null;
21
21
  baseUrl: string | null;
22
- rootUrl: string | null;
23
22
  createdAt: string;
24
23
  updatedAt: string;
25
24
  realmId: Realm['id'];
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/domains/client/entity.ts"],"names":[],"mappings":"AAqBA,OAAO,EACH,KAAK,MAAM,EACX,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,MAAM,EACX,KAAK,KAAK,EACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAEa,YAAa,YAAW,MAAM;IAEvC,EAAE,EAAE,MAAM,CAAC;IASX,MAAM,EAAE,OAAO,CAAC;IAQhB,OAAO,EAAE,OAAO,CAAC;IAQjB,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAQlC,kBAAkB,EAAE,GAAG,wBAAwB,EAAE,CAAC;IAQlD,IAAI,EAAE,MAAM,CAAC;IASb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAM3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAU3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAOtB,YAAY,EAAE,OAAO,CAAC;IAOtB,eAAe,EAAE,OAAO,CAAC;IASzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAU3B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAQrC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAO9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAQrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAQvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAMvB,SAAS,EAAE,MAAM,CAAC;IAIlB,SAAS,EAAE,MAAM,CAAC;IAMlB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAIrB,KAAK,EAAE,WAAW,CAAC;IAMnB,cAAc;CAQjB"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/domains/client/entity.ts"],"names":[],"mappings":"AAqBA,OAAO,EACH,KAAK,MAAM,EACX,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,MAAM,EACX,KAAK,KAAK,EACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAEa,YAAa,YAAW,MAAM;IAEvC,EAAE,EAAE,MAAM,CAAC;IASX,MAAM,EAAE,OAAO,CAAC;IAQhB,OAAO,EAAE,OAAO,CAAC;IAQjB,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAQlC,kBAAkB,EAAE,GAAG,wBAAwB,EAAE,CAAC;IAQlD,IAAI,EAAE,MAAM,CAAC;IASb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAM3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAU3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAOtB,YAAY,EAAE,OAAO,CAAC;IAOtB,eAAe,EAAE,OAAO,CAAC;IASzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAU3B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAQrC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAQpC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAO9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAMvB,SAAS,EAAE,MAAM,CAAC;IAIlB,SAAS,EAAE,MAAM,CAAC;IAMlB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAIrB,KAAK,EAAE,WAAW,CAAC;IAMnB,cAAc;CAQjB"}
@@ -33,12 +33,11 @@ var ClientEntity = class {
33
33
  secretEncrypted;
34
34
  redirectUri;
35
35
  postLogoutRedirectUri;
36
+ backchannelLogoutUri;
36
37
  accessPolicyId;
37
38
  accessPolicy;
38
39
  grantTypes;
39
- scope;
40
40
  baseUrl;
41
- rootUrl;
42
41
  createdAt;
43
42
  updatedAt;
44
43
  realmId;
@@ -121,6 +120,12 @@ _ts_decorate([Column({
121
120
  type: "text",
122
121
  nullable: true
123
122
  }), _ts_metadata("design:type", Object)], ClientEntity.prototype, "postLogoutRedirectUri", void 0);
123
+ _ts_decorate([Column({
124
+ name: "backchannel_logout_uri",
125
+ type: "varchar",
126
+ length: 2e3,
127
+ nullable: true
128
+ }), _ts_metadata("design:type", Object)], ClientEntity.prototype, "backchannelLogoutUri", void 0);
124
129
  _ts_decorate([
125
130
  Index(),
126
131
  Column({
@@ -144,24 +149,12 @@ _ts_decorate([Column({
144
149
  length: 512,
145
150
  nullable: true
146
151
  }), _ts_metadata("design:type", Object)], ClientEntity.prototype, "grantTypes", void 0);
147
- _ts_decorate([Column({
148
- type: "varchar",
149
- length: 512,
150
- nullable: true,
151
- default: null
152
- }), _ts_metadata("design:type", Object)], ClientEntity.prototype, "scope", void 0);
153
152
  _ts_decorate([Column({
154
153
  name: "base_url",
155
154
  type: "varchar",
156
155
  length: 2e3,
157
156
  nullable: true
158
157
  }), _ts_metadata("design:type", Object)], ClientEntity.prototype, "baseUrl", void 0);
159
- _ts_decorate([Column({
160
- name: "root_url",
161
- type: "varchar",
162
- length: 2e3,
163
- nullable: true
164
- }), _ts_metadata("design:type", Object)], ClientEntity.prototype, "rootUrl", void 0);
165
158
  _ts_decorate([
166
159
  Index(),
167
160
  CreateDateColumn({
@@ -1 +1 @@
1
- {"version":3,"file":"entity.mjs","names":["BeforeInsert","BeforeUpdate","Column","CreateDateColumn","Entity","Index","JoinColumn","ManyToOne","PrimaryGeneratedColumn","Unique","UpdateDateColumn","dateToISOStringTransformer","ClientAuthMethod","ClientTokenBindingMethod","PolicyEntity","RealmEntity","ClientEntity","id","active","builtIn","authMethod","tokenBindingMethod","name","displayName","description","secret","secretHashed","secretEncrypted","redirectUri","postLogoutRedirectUri","accessPolicyId","accessPolicy","grantTypes","scope","baseUrl","rootUrl","createdAt","updatedAt","realmId","realm","setDisplayName","length","type","default","NONE","nullable","select","onDelete","transformer"],"sources":["../../../../../src/adapters/database/domains/client/entity.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 {\n BeforeInsert, \n BeforeUpdate,\n Column,\n CreateDateColumn,\n Entity,\n Index,\n JoinColumn,\n ManyToOne,\n PrimaryGeneratedColumn,\n Unique,\n UpdateDateColumn,\n} from 'typeorm';\nimport { dateToISOStringTransformer } from '../../helpers/index.ts';\nimport {\n type Client,\n ClientAuthMethod,\n ClientTokenBindingMethod,\n type Policy,\n type Realm,\n} from '@authup/core-kit';\nimport { PolicyEntity } from '../policy/index.ts';\nimport { RealmEntity } from '../realm/index.ts';\n\n@Entity({ name: 'auth_clients' })\n@Unique(['name', 'realmId'])\nexport class ClientEntity implements Client {\n @PrimaryGeneratedColumn('uuid')\n id: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n type: 'boolean',\n default: true,\n })\n active: boolean;\n\n @Index()\n @Column({\n name: 'built_in', \n type: 'boolean', \n default: false, \n })\n builtIn: boolean;\n\n @Column({\n name: 'auth_method', \n type: 'varchar', \n length: 16, \n default: ClientAuthMethod.NONE, \n })\n authMethod: `${ClientAuthMethod}`;\n\n @Column({\n name: 'token_binding_method', \n type: 'varchar', \n length: 16, \n default: ClientTokenBindingMethod.NONE, \n })\n tokenBindingMethod: `${ClientTokenBindingMethod}`;\n\n // ------------------------------------------------------------------\n\n @Column({\n type: 'varchar',\n length: 256,\n })\n name: string;\n\n @Index()\n @Column({\n name: 'display_name', \n type: 'varchar', \n length: 256, \n nullable: true, \n })\n displayName: string | null;\n\n @Column({\n type: 'text',\n nullable: true,\n })\n description: string | null;\n\n // ------------------------------------------------------------------\n\n @Column({\n type: 'varchar',\n length: 256,\n select: false,\n nullable: true,\n })\n secret: string | null;\n\n @Column({\n name: 'secret_hashed', \n type: 'boolean', \n default: false, \n })\n secretHashed: boolean;\n\n @Column({\n name: 'secret_encrypted', \n type: 'boolean', \n default: false, \n })\n secretEncrypted: boolean;\n\n // ------------------------------------------------------------------\n\n @Column({\n name: 'redirect_uri', \n type: 'text', \n nullable: true, \n })\n redirectUri: string | null;\n\n // `text` (not varchar) to match `redirectUri` — the provisioner writes the\n // same origin-pattern string to both, so a large trusted-origin set must\n // not overflow only this column.\n @Column({\n name: 'post_logout_redirect_uri', \n type: 'text', \n nullable: true, \n })\n postLogoutRedirectUri: string | null;\n\n @Index()\n @Column({\n name: 'access_policy_id',\n nullable: true,\n type: 'uuid',\n })\n accessPolicyId: string | null;\n\n @ManyToOne(() => PolicyEntity, {\n onDelete: 'SET NULL',\n nullable: true,\n })\n @JoinColumn({ name: 'access_policy_id' })\n accessPolicy: Policy | null;\n\n @Column({\n name: 'grant_types', \n type: 'varchar', \n length: 512, \n nullable: true, \n })\n grantTypes: string | null;\n\n @Column({\n type: 'varchar',\n length: 512,\n nullable: true,\n default: null,\n })\n scope: string | null;\n\n @Column({\n name: 'base_url', \n type: 'varchar', \n length: 2000, \n nullable: true, \n })\n baseUrl: string | null;\n\n @Column({\n name: 'root_url', \n type: 'varchar', \n length: 2000, \n nullable: true, \n })\n rootUrl: string | null;\n\n // ------------------------------------------------------------------\n\n @Index()\n @CreateDateColumn({ name: 'created_at', transformer: dateToISOStringTransformer })\n createdAt: string;\n\n @Index()\n @UpdateDateColumn({ name: 'updated_at', transformer: dateToISOStringTransformer })\n updatedAt: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({ name: 'realm_id' })\n realmId: Realm['id'];\n\n @ManyToOne(() => RealmEntity, { onDelete: 'CASCADE' })\n @JoinColumn({ name: 'realm_id' })\n realm: RealmEntity;\n\n // ------------------------------------------------------------------\n\n @BeforeInsert()\n @BeforeUpdate()\n setDisplayName() {\n if (\n typeof this.displayName !== 'string' ||\n this.displayName.length === 0\n ) {\n this.displayName = this.name;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiCA,IAAagB,eAAb,MAAaA;CAETC;CASAC;CAQAC;CAQAC;CAQAC;CAQAC;CASAC;CAMAC;CAUAC;CAOAC;CAOAC;CASAC;CAUAC;CAQAC;CAOAC;CAQAC;CAQAC;CAQAC;CAQAC;CAMAC;CAIAC;CAMAC;CAIAC;CAMAC,iBAAiB;EACb,IACI,OAAO,KAAKjB,gBAAgB,YAC5B,KAAKA,YAAYkB,WAAW,GAE5B,KAAKlB,cAAc,KAAKD;CAEhC;AACJ;;;;;EA9KQoB,MAAM;EACNC,SAAS;;;;;;;EAMTrB,MAAM;EACNoB,MAAM;EACNC,SAAS;;;;;CAKTrB,MAAM;CACNoB,MAAM;CACND,QAAQ;CACRE,SAAS/B,iBAAiBgC;;;CAK1BtB,MAAM;CACNoB,MAAM;CACND,QAAQ;CACRE,SAAS9B,yBAAyB+B;;;CAOlCF,MAAM;CACND,QAAQ;;;;;EAMRnB,MAAM;EACNoB,MAAM;EACND,QAAQ;EACRI,UAAU;;;;;CAKVH,MAAM;CACNG,UAAU;;;CAOVH,MAAM;CACND,QAAQ;CACRK,QAAQ;CACRD,UAAU;;;CAKVvB,MAAM;CACNoB,MAAM;CACNC,SAAS;;;CAKTrB,MAAM;CACNoB,MAAM;CACNC,SAAS;;;CAOTrB,MAAM;CACNoB,MAAM;CACNG,UAAU;;;CAQVvB,MAAM;CACNoB,MAAM;CACNG,UAAU;;;;;EAMVvB,MAAM;EACNuB,UAAU;EACVH,MAAM;;;;;CAIO5B,gBAAAA,cAAAA;EACbiC,UAAU;EACVF,UAAU;;CAEAvB,WAAAA,EAAAA,MAAM,mBAAA,CAAA;;;;CAIhBA,MAAM;CACNoB,MAAM;CACND,QAAQ;CACRI,UAAU;;;CAKVH,MAAM;CACND,QAAQ;CACRI,UAAU;CACVF,SAAS;;;CAKTrB,MAAM;CACNoB,MAAM;CACND,QAAQ;CACRI,UAAU;;;CAKVvB,MAAM;CACNoB,MAAM;CACND,QAAQ;CACRI,UAAU;;;;;EAOMvB,MAAM;EAAc0B,aAAarC;;;;;;;EAIjCW,MAAM;EAAc0B,aAAarC;;;;;;CAM3CW,OAAAA,EAAAA,MAAM,WAAA,CAAA;;;;CAGCP,gBAAAA,aAAAA,EAAegC,UAAU,UAAA,CAAA;CAC5BzB,WAAAA,EAAAA,MAAM,WAAA,CAAA;;;;;;;;;;AAzKdA,eAAAA,aAAAA,CAAAA,OAAAA,EAAAA,MAAM,eAAA,CAAA,GAAA,OAAA,CACP,QAAQ,SAAA,CAAA,CAAA,GAAA,YAAA"}
1
+ {"version":3,"file":"entity.mjs","names":["BeforeInsert","BeforeUpdate","Column","CreateDateColumn","Entity","Index","JoinColumn","ManyToOne","PrimaryGeneratedColumn","Unique","UpdateDateColumn","dateToISOStringTransformer","ClientAuthMethod","ClientTokenBindingMethod","PolicyEntity","RealmEntity","ClientEntity","id","active","builtIn","authMethod","tokenBindingMethod","name","displayName","description","secret","secretHashed","secretEncrypted","redirectUri","postLogoutRedirectUri","backchannelLogoutUri","accessPolicyId","accessPolicy","grantTypes","baseUrl","createdAt","updatedAt","realmId","realm","setDisplayName","length","type","default","NONE","nullable","select","onDelete","transformer"],"sources":["../../../../../src/adapters/database/domains/client/entity.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 {\n BeforeInsert, \n BeforeUpdate,\n Column,\n CreateDateColumn,\n Entity,\n Index,\n JoinColumn,\n ManyToOne,\n PrimaryGeneratedColumn,\n Unique,\n UpdateDateColumn,\n} from 'typeorm';\nimport { dateToISOStringTransformer } from '../../helpers/index.ts';\nimport {\n type Client,\n ClientAuthMethod,\n ClientTokenBindingMethod,\n type Policy,\n type Realm,\n} from '@authup/core-kit';\nimport { PolicyEntity } from '../policy/index.ts';\nimport { RealmEntity } from '../realm/index.ts';\n\n@Entity({ name: 'auth_clients' })\n@Unique(['name', 'realmId'])\nexport class ClientEntity implements Client {\n @PrimaryGeneratedColumn('uuid')\n id: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n type: 'boolean',\n default: true,\n })\n active: boolean;\n\n @Index()\n @Column({\n name: 'built_in', \n type: 'boolean', \n default: false, \n })\n builtIn: boolean;\n\n @Column({\n name: 'auth_method', \n type: 'varchar', \n length: 16, \n default: ClientAuthMethod.NONE, \n })\n authMethod: `${ClientAuthMethod}`;\n\n @Column({\n name: 'token_binding_method', \n type: 'varchar', \n length: 16, \n default: ClientTokenBindingMethod.NONE, \n })\n tokenBindingMethod: `${ClientTokenBindingMethod}`;\n\n // ------------------------------------------------------------------\n\n @Column({\n type: 'varchar',\n length: 256,\n })\n name: string;\n\n @Index()\n @Column({\n name: 'display_name', \n type: 'varchar', \n length: 256, \n nullable: true, \n })\n displayName: string | null;\n\n @Column({\n type: 'text',\n nullable: true,\n })\n description: string | null;\n\n // ------------------------------------------------------------------\n\n @Column({\n type: 'varchar',\n length: 256,\n select: false,\n nullable: true,\n })\n secret: string | null;\n\n @Column({\n name: 'secret_hashed', \n type: 'boolean', \n default: false, \n })\n secretHashed: boolean;\n\n @Column({\n name: 'secret_encrypted', \n type: 'boolean', \n default: false, \n })\n secretEncrypted: boolean;\n\n // ------------------------------------------------------------------\n\n @Column({\n name: 'redirect_uri', \n type: 'text', \n nullable: true, \n })\n redirectUri: string | null;\n\n // `text` (not varchar) to match `redirectUri` — the provisioner writes the\n // same origin-pattern string to both, so a large trusted-origin set must\n // not overflow only this column.\n @Column({\n name: 'post_logout_redirect_uri', \n type: 'text', \n nullable: true, \n })\n postLogoutRedirectUri: string | null;\n\n @Column({\n name: 'backchannel_logout_uri',\n type: 'varchar',\n length: 2000,\n nullable: true,\n })\n backchannelLogoutUri: string | null;\n\n @Index()\n @Column({\n name: 'access_policy_id',\n nullable: true,\n type: 'uuid',\n })\n accessPolicyId: string | null;\n\n @ManyToOne(() => PolicyEntity, {\n onDelete: 'SET NULL',\n nullable: true,\n })\n @JoinColumn({ name: 'access_policy_id' })\n accessPolicy: Policy | null;\n\n @Column({\n name: 'grant_types', \n type: 'varchar', \n length: 512, \n nullable: true, \n })\n grantTypes: string | null;\n\n @Column({\n name: 'base_url', \n type: 'varchar', \n length: 2000, \n nullable: true, \n })\n baseUrl: string | null;\n\n // ------------------------------------------------------------------\n\n @Index()\n @CreateDateColumn({ name: 'created_at', transformer: dateToISOStringTransformer })\n createdAt: string;\n\n @Index()\n @UpdateDateColumn({ name: 'updated_at', transformer: dateToISOStringTransformer })\n updatedAt: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({ name: 'realm_id' })\n realmId: Realm['id'];\n\n @ManyToOne(() => RealmEntity, { onDelete: 'CASCADE' })\n @JoinColumn({ name: 'realm_id' })\n realm: RealmEntity;\n\n // ------------------------------------------------------------------\n\n @BeforeInsert()\n @BeforeUpdate()\n setDisplayName() {\n if (\n typeof this.displayName !== 'string' ||\n this.displayName.length === 0\n ) {\n this.displayName = this.name;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiCA,IAAagB,eAAb,MAAaA;CAETC;CASAC;CAQAC;CAQAC;CAQAC;CAQAC;CASAC;CAMAC;CAUAC;CAOAC;CAOAC;CASAC;CAUAC;CAQAC;CAQAC;CAOAC;CAQAC;CAQAC;CAMAC;CAIAC;CAMAC;CAIAC;CAMAC,iBAAiB;EACb,IACI,OAAO,KAAKhB,gBAAgB,YAC5B,KAAKA,YAAYiB,WAAW,GAE5B,KAAKjB,cAAc,KAAKD;CAEhC;AACJ;;;;;EAtKQmB,MAAM;EACNC,SAAS;;;;;;;EAMTpB,MAAM;EACNmB,MAAM;EACNC,SAAS;;;;;CAKTpB,MAAM;CACNmB,MAAM;CACND,QAAQ;CACRE,SAAS9B,iBAAiB+B;;;CAK1BrB,MAAM;CACNmB,MAAM;CACND,QAAQ;CACRE,SAAS7B,yBAAyB8B;;;CAOlCF,MAAM;CACND,QAAQ;;;;;EAMRlB,MAAM;EACNmB,MAAM;EACND,QAAQ;EACRI,UAAU;;;;;CAKVH,MAAM;CACNG,UAAU;;;CAOVH,MAAM;CACND,QAAQ;CACRK,QAAQ;CACRD,UAAU;;;CAKVtB,MAAM;CACNmB,MAAM;CACNC,SAAS;;;CAKTpB,MAAM;CACNmB,MAAM;CACNC,SAAS;;;CAOTpB,MAAM;CACNmB,MAAM;CACNG,UAAU;;;CAQVtB,MAAM;CACNmB,MAAM;CACNG,UAAU;;;CAKVtB,MAAM;CACNmB,MAAM;CACND,QAAQ;CACRI,UAAU;;;;;EAMVtB,MAAM;EACNsB,UAAU;EACVH,MAAM;;;;;CAIO3B,gBAAAA,cAAAA;EACbgC,UAAU;EACVF,UAAU;;CAEAtB,WAAAA,EAAAA,MAAM,mBAAA,CAAA;;;;CAIhBA,MAAM;CACNmB,MAAM;CACND,QAAQ;CACRI,UAAU;;;CAKVtB,MAAM;CACNmB,MAAM;CACND,QAAQ;CACRI,UAAU;;;;;EAOMtB,MAAM;EAAcyB,aAAapC;;;;;;;EAIjCW,MAAM;EAAcyB,aAAapC;;;;;;CAM3CW,OAAAA,EAAAA,MAAM,WAAA,CAAA;;;;CAGCP,gBAAAA,aAAAA,EAAe+B,UAAU,UAAA,CAAA;CAC5BxB,WAAAA,EAAAA,MAAM,WAAA,CAAA;;;;;;;;;;AAjKdA,eAAAA,aAAAA,CAAAA,OAAAA,EAAAA,MAAM,eAAA,CAAA,GAAA,OAAA,CACP,QAAQ,SAAA,CAAA,CAAA,GAAA,YAAA"}
@@ -1,4 +1,5 @@
1
1
  import type { EntityDefaultEventName, IdentityProviderAttribute } from '@authup/core-kit';
2
+ import type { EntityManager } from 'typeorm';
2
3
  import { EntitySubscriber } from '../../subscriber/index.ts';
3
4
  export declare class IdentityProviderAttributeSubscriber extends EntitySubscriber<IdentityProviderAttribute> {
4
5
  constructor();
@@ -8,6 +9,6 @@ export declare class IdentityProviderAttributeSubscriber extends EntitySubscribe
8
9
  * sides: the previous payload is what an update would otherwise carry the
9
10
  * OLD secret in.
10
11
  */
11
- protected publish(event: `${EntityDefaultEventName}`, data: IdentityProviderAttribute, dataPrevious?: IdentityProviderAttribute): Promise<void>;
12
+ protected publish(event: `${EntityDefaultEventName}`, data: IdentityProviderAttribute, dataPrevious?: IdentityProviderAttribute, transaction?: EntityManager): Promise<void>;
12
13
  }
13
14
  //# sourceMappingURL=subscriber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/domains/identity-provider-attribute/subscriber.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAI1F,OAAO,EAAE,gBAAgB,EAA2B,MAAM,2BAA2B,CAAC;AAItF,qBACa,mCAAoC,SAAQ,gBAAgB,CAAC,yBAAyB,CAAC;;IAiBhG;;;;;OAKG;cACsB,OAAO,CAC5B,KAAK,EAAE,GAAG,sBAAsB,EAAE,EAClC,IAAI,EAAE,yBAAyB,EAC/B,YAAY,CAAC,EAAE,yBAAyB,GACzC,OAAO,CAAC,IAAI,CAAC;CAOnB"}
1
+ {"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/domains/identity-provider-attribute/subscriber.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAA2B,MAAM,2BAA2B,CAAC;AAItF,qBACa,mCAAoC,SAAQ,gBAAgB,CAAC,yBAAyB,CAAC;;IAiBhG;;;;;OAKG;cACsB,OAAO,CAC5B,KAAK,EAAE,GAAG,sBAAsB,EAAE,EAClC,IAAI,EAAE,yBAAyB,EAC/B,YAAY,CAAC,EAAE,yBAAyB,EACxC,WAAW,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,IAAI,CAAC;CAQnB"}
@@ -35,14 +35,14 @@ var IdentityProviderAttributeSubscriber = class extends EntitySubscriber {
35
35
  * password, so it must never reach the realtime bus. Stripped on both
36
36
  * sides: the previous payload is what an update would otherwise carry the
37
37
  * OLD secret in.
38
- */ async publish(event, data, dataPrevious) {
38
+ */ async publish(event, data, dataPrevious, transaction) {
39
39
  await super.publish(event, {
40
40
  ...data,
41
41
  value: null
42
42
  }, dataPrevious ? {
43
43
  ...dataPrevious,
44
44
  value: null
45
- } : void 0);
45
+ } : void 0, transaction);
46
46
  }
47
47
  };
48
48
  IdentityProviderAttributeSubscriber = _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"subscriber.mjs","names":["EntityType","buildRedisKeyPath","EventSubscriber","EntitySubscriber","buildEntityDestinations","IdentityProviderAttributeEntity","CachePrefix","IdentityProviderAttributeSubscriber","type","IDENTITY_PROVIDER_ATTRIBUTE","target","destinations","cache","keys","data","prefix","key","id","publish","event","dataPrevious","value","undefined"],"sources":["../../../../../src/adapters/database/domains/identity-provider-attribute/subscriber.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-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 { EntityDefaultEventName, IdentityProviderAttribute } from '@authup/core-kit';\nimport { EntityType } from '@authup/core-kit';\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport { EventSubscriber } from 'typeorm';\nimport { EntitySubscriber, buildEntityDestinations } from '../../subscriber/index.ts';\nimport { IdentityProviderAttributeEntity } from './entity.ts';\nimport { CachePrefix } from '../constants.ts';\n\n@EventSubscriber()\nexport class IdentityProviderAttributeSubscriber extends EntitySubscriber<IdentityProviderAttribute> {\n constructor() {\n super({\n type: EntityType.IDENTITY_PROVIDER_ATTRIBUTE,\n target: IdentityProviderAttributeEntity,\n destinations: buildEntityDestinations(EntityType.IDENTITY_PROVIDER_ATTRIBUTE),\n cache: {\n keys: (data) => [\n buildRedisKeyPath({\n prefix: CachePrefix.IDENTITY_PROVIDER_ATTRIBUTE,\n key: data.id,\n }),\n ],\n },\n });\n }\n\n /**\n * The row's `value` holds the provider's OAuth2 clientSecret or LDAP bind\n * password, so it must never reach the realtime bus. Stripped on both\n * sides: the previous payload is what an update would otherwise carry the\n * OLD secret in.\n */\n protected override async publish(\n event: `${EntityDefaultEventName}`,\n data: IdentityProviderAttribute,\n dataPrevious?: IdentityProviderAttribute,\n ): Promise<void> {\n await super.publish(\n event,\n { ...data, value: null },\n dataPrevious ? { ...dataPrevious, value: null } : undefined,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAKC,SAAA,aAAA,YAAA,QAAA,KAAA,MAAA;;;;;;;;;AAWD,IAAaO,sCAAb,cAAyDJ,iBAAAA;CACrD,cAAc;EACV,MAAM;GACFK,MAAMR,WAAWS;GACjBC,QAAQL;GACRM,cAAcP,wBAAwBJ,WAAWS,2BAA2B;GAC5EG,OAAO,EACHC,OAAOC,SAAS,CACZb,kBAAkB;IACdc,QAAQT,YAAYG;IACpBO,KAAKF,KAAKG;GACd,CAAA,CACH,EACL;EACJ,CAAA;CACJ;;;;;;IAQA,MAAyBC,QACrBC,OACAL,MACAM,cACa;EACb,MAAM,MAAMF,QACRC,OACA;GAAE,GAAGL;GAAMO,OAAO;EAAK,GACvBD,eAAe;GAAE,GAAGA;GAAcC,OAAO;EAAK,IAAIC,KAAAA,CAAAA;CAE1D;AACJ"}
1
+ {"version":3,"file":"subscriber.mjs","names":["EntityType","buildRedisKeyPath","EventSubscriber","EntitySubscriber","buildEntityDestinations","IdentityProviderAttributeEntity","CachePrefix","IdentityProviderAttributeSubscriber","type","IDENTITY_PROVIDER_ATTRIBUTE","target","destinations","cache","keys","data","prefix","key","id","publish","event","dataPrevious","transaction","value","undefined"],"sources":["../../../../../src/adapters/database/domains/identity-provider-attribute/subscriber.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-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 { EntityDefaultEventName, IdentityProviderAttribute } from '@authup/core-kit';\nimport { EntityType } from '@authup/core-kit';\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport type { EntityManager } from 'typeorm';\nimport { EventSubscriber } from 'typeorm';\nimport { EntitySubscriber, buildEntityDestinations } from '../../subscriber/index.ts';\nimport { IdentityProviderAttributeEntity } from './entity.ts';\nimport { CachePrefix } from '../constants.ts';\n\n@EventSubscriber()\nexport class IdentityProviderAttributeSubscriber extends EntitySubscriber<IdentityProviderAttribute> {\n constructor() {\n super({\n type: EntityType.IDENTITY_PROVIDER_ATTRIBUTE,\n target: IdentityProviderAttributeEntity,\n destinations: buildEntityDestinations(EntityType.IDENTITY_PROVIDER_ATTRIBUTE),\n cache: {\n keys: (data) => [\n buildRedisKeyPath({\n prefix: CachePrefix.IDENTITY_PROVIDER_ATTRIBUTE,\n key: data.id,\n }),\n ],\n },\n });\n }\n\n /**\n * The row's `value` holds the provider's OAuth2 clientSecret or LDAP bind\n * password, so it must never reach the realtime bus. Stripped on both\n * sides: the previous payload is what an update would otherwise carry the\n * OLD secret in.\n */\n protected override async publish(\n event: `${EntityDefaultEventName}`,\n data: IdentityProviderAttribute,\n dataPrevious?: IdentityProviderAttribute,\n transaction?: EntityManager,\n ): Promise<void> {\n await super.publish(\n event,\n { ...data, value: null },\n dataPrevious ? { ...dataPrevious, value: null } : undefined,\n transaction,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAKC,SAAA,aAAA,YAAA,QAAA,KAAA,MAAA;;;;;;;;;AAYD,IAAaO,sCAAb,cAAyDJ,iBAAAA;CACrD,cAAc;EACV,MAAM;GACFK,MAAMR,WAAWS;GACjBC,QAAQL;GACRM,cAAcP,wBAAwBJ,WAAWS,2BAA2B;GAC5EG,OAAO,EACHC,OAAOC,SAAS,CACZb,kBAAkB;IACdc,QAAQT,YAAYG;IACpBO,KAAKF,KAAKG;GACd,CAAA,CACH,EACL;EACJ,CAAA;CACJ;;;;;;IAQA,MAAyBC,QACrBC,OACAL,MACAM,cACAC,aACa;EACb,MAAM,MAAMH,QACRC,OACA;GAAE,GAAGL;GAAMQ,OAAO;EAAK,GACvBF,eAAe;GAAE,GAAGA;GAAcE,OAAO;EAAK,IAAIC,KAAAA,GAClDF,WAAAA;CAER;AACJ"}
@@ -6,6 +6,14 @@ export declare class SessionEntity implements Session {
6
6
  id: string;
7
7
  sub: string;
8
8
  subKind: string;
9
+ /**
10
+ * The opaque credential a console browser presents (plan 088). Unique so
11
+ * one handle resolves at most one session, nullable because every
12
+ * bearer-mode session has none, and `select: false` so it stays in the
13
+ * same class as `user.password` / `key.decryptionKey`: re-selected only by
14
+ * `ISessionRepository.findOneBySecret`, never on an ordinary session read.
15
+ */
16
+ secret: string | null;
9
17
  ipAddress: string;
10
18
  userAgent: string;
11
19
  expiresAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/domains/session/entity.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACR,MAAM,EACN,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,IAAI,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAGa,aAAc,YAAW,OAAO;IAEzC,EAAE,EAAE,MAAM,CAAC;IAOX,GAAG,EAAE,MAAM,CAAC;IAQZ,OAAO,EAAE,MAAM,CAAC;IAQhB,SAAS,EAAE,MAAM,CAAC;IAQlB,SAAS,EAAE,MAAM,CAAC;IAUlB,SAAS,EAAE,MAAM,CAAC;IAQlB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAS3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAQtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAQrB,UAAU,EAAE,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAI1C,SAAS,EAAE,MAAM,CAAC;IAIlB,SAAS,EAAE,MAAM,CAAC;IAUlB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAO9B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAQ5B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAO1B,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAIxB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAIrB,KAAK,EAAE,WAAW,CAAC;CACtB"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/domains/session/entity.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACR,MAAM,EACN,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,IAAI,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAGa,aAAc,YAAW,OAAO;IAEzC,EAAE,EAAE,MAAM,CAAC;IAOX,GAAG,EAAE,MAAM,CAAC;IAQZ,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;OAMG;IAUH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAQtB,SAAS,EAAE,MAAM,CAAC;IAQlB,SAAS,EAAE,MAAM,CAAC;IAUlB,SAAS,EAAE,MAAM,CAAC;IAQlB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAS3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAQtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAQrB,UAAU,EAAE,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAI1C,SAAS,EAAE,MAAM,CAAC;IAIlB,SAAS,EAAE,MAAM,CAAC;IAUlB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAO9B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAQ5B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAO1B,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAIxB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAIrB,KAAK,EAAE,WAAW,CAAC;CACtB"}
@@ -24,6 +24,13 @@ var SessionEntity = class {
24
24
  id;
25
25
  sub;
26
26
  subKind;
27
+ /**
28
+ * The opaque credential a console browser presents (plan 088). Unique so
29
+ * one handle resolves at most one session, nullable because every
30
+ * bearer-mode session has none, and `select: false` so it stays in the
31
+ * same class as `user.password` / `key.decryptionKey`: re-selected only by
32
+ * `ISessionRepository.findOneBySecret`, never on an ordinary session read.
33
+ */ secret;
27
34
  ipAddress;
28
35
  userAgent;
29
36
  expiresAt;
@@ -58,6 +65,18 @@ _ts_decorate([
58
65
  }),
59
66
  _ts_metadata("design:type", String)
60
67
  ], SessionEntity.prototype, "subKind", void 0);
68
+ _ts_decorate([
69
+ Index({ unique: true }),
70
+ Column({
71
+ name: "secret",
72
+ type: "varchar",
73
+ length: 64,
74
+ nullable: true,
75
+ default: null,
76
+ select: false
77
+ }),
78
+ _ts_metadata("design:type", Object)
79
+ ], SessionEntity.prototype, "secret", void 0);
61
80
  _ts_decorate([
62
81
  Index(),
63
82
  Column({
@@ -1 +1 @@
1
- {"version":3,"file":"entity.mjs","names":["Column","CreateDateColumn","Entity","Index","JoinColumn","ManyToOne","PrimaryGeneratedColumn","UpdateDateColumn","dateToISOStringTransformer","ClientEntity","RealmEntity","UserEntity","SessionEntity","id","sub","subKind","ipAddress","userAgent","expiresAt","refreshedAt","seenAt","mfaAt","authMethod","updatedAt","createdAt","clientId","client","userId","user","realmId","realm","type","length","name","nullable","transformer","default","onDelete"],"sources":["../../../../../src/adapters/database/domains/session/entity.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 {\n Column, \n CreateDateColumn, \n Entity, \n Index, \n JoinColumn, \n ManyToOne, \n PrimaryGeneratedColumn, \n UpdateDateColumn,\n} from 'typeorm';\nimport { dateToISOStringTransformer } from '../../helpers/index.ts';\nimport type {\n Client,\n Realm,\n Session,\n SessionAuthMethod,\n User,\n} from '@authup/core-kit';\nimport { ClientEntity } from '../client/index.ts';\nimport { RealmEntity } from '../realm/index.ts';\nimport { UserEntity } from '../user/index.ts';\n\n@Index(['userId', 'seenAt'])\n@Index(['realmId', 'seenAt'])\n@Entity({ name: 'auth_sessions' })\nexport class SessionEntity implements Session {\n @PrimaryGeneratedColumn('uuid')\n id: string;\n\n @Index()\n @Column({\n type: 'varchar',\n length: 64, \n })\n sub: string;\n\n @Index()\n @Column({\n name: 'sub_kind', \n type: 'varchar', \n length: 64, \n })\n subKind: string;\n\n @Index()\n @Column({\n name: 'ip_address', \n type: 'varchar', \n length: 45, \n })\n ipAddress: string;\n\n @Index()\n @Column({\n name: 'user_agent', \n type: 'varchar', \n length: 512, \n })\n userAgent: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n name: 'expires_at', \n type: 'varchar', \n length: 28, \n })\n expiresAt: string;\n\n @Column({\n name: 'refreshed_at', \n type: 'varchar', \n length: 28, \n nullable: true, \n })\n refreshedAt: string | null;\n\n @Index()\n @Column({\n name: 'seen_at', \n type: 'varchar', \n length: 28, \n nullable: true, \n })\n seenAt: string | null;\n\n @Column({\n name: 'mfa_at', \n type: 'varchar', \n length: 28, \n nullable: true, \n })\n mfaAt: string | null;\n\n @Column({\n name: 'auth_method', \n type: 'varchar', \n length: 16, \n nullable: true, \n })\n authMethod: `${SessionAuthMethod}` | null;\n\n @Index()\n @UpdateDateColumn({ name: 'updated_at', transformer: dateToISOStringTransformer })\n updatedAt: string;\n\n @Index()\n @CreateDateColumn({ name: 'created_at', transformer: dateToISOStringTransformer })\n createdAt: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n name: 'client_id', \n nullable: true, \n default: null, \n })\n clientId: Client['id'] | null;\n\n @ManyToOne(() => ClientEntity, {\n onDelete: 'CASCADE',\n nullable: true, \n })\n @JoinColumn({ name: 'client_id' })\n client: ClientEntity | null;\n\n @Index()\n @Column({\n name: 'user_id', \n nullable: true, \n default: null, \n })\n userId: User['id'] | null;\n\n @ManyToOne(() => UserEntity, {\n onDelete: 'CASCADE',\n nullable: true, \n })\n @JoinColumn({ name: 'user_id' })\n user: UserEntity | null;\n\n @Index()\n @Column({ name: 'realm_id' })\n realmId: Realm['id'];\n\n @ManyToOne(() => RealmEntity, { onDelete: 'CASCADE' })\n @JoinColumn({ name: 'realm_id' })\n realm: RealmEntity;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAgCA,IAAaY,gBAAb,MAAaA;CAETC;CAOAC;CAQAC;CAQAC;CAQAC;CAUAC;CAQAC;CASAC;CAQAC;CAQAC;CAIAC;CAIAC;CAUAC;CAOAC;CAQAC;CAOAC;CAIAC;CAIAC;AACJ;;;;;EAvHQC,MAAM;EACNC,QAAQ;;;;;;;EAMRC,MAAM;EACNF,MAAM;EACNC,QAAQ;;;;;;;EAMRC,MAAM;EACNF,MAAM;EACNC,QAAQ;;;;;;;EAMRC,MAAM;EACNF,MAAM;EACNC,QAAQ;;;;;;;EAQRC,MAAM;EACNF,MAAM;EACNC,QAAQ;;;;;CAKRC,MAAM;CACNF,MAAM;CACNC,QAAQ;CACRE,UAAU;;;;;EAMVD,MAAM;EACNF,MAAM;EACNC,QAAQ;EACRE,UAAU;;;;;CAKVD,MAAM;CACNF,MAAM;CACNC,QAAQ;CACRE,UAAU;;;CAKVD,MAAM;CACNF,MAAM;CACNC,QAAQ;CACRE,UAAU;;;;;EAKMD,MAAM;EAAcE,aAAa3B;;;;;;;EAIjCyB,MAAM;EAAcE,aAAa3B;;;;;;;EAOjDyB,MAAM;EACNC,UAAU;EACVE,SAAS;;;;;CAII3B,gBAAAA,cAAAA;EACb4B,UAAU;EACVH,UAAU;;CAEAD,WAAAA,EAAAA,MAAM,YAAA,CAAA;;;;;;EAKhBA,MAAM;EACNC,UAAU;EACVE,SAAS;;;;;CAIIzB,gBAAAA,YAAAA;EACb0B,UAAU;EACVH,UAAU;;CAEAD,WAAAA,EAAAA,MAAM,UAAA,CAAA;;;;;CAIVA,OAAAA,EAAAA,MAAM,WAAA,CAAA;;;;CAGCvB,gBAAAA,aAAAA,EAAe2B,UAAU,UAAA,CAAA;CAC5BJ,WAAAA,EAAAA,MAAM,WAAA,CAAA;;;;CA9HhB,MAAA,CAAA,UAAU,QAAA,CAAA;CACV,MAAA,CAAA,WAAW,QAAA,CAAA;CACTA,OAAAA,EAAAA,MAAM,gBAAA,CAAA"}
1
+ {"version":3,"file":"entity.mjs","names":["Column","CreateDateColumn","Entity","Index","JoinColumn","ManyToOne","PrimaryGeneratedColumn","UpdateDateColumn","dateToISOStringTransformer","ClientEntity","RealmEntity","UserEntity","SessionEntity","id","sub","subKind","secret","ipAddress","userAgent","expiresAt","refreshedAt","seenAt","mfaAt","authMethod","updatedAt","createdAt","clientId","client","userId","user","realmId","realm","type","length","name","unique","nullable","default","select","transformer","onDelete"],"sources":["../../../../../src/adapters/database/domains/session/entity.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 {\n Column, \n CreateDateColumn, \n Entity, \n Index, \n JoinColumn, \n ManyToOne, \n PrimaryGeneratedColumn, \n UpdateDateColumn,\n} from 'typeorm';\nimport { dateToISOStringTransformer } from '../../helpers/index.ts';\nimport type {\n Client,\n Realm,\n Session,\n SessionAuthMethod,\n User,\n} from '@authup/core-kit';\nimport { ClientEntity } from '../client/index.ts';\nimport { RealmEntity } from '../realm/index.ts';\nimport { UserEntity } from '../user/index.ts';\n\n@Index(['userId', 'seenAt'])\n@Index(['realmId', 'seenAt'])\n@Entity({ name: 'auth_sessions' })\nexport class SessionEntity implements Session {\n @PrimaryGeneratedColumn('uuid')\n id: string;\n\n @Index()\n @Column({\n type: 'varchar',\n length: 64, \n })\n sub: string;\n\n @Index()\n @Column({\n name: 'sub_kind', \n type: 'varchar', \n length: 64, \n })\n subKind: string;\n\n /**\n * The opaque credential a console browser presents (plan 088). Unique so\n * one handle resolves at most one session, nullable because every\n * bearer-mode session has none, and `select: false` so it stays in the\n * same class as `user.password` / `key.decryptionKey`: re-selected only by\n * `ISessionRepository.findOneBySecret`, never on an ordinary session read.\n */\n @Index({ unique: true })\n @Column({\n name: 'secret',\n type: 'varchar',\n length: 64,\n nullable: true,\n default: null,\n select: false,\n })\n secret: string | null;\n\n @Index()\n @Column({\n name: 'ip_address',\n type: 'varchar', \n length: 45, \n })\n ipAddress: string;\n\n @Index()\n @Column({\n name: 'user_agent', \n type: 'varchar', \n length: 512, \n })\n userAgent: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n name: 'expires_at', \n type: 'varchar', \n length: 28, \n })\n expiresAt: string;\n\n @Column({\n name: 'refreshed_at', \n type: 'varchar', \n length: 28, \n nullable: true, \n })\n refreshedAt: string | null;\n\n @Index()\n @Column({\n name: 'seen_at', \n type: 'varchar', \n length: 28, \n nullable: true, \n })\n seenAt: string | null;\n\n @Column({\n name: 'mfa_at', \n type: 'varchar', \n length: 28, \n nullable: true, \n })\n mfaAt: string | null;\n\n @Column({\n name: 'auth_method', \n type: 'varchar', \n length: 16, \n nullable: true, \n })\n authMethod: `${SessionAuthMethod}` | null;\n\n @Index()\n @UpdateDateColumn({ name: 'updated_at', transformer: dateToISOStringTransformer })\n updatedAt: string;\n\n @Index()\n @CreateDateColumn({ name: 'created_at', transformer: dateToISOStringTransformer })\n createdAt: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n name: 'client_id', \n nullable: true, \n default: null, \n })\n clientId: Client['id'] | null;\n\n @ManyToOne(() => ClientEntity, {\n onDelete: 'CASCADE',\n nullable: true, \n })\n @JoinColumn({ name: 'client_id' })\n client: ClientEntity | null;\n\n @Index()\n @Column({\n name: 'user_id', \n nullable: true, \n default: null, \n })\n userId: User['id'] | null;\n\n @ManyToOne(() => UserEntity, {\n onDelete: 'CASCADE',\n nullable: true, \n })\n @JoinColumn({ name: 'user_id' })\n user: UserEntity | null;\n\n @Index()\n @Column({ name: 'realm_id' })\n realmId: Realm['id'];\n\n @ManyToOne(() => RealmEntity, { onDelete: 'CASCADE' })\n @JoinColumn({ name: 'realm_id' })\n realm: RealmEntity;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAgCA,IAAaY,gBAAb,MAAaA;CAETC;CAOAC;CAQAC;;;;;;;IASA;CAiBAE;CAQAC;CAUAC;CAQAC;CASAC;CAQAC;CAQAC;CAIAC;CAIAC;CAUAC;CAOAC;CAQAC;CAOAC;CAIAC;CAIAC;AACJ;;;;;EAzIQC,MAAM;EACNC,QAAQ;;;;;;;EAMRC,MAAM;EACNF,MAAM;EACNC,QAAQ;;;;;CAWHE,MAAAA,EAAAA,QAAQ,KAAA,CAAA;;EAEbD,MAAM;EACNF,MAAM;EACNC,QAAQ;EACRG,UAAU;EACVC,SAAS;EACTC,QAAQ;;;;;;;EAMRJ,MAAM;EACNF,MAAM;EACNC,QAAQ;;;;;;;EAMRC,MAAM;EACNF,MAAM;EACNC,QAAQ;;;;;;;EAQRC,MAAM;EACNF,MAAM;EACNC,QAAQ;;;;;CAKRC,MAAM;CACNF,MAAM;CACNC,QAAQ;CACRG,UAAU;;;;;EAMVF,MAAM;EACNF,MAAM;EACNC,QAAQ;EACRG,UAAU;;;;;CAKVF,MAAM;CACNF,MAAM;CACNC,QAAQ;CACRG,UAAU;;;CAKVF,MAAM;CACNF,MAAM;CACNC,QAAQ;CACRG,UAAU;;;;;EAKMF,MAAM;EAAcK,aAAa/B;;;;;;;EAIjC0B,MAAM;EAAcK,aAAa/B;;;;;;;EAOjD0B,MAAM;EACNE,UAAU;EACVC,SAAS;;;;;CAII5B,gBAAAA,cAAAA;EACb+B,UAAU;EACVJ,UAAU;;CAEAF,WAAAA,EAAAA,MAAM,YAAA,CAAA;;;;;;EAKhBA,MAAM;EACNE,UAAU;EACVC,SAAS;;;;;CAII1B,gBAAAA,YAAAA;EACb6B,UAAU;EACVJ,UAAU;;CAEAF,WAAAA,EAAAA,MAAM,UAAA,CAAA;;;;;CAIVA,OAAAA,EAAAA,MAAM,WAAA,CAAA;;;;CAGCxB,gBAAAA,aAAAA,EAAe8B,UAAU,UAAA,CAAA;CAC5BN,WAAAA,EAAAA,MAAM,WAAA,CAAA;;;;CAhJhB,MAAA,CAAA,UAAU,QAAA,CAAA;CACV,MAAA,CAAA,WAAW,QAAA,CAAA;CACTA,OAAAA,EAAAA,MAAM,gBAAA,CAAA"}
@@ -7,6 +7,7 @@ export declare class UserEntity implements User {
7
7
  lastName: string | null;
8
8
  displayName: string | null;
9
9
  email: string;
10
+ emailVerified: boolean;
10
11
  password: string | null;
11
12
  avatar: string | null;
12
13
  cover: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/domains/user/entity.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGpD,qBAEa,UAAW,YAAW,IAAI;IAEnC,EAAE,EAAE,MAAM,CAAC;IAOX,IAAI,EAAE,MAAM,CAAC;IAOb,UAAU,EAAE,OAAO,CAAC;IAQpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAQzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IASxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ3B,KAAK,EAAE,MAAM,CAAC;IASd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IASxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAOtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAarB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAUzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAUvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAU5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAStB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAS7B,MAAM,EAAE,OAAO,CAAC;IAWhB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAM5B,SAAS,EAAE,MAAM,CAAC;IAIlB,SAAS,EAAE,MAAM,CAAC;IAMlB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAIrB,KAAK,EAAE,KAAK,CAAC;IAMb,cAAc;CAQjB"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/domains/user/entity.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGpD,qBAEa,UAAW,YAAW,IAAI;IAEnC,EAAE,EAAE,MAAM,CAAC;IAOX,IAAI,EAAE,MAAM,CAAC;IAOb,UAAU,EAAE,OAAO,CAAC;IAQpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAQzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IASxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ3B,KAAK,EAAE,MAAM,CAAC;IAOd,aAAa,EAAE,OAAO,CAAC;IASvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IASxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAOtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAarB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAUzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAUvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAU5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAStB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAS7B,MAAM,EAAE,OAAO,CAAC;IAWhB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAM5B,SAAS,EAAE,MAAM,CAAC;IAIlB,SAAS,EAAE,MAAM,CAAC;IAMlB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAIrB,KAAK,EAAE,KAAK,CAAC;IAMb,cAAc;CAQjB"}
@@ -24,6 +24,7 @@ var UserEntity = class {
24
24
  lastName;
25
25
  displayName;
26
26
  email;
27
+ emailVerified;
27
28
  password;
28
29
  avatar;
29
30
  cover;
@@ -87,6 +88,11 @@ _ts_decorate([
87
88
  }),
88
89
  _ts_metadata("design:type", String)
89
90
  ], UserEntity.prototype, "email", void 0);
91
+ _ts_decorate([Column({
92
+ name: "email_verified",
93
+ type: "boolean",
94
+ default: false
95
+ }), _ts_metadata("design:type", Boolean)], UserEntity.prototype, "emailVerified", void 0);
90
96
  _ts_decorate([Column({
91
97
  type: "varchar",
92
98
  length: 512,
@@ -1 +1 @@
1
- {"version":3,"file":"entity.mjs","names":["BeforeInsert","BeforeUpdate","Column","CreateDateColumn","Entity","Index","JoinColumn","ManyToOne","PrimaryGeneratedColumn","Unique","UpdateDateColumn","dateToISOStringTransformer","RealmEntity","UserEntity","id","name","nameLocked","firstName","lastName","displayName","email","password","avatar","cover","resetHash","resetAt","resetExpires","status","statusMessage","active","activateHash","createdAt","updatedAt","realmId","realm","setDisplayName","length","type","default","nullable","select","transformer","onDelete"],"sources":["../../../../../src/adapters/database/domains/user/entity.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2021.\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 {\n BeforeInsert,\n BeforeUpdate,\n Column,\n CreateDateColumn,\n Entity,\n Index,\n JoinColumn,\n ManyToOne,\n PrimaryGeneratedColumn,\n Unique,\n UpdateDateColumn,\n} from 'typeorm';\nimport { dateToISOStringTransformer } from '../../helpers/index.ts';\nimport type { Realm, User } from '@authup/core-kit';\nimport { RealmEntity } from '../realm/index.ts';\n\n@Entity({ name: 'auth_users' })\n@Unique(['name', 'realmId'])\nexport class UserEntity implements User {\n @PrimaryGeneratedColumn('uuid')\n id: string;\n\n @Index()\n @Column({\n type: 'varchar',\n length: 128, \n })\n name: string;\n\n @Column({\n name: 'name_locked', \n type: 'boolean', \n default: true, \n })\n nameLocked: boolean;\n\n @Column({\n name: 'first_name', \n type: 'varchar', \n length: 128, \n nullable: true, \n })\n firstName: string | null;\n\n @Column({\n name: 'last_name', \n type: 'varchar', \n length: 128, \n nullable: true, \n })\n lastName: string | null;\n\n @Index()\n @Column({\n name: 'display_name', \n type: 'varchar', \n length: 256, \n nullable: true, \n })\n displayName: string | null;\n\n @Index()\n @Column({\n type: 'varchar',\n length: 256,\n select: false,\n })\n email: string;\n\n @Column({\n type: 'varchar',\n length: 512,\n default: null,\n nullable: true,\n select: false,\n })\n password: string | null;\n\n // ------------------------------------------------------------------\n\n @Column({\n type: 'varchar',\n length: 255,\n nullable: true, \n })\n avatar: string | null;\n\n @Column({\n type: 'varchar',\n length: 255,\n nullable: true, \n })\n cover: string | null;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n name: 'reset_hash',\n type: 'varchar',\n length: 256,\n nullable: true,\n default: null,\n select: false,\n })\n resetHash: string | null;\n\n @Column({\n name: 'reset_at', \n type: 'varchar', \n length: 28, \n nullable: true, \n default: null, \n select: false, \n })\n resetAt: string | null;\n\n @Column({\n name: 'reset_expires', \n type: 'varchar', \n length: 28, \n nullable: true, \n default: null, \n select: false, \n })\n resetExpires: string | null;\n\n // ------------------------------------------------------------------\n\n @Column({\n type: 'varchar',\n length: 256,\n nullable: true,\n default: null,\n })\n status: string | null;\n\n @Column({\n name: 'status_message', \n type: 'varchar', \n length: 256, \n nullable: true, \n default: null, \n })\n statusMessage: string | null;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n type: 'boolean',\n default: true,\n })\n active: boolean;\n\n @Index()\n @Column({\n name: 'activate_hash',\n type: 'varchar',\n length: 256,\n nullable: true,\n default: null,\n select: false,\n })\n activateHash: string | null;\n\n // ------------------------------------------------------------------\n\n @Index()\n @CreateDateColumn({ name: 'created_at', transformer: dateToISOStringTransformer })\n createdAt: string;\n\n @Index()\n @UpdateDateColumn({ name: 'updated_at', transformer: dateToISOStringTransformer })\n updatedAt: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({ name: 'realm_id' })\n realmId: Realm['id'];\n\n @ManyToOne(() => RealmEntity, { onDelete: 'CASCADE' })\n @JoinColumn({ name: 'realm_id' })\n realm: Realm;\n\n // ------------------------------------------------------------------\n\n @BeforeInsert()\n @BeforeUpdate()\n setDisplayName() {\n if (\n typeof this.displayName !== 'string' ||\n this.displayName.length === 0\n ) {\n this.displayName = this.name;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA0BA,IAAaa,aAAb,MAAaA;CAETC;CAOAC;CAOAC;CAQAC;CAQAC;CASAC;CAQAC;CASAC;CASAC;CAOAC;CAaAC;CAUAC;CAUAC;CAUAC;CASAC;CASAC;CAWAC;CAMAC;CAIAC;CAMAC;CAIAC;CAMAC,iBAAiB;EACb,IACI,OAAO,KAAKhB,gBAAgB,YAC5B,KAAKA,YAAYiB,WAAW,GAE5B,KAAKjB,cAAc,KAAKJ;CAEhC;AACJ;;;;;EA9KQsB,MAAM;EACND,QAAQ;;;;;CAKRrB,MAAM;CACNsB,MAAM;CACNC,SAAS;;;CAKTvB,MAAM;CACNsB,MAAM;CACND,QAAQ;CACRG,UAAU;;;CAKVxB,MAAM;CACNsB,MAAM;CACND,QAAQ;CACRG,UAAU;;;;;EAMVxB,MAAM;EACNsB,MAAM;EACND,QAAQ;EACRG,UAAU;;;;;;;EAMVF,MAAM;EACND,QAAQ;EACRI,QAAQ;;;;;CAKRH,MAAM;CACND,QAAQ;CACRE,SAAS;CACTC,UAAU;CACVC,QAAQ;;;CAORH,MAAM;CACND,QAAQ;CACRG,UAAU;;;CAKVF,MAAM;CACND,QAAQ;CACRG,UAAU;;;;;EAQVxB,MAAM;EACNsB,MAAM;EACND,QAAQ;EACRG,UAAU;EACVD,SAAS;EACTE,QAAQ;;;;;CAKRzB,MAAM;CACNsB,MAAM;CACND,QAAQ;CACRG,UAAU;CACVD,SAAS;CACTE,QAAQ;;;CAKRzB,MAAM;CACNsB,MAAM;CACND,QAAQ;CACRG,UAAU;CACVD,SAAS;CACTE,QAAQ;;;CAORH,MAAM;CACND,QAAQ;CACRG,UAAU;CACVD,SAAS;;;CAKTvB,MAAM;CACNsB,MAAM;CACND,QAAQ;CACRG,UAAU;CACVD,SAAS;;;;;EAQTD,MAAM;EACNC,SAAS;;;;;;;EAMTvB,MAAM;EACNsB,MAAM;EACND,QAAQ;EACRG,UAAU;EACVD,SAAS;EACTE,QAAQ;;;;;;;EAOQzB,MAAM;EAAc0B,aAAa9B;;;;;;;EAIjCI,MAAM;EAAc0B,aAAa9B;;;;;;CAM3CI,OAAAA,EAAAA,MAAM,WAAA,CAAA;;;;CAGCH,gBAAAA,aAAAA,EAAe8B,UAAU,UAAA,CAAA;CAC5B3B,WAAAA,EAAAA,MAAM,WAAA,CAAA;;;;;;;;;;AAvKdA,aAAAA,aAAAA,CAAAA,OAAAA,EAAAA,MAAM,aAAA,CAAA,GAAA,OAAA,CACP,QAAQ,SAAA,CAAA,CAAA,GAAA,UAAA"}
1
+ {"version":3,"file":"entity.mjs","names":["BeforeInsert","BeforeUpdate","Column","CreateDateColumn","Entity","Index","JoinColumn","ManyToOne","PrimaryGeneratedColumn","Unique","UpdateDateColumn","dateToISOStringTransformer","RealmEntity","UserEntity","id","name","nameLocked","firstName","lastName","displayName","email","emailVerified","password","avatar","cover","resetHash","resetAt","resetExpires","status","statusMessage","active","activateHash","createdAt","updatedAt","realmId","realm","setDisplayName","length","type","default","nullable","select","transformer","onDelete"],"sources":["../../../../../src/adapters/database/domains/user/entity.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2021.\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 {\n BeforeInsert,\n BeforeUpdate,\n Column,\n CreateDateColumn,\n Entity,\n Index,\n JoinColumn,\n ManyToOne,\n PrimaryGeneratedColumn,\n Unique,\n UpdateDateColumn,\n} from 'typeorm';\nimport { dateToISOStringTransformer } from '../../helpers/index.ts';\nimport type { Realm, User } from '@authup/core-kit';\nimport { RealmEntity } from '../realm/index.ts';\n\n@Entity({ name: 'auth_users' })\n@Unique(['name', 'realmId'])\nexport class UserEntity implements User {\n @PrimaryGeneratedColumn('uuid')\n id: string;\n\n @Index()\n @Column({\n type: 'varchar',\n length: 128, \n })\n name: string;\n\n @Column({\n name: 'name_locked', \n type: 'boolean', \n default: true, \n })\n nameLocked: boolean;\n\n @Column({\n name: 'first_name', \n type: 'varchar', \n length: 128, \n nullable: true, \n })\n firstName: string | null;\n\n @Column({\n name: 'last_name', \n type: 'varchar', \n length: 128, \n nullable: true, \n })\n lastName: string | null;\n\n @Index()\n @Column({\n name: 'display_name', \n type: 'varchar', \n length: 256, \n nullable: true, \n })\n displayName: string | null;\n\n @Index()\n @Column({\n type: 'varchar',\n length: 256,\n select: false,\n })\n email: string;\n\n @Column({\n name: 'email_verified',\n type: 'boolean',\n default: false,\n })\n emailVerified: boolean;\n\n @Column({\n type: 'varchar',\n length: 512,\n default: null,\n nullable: true,\n select: false,\n })\n password: string | null;\n\n // ------------------------------------------------------------------\n\n @Column({\n type: 'varchar',\n length: 255,\n nullable: true, \n })\n avatar: string | null;\n\n @Column({\n type: 'varchar',\n length: 255,\n nullable: true, \n })\n cover: string | null;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n name: 'reset_hash',\n type: 'varchar',\n length: 256,\n nullable: true,\n default: null,\n select: false,\n })\n resetHash: string | null;\n\n @Column({\n name: 'reset_at', \n type: 'varchar', \n length: 28, \n nullable: true, \n default: null, \n select: false, \n })\n resetAt: string | null;\n\n @Column({\n name: 'reset_expires', \n type: 'varchar', \n length: 28, \n nullable: true, \n default: null, \n select: false, \n })\n resetExpires: string | null;\n\n // ------------------------------------------------------------------\n\n @Column({\n type: 'varchar',\n length: 256,\n nullable: true,\n default: null,\n })\n status: string | null;\n\n @Column({\n name: 'status_message', \n type: 'varchar', \n length: 256, \n nullable: true, \n default: null, \n })\n statusMessage: string | null;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({\n type: 'boolean',\n default: true,\n })\n active: boolean;\n\n @Index()\n @Column({\n name: 'activate_hash',\n type: 'varchar',\n length: 256,\n nullable: true,\n default: null,\n select: false,\n })\n activateHash: string | null;\n\n // ------------------------------------------------------------------\n\n @Index()\n @CreateDateColumn({ name: 'created_at', transformer: dateToISOStringTransformer })\n createdAt: string;\n\n @Index()\n @UpdateDateColumn({ name: 'updated_at', transformer: dateToISOStringTransformer })\n updatedAt: string;\n\n // ------------------------------------------------------------------\n\n @Index()\n @Column({ name: 'realm_id' })\n realmId: Realm['id'];\n\n @ManyToOne(() => RealmEntity, { onDelete: 'CASCADE' })\n @JoinColumn({ name: 'realm_id' })\n realm: Realm;\n\n // ------------------------------------------------------------------\n\n @BeforeInsert()\n @BeforeUpdate()\n setDisplayName() {\n if (\n typeof this.displayName !== 'string' ||\n this.displayName.length === 0\n ) {\n this.displayName = this.name;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA0BA,IAAaa,aAAb,MAAaA;CAETC;CAOAC;CAOAC;CAQAC;CAQAC;CASAC;CAQAC;CAOAC;CASAC;CASAC;CAOAC;CAaAC;CAUAC;CAUAC;CAUAC;CASAC;CASAC;CAWAC;CAMAC;CAIAC;CAMAC;CAIAC;CAMAC,iBAAiB;EACb,IACI,OAAO,KAAKjB,gBAAgB,YAC5B,KAAKA,YAAYkB,WAAW,GAE5B,KAAKlB,cAAc,KAAKJ;CAEhC;AACJ;;;;;EArLQuB,MAAM;EACND,QAAQ;;;;;CAKRtB,MAAM;CACNuB,MAAM;CACNC,SAAS;;;CAKTxB,MAAM;CACNuB,MAAM;CACND,QAAQ;CACRG,UAAU;;;CAKVzB,MAAM;CACNuB,MAAM;CACND,QAAQ;CACRG,UAAU;;;;;EAMVzB,MAAM;EACNuB,MAAM;EACND,QAAQ;EACRG,UAAU;;;;;;;EAMVF,MAAM;EACND,QAAQ;EACRI,QAAQ;;;;;CAKR1B,MAAM;CACNuB,MAAM;CACNC,SAAS;;;CAKTD,MAAM;CACND,QAAQ;CACRE,SAAS;CACTC,UAAU;CACVC,QAAQ;;;CAORH,MAAM;CACND,QAAQ;CACRG,UAAU;;;CAKVF,MAAM;CACND,QAAQ;CACRG,UAAU;;;;;EAQVzB,MAAM;EACNuB,MAAM;EACND,QAAQ;EACRG,UAAU;EACVD,SAAS;EACTE,QAAQ;;;;;CAKR1B,MAAM;CACNuB,MAAM;CACND,QAAQ;CACRG,UAAU;CACVD,SAAS;CACTE,QAAQ;;;CAKR1B,MAAM;CACNuB,MAAM;CACND,QAAQ;CACRG,UAAU;CACVD,SAAS;CACTE,QAAQ;;;CAORH,MAAM;CACND,QAAQ;CACRG,UAAU;CACVD,SAAS;;;CAKTxB,MAAM;CACNuB,MAAM;CACND,QAAQ;CACRG,UAAU;CACVD,SAAS;;;;;EAQTD,MAAM;EACNC,SAAS;;;;;;;EAMTxB,MAAM;EACNuB,MAAM;EACND,QAAQ;EACRG,UAAU;EACVD,SAAS;EACTE,QAAQ;;;;;;;EAOQ1B,MAAM;EAAc2B,aAAa/B;;;;;;;EAIjCI,MAAM;EAAc2B,aAAa/B;;;;;;CAM3CI,OAAAA,EAAAA,MAAM,WAAA,CAAA;;;;CAGCH,gBAAAA,aAAAA,EAAe+B,UAAU,UAAA,CAAA;CAC5B5B,WAAAA,EAAAA,MAAM,WAAA,CAAA;;;;;;;;;;AA9KdA,aAAAA,aAAAA,CAAAA,OAAAA,EAAAA,MAAM,aAAA,CAAA,GAAA,OAAA,CACP,QAAQ,SAAA,CAAA,CAAA,GAAA,UAAA"}
@@ -29,7 +29,7 @@ var EARepository = class extends Repository {
29
29
  const columns = /* @__PURE__ */ new Set();
30
30
  for (const col of this.metadata.columns) columns.add(col.propertyName);
31
31
  for (const rel of this.metadata.relations) columns.add(rel.propertyName);
32
- for (const key of Object.keys(source)) if (!columns.has(key) && !(key in entity)) entity[key] = source[key];
32
+ for (const [key, value] of Object.entries(source)) if (!columns.has(key) && !(key in entity)) entity[key] = value;
33
33
  }
34
34
  async saveOneWithEA(input, attributes, options) {
35
35
  return this.adapter.saveWithEA(input, attributes, options);
@@ -1 +1 @@
1
- {"version":3,"file":"repository.mjs","names":["InstanceChecker","Repository","ExtraAttributesRepositoryAdapter","EARepository","adapter","instance","options","entity","attributeEntity","ctx","isDataSource","manager","repository","attributeRepository","getRepository","create","entityLike","Array","isArray","map","i","preserveExtraAttributes","source","columns","Set","col","metadata","add","propertyName","rel","relations","key","Object","keys","has","saveOneWithEA","input","attributes","saveWithEA","findOneWithEA","extraOptions","findManyWithEA","findWithEA","findOneWithEAByPrimaryColumn","value","extendOneWithEA","extendWithEA","extendManyWithEA","entities"],"sources":["../../../../src/adapters/database/extra-attribute-repository/repository.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 type {\n DataSource, \n DeepPartial, \n EntityManager, \n FindManyOptions, \n FindOneOptions,\n} from 'typeorm';\nimport { InstanceChecker, Repository } from 'typeorm';\nimport type { ObjectLiteral } from '@authup/kit';\nimport { ExtraAttributesRepositoryAdapter } from './adapter.ts';\nimport type {\n EARepositoryEntityBase, \n EARepositoryFindOptions, \n EARepositoryOptions, \n EARepositorySaveOptions, \n IEARepository,\n} from './types.ts';\n\nexport class EARepository<\n T extends ObjectLiteral = ObjectLiteral,\n A extends EARepositoryEntityBase = EARepositoryEntityBase,\n> extends Repository<T> implements IEARepository <T> {\n protected adapter : ExtraAttributesRepositoryAdapter<T, A>;\n\n constructor(\n instance: DataSource | EntityManager,\n options: EARepositoryOptions<T, A>,\n ) {\n const {\n entity,\n attributeEntity,\n ...ctx\n } = options;\n\n super(\n entity,\n InstanceChecker.isDataSource(instance) ? instance.manager : instance,\n );\n\n this.adapter = new ExtraAttributesRepositoryAdapter<T, A>({\n ...ctx,\n repository: this,\n attributeRepository: this.manager.getRepository(attributeEntity),\n });\n }\n // ------------------------------------------------------------------------------\n\n override create(): T;\n\n override create(entityLikeArray: DeepPartial<T>[]): T[];\n\n override create(entityLike: DeepPartial<T>): T;\n\n override create(entityLike?: DeepPartial<T> | DeepPartial<T>[]): T | T[] {\n if (!entityLike) {\n return super.create();\n }\n\n if (Array.isArray(entityLike)) {\n return super.create(entityLike).map((entity, i) => {\n this.preserveExtraAttributes(entity, entityLike[i]);\n return entity;\n });\n }\n\n const entity = super.create(entityLike);\n this.preserveExtraAttributes(entity, entityLike);\n return entity;\n }\n\n private preserveExtraAttributes(entity: T, source: DeepPartial<T>): void {\n const columns = new Set<string>();\n for (const col of this.metadata.columns) {\n columns.add(col.propertyName);\n }\n for (const rel of this.metadata.relations) {\n columns.add(rel.propertyName);\n }\n\n for (const key of Object.keys(source)) {\n if (!columns.has(key) && !(key in entity)) {\n (entity as Record<string, any>)[key] = (source as Record<string, any>)[key];\n }\n }\n }\n\n // ------------------------------------------------------------------------------\n\n async saveOneWithEA<E extends Record<string, any>>(\n input: T & E,\n attributes?: E,\n options?: EARepositorySaveOptions<T>,\n ) : Promise<T & E> {\n return this.adapter.saveWithEA(input, attributes, options);\n }\n\n // ------------------------------------------------------------------------------\n\n async findOneWithEA(\n options: FindOneOptions<T>,\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<T | undefined> {\n return this.adapter.findOneWithEA(options, extraOptions);\n }\n\n async findManyWithEA<\n E extends Record<string, any>,\n >(\n options: FindManyOptions<T>,\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<(T & E)[]> {\n return this.adapter.findWithEA(options, extraOptions);\n }\n\n async findOneWithEAByPrimaryColumn<E extends Record<string, any>>(\n value: T[keyof T],\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<E> {\n return this.adapter.findOneWithEAByPrimaryColumn(value, extraOptions);\n }\n\n async extendOneWithEA<E extends Record<string, any>>(\n entity: T,\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<T & E> {\n return this.adapter.extendWithEA(entity, extraOptions);\n }\n\n async extendManyWithEA<E extends Record<string, any>>(\n entities: T[],\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<(T & E)[]> {\n return this.adapter.extendManyWithEA(entities, extraOptions);\n }\n}\n"],"mappings":";;;;;;AAyBA,IAAaG,eAAb,cAGUF,WAAAA;CACIG;CAEV,YACIC,UACAC,SACF;EACE,MAAM,EACFC,QACAC,iBACA,GAAGC,QACHH;EAEJ,MACIC,QACAP,gBAAgBU,aAAaL,QAAAA,IAAYA,SAASM,UAAUN,QAAAA;EAGhE,KAAKD,UAAU,IAAIF,iCAAuC;GACtD,GAAGO;GACHG,YAAY;GACZC,qBAAqB,KAAKF,QAAQG,cAAcN,eAAAA;EACpD,CAAA;CACJ;CASSO,OAAOC,YAAyD;EACrE,IAAI,CAACA,YACD,OAAO,MAAMD,OAAAA;EAGjB,IAAIE,MAAMC,QAAQF,UAAAA,GACd,OAAO,MAAMD,OAAOC,UAAAA,CAAAA,CAAYG,KAAKZ,QAAQa,MAAAA;GACzC,KAAKC,wBAAwBd,QAAQS,WAAWI,EAAE;GAClD,OAAOb;EACX,CAAA;EAGJ,MAAMA,SAAS,MAAMQ,OAAOC,UAAAA;EAC5B,KAAKK,wBAAwBd,QAAQS,UAAAA;EACrC,OAAOT;CACX;CAEQc,wBAAwBd,QAAWe,QAA8B;EACrE,MAAMC,0BAAU,IAAIC,IAAAA;EACpB,KAAK,MAAMC,OAAO,KAAKC,SAASH,SAC5BA,QAAQI,IAAIF,IAAIG,YAAY;EAEhC,KAAK,MAAMC,OAAO,KAAKH,SAASI,WAC5BP,QAAQI,IAAIE,IAAID,YAAY;EAGhC,KAAK,MAAMG,OAAOC,OAAOC,KAAKX,MAAAA,GAC1B,IAAI,CAACC,QAAQW,IAAIH,GAAAA,KAAQ,EAAEA,OAAOxB,SAC7BA,OAA+BwB,OAAO,OAAgCA;CAGnF;CAIA,MAAMI,cACFC,OACAC,YACA/B,SACe;EACf,OAAO,KAAKF,QAAQkC,WAAWF,OAAOC,YAAY/B,OAAAA;CACtD;CAIA,MAAMiC,cACFjC,SACAkC,eAAwC,CAAC,GAClB;EACvB,OAAO,KAAKpC,QAAQmC,cAAcjC,SAASkC,YAAAA;CAC/C;CAEA,MAAMC,eAGFnC,SACAkC,eAAwC,CAAC,GACtB;EACnB,OAAO,KAAKpC,QAAQsC,WAAWpC,SAASkC,YAAAA;CAC5C;CAEA,MAAMG,6BACFC,OACAJ,eAAwC,CAAC,GAC9B;EACX,OAAO,KAAKpC,QAAQuC,6BAA6BC,OAAOJ,YAAAA;CAC5D;CAEA,MAAMK,gBACFtC,QACAiC,eAAwC,CAAC,GAC1B;EACf,OAAO,KAAKpC,QAAQ0C,aAAavC,QAAQiC,YAAAA;CAC7C;CAEA,MAAMO,iBACFC,UACAR,eAAwC,CAAC,GACtB;EACnB,OAAO,KAAKpC,QAAQ2C,iBAAiBC,UAAUR,YAAAA;CACnD;AACJ"}
1
+ {"version":3,"file":"repository.mjs","names":["InstanceChecker","Repository","ExtraAttributesRepositoryAdapter","EARepository","adapter","instance","options","entity","attributeEntity","ctx","isDataSource","manager","repository","attributeRepository","getRepository","create","entityLike","Array","isArray","map","i","preserveExtraAttributes","source","columns","Set","col","metadata","add","propertyName","rel","relations","key","value","Object","entries","has","saveOneWithEA","input","attributes","saveWithEA","findOneWithEA","extraOptions","findManyWithEA","findWithEA","findOneWithEAByPrimaryColumn","extendOneWithEA","extendWithEA","extendManyWithEA","entities"],"sources":["../../../../src/adapters/database/extra-attribute-repository/repository.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 type {\n DataSource, \n DeepPartial, \n EntityManager, \n FindManyOptions, \n FindOneOptions,\n} from 'typeorm';\nimport { InstanceChecker, Repository } from 'typeorm';\nimport type { ObjectLiteral } from '@authup/kit';\nimport { ExtraAttributesRepositoryAdapter } from './adapter.ts';\nimport type {\n EARepositoryEntityBase, \n EARepositoryFindOptions, \n EARepositoryOptions, \n EARepositorySaveOptions, \n IEARepository,\n} from './types.ts';\n\nexport class EARepository<\n T extends ObjectLiteral = ObjectLiteral,\n A extends EARepositoryEntityBase = EARepositoryEntityBase,\n> extends Repository<T> implements IEARepository <T> {\n protected adapter : ExtraAttributesRepositoryAdapter<T, A>;\n\n constructor(\n instance: DataSource | EntityManager,\n options: EARepositoryOptions<T, A>,\n ) {\n const {\n entity,\n attributeEntity,\n ...ctx\n } = options;\n\n super(\n entity,\n InstanceChecker.isDataSource(instance) ? instance.manager : instance,\n );\n\n this.adapter = new ExtraAttributesRepositoryAdapter<T, A>({\n ...ctx,\n repository: this,\n attributeRepository: this.manager.getRepository(attributeEntity),\n });\n }\n // ------------------------------------------------------------------------------\n\n override create(): T;\n\n override create(entityLikeArray: DeepPartial<T>[]): T[];\n\n override create(entityLike: DeepPartial<T>): T;\n\n override create(entityLike?: DeepPartial<T> | DeepPartial<T>[]): T | T[] {\n if (!entityLike) {\n return super.create();\n }\n\n if (Array.isArray(entityLike)) {\n return super.create(entityLike).map((entity, i) => {\n this.preserveExtraAttributes(entity, entityLike[i]);\n return entity;\n });\n }\n\n const entity = super.create(entityLike);\n this.preserveExtraAttributes(entity, entityLike);\n return entity;\n }\n\n private preserveExtraAttributes(entity: T, source: DeepPartial<T>): void {\n const columns = new Set<string>();\n for (const col of this.metadata.columns) {\n columns.add(col.propertyName);\n }\n for (const rel of this.metadata.relations) {\n columns.add(rel.propertyName);\n }\n\n for (const [key, value] of Object.entries(source as Record<string, any>)) {\n if (!columns.has(key) && !(key in entity)) {\n (entity as Record<string, any>)[key] = value;\n }\n }\n }\n\n // ------------------------------------------------------------------------------\n\n async saveOneWithEA<E extends Record<string, any>>(\n input: T & E,\n attributes?: E,\n options?: EARepositorySaveOptions<T>,\n ) : Promise<T & E> {\n return this.adapter.saveWithEA(input, attributes, options);\n }\n\n // ------------------------------------------------------------------------------\n\n async findOneWithEA(\n options: FindOneOptions<T>,\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<T | undefined> {\n return this.adapter.findOneWithEA(options, extraOptions);\n }\n\n async findManyWithEA<\n E extends Record<string, any>,\n >(\n options: FindManyOptions<T>,\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<(T & E)[]> {\n return this.adapter.findWithEA(options, extraOptions);\n }\n\n async findOneWithEAByPrimaryColumn<E extends Record<string, any>>(\n value: T[keyof T],\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<E> {\n return this.adapter.findOneWithEAByPrimaryColumn(value, extraOptions);\n }\n\n async extendOneWithEA<E extends Record<string, any>>(\n entity: T,\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<T & E> {\n return this.adapter.extendWithEA(entity, extraOptions);\n }\n\n async extendManyWithEA<E extends Record<string, any>>(\n entities: T[],\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<(T & E)[]> {\n return this.adapter.extendManyWithEA(entities, extraOptions);\n }\n}\n"],"mappings":";;;;;;AAyBA,IAAaG,eAAb,cAGUF,WAAAA;CACIG;CAEV,YACIC,UACAC,SACF;EACE,MAAM,EACFC,QACAC,iBACA,GAAGC,QACHH;EAEJ,MACIC,QACAP,gBAAgBU,aAAaL,QAAAA,IAAYA,SAASM,UAAUN,QAAAA;EAGhE,KAAKD,UAAU,IAAIF,iCAAuC;GACtD,GAAGO;GACHG,YAAY;GACZC,qBAAqB,KAAKF,QAAQG,cAAcN,eAAAA;EACpD,CAAA;CACJ;CASSO,OAAOC,YAAyD;EACrE,IAAI,CAACA,YACD,OAAO,MAAMD,OAAAA;EAGjB,IAAIE,MAAMC,QAAQF,UAAAA,GACd,OAAO,MAAMD,OAAOC,UAAAA,CAAAA,CAAYG,KAAKZ,QAAQa,MAAAA;GACzC,KAAKC,wBAAwBd,QAAQS,WAAWI,EAAE;GAClD,OAAOb;EACX,CAAA;EAGJ,MAAMA,SAAS,MAAMQ,OAAOC,UAAAA;EAC5B,KAAKK,wBAAwBd,QAAQS,UAAAA;EACrC,OAAOT;CACX;CAEQc,wBAAwBd,QAAWe,QAA8B;EACrE,MAAMC,0BAAU,IAAIC,IAAAA;EACpB,KAAK,MAAMC,OAAO,KAAKC,SAASH,SAC5BA,QAAQI,IAAIF,IAAIG,YAAY;EAEhC,KAAK,MAAMC,OAAO,KAAKH,SAASI,WAC5BP,QAAQI,IAAIE,IAAID,YAAY;EAGhC,KAAK,MAAM,CAACG,KAAKC,UAAUC,OAAOC,QAAQZ,MAAAA,GACtC,IAAI,CAACC,QAAQY,IAAIJ,GAAAA,KAAQ,EAAEA,OAAOxB,SAC7BA,OAA+BwB,OAAOC;CAGnD;CAIA,MAAMI,cACFC,OACAC,YACAhC,SACe;EACf,OAAO,KAAKF,QAAQmC,WAAWF,OAAOC,YAAYhC,OAAAA;CACtD;CAIA,MAAMkC,cACFlC,SACAmC,eAAwC,CAAC,GAClB;EACvB,OAAO,KAAKrC,QAAQoC,cAAclC,SAASmC,YAAAA;CAC/C;CAEA,MAAMC,eAGFpC,SACAmC,eAAwC,CAAC,GACtB;EACnB,OAAO,KAAKrC,QAAQuC,WAAWrC,SAASmC,YAAAA;CAC5C;CAEA,MAAMG,6BACFZ,OACAS,eAAwC,CAAC,GAC9B;EACX,OAAO,KAAKrC,QAAQwC,6BAA6BZ,OAAOS,YAAAA;CAC5D;CAEA,MAAMI,gBACFtC,QACAkC,eAAwC,CAAC,GAC1B;EACf,OAAO,KAAKrC,QAAQ0C,aAAavC,QAAQkC,YAAAA;CAC7C;CAEA,MAAMM,iBACFC,UACAP,eAAwC,CAAC,GACtB;EACnB,OAAO,KAAKrC,QAAQ2C,iBAAiBC,UAAUP,YAAAA;CACnD;AACJ"}
@@ -53,8 +53,10 @@ var ExtraAttributesTreeRepositoryAdapter = class extends ExtraAttributesReposito
53
53
  const childColumnName = this.repository.metadata.treeChildrenRelation?.propertyName;
54
54
  for (const datum of data) {
55
55
  fn(datum);
56
- if (childColumnName && datum[childColumnName]) if (Array.isArray(datum[childColumnName])) this.traverse(datum[childColumnName], fn);
57
- else this.traverse([datum[childColumnName]], fn);
56
+ if (childColumnName && datum[childColumnName]) {
57
+ if (Array.isArray(datum[childColumnName])) this.traverse(datum[childColumnName], fn);
58
+ else this.traverse([datum[childColumnName]], fn);
59
+ }
58
60
  }
59
61
  }
60
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.mjs","names":["ExtraAttributesRepositoryAdapter","ExtraAttributesTreeRepositoryAdapter","saveWithEA","input","attributes","options","childColumnName","repository","metadata","treeChildrenRelation","propertyName","parentColumnName","treeParentRelation","children","parent","Array","isArray","child","undefined","extendManyWithEA","entities","extraOptions","flattened","flatten","attributesByPrimaryKey","findWithEAByPrimaryColumn","getPrimaryKeyValues","traverse","entity","value","primaryColumn","keys","Object","key","output","push","fn","data","datum"],"sources":["../../../../../src/adapters/database/extra-attribute-repository/tree/adapter.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\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 { ObjectLiteral } from '@authup/kit';\nimport { ExtraAttributesRepositoryAdapter } from '../adapter.ts';\nimport type { EARepositoryEntityBase, EARepositoryFindOptions, EARepositorySaveOptions } from '../types.ts';\n\nexport class ExtraAttributesTreeRepositoryAdapter<\n T extends ObjectLiteral = ObjectLiteral,\n A extends EARepositoryEntityBase = EARepositoryEntityBase,\n> extends ExtraAttributesRepositoryAdapter<T, A> {\n async saveWithEA<E extends Record<string, any>>(\n input: T & E,\n attributes?: E,\n options?: EARepositorySaveOptions<T>,\n ) : Promise<T & E> {\n const childColumnName = this.repository.metadata.treeChildrenRelation?.propertyName;\n const parentColumnName = this.repository.metadata.treeParentRelation?.propertyName;\n\n let children : T | T[] | undefined;\n\n if (childColumnName && input[childColumnName]) {\n children = input[childColumnName];\n delete input[childColumnName];\n }\n\n if (\n parentColumnName &&\n options &&\n options.parent\n ) {\n input[parentColumnName as keyof T] = options.parent as (T & E)[keyof T];\n }\n\n await super.saveWithEA(input, attributes, options);\n\n if (\n parentColumnName &&\n options &&\n options.parent\n ) {\n delete input[parentColumnName as keyof T];\n }\n\n if (\n childColumnName &&\n parentColumnName &&\n children\n ) {\n if (Array.isArray(children)) {\n for (const child of children) {\n await this.saveWithEA(child, undefined, {\n ...(options || {}),\n parent: input,\n });\n }\n } else {\n await this.saveWithEA(children, undefined, {\n ...(options || {}),\n parent: input,\n });\n }\n\n input[childColumnName as keyof T] = children as (T & E)[keyof T];\n }\n\n return input;\n }\n\n // ------------------------------------------------------------------------------\n\n async extendManyWithEA<E extends Record<string, any>>(\n entities: T[],\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<(T & E)[]> {\n const flattened = this.flatten(entities);\n\n const attributesByPrimaryKey = await this.findWithEAByPrimaryColumn(\n this.getPrimaryKeyValues(flattened),\n extraOptions,\n );\n\n this.traverse(entities, (entity) => {\n const value = attributesByPrimaryKey[entity[this.primaryColumn] as string];\n if (!value) {\n return entity;\n }\n\n const keys = Object.keys(value);\n for (const key of keys) {\n entity[key as keyof T] = value[key] as T[keyof T];\n }\n\n return entity;\n });\n\n return entities as (T & E)[];\n }\n\n // ------------------------------------------------------------------------------\n\n protected flatten(entities: T | T[]) : T[] {\n const output : T[] = [];\n\n this.traverse(entities, (entity) => {\n output.push(entity);\n\n return entity;\n });\n\n return output;\n }\n\n protected traverse(entities: T | T[], fn: (entity: T) => T) {\n const data : T[] = Array.isArray(entities) ? entities : [entities];\n\n const childColumnName = this.repository.metadata.treeChildrenRelation?.propertyName;\n for (const datum of data) {\n fn(datum);\n\n if (childColumnName && datum[childColumnName]) {\n if (Array.isArray(datum[childColumnName])) {\n this.traverse(datum[childColumnName], fn);\n } else {\n this.traverse([datum[childColumnName]], fn);\n }\n }\n }\n }\n}\n"],"mappings":";;;;;AAWA,IAAaC,uCAAb,cAGUD,iCAAAA;CACN,MAAME,WACFC,OACAC,YACAC,SACe;EACf,MAAMC,kBAAkB,KAAKC,WAAWC,SAASC,sBAAsBC;EACvE,MAAMC,mBAAmB,KAAKJ,WAAWC,SAASI,oBAAoBF;EAEtE,IAAIG;EAEJ,IAAIP,mBAAmBH,MAAMG,kBAAkB;GAC3CO,WAAWV,MAAMG;GACjB,OAAOH,MAAMG;EACjB;EAEA,IACIK,oBACAN,WACAA,QAAQS,QAERX,MAAMQ,oBAA+BN,QAAQS;EAGjD,MAAM,MAAMZ,WAAWC,OAAOC,YAAYC,OAAAA;EAE1C,IACIM,oBACAN,WACAA,QAAQS,QAER,OAAOX,MAAMQ;EAGjB,IACIL,mBACAK,oBACAE,UACF;GACE,IAAIE,MAAMC,QAAQH,QAAAA,GACd,KAAK,MAAMI,SAASJ,UAChB,MAAM,KAAKX,WAAWe,OAAOC,KAAAA,GAAW;IACpC,GAAIb,WAAW,CAAC;IAChBS,QAAQX;GACZ,CAAA;QAGJ,MAAM,KAAKD,WAAWW,UAAUK,KAAAA,GAAW;IACvC,GAAIb,WAAW,CAAC;IAChBS,QAAQX;GACZ,CAAA;GAGJA,MAAMG,mBAA8BO;EACxC;EAEA,OAAOV;CACX;CAIA,MAAMgB,iBACFC,UACAC,eAAwC,CAAC,GACtB;EACnB,MAAMC,YAAY,KAAKC,QAAQH,QAAAA;EAE/B,MAAMI,yBAAyB,MAAM,KAAKC,0BACtC,KAAKC,oBAAoBJ,SAAAA,GACzBD,YAAAA;EAGJ,KAAKM,SAASP,WAAWQ,WAAAA;GACrB,MAAMC,QAAQL,uBAAuBI,OAAO,KAAKE;GACjD,IAAI,CAACD,OACD,OAAOD;GAGX,MAAMG,OAAOC,OAAOD,KAAKF,KAAAA;GACzB,KAAK,MAAMI,OAAOF,MACdH,OAAOK,OAAkBJ,MAAMI;GAGnC,OAAOL;EACX,CAAA;EAEA,OAAOR;CACX;CAIUG,QAAQH,UAAyB;EACvC,MAAMc,SAAe,CAAA;EAErB,KAAKP,SAASP,WAAWQ,WAAAA;GACrBM,OAAOC,KAAKP,MAAAA;GAEZ,OAAOA;EACX,CAAA;EAEA,OAAOM;CACX;CAEUP,SAASP,UAAmBgB,IAAsB;EACxD,MAAMC,OAAatB,MAAMC,QAAQI,QAAAA,IAAYA,WAAW,CAACA,QAAS;EAElE,MAAMd,kBAAkB,KAAKC,WAAWC,SAASC,sBAAsBC;EACvE,KAAK,MAAM4B,SAASD,MAAM;GACtBD,GAAGE,KAAAA;GAEH,IAAIhC,mBAAmBgC,MAAMhC,kBACzB,IAAIS,MAAMC,QAAQsB,MAAMhC,gBAAgB,GACpC,KAAKqB,SAASW,MAAMhC,kBAAkB8B,EAAAA;QAEtC,KAAKT,SAAS,CAACW,MAAMhC,gBAAiB,GAAE8B,EAAAA;EAGpD;CACJ;AACJ"}
1
+ {"version":3,"file":"adapter.mjs","names":["ExtraAttributesRepositoryAdapter","ExtraAttributesTreeRepositoryAdapter","saveWithEA","input","attributes","options","childColumnName","repository","metadata","treeChildrenRelation","propertyName","parentColumnName","treeParentRelation","children","parent","Array","isArray","child","undefined","extendManyWithEA","entities","extraOptions","flattened","flatten","attributesByPrimaryKey","findWithEAByPrimaryColumn","getPrimaryKeyValues","traverse","entity","value","primaryColumn","keys","Object","key","output","push","fn","data","datum"],"sources":["../../../../../src/adapters/database/extra-attribute-repository/tree/adapter.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\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 { ObjectLiteral } from '@authup/kit';\nimport { ExtraAttributesRepositoryAdapter } from '../adapter.ts';\nimport type { EARepositoryEntityBase, EARepositoryFindOptions, EARepositorySaveOptions } from '../types.ts';\n\nexport class ExtraAttributesTreeRepositoryAdapter<\n T extends ObjectLiteral = ObjectLiteral,\n A extends EARepositoryEntityBase = EARepositoryEntityBase,\n> extends ExtraAttributesRepositoryAdapter<T, A> {\n async saveWithEA<E extends Record<string, any>>(\n input: T & E,\n attributes?: E,\n options?: EARepositorySaveOptions<T>,\n ) : Promise<T & E> {\n const childColumnName = this.repository.metadata.treeChildrenRelation?.propertyName;\n const parentColumnName = this.repository.metadata.treeParentRelation?.propertyName;\n\n let children : T | T[] | undefined;\n\n if (childColumnName && input[childColumnName]) {\n children = input[childColumnName];\n delete input[childColumnName];\n }\n\n if (\n parentColumnName &&\n options &&\n options.parent\n ) {\n input[parentColumnName as keyof T] = options.parent as (T & E)[keyof T];\n }\n\n await super.saveWithEA(input, attributes, options);\n\n if (\n parentColumnName &&\n options &&\n options.parent\n ) {\n delete input[parentColumnName as keyof T];\n }\n\n if (\n childColumnName &&\n parentColumnName &&\n children\n ) {\n if (Array.isArray(children)) {\n for (const child of children) {\n await this.saveWithEA(child, undefined, {\n ...(options || {}),\n parent: input,\n });\n }\n } else {\n await this.saveWithEA(children, undefined, {\n ...(options || {}),\n parent: input,\n });\n }\n\n input[childColumnName as keyof T] = children as (T & E)[keyof T];\n }\n\n return input;\n }\n\n // ------------------------------------------------------------------------------\n\n async extendManyWithEA<E extends Record<string, any>>(\n entities: T[],\n extraOptions: EARepositoryFindOptions = {},\n ) : Promise<(T & E)[]> {\n const flattened = this.flatten(entities);\n\n const attributesByPrimaryKey = await this.findWithEAByPrimaryColumn(\n this.getPrimaryKeyValues(flattened),\n extraOptions,\n );\n\n this.traverse(entities, (entity) => {\n const value = attributesByPrimaryKey[entity[this.primaryColumn] as string];\n if (!value) {\n return entity;\n }\n\n const keys = Object.keys(value);\n for (const key of keys) {\n entity[key as keyof T] = value[key] as T[keyof T];\n }\n\n return entity;\n });\n\n return entities as (T & E)[];\n }\n\n // ------------------------------------------------------------------------------\n\n protected flatten(entities: T | T[]) : T[] {\n const output : T[] = [];\n\n this.traverse(entities, (entity) => {\n output.push(entity);\n\n return entity;\n });\n\n return output;\n }\n\n protected traverse(entities: T | T[], fn: (entity: T) => T) {\n const data : T[] = Array.isArray(entities) ? entities : [entities];\n\n const childColumnName = this.repository.metadata.treeChildrenRelation?.propertyName;\n for (const datum of data) {\n fn(datum);\n\n if (childColumnName && datum[childColumnName]) {\n if (Array.isArray(datum[childColumnName])) {\n this.traverse(datum[childColumnName], fn);\n } else {\n this.traverse([datum[childColumnName]], fn);\n }\n }\n }\n }\n}\n"],"mappings":";;;;;AAWA,IAAaC,uCAAb,cAGUD,iCAAAA;CACN,MAAME,WACFC,OACAC,YACAC,SACe;EACf,MAAMC,kBAAkB,KAAKC,WAAWC,SAASC,sBAAsBC;EACvE,MAAMC,mBAAmB,KAAKJ,WAAWC,SAASI,oBAAoBF;EAEtE,IAAIG;EAEJ,IAAIP,mBAAmBH,MAAMG,kBAAkB;GAC3CO,WAAWV,MAAMG;GACjB,OAAOH,MAAMG;EACjB;EAEA,IACIK,oBACAN,WACAA,QAAQS,QAERX,MAAMQ,oBAA+BN,QAAQS;EAGjD,MAAM,MAAMZ,WAAWC,OAAOC,YAAYC,OAAAA;EAE1C,IACIM,oBACAN,WACAA,QAAQS,QAER,OAAOX,MAAMQ;EAGjB,IACIL,mBACAK,oBACAE,UACF;GACE,IAAIE,MAAMC,QAAQH,QAAAA,GACd,KAAK,MAAMI,SAASJ,UAChB,MAAM,KAAKX,WAAWe,OAAOC,KAAAA,GAAW;IACpC,GAAIb,WAAW,CAAC;IAChBS,QAAQX;GACZ,CAAA;QAGJ,MAAM,KAAKD,WAAWW,UAAUK,KAAAA,GAAW;IACvC,GAAIb,WAAW,CAAC;IAChBS,QAAQX;GACZ,CAAA;GAGJA,MAAMG,mBAA8BO;EACxC;EAEA,OAAOV;CACX;CAIA,MAAMgB,iBACFC,UACAC,eAAwC,CAAC,GACtB;EACnB,MAAMC,YAAY,KAAKC,QAAQH,QAAAA;EAE/B,MAAMI,yBAAyB,MAAM,KAAKC,0BACtC,KAAKC,oBAAoBJ,SAAAA,GACzBD,YAAAA;EAGJ,KAAKM,SAASP,WAAWQ,WAAAA;GACrB,MAAMC,QAAQL,uBAAuBI,OAAO,KAAKE;GACjD,IAAI,CAACD,OACD,OAAOD;GAGX,MAAMG,OAAOC,OAAOD,KAAKF,KAAAA;GACzB,KAAK,MAAMI,OAAOF,MACdH,OAAOK,OAAkBJ,MAAMI;GAGnC,OAAOL;EACX,CAAA;EAEA,OAAOR;CACX;CAIUG,QAAQH,UAAyB;EACvC,MAAMc,SAAe,CAAA;EAErB,KAAKP,SAASP,WAAWQ,WAAAA;GACrBM,OAAOC,KAAKP,MAAAA;GAEZ,OAAOA;EACX,CAAA;EAEA,OAAOM;CACX;CAEUP,SAASP,UAAmBgB,IAAsB;EACxD,MAAMC,OAAatB,MAAMC,QAAQI,QAAAA,IAAYA,WAAW,CAACA,QAAS;EAElE,MAAMd,kBAAkB,KAAKC,WAAWC,SAASC,sBAAsBC;EACvE,KAAK,MAAM4B,SAASD,MAAM;GACtBD,GAAGE,KAAAA;GAEH,IAAIhC,mBAAmBgC,MAAMhC,kBAAkB;IAC3C,IAAIS,MAAMC,QAAQsB,MAAMhC,gBAAgB,GACpC,KAAKqB,SAASW,MAAMhC,kBAAkB8B,EAAAA;SAEtC,KAAKT,SAAS,CAACW,MAAMhC,gBAAiB,GAAE8B,EAAAA;GAEhD;EACJ;CACJ;AACJ"}
@@ -33,7 +33,7 @@ import { FindOptionsUtils, InstanceChecker, TreeRepository, TreeRepositoryUtils
33
33
  const columns = /* @__PURE__ */ new Set();
34
34
  for (const col of this.metadata.columns) columns.add(col.propertyName);
35
35
  for (const rel of this.metadata.relations) columns.add(rel.propertyName);
36
- for (const key of Object.keys(source)) if (!columns.has(key) && !(key in entity)) entity[key] = source[key];
36
+ for (const [key, value] of Object.entries(source)) if (!columns.has(key) && !(key in entity)) entity[key] = value;
37
37
  }
38
38
  async saveOneWithEA(input, attributes, options) {
39
39
  return this.adapter.saveWithEA(input, attributes, options);