@authup/server-core 1.0.0-beta.58 → 1.0.0-beta.59

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 (339) hide show
  1. package/dist/adapters/http/controllers/index.mjs +2 -1
  2. package/dist/adapters/http/controllers/workflows/account/index.d.ts +2 -0
  3. package/dist/adapters/http/controllers/workflows/account/index.d.ts.map +1 -0
  4. package/dist/adapters/http/controllers/workflows/account/index.mjs +5 -0
  5. package/dist/adapters/http/controllers/workflows/account/module.d.ts +24 -0
  6. package/dist/adapters/http/controllers/workflows/account/module.d.ts.map +1 -0
  7. package/dist/adapters/http/controllers/workflows/account/module.mjs +63 -0
  8. package/dist/adapters/http/controllers/workflows/account/module.mjs.map +1 -0
  9. package/dist/adapters/http/controllers/workflows/activate/module.mjs +1 -1
  10. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +2 -2
  11. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  12. package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
  13. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  14. package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
  15. package/dist/adapters/http/controllers/workflows/logout/module.mjs +2 -2
  16. package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
  17. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +1 -1
  18. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +1 -1
  19. package/dist/adapters/http/controllers/workflows/register/module.mjs +1 -1
  20. package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts.map +1 -1
  21. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs +5 -1
  22. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs.map +1 -1
  23. package/dist/adapters/http/index.mjs +3 -1
  24. package/dist/adapters/http/middleware/built-in/assets.d.ts +8 -1
  25. package/dist/adapters/http/middleware/built-in/assets.d.ts.map +1 -1
  26. package/dist/adapters/http/middleware/built-in/assets.mjs +48 -4
  27. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  28. package/dist/adapters/http/middleware/built-in/index.d.ts +2 -0
  29. package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
  30. package/dist/adapters/http/middleware/built-in/index.mjs +2 -1
  31. package/dist/adapters/http/middleware/built-in/theme.d.ts +15 -0
  32. package/dist/adapters/http/middleware/built-in/theme.d.ts.map +1 -0
  33. package/dist/adapters/http/middleware/built-in/theme.mjs +27 -0
  34. package/dist/adapters/http/middleware/built-in/theme.mjs.map +1 -0
  35. package/dist/adapters/http/middleware/built-in/types.d.ts +14 -0
  36. package/dist/adapters/http/middleware/built-in/types.d.ts.map +1 -0
  37. package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +1 -1
  38. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +1 -1
  39. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +1 -1
  40. package/dist/adapters/http/middleware/index.mjs +2 -1
  41. package/dist/adapters/http/ui/account-console/index.d.ts +4 -0
  42. package/dist/adapters/http/ui/account-console/index.d.ts.map +1 -0
  43. package/dist/adapters/http/ui/account-console/index.mjs +6 -0
  44. package/dist/adapters/http/ui/account-console/module.d.ts +28 -0
  45. package/dist/adapters/http/ui/account-console/module.d.ts.map +1 -0
  46. package/dist/adapters/http/ui/account-console/module.mjs +80 -0
  47. package/dist/adapters/http/ui/account-console/module.mjs.map +1 -0
  48. package/dist/adapters/http/ui/account-console/ref.d.ts +30 -0
  49. package/dist/adapters/http/ui/account-console/ref.d.ts.map +1 -0
  50. package/dist/adapters/http/ui/account-console/ref.mjs +50 -0
  51. package/dist/adapters/http/ui/account-console/ref.mjs.map +1 -0
  52. package/dist/adapters/http/ui/account-console/types.d.ts +11 -0
  53. package/dist/adapters/http/ui/account-console/types.d.ts.map +1 -0
  54. package/dist/adapters/http/ui/account-console/types.mjs +4 -0
  55. package/dist/adapters/http/ui/{internal-http-client.d.ts → auth-console/http-client.d.ts} +1 -1
  56. package/dist/adapters/http/ui/auth-console/http-client.d.ts.map +1 -0
  57. package/dist/adapters/http/ui/{internal-http-client.mjs → auth-console/http-client.mjs} +2 -2
  58. package/dist/adapters/http/ui/auth-console/http-client.mjs.map +1 -0
  59. package/dist/adapters/http/ui/auth-console/index.d.ts +6 -0
  60. package/dist/adapters/http/ui/auth-console/index.d.ts.map +1 -0
  61. package/dist/adapters/http/ui/auth-console/index.mjs +8 -0
  62. package/dist/adapters/http/ui/auth-console/module.d.ts +4 -0
  63. package/dist/adapters/http/ui/auth-console/module.d.ts.map +1 -0
  64. package/dist/adapters/http/ui/auth-console/module.mjs +73 -0
  65. package/dist/adapters/http/ui/auth-console/module.mjs.map +1 -0
  66. package/dist/adapters/http/ui/auth-console/resolve.d.ts +21 -0
  67. package/dist/adapters/http/ui/auth-console/resolve.d.ts.map +1 -0
  68. package/dist/adapters/http/ui/auth-console/resolve.mjs +53 -0
  69. package/dist/adapters/http/ui/auth-console/resolve.mjs.map +1 -0
  70. package/dist/adapters/http/ui/{serve.d.ts → auth-console/serve.d.ts} +1 -8
  71. package/dist/adapters/http/ui/auth-console/serve.d.ts.map +1 -0
  72. package/dist/adapters/http/ui/{serve.mjs → auth-console/serve.mjs} +5 -5
  73. package/dist/adapters/http/ui/auth-console/serve.mjs.map +1 -0
  74. package/dist/adapters/http/ui/auth-console/types.d.ts +26 -0
  75. package/dist/adapters/http/ui/auth-console/types.d.ts.map +1 -0
  76. package/dist/adapters/http/ui/auth-console/types.mjs +4 -0
  77. package/dist/adapters/http/ui/console-packages/index.d.ts +3 -0
  78. package/dist/adapters/http/ui/console-packages/index.d.ts.map +1 -0
  79. package/dist/adapters/http/ui/console-packages/index.mjs +5 -0
  80. package/dist/adapters/http/ui/console-packages/module.d.ts +33 -0
  81. package/dist/adapters/http/ui/console-packages/module.d.ts.map +1 -0
  82. package/dist/adapters/http/ui/console-packages/module.mjs +70 -0
  83. package/dist/adapters/http/ui/console-packages/module.mjs.map +1 -0
  84. package/dist/adapters/http/ui/console-packages/types.d.ts +12 -0
  85. package/dist/adapters/http/ui/console-packages/types.d.ts.map +1 -0
  86. package/dist/adapters/http/ui/console-packages/types.mjs +4 -0
  87. package/dist/adapters/http/ui/index.d.ts +5 -5
  88. package/dist/adapters/http/ui/index.d.ts.map +1 -1
  89. package/dist/adapters/http/ui/index.mjs +22 -5
  90. package/dist/adapters/http/ui/shared/html.d.ts +76 -0
  91. package/dist/adapters/http/ui/shared/html.d.ts.map +1 -0
  92. package/dist/adapters/http/ui/shared/html.mjs +103 -0
  93. package/dist/adapters/http/ui/shared/html.mjs.map +1 -0
  94. package/dist/adapters/http/ui/shared/index.d.ts +2 -0
  95. package/dist/adapters/http/ui/shared/index.d.ts.map +1 -0
  96. package/dist/adapters/http/ui/shared/index.mjs +5 -0
  97. package/dist/adapters/http/ui/theme/apply.d.ts +12 -0
  98. package/dist/adapters/http/ui/theme/apply.d.ts.map +1 -0
  99. package/dist/adapters/http/ui/theme/apply.mjs +29 -0
  100. package/dist/adapters/http/ui/theme/apply.mjs.map +1 -0
  101. package/dist/adapters/http/ui/theme/assets.d.ts +20 -0
  102. package/dist/adapters/http/ui/theme/assets.d.ts.map +1 -0
  103. package/dist/adapters/http/ui/theme/assets.mjs +86 -0
  104. package/dist/adapters/http/ui/theme/assets.mjs.map +1 -0
  105. package/dist/adapters/http/ui/theme/constants.d.ts +16 -0
  106. package/dist/adapters/http/ui/theme/constants.d.ts.map +1 -0
  107. package/dist/adapters/http/ui/theme/constants.mjs +20 -0
  108. package/dist/adapters/http/ui/theme/constants.mjs.map +1 -0
  109. package/dist/adapters/http/ui/theme/contract/constants.d.ts +120 -0
  110. package/dist/adapters/http/ui/theme/contract/constants.d.ts.map +1 -0
  111. package/dist/adapters/http/ui/theme/contract/constants.mjs +136 -0
  112. package/dist/adapters/http/ui/theme/contract/constants.mjs.map +1 -0
  113. package/dist/adapters/http/ui/theme/contract/head.d.ts +12 -0
  114. package/dist/adapters/http/ui/theme/contract/head.d.ts.map +1 -0
  115. package/dist/adapters/http/ui/theme/contract/head.mjs +61 -0
  116. package/dist/adapters/http/ui/theme/contract/head.mjs.map +1 -0
  117. package/dist/adapters/http/ui/theme/contract/index.d.ts +6 -0
  118. package/dist/adapters/http/ui/theme/contract/index.d.ts.map +1 -0
  119. package/dist/adapters/http/ui/theme/contract/index.mjs +8 -0
  120. package/dist/adapters/http/ui/theme/contract/manifest.d.ts +25 -0
  121. package/dist/adapters/http/ui/theme/contract/manifest.d.ts.map +1 -0
  122. package/dist/adapters/http/ui/theme/contract/manifest.mjs +77 -0
  123. package/dist/adapters/http/ui/theme/contract/manifest.mjs.map +1 -0
  124. package/dist/adapters/http/ui/theme/contract/types.d.ts +26 -0
  125. package/dist/adapters/http/ui/theme/contract/types.d.ts.map +1 -0
  126. package/dist/adapters/http/ui/theme/contract/types.mjs +4 -0
  127. package/dist/adapters/http/ui/theme/contract/utils.d.ts +11 -0
  128. package/dist/adapters/http/ui/theme/contract/utils.d.ts.map +1 -0
  129. package/dist/adapters/http/ui/theme/contract/utils.mjs +22 -0
  130. package/dist/adapters/http/ui/theme/contract/utils.mjs.map +1 -0
  131. package/dist/adapters/http/ui/theme/index.d.ts +7 -0
  132. package/dist/adapters/http/ui/theme/index.d.ts.map +1 -0
  133. package/dist/adapters/http/ui/theme/index.mjs +13 -0
  134. package/dist/adapters/http/ui/theme/module.d.ts +79 -0
  135. package/dist/adapters/http/ui/theme/module.d.ts.map +1 -0
  136. package/dist/adapters/http/ui/theme/module.mjs +206 -0
  137. package/dist/adapters/http/ui/theme/module.mjs.map +1 -0
  138. package/dist/adapters/http/ui/theme/types.d.ts +42 -0
  139. package/dist/adapters/http/ui/theme/types.d.ts.map +1 -0
  140. package/dist/adapters/http/ui/theme/types.mjs +4 -0
  141. package/dist/app/index.mjs +3 -1
  142. package/dist/app/modules/config/constants.d.ts +5 -0
  143. package/dist/app/modules/config/constants.d.ts.map +1 -1
  144. package/dist/app/modules/config/constants.mjs +5 -0
  145. package/dist/app/modules/config/constants.mjs.map +1 -1
  146. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  147. package/dist/app/modules/config/normalize.mjs +8 -0
  148. package/dist/app/modules/config/normalize.mjs.map +1 -1
  149. package/dist/app/modules/config/origins.d.ts.map +1 -1
  150. package/dist/app/modules/config/origins.mjs +2 -0
  151. package/dist/app/modules/config/origins.mjs.map +1 -1
  152. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  153. package/dist/app/modules/config/read/env.mjs +10 -0
  154. package/dist/app/modules/config/read/env.mjs.map +1 -1
  155. package/dist/app/modules/config/types.d.ts +63 -3
  156. package/dist/app/modules/config/types.d.ts.map +1 -1
  157. package/dist/app/modules/config/validator.d.ts.map +1 -1
  158. package/dist/app/modules/config/validator.mjs +5 -0
  159. package/dist/app/modules/config/validator.mjs.map +1 -1
  160. package/dist/app/modules/http/module.d.ts.map +1 -1
  161. package/dist/app/modules/http/module.mjs +7 -1
  162. package/dist/app/modules/http/module.mjs.map +1 -1
  163. package/dist/app/modules/http/modules/controller.d.ts +2 -1
  164. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  165. package/dist/app/modules/http/modules/controller.mjs +20 -5
  166. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  167. package/dist/app/modules/http/modules/middleware.d.ts +9 -1
  168. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  169. package/dist/app/modules/http/modules/middleware.mjs +18 -3
  170. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  171. package/dist/app/modules/index.mjs +3 -1
  172. package/dist/app/modules/provisioning/constants.d.ts +12 -0
  173. package/dist/app/modules/provisioning/constants.d.ts.map +1 -0
  174. package/dist/app/modules/provisioning/constants.mjs +16 -0
  175. package/dist/app/modules/provisioning/constants.mjs.map +1 -0
  176. package/dist/app/modules/provisioning/index.d.ts +2 -0
  177. package/dist/app/modules/provisioning/index.d.ts.map +1 -1
  178. package/dist/app/modules/provisioning/index.mjs +3 -1
  179. package/dist/app/modules/provisioning/lazy-wildcard.d.ts +15 -0
  180. package/dist/app/modules/provisioning/lazy-wildcard.d.ts.map +1 -0
  181. package/dist/app/modules/provisioning/lazy-wildcard.mjs +23 -0
  182. package/dist/app/modules/provisioning/lazy-wildcard.mjs.map +1 -0
  183. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  184. package/dist/app/modules/provisioning/module.mjs +21 -3
  185. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  186. package/dist/app/modules/provisioning/sources/composite/module.d.ts +0 -19
  187. package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
  188. package/dist/app/modules/provisioning/sources/composite/module.mjs +7 -77
  189. package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
  190. package/dist/core/entities/client/index.d.ts +1 -1
  191. package/dist/core/entities/client/index.d.ts.map +1 -1
  192. package/dist/core/entities/client/index.mjs +2 -2
  193. package/dist/core/entities/client/service.mjs.map +1 -1
  194. package/dist/core/entities/client/system-clients.d.ts +95 -0
  195. package/dist/core/entities/client/system-clients.d.ts.map +1 -0
  196. package/dist/core/entities/client/system-clients.mjs +158 -0
  197. package/dist/core/entities/client/system-clients.mjs.map +1 -0
  198. package/dist/core/entities/client/types.d.ts +17 -4
  199. package/dist/core/entities/client/types.d.ts.map +1 -1
  200. package/dist/core/entities/index.mjs +2 -2
  201. package/dist/core/entities/realm/service.d.ts +8 -6
  202. package/dist/core/entities/realm/service.d.ts.map +1 -1
  203. package/dist/core/entities/realm/service.mjs +5 -8
  204. package/dist/core/entities/realm/service.mjs.map +1 -1
  205. package/dist/core/index.mjs +6 -2
  206. package/dist/core/key/types.d.ts +2 -1
  207. package/dist/core/key/types.d.ts.map +1 -1
  208. package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
  209. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +2 -2
  210. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  211. package/dist/core/oauth2/end-session/service.d.ts.map +1 -1
  212. package/dist/core/oauth2/end-session/service.mjs +2 -2
  213. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  214. package/dist/core/provisioning/constants.d.ts +8 -0
  215. package/dist/core/provisioning/constants.d.ts.map +1 -0
  216. package/dist/core/provisioning/constants.mjs +14 -0
  217. package/dist/core/provisioning/constants.mjs.map +1 -0
  218. package/dist/core/provisioning/entities/index.mjs +2 -1
  219. package/dist/core/provisioning/entities/realm/index.d.ts +1 -0
  220. package/dist/core/provisioning/entities/realm/index.d.ts.map +1 -1
  221. package/dist/core/provisioning/entities/realm/index.mjs +2 -1
  222. package/dist/core/provisioning/entities/realm/validator.d.ts +11 -0
  223. package/dist/core/provisioning/entities/realm/validator.d.ts.map +1 -1
  224. package/dist/core/provisioning/entities/realm/validator.mjs +14 -0
  225. package/dist/core/provisioning/entities/realm/validator.mjs.map +1 -1
  226. package/dist/core/provisioning/entities/realm/wildcard-validator.d.ts +19 -0
  227. package/dist/core/provisioning/entities/realm/wildcard-validator.d.ts.map +1 -0
  228. package/dist/core/provisioning/entities/realm/wildcard-validator.mjs +65 -0
  229. package/dist/core/provisioning/entities/realm/wildcard-validator.mjs.map +1 -0
  230. package/dist/core/provisioning/index.d.ts +3 -0
  231. package/dist/core/provisioning/index.d.ts.map +1 -1
  232. package/dist/core/provisioning/index.mjs +7 -1
  233. package/dist/core/provisioning/merge/index.d.ts +3 -0
  234. package/dist/core/provisioning/merge/index.d.ts.map +1 -0
  235. package/dist/core/provisioning/merge/index.mjs +5 -0
  236. package/dist/core/provisioning/merge/module.d.ts +18 -0
  237. package/dist/core/provisioning/merge/module.d.ts.map +1 -0
  238. package/dist/core/provisioning/merge/module.mjs +82 -0
  239. package/dist/core/provisioning/merge/module.mjs.map +1 -0
  240. package/dist/core/provisioning/merge/types.d.ts +34 -0
  241. package/dist/core/provisioning/merge/types.d.ts.map +1 -0
  242. package/dist/core/provisioning/merge/types.mjs +4 -0
  243. package/dist/core/provisioning/types.d.ts +10 -0
  244. package/dist/core/provisioning/types.d.ts.map +1 -1
  245. package/dist/core/provisioning/wildcard/index.d.ts +3 -0
  246. package/dist/core/provisioning/wildcard/index.d.ts.map +1 -0
  247. package/dist/core/provisioning/wildcard/index.mjs +5 -0
  248. package/dist/core/provisioning/wildcard/module.d.ts +53 -0
  249. package/dist/core/provisioning/wildcard/module.d.ts.map +1 -0
  250. package/dist/core/provisioning/wildcard/module.mjs +91 -0
  251. package/dist/core/provisioning/wildcard/module.mjs.map +1 -0
  252. package/dist/core/provisioning/wildcard/types.d.ts +19 -0
  253. package/dist/core/provisioning/wildcard/types.d.ts.map +1 -0
  254. package/dist/core/provisioning/wildcard/types.mjs +4 -0
  255. package/dist/index.mjs +5 -1
  256. package/dist/path.d.ts +0 -2
  257. package/dist/path.d.ts.map +1 -1
  258. package/dist/path.mjs +1 -3
  259. package/dist/path.mjs.map +1 -1
  260. package/dist/swagger.json +50 -6
  261. package/package.json +19 -57
  262. package/dist/adapters/http/ui/base-path.d.ts +0 -9
  263. package/dist/adapters/http/ui/base-path.d.ts.map +0 -1
  264. package/dist/adapters/http/ui/base-path.mjs +0 -18
  265. package/dist/adapters/http/ui/base-path.mjs.map +0 -1
  266. package/dist/adapters/http/ui/internal-http-client.d.ts.map +0 -1
  267. package/dist/adapters/http/ui/internal-http-client.mjs.map +0 -1
  268. package/dist/adapters/http/ui/render.d.ts +0 -4
  269. package/dist/adapters/http/ui/render.d.ts.map +0 -1
  270. package/dist/adapters/http/ui/render.mjs +0 -63
  271. package/dist/adapters/http/ui/render.mjs.map +0 -1
  272. package/dist/adapters/http/ui/serve.d.ts.map +0 -1
  273. package/dist/adapters/http/ui/serve.mjs.map +0 -1
  274. package/dist/adapters/http/ui/types.d.ts +0 -20
  275. package/dist/adapters/http/ui/types.d.ts.map +0 -1
  276. package/dist/core/entities/client/web-client.d.ts +0 -72
  277. package/dist/core/entities/client/web-client.d.ts.map +0 -1
  278. package/dist/core/entities/client/web-client.mjs +0 -123
  279. package/dist/core/entities/client/web-client.mjs.map +0 -1
  280. package/dist/ui/client/.vite/ssr-manifest.json +0 -54974
  281. package/dist/ui/client/assets/asap-latin-400-normal-Dc37g3Il.woff +0 -0
  282. package/dist/ui/client/assets/asap-latin-400-normal-DnZ1MOsG.woff2 +0 -0
  283. package/dist/ui/client/assets/asap-latin-700-normal-Dqcopq14.woff +0 -0
  284. package/dist/ui/client/assets/asap-latin-700-normal-l2Y8pi-F.woff2 +0 -0
  285. package/dist/ui/client/assets/asap-latin-ext-400-normal-C-fcRdtE.woff +0 -0
  286. package/dist/ui/client/assets/asap-latin-ext-400-normal-DwYtpHbV.woff2 +0 -0
  287. package/dist/ui/client/assets/asap-latin-ext-700-normal-D00OESsZ.woff +0 -0
  288. package/dist/ui/client/assets/asap-latin-ext-700-normal-y8bo5aW5.woff2 +0 -0
  289. package/dist/ui/client/assets/asap-vietnamese-400-normal-DGyJlJLT.woff2 +0 -0
  290. package/dist/ui/client/assets/asap-vietnamese-400-normal-lfLaoF2x.woff +0 -0
  291. package/dist/ui/client/assets/asap-vietnamese-700-normal-B-e19ug5.woff +0 -0
  292. package/dist/ui/client/assets/asap-vietnamese-700-normal-D-SxY94i.woff2 +0 -0
  293. package/dist/ui/client/assets/index-BTK3GPZZ.js +0 -106
  294. package/dist/ui/client/assets/index-Cx_pI7BS.css +0 -2
  295. package/dist/ui/client/assets/nunito-cyrillic-300-normal-BPQV259B.woff2 +0 -0
  296. package/dist/ui/client/assets/nunito-cyrillic-300-normal-g5qSsvc0.woff +0 -0
  297. package/dist/ui/client/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff +0 -0
  298. package/dist/ui/client/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2 +0 -0
  299. package/dist/ui/client/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff +0 -0
  300. package/dist/ui/client/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2 +0 -0
  301. package/dist/ui/client/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2 +0 -0
  302. package/dist/ui/client/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff +0 -0
  303. package/dist/ui/client/assets/nunito-cyrillic-ext-300-normal-BDHtqmCR.woff +0 -0
  304. package/dist/ui/client/assets/nunito-cyrillic-ext-300-normal-ChMQLIrm.woff2 +0 -0
  305. package/dist/ui/client/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2 +0 -0
  306. package/dist/ui/client/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.woff +0 -0
  307. package/dist/ui/client/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2 +0 -0
  308. package/dist/ui/client/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff +0 -0
  309. package/dist/ui/client/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2 +0 -0
  310. package/dist/ui/client/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff +0 -0
  311. package/dist/ui/client/assets/nunito-latin-300-normal-C3ZIKvzv.woff +0 -0
  312. package/dist/ui/client/assets/nunito-latin-300-normal-COoPE5VN.woff2 +0 -0
  313. package/dist/ui/client/assets/nunito-latin-400-normal-DKg4f3fz.woff +0 -0
  314. package/dist/ui/client/assets/nunito-latin-400-normal-r8SDr6Up.woff2 +0 -0
  315. package/dist/ui/client/assets/nunito-latin-600-normal-Br8yIETf.woff2 +0 -0
  316. package/dist/ui/client/assets/nunito-latin-600-normal-Cd0eNu1l.woff +0 -0
  317. package/dist/ui/client/assets/nunito-latin-700-normal-Dort48En.woff2 +0 -0
  318. package/dist/ui/client/assets/nunito-latin-700-normal-OcDqTBcA.woff +0 -0
  319. package/dist/ui/client/assets/nunito-latin-ext-300-normal-D1SyVuPt.woff2 +0 -0
  320. package/dist/ui/client/assets/nunito-latin-ext-300-normal-DfqbmdMl.woff +0 -0
  321. package/dist/ui/client/assets/nunito-latin-ext-400-normal-CjMJVfGn.woff +0 -0
  322. package/dist/ui/client/assets/nunito-latin-ext-400-normal-i-8OOpdj.woff2 +0 -0
  323. package/dist/ui/client/assets/nunito-latin-ext-600-normal-BKUpuB78.woff +0 -0
  324. package/dist/ui/client/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2 +0 -0
  325. package/dist/ui/client/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2 +0 -0
  326. package/dist/ui/client/assets/nunito-latin-ext-700-normal-D4woHhbd.woff +0 -0
  327. package/dist/ui/client/assets/nunito-vietnamese-300-normal-DATld5Vw.woff +0 -0
  328. package/dist/ui/client/assets/nunito-vietnamese-300-normal-mLneKULB.woff2 +0 -0
  329. package/dist/ui/client/assets/nunito-vietnamese-400-normal-BHkVbP3T.woff2 +0 -0
  330. package/dist/ui/client/assets/nunito-vietnamese-400-normal-DtOtW02z.woff +0 -0
  331. package/dist/ui/client/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2 +0 -0
  332. package/dist/ui/client/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff +0 -0
  333. package/dist/ui/client/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff +0 -0
  334. package/dist/ui/client/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2 +0 -0
  335. package/dist/ui/client/index.html +0 -22
  336. package/dist/ui/server/assets/multipart-parser-BCMy8Xwv.js +0 -181
  337. package/dist/ui/server/assets/multipart-parser-BVY8pIV2.js +0 -176
  338. package/dist/ui/server/server.js +0 -155269
  339. /package/dist/adapters/http/{ui → middleware/built-in}/types.mjs +0 -0
@@ -0,0 +1,82 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { isObject } from "@authup/kit";
5
+ //#region src/core/provisioning/merge/module.ts
6
+ function buildProvisioningEntityKey(attributes) {
7
+ if (!attributes.name) return void 0;
8
+ return `${attributes.name}:${attributes.realmId || ""}:${attributes.clientId || ""}`;
9
+ }
10
+ function mergeProvisioningEntities(target, source, options = {}) {
11
+ if (!source) return target;
12
+ if (!target) return [...source];
13
+ const result = [...target];
14
+ source.forEach((item) => {
15
+ const key = buildProvisioningEntityKey(item.attributes);
16
+ if (!key) {
17
+ result.push(item);
18
+ return;
19
+ }
20
+ const idx = result.findIndex((r) => buildProvisioningEntityKey(r.attributes) === key);
21
+ if (idx !== -1) result[idx] = mergeProvisioningEntity(result[idx], item, options);
22
+ else result.push(item);
23
+ });
24
+ return result;
25
+ }
26
+ /**
27
+ * Deep-merge two entries sharing a composite key. The later (source) side
28
+ * wins per attribute, but relations are UNIONED — a later source (e.g. a
29
+ * mounted provisioning file) extending a built-in entry (the default
30
+ * source's master realm) must not silently drop the built-in relations
31
+ * (admin user, system client).
32
+ *
33
+ * Policy extraAttributes merge per key with the later source winning —
34
+ * like attributes, NOT like relations: an EA value (a names denylist,
35
+ * an ATTRIBUTES query tree) is policy configuration, and unioning would
36
+ * make shrinking a list impossible and fabricate predicates neither
37
+ * source authored.
38
+ */ function mergeProvisioningEntity(target, source, options = {}) {
39
+ const output = {
40
+ ...target,
41
+ ...source
42
+ };
43
+ output.attributes = {
44
+ ...target.attributes,
45
+ ...source.attributes
46
+ };
47
+ const inheritStrategy = options.inheritStrategy ?? true;
48
+ if (target.strategy && !source.strategy) if (inheritStrategy) output.strategy = target.strategy;
49
+ else delete output.strategy;
50
+ if (target.relations && source.relations) output.relations = mergeProvisioningRecord(target.relations, source.relations, options);
51
+ else if (target.relations && !source.relations) output.relations = target.relations;
52
+ if (target.extraAttributes && source.extraAttributes) output.extraAttributes = {
53
+ ...target.extraAttributes,
54
+ ...source.extraAttributes
55
+ };
56
+ else if (target.extraAttributes && !source.extraAttributes) output.extraAttributes = target.extraAttributes;
57
+ if (target.children && source.children) output.children = mergeProvisioningEntities(target.children, source.children, options);
58
+ else if (target.children && !source.children) output.children = target.children;
59
+ return output;
60
+ }
61
+ function mergeProvisioningRecord(target, source, options = {}) {
62
+ const output = { ...target };
63
+ for (const key of Object.keys(source)) output[key] = key in target ? mergeProvisioningValue(target[key], source[key], options) : source[key];
64
+ return output;
65
+ }
66
+ function mergeProvisioningValue(target, source, options = {}) {
67
+ if (typeof target === "undefined") return source;
68
+ if (typeof source === "undefined") return target;
69
+ if (Array.isArray(target) && Array.isArray(source)) {
70
+ if (isProvisioningEntityArray(target) || isProvisioningEntityArray(source)) return mergeProvisioningEntities(target, source, options);
71
+ return [.../* @__PURE__ */ new Set([...target, ...source])];
72
+ }
73
+ if (isObject(target) && isObject(source)) return mergeProvisioningRecord(target, source, options);
74
+ return source;
75
+ }
76
+ function isProvisioningEntityArray(value) {
77
+ return value.some((item) => isObject(item) && "attributes" in item);
78
+ }
79
+ //#endregion
80
+ export { buildProvisioningEntityKey, mergeProvisioningEntities, mergeProvisioningEntity };
81
+
82
+ //# sourceMappingURL=module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.mjs","names":["isObject","buildProvisioningEntityKey","attributes","name","undefined","realmId","clientId","mergeProvisioningEntities","target","source","options","result","forEach","item","key","push","idx","findIndex","r","mergeProvisioningEntity","output","inheritStrategy","strategy","relations","mergeProvisioningRecord","extraAttributes","children","Object","keys","mergeProvisioningValue","Array","isArray","isProvisioningEntityArray","Set","value","some"],"sources":["../../../../src/core/provisioning/merge/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/kit';\nimport type { MergeProvisioningOptions, MergeableProvisioningEntity } from './types.ts';\n\nexport function buildProvisioningEntityKey(\n attributes: MergeableProvisioningEntity['attributes'],\n): string | undefined {\n if (!attributes.name) return undefined;\n return `${attributes.name}:${attributes.realmId || ''}:${attributes.clientId || ''}`;\n}\n\nexport function mergeProvisioningEntities<T extends MergeableProvisioningEntity>(\n target: T[] | undefined,\n source: T[] | undefined,\n options: MergeProvisioningOptions = {},\n): T[] | undefined {\n if (!source) return target;\n if (!target) return [...source];\n\n const result = [...target];\n source.forEach((item) => {\n const key = buildProvisioningEntityKey(item.attributes);\n if (!key) {\n result.push(item);\n return;\n }\n\n const idx = result.findIndex((r) => buildProvisioningEntityKey(r.attributes) === key);\n if (idx !== -1) {\n result[idx] = mergeProvisioningEntity(result[idx], item, options) as T;\n } else {\n result.push(item);\n }\n });\n return result;\n}\n\n/**\n * Deep-merge two entries sharing a composite key. The later (source) side\n * wins per attribute, but relations are UNIONED — a later source (e.g. a\n * mounted provisioning file) extending a built-in entry (the default\n * source's master realm) must not silently drop the built-in relations\n * (admin user, system client).\n *\n * Policy extraAttributes merge per key with the later source winning —\n * like attributes, NOT like relations: an EA value (a names denylist,\n * an ATTRIBUTES query tree) is policy configuration, and unioning would\n * make shrinking a list impossible and fabricate predicates neither\n * source authored.\n */\nexport function mergeProvisioningEntity(\n target: MergeableProvisioningEntity,\n source: MergeableProvisioningEntity,\n options: MergeProvisioningOptions = {},\n): MergeableProvisioningEntity {\n const output = { ...target, ...source };\n\n output.attributes = { ...target.attributes, ...source.attributes };\n\n const inheritStrategy = options.inheritStrategy ?? true;\n if (target.strategy && !source.strategy) {\n if (inheritStrategy) {\n output.strategy = target.strategy;\n } else {\n delete output.strategy;\n }\n }\n\n if (target.relations && source.relations) {\n output.relations = mergeProvisioningRecord(target.relations, source.relations, options);\n } else if (target.relations && !source.relations) {\n output.relations = target.relations;\n }\n\n if (target.extraAttributes && source.extraAttributes) {\n output.extraAttributes = { ...target.extraAttributes, ...source.extraAttributes };\n } else if (target.extraAttributes && !source.extraAttributes) {\n output.extraAttributes = target.extraAttributes;\n }\n\n if (target.children && source.children) {\n output.children = mergeProvisioningEntities(target.children, source.children, options);\n } else if (target.children && !source.children) {\n output.children = target.children;\n }\n\n return output;\n}\n\nfunction mergeProvisioningRecord(\n target: Record<string, unknown>,\n source: Record<string, unknown>,\n options: MergeProvisioningOptions = {},\n): Record<string, unknown> {\n const output : Record<string, unknown> = { ...target };\n for (const key of Object.keys(source)) {\n output[key] = key in target ?\n mergeProvisioningValue(target[key], source[key], options) :\n source[key];\n }\n return output;\n}\n\nfunction mergeProvisioningValue(\n target: unknown,\n source: unknown,\n options: MergeProvisioningOptions = {},\n): unknown {\n if (typeof target === 'undefined') return source;\n if (typeof source === 'undefined') return target;\n\n if (Array.isArray(target) && Array.isArray(source)) {\n if (isProvisioningEntityArray(target) || isProvisioningEntityArray(source)) {\n return mergeProvisioningEntities(\n target as MergeableProvisioningEntity[],\n source as MergeableProvisioningEntity[],\n options,\n );\n }\n return [...new Set([...target, ...source])];\n }\n\n if (isObject(target) && isObject(source)) {\n return mergeProvisioningRecord(target, source, options);\n }\n\n return source;\n}\n\nfunction isProvisioningEntityArray(value: unknown[]): value is MergeableProvisioningEntity[] {\n return value.some(\n (item) => isObject(item) && 'attributes' in item,\n );\n}\n"],"mappings":";;;;;AAUA,SAAgBC,2BACZC,YAAqD;CAErD,IAAI,CAACA,WAAWC,MAAM,OAAOC,KAAAA;CAC7B,OAAO,GAAGF,WAAWC,KAAK,GAAGD,WAAWG,WAAW,GAAG,GAAGH,WAAWI,YAAY;AACpF;AAEA,SAAgBC,0BACZC,QACAC,QACAC,UAAoC,CAAC,GAAC;CAEtC,IAAI,CAACD,QAAQ,OAAOD;CACpB,IAAI,CAACA,QAAQ,OAAO,CAAIC,GAAAA,MAAO;CAE/B,MAAME,SAAS,CAAIH,GAAAA,MAAO;CAC1BC,OAAOG,SAASC,SAAAA;EACZ,MAAMC,MAAMb,2BAA2BY,KAAKX,UAAU;EACtD,IAAI,CAACY,KAAK;GACNH,OAAOI,KAAKF,IAAAA;GACZ;EACJ;EAEA,MAAMG,MAAML,OAAOM,WAAWC,MAAMjB,2BAA2BiB,EAAEhB,UAAU,MAAMY,GAAAA;EACjF,IAAIE,QAAQ,IACRL,OAAOK,OAAOG,wBAAwBR,OAAOK,MAAMH,MAAMH,OAAAA;OAEzDC,OAAOI,KAAKF,IAAAA;CAEpB,CAAA;CACA,OAAOF;AACX;;;;;;;;;;;;;GAeA,SAAgBQ,wBACZX,QACAC,QACAC,UAAoC,CAAC,GAAC;CAEtC,MAAMU,SAAS;EAAE,GAAGZ;EAAQ,GAAGC;CAAO;CAEtCW,OAAOlB,aAAa;EAAE,GAAGM,OAAON;EAAY,GAAGO,OAAOP;CAAW;CAEjE,MAAMmB,kBAAkBX,QAAQW,mBAAmB;CACnD,IAAIb,OAAOc,YAAY,CAACb,OAAOa,UAC3B,IAAID,iBACAD,OAAOE,WAAWd,OAAOc;MAEzB,OAAOF,OAAOE;CAItB,IAAId,OAAOe,aAAad,OAAOc,WAC3BH,OAAOG,YAAYC,wBAAwBhB,OAAOe,WAAWd,OAAOc,WAAWb,OAAAA;MAC5E,IAAIF,OAAOe,aAAa,CAACd,OAAOc,WACnCH,OAAOG,YAAYf,OAAOe;CAG9B,IAAIf,OAAOiB,mBAAmBhB,OAAOgB,iBACjCL,OAAOK,kBAAkB;EAAE,GAAGjB,OAAOiB;EAAiB,GAAGhB,OAAOgB;CAAgB;MAC7E,IAAIjB,OAAOiB,mBAAmB,CAAChB,OAAOgB,iBACzCL,OAAOK,kBAAkBjB,OAAOiB;CAGpC,IAAIjB,OAAOkB,YAAYjB,OAAOiB,UAC1BN,OAAOM,WAAWnB,0BAA0BC,OAAOkB,UAAUjB,OAAOiB,UAAUhB,OAAAA;MAC3E,IAAIF,OAAOkB,YAAY,CAACjB,OAAOiB,UAClCN,OAAOM,WAAWlB,OAAOkB;CAG7B,OAAON;AACX;AAEA,SAASI,wBACLhB,QACAC,QACAC,UAAoC,CAAC,GAAC;CAEtC,MAAMU,SAAmC,EAAE,GAAGZ,OAAO;CACrD,KAAK,MAAMM,OAAOa,OAAOC,KAAKnB,MAAAA,GAC1BW,OAAON,OAAOA,OAAON,SACjBqB,uBAAuBrB,OAAOM,MAAML,OAAOK,MAAMJ,OAAAA,IACjDD,OAAOK;CAEf,OAAOM;AACX;AAEA,SAASS,uBACLrB,QACAC,QACAC,UAAoC,CAAC,GAAC;CAEtC,IAAI,OAAOF,WAAW,aAAa,OAAOC;CAC1C,IAAI,OAAOA,WAAW,aAAa,OAAOD;CAE1C,IAAIsB,MAAMC,QAAQvB,MAAAA,KAAWsB,MAAMC,QAAQtB,MAAAA,GAAS;EAChD,IAAIuB,0BAA0BxB,MAAAA,KAAWwB,0BAA0BvB,MAAAA,GAC/D,OAAOF,0BACHC,QACAC,QACAC,OAAAA;EAGR,OAAO,CAAI,mBAAA,IAAIuB,IAAI,CAAIzB,GAAAA,QAAWC,GAAAA,MAAO,CAAA,CAAE;CAC/C;CAEA,IAAIT,SAASQ,MAAAA,KAAWR,SAASS,MAAAA,GAC7B,OAAOe,wBAAwBhB,QAAQC,QAAQC,OAAAA;CAGnD,OAAOD;AACX;AAEA,SAASuB,0BAA0BE,OAAgB;CAC/C,OAAOA,MAAMC,MACRtB,SAASb,SAASa,IAAAA,KAAS,gBAAgBA,IAAAA;AAEpD"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Structural view of a provisioning entity used by the deep merge.
3
+ * Covers every entity shape (realm, client, user, role, permission, scope,
4
+ * policy): the composite-key attribute bag plus the deep-mergeable groups.
5
+ */
6
+ export type MergeProvisioningOptions = {
7
+ /**
8
+ * May a source entry that declares no `strategy` inherit the target's?
9
+ *
10
+ * True for the composite source, where target/source are "earlier file"
11
+ * and "later file" and inheriting an unspecified strategy is the
12
+ * documented rule.
13
+ *
14
+ * False for the wildcard expansion, where the precedence is INVERTED:
15
+ * the target is the wildcard (low precedence) and the source is an
16
+ * explicit realm block (high precedence). Inheriting there would let a
17
+ * wildcard child supply the lifecycle of an entity the operator declared
18
+ * explicitly, and `absent` is part of that vocabulary, so a wildcard
19
+ * sweep would delete the very row the explicit block declares.
20
+ */
21
+ inheritStrategy?: boolean;
22
+ };
23
+ export type MergeableProvisioningEntity = {
24
+ attributes: {
25
+ name?: string;
26
+ realmId?: string | null;
27
+ clientId?: string | null;
28
+ };
29
+ strategy?: unknown;
30
+ relations?: Record<string, unknown>;
31
+ children?: MergeableProvisioningEntity[];
32
+ extraAttributes?: Record<string, unknown>;
33
+ };
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/provisioning/merge/types.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACnC;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,UAAU,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ export {};
@@ -1,8 +1,18 @@
1
+ import type { Realm } from '@authup/core-kit';
1
2
  import type { RootProvisioningEntity } from './entities/index.ts';
2
3
  import type { IContainer } from 'eldin';
3
4
  export interface IProvisioningSource {
4
5
  load(container: IContainer): Promise<RootProvisioningEntity>;
5
6
  }
7
+ /**
8
+ * A provisioner invoked for one realm: at startup (backfill over every
9
+ * existing realm) and on runtime realm creation (`RealmService.save`).
10
+ * Implementations must be idempotent; a failure must never fail realm
11
+ * creation (the caller logs and continues).
12
+ */
13
+ export interface IRealmProvisioner {
14
+ ensureForRealm(realm: Realm): Promise<void>;
15
+ }
6
16
  export interface IProvisioningSynchronizer<T> {
7
17
  synchronize(input: T): Promise<T>;
8
18
  synchronizeMany(input: T[]): Promise<T[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/provisioning/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAChC,IAAI,CAAC,SAAS,EAAE,UAAU,GAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IACxC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,GAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAC9C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/provisioning/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAChC,IAAI,CAAC,SAAS,EAAE,UAAU,GAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACjE;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAC9B,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IACxC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,GAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAC9C"}
@@ -0,0 +1,3 @@
1
+ export * from './module.ts';
2
+ export * from './types.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/provisioning/wildcard/index.ts"],"names":[],"mappings":"AAOA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { WildcardRealmProvisioner, expandWildcardRealmEntry, extractWildcardRealmEntry } from "./module.mjs";
5
+ export { WildcardRealmProvisioner, expandWildcardRealmEntry, extractWildcardRealmEntry };
@@ -0,0 +1,53 @@
1
+ import type { Realm } from '@authup/core-kit';
2
+ import type { Logger } from '@authup/server-kit';
3
+ import type { RealmProvisioningEntity, RealmProvisioningRelations } from '../entities/index.ts';
4
+ import type { IProvisioningSynchronizer, IRealmProvisioner } from '../types.ts';
5
+ import type { WildcardRealmProvisionerContext } from './types.ts';
6
+ /**
7
+ * Split the wildcard entries (attributes.name === '*') out of
8
+ * `data.realms`, folding multiples (several files, several entries) into
9
+ * one via the composite merge rules. The folded entry is stripped to a
10
+ * relations-only shape: a wildcard entry is a SELECTOR over realms, so
11
+ * realm-level attributes and a realm-level strategy carry no meaning
12
+ * (validated away on the file path; discarded structurally here so
13
+ * programmatic sources get the same semantics).
14
+ */
15
+ export declare function extractWildcardRealmEntry(data: {
16
+ realms?: RealmProvisioningEntity[];
17
+ }): RealmProvisioningEntity | undefined;
18
+ /**
19
+ * Deep-merge the wildcard entry UNDER every explicit realm entry (explicit
20
+ * wins per attribute, relation lists union, the explicit child's strategy
21
+ * wins when it carries one) so the graph sync covers those realms in
22
+ * one pass. Returns the merged relations per canonical realm name, kept
23
+ * PRISTINE (cloned before the sync mutates anything) for the runtime
24
+ * creation hook.
25
+ */
26
+ export declare function expandWildcardRealmEntry(wildcard: RealmProvisioningEntity, data: {
27
+ realms?: RealmProvisioningEntity[];
28
+ }): Map<string, RealmProvisioningRelations>;
29
+ /**
30
+ * Applies the wildcard entry's relations to ONE realm, by synthesizing a
31
+ * realm provisioning entity and pushing it through the regular realm
32
+ * synchronizer (scopes -> clients -> permissions -> roles -> users; the
33
+ * realm row itself is resolved by name and, carrying no strategy, is
34
+ * never modified). The entry is deep-cloned per application: the
35
+ * synchronizer mutates its input (realmId stamping, `replace` writes the
36
+ * resolved row id back), so a shared object would leak one realm's ids
37
+ * into the next realm's sync.
38
+ */
39
+ export declare class WildcardRealmProvisioner implements IRealmProvisioner {
40
+ protected relations: RealmProvisioningRelations;
41
+ protected relationsByRealmName?: Map<string, RealmProvisioningRelations>;
42
+ protected synchronizer: IProvisioningSynchronizer<RealmProvisioningEntity>;
43
+ protected logger?: Logger;
44
+ constructor(ctx: WildcardRealmProvisionerContext);
45
+ /**
46
+ * True when the loaded config also declares this realm explicitly:
47
+ * the startup graph sync already covers it (expansion), so the boot
48
+ * backfill loop skips it.
49
+ */
50
+ hasExplicitEntry(realm: Realm): boolean;
51
+ ensureForRealm(realm: Realm): Promise<void>;
52
+ }
53
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/core/provisioning/wildcard/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEhG,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAMlE;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACrC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,uBAAuB,EAAE,CAAA;CAAE,GAC7C,uBAAuB,GAAG,SAAS,CAyBrC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACpC,QAAQ,EAAE,uBAAuB,EACjC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,uBAAuB,EAAE,CAAA;CAAE,GAC7C,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CA8BzC;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAyB,YAAW,iBAAiB;IAC9D,SAAS,CAAC,SAAS,EAAE,0BAA0B,CAAC;IAEhD,SAAS,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAEzE,SAAS,CAAC,YAAY,EAAE,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;IAE3E,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEd,GAAG,EAAE,+BAA+B;IAOhD;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAOjC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBpD"}
@@ -0,0 +1,91 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import "../constants.mjs";
5
+ import { mergeProvisioningEntity } from "../merge/module.mjs";
6
+ import "../merge/index.mjs";
7
+ //#region src/core/provisioning/wildcard/module.ts
8
+ function canonicalizeRealmName(name) {
9
+ return name.trim().toLowerCase();
10
+ }
11
+ /**
12
+ * Split the wildcard entries (attributes.name === '*') out of
13
+ * `data.realms`, folding multiples (several files, several entries) into
14
+ * one via the composite merge rules. The folded entry is stripped to a
15
+ * relations-only shape: a wildcard entry is a SELECTOR over realms, so
16
+ * realm-level attributes and a realm-level strategy carry no meaning
17
+ * (validated away on the file path; discarded structurally here so
18
+ * programmatic sources get the same semantics).
19
+ */ function extractWildcardRealmEntry(data) {
20
+ if (!data.realms || data.realms.length === 0) return;
21
+ const wildcards = data.realms.filter((entry) => entry.attributes.name === "*");
22
+ if (wildcards.length === 0) return;
23
+ data.realms = data.realms.filter((entry) => entry.attributes.name !== "*");
24
+ let folded = wildcards[0];
25
+ for (let i = 1; i < wildcards.length; i++) folded = mergeProvisioningEntity(folded, wildcards[i]);
26
+ return {
27
+ attributes: { name: "*" },
28
+ relations: folded.relations ?? {}
29
+ };
30
+ }
31
+ /**
32
+ * Deep-merge the wildcard entry UNDER every explicit realm entry (explicit
33
+ * wins per attribute, relation lists union, the explicit child's strategy
34
+ * wins when it carries one) so the graph sync covers those realms in
35
+ * one pass. Returns the merged relations per canonical realm name, kept
36
+ * PRISTINE (cloned before the sync mutates anything) for the runtime
37
+ * creation hook.
38
+ */ function expandWildcardRealmEntry(wildcard, data) {
39
+ const variants = /* @__PURE__ */ new Map();
40
+ if (data.realms) data.realms = data.realms.map((entry) => {
41
+ const merged = mergeProvisioningEntity(structuredClone(wildcard), entry, { inheritStrategy: false });
42
+ if (entry.attributes.name) variants.set(canonicalizeRealmName(entry.attributes.name), structuredClone(merged.relations ?? {}));
43
+ return merged;
44
+ });
45
+ return variants;
46
+ }
47
+ /**
48
+ * Applies the wildcard entry's relations to ONE realm, by synthesizing a
49
+ * realm provisioning entity and pushing it through the regular realm
50
+ * synchronizer (scopes -> clients -> permissions -> roles -> users; the
51
+ * realm row itself is resolved by name and, carrying no strategy, is
52
+ * never modified). The entry is deep-cloned per application: the
53
+ * synchronizer mutates its input (realmId stamping, `replace` writes the
54
+ * resolved row id back), so a shared object would leak one realm's ids
55
+ * into the next realm's sync.
56
+ */ var WildcardRealmProvisioner = class {
57
+ relations;
58
+ relationsByRealmName;
59
+ synchronizer;
60
+ logger;
61
+ constructor(ctx) {
62
+ this.relations = ctx.relations;
63
+ this.relationsByRealmName = ctx.relationsByRealmName;
64
+ this.synchronizer = ctx.synchronizer;
65
+ this.logger = ctx.logger;
66
+ }
67
+ /**
68
+ * True when the loaded config also declares this realm explicitly:
69
+ * the startup graph sync already covers it (expansion), so the boot
70
+ * backfill loop skips it.
71
+ */ hasExplicitEntry(realm) {
72
+ if (!this.relationsByRealmName || !realm.name) return false;
73
+ return this.relationsByRealmName.has(canonicalizeRealmName(realm.name));
74
+ }
75
+ async ensureForRealm(realm) {
76
+ if (!realm.name) {
77
+ this.logger?.warn(`Skipping wildcard realm provisioning for realm ${realm.id}: the realm carries no name.`);
78
+ return;
79
+ }
80
+ const name = canonicalizeRealmName(realm.name);
81
+ const relations = this.relationsByRealmName?.get(name) ?? this.relations;
82
+ await this.synchronizer.synchronize(structuredClone({
83
+ attributes: { name },
84
+ relations
85
+ }));
86
+ }
87
+ };
88
+ //#endregion
89
+ export { WildcardRealmProvisioner, expandWildcardRealmEntry, extractWildcardRealmEntry };
90
+
91
+ //# sourceMappingURL=module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.mjs","names":["REALM_WILDCARD_NAME","mergeProvisioningEntity","canonicalizeRealmName","name","trim","toLowerCase","extractWildcardRealmEntry","data","realms","length","undefined","wildcards","filter","entry","attributes","folded","i","relations","expandWildcardRealmEntry","wildcard","variants","Map","map","merged","structuredClone","inheritStrategy","set","WildcardRealmProvisioner","relationsByRealmName","synchronizer","logger","ctx","hasExplicitEntry","realm","has","ensureForRealm","warn","id","get","synchronize"],"sources":["../../../../src/core/provisioning/wildcard/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Realm } from '@authup/core-kit';\nimport type { Logger } from '@authup/server-kit';\nimport { REALM_WILDCARD_NAME } from '../constants.ts';\nimport type { RealmProvisioningEntity, RealmProvisioningRelations } from '../entities/index.ts';\nimport { mergeProvisioningEntity } from '../merge/index.ts';\nimport type { IProvisioningSynchronizer, IRealmProvisioner } from '../types.ts';\nimport type { WildcardRealmProvisionerContext } from './types.ts';\n\nfunction canonicalizeRealmName(name: string): string {\n return name.trim().toLowerCase();\n}\n\n/**\n * Split the wildcard entries (attributes.name === '*') out of\n * `data.realms`, folding multiples (several files, several entries) into\n * one via the composite merge rules. The folded entry is stripped to a\n * relations-only shape: a wildcard entry is a SELECTOR over realms, so\n * realm-level attributes and a realm-level strategy carry no meaning\n * (validated away on the file path; discarded structurally here so\n * programmatic sources get the same semantics).\n */\nexport function extractWildcardRealmEntry(\n data: { realms?: RealmProvisioningEntity[] },\n): RealmProvisioningEntity | undefined {\n if (!data.realms || data.realms.length === 0) {\n return undefined;\n }\n\n const wildcards = data.realms.filter(\n (entry) => entry.attributes.name === REALM_WILDCARD_NAME,\n );\n if (wildcards.length === 0) {\n return undefined;\n }\n\n data.realms = data.realms.filter(\n (entry) => entry.attributes.name !== REALM_WILDCARD_NAME,\n );\n\n let folded = wildcards[0];\n for (let i = 1; i < wildcards.length; i++) {\n folded = mergeProvisioningEntity(folded, wildcards[i]) as RealmProvisioningEntity;\n }\n\n return {\n attributes: { name: REALM_WILDCARD_NAME },\n relations: folded.relations ?? {},\n };\n}\n\n/**\n * Deep-merge the wildcard entry UNDER every explicit realm entry (explicit\n * wins per attribute, relation lists union, the explicit child's strategy\n * wins when it carries one) so the graph sync covers those realms in\n * one pass. Returns the merged relations per canonical realm name, kept\n * PRISTINE (cloned before the sync mutates anything) for the runtime\n * creation hook.\n */\nexport function expandWildcardRealmEntry(\n wildcard: RealmProvisioningEntity,\n data: { realms?: RealmProvisioningEntity[] },\n): Map<string, RealmProvisioningRelations> {\n const variants = new Map<string, RealmProvisioningRelations>();\n\n if (data.realms) {\n data.realms = data.realms.map((entry) => {\n // inheritStrategy: false — the precedence here is inverted\n // relative to the composite source. The wildcard is the low\n // precedence side, so it must not supply the lifecycle of an\n // entity the operator declared explicitly: a wildcard child\n // carrying `absent` would otherwise delete the very row the\n // explicit realm block declares. A child that declares no\n // strategy falls back to the normal default instead.\n const merged = mergeProvisioningEntity(\n structuredClone(wildcard),\n entry,\n { inheritStrategy: false },\n ) as RealmProvisioningEntity;\n\n if (entry.attributes.name) {\n variants.set(\n canonicalizeRealmName(entry.attributes.name),\n structuredClone(merged.relations ?? {}),\n );\n }\n\n return merged;\n });\n }\n\n return variants;\n}\n\n/**\n * Applies the wildcard entry's relations to ONE realm, by synthesizing a\n * realm provisioning entity and pushing it through the regular realm\n * synchronizer (scopes -> clients -> permissions -> roles -> users; the\n * realm row itself is resolved by name and, carrying no strategy, is\n * never modified). The entry is deep-cloned per application: the\n * synchronizer mutates its input (realmId stamping, `replace` writes the\n * resolved row id back), so a shared object would leak one realm's ids\n * into the next realm's sync.\n */\nexport class WildcardRealmProvisioner implements IRealmProvisioner {\n protected relations: RealmProvisioningRelations;\n\n protected relationsByRealmName?: Map<string, RealmProvisioningRelations>;\n\n protected synchronizer: IProvisioningSynchronizer<RealmProvisioningEntity>;\n\n protected logger?: Logger;\n\n constructor(ctx: WildcardRealmProvisionerContext) {\n this.relations = ctx.relations;\n this.relationsByRealmName = ctx.relationsByRealmName;\n this.synchronizer = ctx.synchronizer;\n this.logger = ctx.logger;\n }\n\n /**\n * True when the loaded config also declares this realm explicitly:\n * the startup graph sync already covers it (expansion), so the boot\n * backfill loop skips it.\n */\n hasExplicitEntry(realm: Realm): boolean {\n if (!this.relationsByRealmName || !realm.name) {\n return false;\n }\n return this.relationsByRealmName.has(canonicalizeRealmName(realm.name));\n }\n\n async ensureForRealm(realm: Realm): Promise<void> {\n if (!realm.name) {\n this.logger?.warn(\n `Skipping wildcard realm provisioning for realm ${realm.id}: the realm carries no name.`,\n );\n return;\n }\n\n const name = canonicalizeRealmName(realm.name);\n const relations = this.relationsByRealmName?.get(name) ?? this.relations;\n\n await this.synchronizer.synchronize(structuredClone({\n attributes: { name },\n relations,\n }));\n }\n}\n"],"mappings":";;;;;;;AAeA,SAASE,sBAAsBC,MAAY;CACvC,OAAOA,KAAKC,KAAI,CAAA,CAAGC,YAAW;AAClC;;;;;;;;;GAWA,SAAgBC,0BACZC,MAA4C;CAE5C,IAAI,CAACA,KAAKC,UAAUD,KAAKC,OAAOC,WAAW,GACvC;CAGJ,MAAME,YAAYJ,KAAKC,OAAOI,QACzBC,UAAUA,MAAMC,WAAWX,SAAAA,GAASH;CAEzC,IAAIW,UAAUF,WAAW,GACrB;CAGJF,KAAKC,SAASD,KAAKC,OAAOI,QACrBC,UAAUA,MAAMC,WAAWX,SAAAA,GAASH;CAGzC,IAAIe,SAASJ,UAAU;CACvB,KAAK,IAAIK,IAAI,GAAGA,IAAIL,UAAUF,QAAQO,KAClCD,SAASd,wBAAwBc,QAAQJ,UAAUK,EAAE;CAGzD,OAAO;EACHF,YAAY,EAAEX,MAAAA,IAA0B;EACxCc,WAAWF,OAAOE,aAAa,CAAC;CACpC;AACJ;;;;;;;;GAUA,SAAgBC,yBACZC,UACAZ,MAA4C;CAE5C,MAAMa,2BAAW,IAAIC,IAAAA;CAErB,IAAId,KAAKC,QACLD,KAAKC,SAASD,KAAKC,OAAOc,KAAKT,UAAAA;EAQ3B,MAAMU,SAAStB,wBACXuB,gBAAgBL,QAAAA,GAChBN,OACA,EAAEY,iBAAiB,MAAM,CAAA;EAG7B,IAAIZ,MAAMC,WAAWX,MACjBiB,SAASM,IACLxB,sBAAsBW,MAAMC,WAAWX,IAAI,GAC3CqB,gBAAgBD,OAAON,aAAa,CAAC,CAAA,CAAA;EAI7C,OAAOM;CACX,CAAA;CAGJ,OAAOH;AACX;;;;;;;;;;GAYA,IAAaO,2BAAb,MAAaA;CACCV;CAEAW;CAEAC;CAEAC;CAEV,YAAYC,KAAsC;EAC9C,KAAKd,YAAYc,IAAId;EACrB,KAAKW,uBAAuBG,IAAIH;EAChC,KAAKC,eAAeE,IAAIF;EACxB,KAAKC,SAASC,IAAID;CACtB;;;;;IAOAE,iBAAiBC,OAAuB;EACpC,IAAI,CAAC,KAAKL,wBAAwB,CAACK,MAAM9B,MACrC,OAAO;EAEX,OAAO,KAAKyB,qBAAqBM,IAAIhC,sBAAsB+B,MAAM9B,IAAI,CAAA;CACzE;CAEA,MAAMgC,eAAeF,OAA6B;EAC9C,IAAI,CAACA,MAAM9B,MAAM;GACb,KAAK2B,QAAQM,KACT,kDAAkDH,MAAMI,GAAG,6BAA6B;GAE5F;EACJ;EAEA,MAAMlC,OAAOD,sBAAsB+B,MAAM9B,IAAI;EAC7C,MAAMc,YAAY,KAAKW,sBAAsBU,IAAInC,IAAAA,KAAS,KAAKc;EAE/D,MAAM,KAAKY,aAAaU,YAAYf,gBAAgB;GAChDV,YAAY,EAAEX,KAAK;GACnBc;EACJ,CAAA,CAAA;CACJ;AACJ"}
@@ -0,0 +1,19 @@
1
+ import type { Logger } from '@authup/server-kit';
2
+ import type { RealmProvisioningEntity, RealmProvisioningRelations } from '../entities/index.ts';
3
+ import type { IProvisioningSynchronizer } from '../types.ts';
4
+ export type WildcardRealmProvisionerContext = {
5
+ /**
6
+ * The folded wildcard entry's relations, applied to realms without an
7
+ * explicit realm block.
8
+ */
9
+ relations: RealmProvisioningRelations;
10
+ /**
11
+ * Merged relations (wildcard deep-merged UNDER the explicit block) per
12
+ * canonical realm name, for realms the loaded config declares
13
+ * explicitly. Applied when such a realm is (re-)created at runtime.
14
+ */
15
+ relationsByRealmName?: Map<string, RealmProvisioningRelations>;
16
+ synchronizer: IProvisioningSynchronizer<RealmProvisioningEntity>;
17
+ logger?: Logger;
18
+ };
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/provisioning/wildcard/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,MAAM,+BAA+B,GAAG;IAC1C;;;OAGG;IACH,SAAS,EAAE,0BAA0B,CAAC;IAEtC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAE/D,YAAY,EAAE,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;IAEjE,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ export {};
package/dist/index.mjs CHANGED
@@ -131,6 +131,7 @@ import { ForceLoggedInMiddleware } from "./adapters/http/middleware/built-in/log
131
131
  import { ForceUserLoggedInMiddleware } from "./adapters/http/middleware/built-in/loggedin/user.mjs";
132
132
  import { RealmResolverMiddleware } from "./adapters/http/middleware/built-in/realm-resolver/module.mjs";
133
133
  import { createRealmResolverMiddleware } from "./adapters/http/middleware/built-in/realm-resolver/factory.mjs";
134
+ import { THEME_STORE_KEY, registerThemeMiddleware, useRequestTheme } from "./adapters/http/middleware/built-in/theme.mjs";
134
135
  import { VITE_SERVER_STORE_KEY, registerAssetsMiddleware } from "./adapters/http/middleware/built-in/assets.mjs";
135
136
  import { registerBasicMiddleware } from "./adapters/http/middleware/built-in/basic.mjs";
136
137
  import { registerCorsMiddleware } from "./adapters/http/middleware/built-in/cors.mjs";
@@ -166,6 +167,7 @@ import { IdentityProviderRoleMappingController } from "./adapters/http/controlle
166
167
  import { KeyController } from "./adapters/http/controllers/entities/key/module.mjs";
167
168
  import { PermissionController } from "./adapters/http/controllers/entities/permission/module.mjs";
168
169
  import { PermissionPolicyController } from "./adapters/http/controllers/entities/permission-policy/module.mjs";
170
+ import { AccountController } from "./adapters/http/controllers/workflows/account/module.mjs";
169
171
  import { ActivateController } from "./adapters/http/controllers/workflows/activate/module.mjs";
170
172
  import { AuthenticatorChallengeController } from "./adapters/http/controllers/workflows/authenticator-challenge/module.mjs";
171
173
  import { AuthorizeController } from "./adapters/http/controllers/workflows/authorize/module.mjs";
@@ -212,6 +214,8 @@ import { LDAPInjectionKey } from "./app/modules/ldap/constants.mjs";
212
214
  import { LdapModule } from "./app/modules/ldap/module.mjs";
213
215
  import { IdentityModule } from "./app/modules/identity/module.mjs";
214
216
  import { OAuth2Module } from "./app/modules/oauth2/module.mjs";
217
+ import { ProvisioningInjectionKey } from "./app/modules/provisioning/constants.mjs";
218
+ import { LazyWildcardRealmProvisioner } from "./app/modules/provisioning/lazy-wildcard.mjs";
215
219
  import { MailInjectionKey, MailTemplateRendererInjectionKey } from "./app/modules/mail/constants.mjs";
216
220
  import { MailModule } from "./app/modules/mail/module.mjs";
217
221
  import { HTTPModule } from "./app/modules/http/module.mjs";
@@ -228,4 +232,4 @@ import { defineCLIMigrationCommand } from "./cli/commands/migration.mjs";
228
232
  import { defineCLIStartCommand } from "./cli/commands/start.mjs";
229
233
  import "./cli/commands/index.mjs";
230
234
  import "reflect-metadata";
231
- export { ActivateController, ApplicationBuilder, AuthenticationInjectionKey, AuthenticationModule, AuthenticatorChallengeController, AuthorizationMiddleware, AuthorizeController, CERTIFICATE_SOURCES, CacheInjectionKey, CacheModule, CachePrefix, ClientController, ClientEntity, ClientIdentityRepository, ClientPermissionController, ClientPermissionEntity, ClientPermissionRepositoryAdapter, ClientPermissionRequestValidator, ClientPermissionSubscriber, ClientRepositoryAdapter, ClientRoleController, ClientRoleEntity, ClientRoleRepositoryAdapter, ClientRoleRequestValidator, ClientRoleSubscriber, ClientScopeController, ClientScopeEntity, ClientScopeRepositoryAdapter, ClientScopeRequestValidator, ClientScopeSubscriber, ClientSubscriber, ComponentsModule, CompositeProvisioningSource, ConfigEnvironmentVariableName, ConfigInjectionKey, ConfigModule, ConsentController, ConsentEntity, ConsentEntitySubscriber, DataSourceOptionsBuilder, DatabaseConflictError, DatabaseInjectionKey, DatabaseModule, DatabaseQueryResultCache, DefaultProvisioningSource, EntitySubscriber, EventController, EventEntity, EventRepositoryAdapter, FileProvisioningSource, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, HTTPClientCredentialsGrant, HTTPInjectionKey, HTTPModule, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, IdentityInjectionKey, IdentityModule, IdentityProviderAccountEntity, IdentityProviderAccountRepository, IdentityProviderAccountSubscriber, IdentityProviderAttributeEntity, IdentityProviderAttributeMappingEntity, IdentityProviderAttributeMappingRepository, IdentityProviderAttributeSubscriber, IdentityProviderController, IdentityProviderEntity, IdentityProviderPermissionMappingEntity, IdentityProviderPermissionMappingRepository, IdentityProviderRepository, IdentityProviderRepositoryAdapter, IdentityProviderRoleMappingController, IdentityProviderRoleMappingEntity, IdentityProviderRoleMappingRepository, IdentityProviderRoleMappingRepositoryAdapter, IdentityProviderRoleSubscriber, IdentityProviderSubscriber, JwkController, KeyController, KeyEntity, KeyRepositoryAdapter, LDAPInjectionKey, LOCALE_COOKIE, LdapModule, LoggerInjectionKey, LoggerModule, LogoutController, MailInjectionKey, MailModule, MailTemplateRendererInjectionKey, MetricsInjectionKey, ModuleName, OAuth2InjectionToken, OAuth2Module, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionDatabaseProvider, PermissionEntity, PermissionPolicyController, PermissionPolicyEntity, PermissionPolicyRepositoryAdapter, PermissionRepositoryAdapter, PermissionSubscriber, PolicyAttributeEntity, PolicyAttributeSubscriber, PolicyAttributesValidator, PolicyController, PolicyEntity, PolicyRepository, PolicyRepositoryAdapter, PolicySubscriber, PolicyValidator, PromAuthFlowMetrics, ProvisionerModule, RealmController, RealmEntity, RealmRepository, RealmRepositoryAdapter, RealmResolverMiddleware, RealmSubscriber, RegisterController, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, RoleAttributeController, RoleAttributeEntity, RoleAttributeRepositoryAdapter, RoleAttributeRequestValidator, RoleAttributeSubscriber, RoleController, RoleEntity, RolePermissionController, RolePermissionEntity, RolePermissionRepositoryAdapter, RolePermissionRequestValidator, RolePermissionSubscriber, RoleRepository, RoleRepositoryAdapter, RoleSubscriber, RuntimeModule, ScopeController, ScopeEntity, ScopeRepositoryAdapter, ScopeSubscriber, SessionController, SessionEntity, SessionRepository, SessionTokenEntity, StatusController, TokenController, TrustAnchorController, TrustAnchorEntity, TrustAnchorRepositoryAdapter, UI_HTTP_CLIENT_FACTORY_STORE_KEY, UserAttributeController, UserAttributeEntity, UserAttributeRepositoryAdapter, UserAttributeRequestValidator, UserAttributeSubscriber, UserAuthenticatorController, UserAuthenticatorEntity, UserAuthenticatorRepositoryAdapter, UserController, UserEntity, UserIdentityRepository, UserInfoController, UserPermissionController, UserPermissionEntity, UserPermissionRepositoryAdapter, UserPermissionRequestValidator, UserPermissionSubscriber, UserRepository, UserRepositoryAdapter, UserRoleController, UserRoleEntity, UserRoleRepositoryAdapter, UserRoleRequestValidator, UserRoleSubscriber, UserSubscriber, VITE_SERVER_STORE_KEY, applyRouteRealmIDToBody, buildActorContext, buildEntityDestinations, createApplication, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createRequestEventContextMiddleware, createRouteTemplateNormalizePath, createSwaggerMiddleware, dateToISOStringTransformer, defineCLIHealthCheckCommand, defineCLIMigrationCommand, defineCLIStartCommand, expandToOrigins, extractClientCertificateEvidence, extractClientCredentialsFromRequest, extractOAuth2ClientCertificateEvidence, getAppOrigins, getBodyRealmID, getDatabaseDriverErrorCode, getJwkRouteHandler, getJwksRouteHandler, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, guessOauth2GrantTypeByRequest, isDatabaseTypeSupported, isDatabaseTypeSupportedForEnvironment, isUniqueConstraintDatabaseError, readConfig, readConfigRaw, readConfigRawFromEnv, readConfigRawFromFS, readFromLocations, readRealmHint, readStringField, redactSensitiveURLParams, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerUIHttpClientMiddleware, runWithRequestEventContext, sanitizeRelativeRedirect, setRequestIdentity, setRequestMfaLoginTicket, setRequestPermissionEvaluator, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestEventContext, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestMfaLoginTicket, useRequestParamID, useRequestPermissionEvaluator, useRequestScopes, useRequestSessionId, useRequestToken };
235
+ export { AccountController, ActivateController, ApplicationBuilder, AuthenticationInjectionKey, AuthenticationModule, AuthenticatorChallengeController, AuthorizationMiddleware, AuthorizeController, CERTIFICATE_SOURCES, CacheInjectionKey, CacheModule, CachePrefix, ClientController, ClientEntity, ClientIdentityRepository, ClientPermissionController, ClientPermissionEntity, ClientPermissionRepositoryAdapter, ClientPermissionRequestValidator, ClientPermissionSubscriber, ClientRepositoryAdapter, ClientRoleController, ClientRoleEntity, ClientRoleRepositoryAdapter, ClientRoleRequestValidator, ClientRoleSubscriber, ClientScopeController, ClientScopeEntity, ClientScopeRepositoryAdapter, ClientScopeRequestValidator, ClientScopeSubscriber, ClientSubscriber, ComponentsModule, CompositeProvisioningSource, ConfigEnvironmentVariableName, ConfigInjectionKey, ConfigModule, ConsentController, ConsentEntity, ConsentEntitySubscriber, DataSourceOptionsBuilder, DatabaseConflictError, DatabaseInjectionKey, DatabaseModule, DatabaseQueryResultCache, DefaultProvisioningSource, EntitySubscriber, EventController, EventEntity, EventRepositoryAdapter, FileProvisioningSource, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, HTTPClientCredentialsGrant, HTTPInjectionKey, HTTPModule, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, IdentityInjectionKey, IdentityModule, IdentityProviderAccountEntity, IdentityProviderAccountRepository, IdentityProviderAccountSubscriber, IdentityProviderAttributeEntity, IdentityProviderAttributeMappingEntity, IdentityProviderAttributeMappingRepository, IdentityProviderAttributeSubscriber, IdentityProviderController, IdentityProviderEntity, IdentityProviderPermissionMappingEntity, IdentityProviderPermissionMappingRepository, IdentityProviderRepository, IdentityProviderRepositoryAdapter, IdentityProviderRoleMappingController, IdentityProviderRoleMappingEntity, IdentityProviderRoleMappingRepository, IdentityProviderRoleMappingRepositoryAdapter, IdentityProviderRoleSubscriber, IdentityProviderSubscriber, JwkController, KeyController, KeyEntity, KeyRepositoryAdapter, LDAPInjectionKey, LOCALE_COOKIE, LazyWildcardRealmProvisioner, LdapModule, LoggerInjectionKey, LoggerModule, LogoutController, MailInjectionKey, MailModule, MailTemplateRendererInjectionKey, MetricsInjectionKey, ModuleName, OAuth2InjectionToken, OAuth2Module, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionDatabaseProvider, PermissionEntity, PermissionPolicyController, PermissionPolicyEntity, PermissionPolicyRepositoryAdapter, PermissionRepositoryAdapter, PermissionSubscriber, PolicyAttributeEntity, PolicyAttributeSubscriber, PolicyAttributesValidator, PolicyController, PolicyEntity, PolicyRepository, PolicyRepositoryAdapter, PolicySubscriber, PolicyValidator, PromAuthFlowMetrics, ProvisionerModule, ProvisioningInjectionKey, RealmController, RealmEntity, RealmRepository, RealmRepositoryAdapter, RealmResolverMiddleware, RealmSubscriber, RegisterController, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, RoleAttributeController, RoleAttributeEntity, RoleAttributeRepositoryAdapter, RoleAttributeRequestValidator, RoleAttributeSubscriber, RoleController, RoleEntity, RolePermissionController, RolePermissionEntity, RolePermissionRepositoryAdapter, RolePermissionRequestValidator, RolePermissionSubscriber, RoleRepository, RoleRepositoryAdapter, RoleSubscriber, RuntimeModule, ScopeController, ScopeEntity, ScopeRepositoryAdapter, ScopeSubscriber, SessionController, SessionEntity, SessionRepository, SessionTokenEntity, StatusController, THEME_STORE_KEY, TokenController, TrustAnchorController, TrustAnchorEntity, TrustAnchorRepositoryAdapter, UI_HTTP_CLIENT_FACTORY_STORE_KEY, UserAttributeController, UserAttributeEntity, UserAttributeRepositoryAdapter, UserAttributeRequestValidator, UserAttributeSubscriber, UserAuthenticatorController, UserAuthenticatorEntity, UserAuthenticatorRepositoryAdapter, UserController, UserEntity, UserIdentityRepository, UserInfoController, UserPermissionController, UserPermissionEntity, UserPermissionRepositoryAdapter, UserPermissionRequestValidator, UserPermissionSubscriber, UserRepository, UserRepositoryAdapter, UserRoleController, UserRoleEntity, UserRoleRepositoryAdapter, UserRoleRequestValidator, UserRoleSubscriber, UserSubscriber, VITE_SERVER_STORE_KEY, applyRouteRealmIDToBody, buildActorContext, buildEntityDestinations, createApplication, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createRequestEventContextMiddleware, createRouteTemplateNormalizePath, createSwaggerMiddleware, dateToISOStringTransformer, defineCLIHealthCheckCommand, defineCLIMigrationCommand, defineCLIStartCommand, expandToOrigins, extractClientCertificateEvidence, extractClientCredentialsFromRequest, extractOAuth2ClientCertificateEvidence, getAppOrigins, getBodyRealmID, getDatabaseDriverErrorCode, getJwkRouteHandler, getJwksRouteHandler, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, guessOauth2GrantTypeByRequest, isDatabaseTypeSupported, isDatabaseTypeSupportedForEnvironment, isUniqueConstraintDatabaseError, readConfig, readConfigRaw, readConfigRawFromEnv, readConfigRawFromFS, readFromLocations, readRealmHint, readStringField, redactSensitiveURLParams, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerThemeMiddleware, registerUIHttpClientMiddleware, runWithRequestEventContext, sanitizeRelativeRedirect, setRequestIdentity, setRequestMfaLoginTicket, setRequestPermissionEvaluator, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestEventContext, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestMfaLoginTicket, useRequestParamID, useRequestPermissionEvaluator, useRequestScopes, useRequestSessionId, useRequestTheme, useRequestToken };
package/dist/path.d.ts CHANGED
@@ -2,6 +2,4 @@ export declare const CODE_PATH: string;
2
2
  export declare const PACKAGE_PATH: string;
3
3
  export declare const SRC_PATH: string;
4
4
  export declare const DIST_PATH: string;
5
- export declare const UI_DIST_PATH: string;
6
- export declare const UI_SOURCE_PATH: string;
7
5
  //# sourceMappingURL=path.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,SAAS,QAA+C,CAAC;AACtE,eAAO,MAAM,YAAY,QAA6B,CAAC;AACvD,eAAO,MAAM,QAAQ,QAAiC,CAAC;AACvD,eAAO,MAAM,SAAS,QAAkC,CAAC;AAEzD,eAAO,MAAM,YAAY,QAA6B,CAAC;AACvD,eAAO,MAAM,cAAc,QAAgC,CAAC"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,SAAS,QAA+C,CAAC;AACtE,eAAO,MAAM,YAAY,QAA6B,CAAC;AACvD,eAAO,MAAM,QAAQ,QAAiC,CAAC;AACvD,eAAO,MAAM,SAAS,QAAkC,CAAC"}
package/dist/path.mjs CHANGED
@@ -8,9 +8,7 @@ const CODE_PATH = path.dirname(fileURLToPath(import.meta.url));
8
8
  const PACKAGE_PATH = path.join(CODE_PATH, "..");
9
9
  const SRC_PATH = path.join(PACKAGE_PATH, "src");
10
10
  const DIST_PATH = path.join(PACKAGE_PATH, "dist");
11
- const UI_DIST_PATH = path.join(DIST_PATH, "ui");
12
- const UI_SOURCE_PATH = path.join(PACKAGE_PATH, "ui");
13
11
  //#endregion
14
- export { CODE_PATH, DIST_PATH, PACKAGE_PATH, SRC_PATH, UI_DIST_PATH, UI_SOURCE_PATH };
12
+ export { CODE_PATH, DIST_PATH, PACKAGE_PATH, SRC_PATH };
15
13
 
16
14
  //# sourceMappingURL=path.mjs.map
package/dist/path.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"path.mjs","names":["path","fileURLToPath","CODE_PATH","dirname","url","PACKAGE_PATH","join","SRC_PATH","DIST_PATH","UI_DIST_PATH","UI_SOURCE_PATH"],"sources":["../src/path.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-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 path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nexport const CODE_PATH = path.dirname(fileURLToPath(import.meta.url));\nexport const PACKAGE_PATH = path.join(CODE_PATH, '..');\nexport const SRC_PATH = path.join(PACKAGE_PATH, 'src');\nexport const DIST_PATH = path.join(PACKAGE_PATH, 'dist');\n\nexport const UI_DIST_PATH = path.join(DIST_PATH, 'ui');\nexport const UI_SOURCE_PATH = path.join(PACKAGE_PATH, 'ui');\n"],"mappings":";;;;;;AAUA,MAAaE,YAAYF,KAAKG,QAAQF,cAAc,YAAYG,GAAG,CAAA;AACnE,MAAaC,eAAeL,KAAKM,KAAKJ,WAAW,IAAA;AACjD,MAAaK,WAAWP,KAAKM,KAAKD,cAAc,KAAA;AAChD,MAAaG,YAAYR,KAAKM,KAAKD,cAAc,MAAA;AAEjD,MAAaI,eAAeT,KAAKM,KAAKE,WAAW,IAAA;AACjD,MAAaE,iBAAiBV,KAAKM,KAAKD,cAAc,IAAA"}
1
+ {"version":3,"file":"path.mjs","names":["path","fileURLToPath","CODE_PATH","dirname","url","PACKAGE_PATH","join","SRC_PATH","DIST_PATH"],"sources":["../src/path.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-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 path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nexport const CODE_PATH = path.dirname(fileURLToPath(import.meta.url));\nexport const PACKAGE_PATH = path.join(CODE_PATH, '..');\nexport const SRC_PATH = path.join(PACKAGE_PATH, 'src');\nexport const DIST_PATH = path.join(PACKAGE_PATH, 'dist');\n"],"mappings":";;;;;;AAUA,MAAaE,YAAYF,KAAKG,QAAQF,cAAc,YAAYG,GAAG,CAAA;AACnE,MAAaC,eAAeL,KAAKM,KAAKJ,WAAW,IAAA;AACjD,MAAaK,WAAWP,KAAKM,KAAKD,cAAc,KAAA;AAChD,MAAaG,YAAYR,KAAKM,KAAKD,cAAc,MAAA"}
package/dist/swagger.json CHANGED
@@ -4789,6 +4789,9 @@
4789
4789
  },
4790
4790
  "StatusResponseFeatures": {
4791
4791
  "properties": {
4792
+ "accountConsole": {
4793
+ "type": "boolean"
4794
+ },
4792
4795
  "emailVerification": {
4793
4796
  "type": "boolean"
4794
4797
  },
@@ -4800,6 +4803,7 @@
4800
4803
  }
4801
4804
  },
4802
4805
  "required": [
4806
+ "accountConsole",
4803
4807
  "emailVerification",
4804
4808
  "passwordRecovery",
4805
4809
  "registration"
@@ -10309,7 +10313,7 @@
10309
10313
  ]
10310
10314
  }
10311
10315
  },
10312
- "/activate": {
10316
+ "/account": {
10313
10317
  "get": {
10314
10318
  "operationId": "Serve",
10315
10319
  "responses": {
@@ -10327,6 +10331,46 @@
10327
10331
  "description": "",
10328
10332
  "tags": [],
10329
10333
  "parameters": []
10334
+ }
10335
+ },
10336
+ "/account/{page}": {
10337
+ "get": {
10338
+ "operationId": "ServePage",
10339
+ "responses": {
10340
+ "200": {
10341
+ "description": "Ok",
10342
+ "content": {
10343
+ "application/json": {
10344
+ "schema": {
10345
+ "type": "string"
10346
+ }
10347
+ }
10348
+ }
10349
+ }
10350
+ },
10351
+ "description": "",
10352
+ "tags": [],
10353
+ "parameters": []
10354
+ }
10355
+ },
10356
+ "/activate": {
10357
+ "get": {
10358
+ "operationId": "Serve_2",
10359
+ "responses": {
10360
+ "200": {
10361
+ "description": "Ok",
10362
+ "content": {
10363
+ "application/json": {
10364
+ "schema": {
10365
+ "type": "string"
10366
+ }
10367
+ }
10368
+ }
10369
+ }
10370
+ },
10371
+ "description": "",
10372
+ "tags": [],
10373
+ "parameters": []
10330
10374
  },
10331
10375
  "post": {
10332
10376
  "operationId": "Execute",
@@ -10483,7 +10527,7 @@
10483
10527
  "parameters": []
10484
10528
  },
10485
10529
  "get": {
10486
- "operationId": "Serve_2",
10530
+ "operationId": "Serve_3",
10487
10531
  "responses": {
10488
10532
  "200": {
10489
10533
  "description": "Ok",
@@ -10567,7 +10611,7 @@
10567
10611
  },
10568
10612
  "/logout": {
10569
10613
  "get": {
10570
- "operationId": "Serve_3",
10614
+ "operationId": "Serve_4",
10571
10615
  "responses": {
10572
10616
  "200": {
10573
10617
  "description": "Ok",
@@ -10639,7 +10683,7 @@
10639
10683
  },
10640
10684
  "/password-forgot": {
10641
10685
  "get": {
10642
- "operationId": "Serve_4",
10686
+ "operationId": "Serve_5",
10643
10687
  "responses": {
10644
10688
  "200": {
10645
10689
  "description": "Ok",
@@ -10688,7 +10732,7 @@
10688
10732
  },
10689
10733
  "/password-reset": {
10690
10734
  "get": {
10691
- "operationId": "Serve_5",
10735
+ "operationId": "Serve_6",
10692
10736
  "responses": {
10693
10737
  "200": {
10694
10738
  "description": "Ok",
@@ -10737,7 +10781,7 @@
10737
10781
  },
10738
10782
  "/register": {
10739
10783
  "get": {
10740
- "operationId": "Serve_6",
10784
+ "operationId": "Serve_7",
10741
10785
  "responses": {
10742
10786
  "200": {
10743
10787
  "description": "Ok",