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

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 (730) hide show
  1. package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
  2. package/dist/adapters/database/domains/client/entity.mjs +58 -30
  3. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  4. package/dist/adapters/database/domains/client-permission/entity.d.ts.map +1 -1
  5. package/dist/adapters/database/domains/client-permission/entity.mjs +48 -24
  6. package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
  7. package/dist/adapters/database/domains/client-role/entity.d.ts.map +1 -1
  8. package/dist/adapters/database/domains/client-role/entity.mjs +37 -17
  9. package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
  10. package/dist/adapters/database/domains/client-scope/entity.d.ts.map +1 -1
  11. package/dist/adapters/database/domains/client-scope/entity.mjs +30 -14
  12. package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
  13. package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -1
  14. package/dist/adapters/database/domains/consent/entity.mjs +34 -18
  15. package/dist/adapters/database/domains/consent/entity.mjs.map +1 -1
  16. package/dist/adapters/database/domains/event/entity.d.ts +1 -0
  17. package/dist/adapters/database/domains/event/entity.d.ts.map +1 -1
  18. package/dist/adapters/database/domains/event/entity.mjs +48 -23
  19. package/dist/adapters/database/domains/event/entity.mjs.map +1 -1
  20. package/dist/adapters/database/domains/identity-provider/entity.d.ts.map +1 -1
  21. package/dist/adapters/database/domains/identity-provider/entity.mjs +43 -23
  22. package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
  23. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts.map +1 -1
  24. package/dist/adapters/database/domains/identity-provider-account/entity.mjs +50 -22
  25. package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
  26. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts.map +1 -1
  27. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs +14 -6
  28. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
  29. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts.map +1 -1
  30. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs +5 -1
  31. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
  32. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts.map +1 -1
  33. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs +18 -6
  34. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
  35. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts.map +1 -1
  36. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs +34 -14
  37. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
  38. package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
  39. package/dist/adapters/database/domains/key/entity.mjs +35 -19
  40. package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
  41. package/dist/adapters/database/domains/permission/entity.d.ts.map +1 -1
  42. package/dist/adapters/database/domains/permission/entity.mjs +35 -19
  43. package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
  44. package/dist/adapters/database/domains/permission-policy/entity.d.ts.map +1 -1
  45. package/dist/adapters/database/domains/permission-policy/entity.mjs +37 -17
  46. package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
  47. package/dist/adapters/database/domains/policy/entity.d.ts.map +1 -1
  48. package/dist/adapters/database/domains/policy/entity.mjs +51 -27
  49. package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
  50. package/dist/adapters/database/domains/policy-attribute/entity.d.ts.map +1 -1
  51. package/dist/adapters/database/domains/policy-attribute/entity.mjs +14 -6
  52. package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
  53. package/dist/adapters/database/domains/realm/entity.d.ts.map +1 -1
  54. package/dist/adapters/database/domains/realm/entity.mjs +36 -20
  55. package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
  56. package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
  57. package/dist/adapters/database/domains/role/entity.mjs +44 -24
  58. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  59. package/dist/adapters/database/domains/role-attribute/entity.d.ts.map +1 -1
  60. package/dist/adapters/database/domains/role-attribute/entity.mjs +30 -14
  61. package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
  62. package/dist/adapters/database/domains/role-permission/entity.d.ts.map +1 -1
  63. package/dist/adapters/database/domains/role-permission/entity.mjs +45 -21
  64. package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
  65. package/dist/adapters/database/domains/scope/entity.d.ts.map +1 -1
  66. package/dist/adapters/database/domains/scope/entity.mjs +35 -19
  67. package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
  68. package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
  69. package/dist/adapters/database/domains/session/entity.mjs +63 -31
  70. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  71. package/dist/adapters/database/domains/session-token/entity.d.ts +4 -1
  72. package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -1
  73. package/dist/adapters/database/domains/session-token/entity.mjs +40 -11
  74. package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -1
  75. package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -1
  76. package/dist/adapters/database/domains/trust-anchor/entity.mjs +25 -13
  77. package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -1
  78. package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
  79. package/dist/adapters/database/domains/user/entity.mjs +58 -34
  80. package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
  81. package/dist/adapters/database/domains/user-attribute/entity.d.ts.map +1 -1
  82. package/dist/adapters/database/domains/user-attribute/entity.mjs +27 -11
  83. package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
  84. package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -1
  85. package/dist/adapters/database/domains/user-authenticator/entity.mjs +43 -23
  86. package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -1
  87. package/dist/adapters/database/domains/user-permission/entity.d.ts.map +1 -1
  88. package/dist/adapters/database/domains/user-permission/entity.mjs +45 -21
  89. package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
  90. package/dist/adapters/database/domains/user-role/entity.d.ts.map +1 -1
  91. package/dist/adapters/database/domains/user-role/entity.mjs +37 -17
  92. package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
  93. package/dist/adapters/database/errors/driver.d.ts +9 -0
  94. package/dist/adapters/database/errors/driver.d.ts.map +1 -1
  95. package/dist/adapters/database/errors/driver.mjs +20 -1
  96. package/dist/adapters/database/errors/driver.mjs.map +1 -1
  97. package/dist/adapters/database/errors/index.mjs +2 -2
  98. package/dist/adapters/database/helpers/index.mjs +2 -2
  99. package/dist/adapters/database/helpers/is-supported.d.ts +7 -0
  100. package/dist/adapters/database/helpers/is-supported.d.ts.map +1 -1
  101. package/dist/adapters/database/helpers/is-supported.mjs +9 -1
  102. package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
  103. package/dist/adapters/database/index.mjs +3 -3
  104. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts +66 -0
  105. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
  106. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs +181 -0
  107. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
  108. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts +44 -0
  109. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts.map +1 -0
  110. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs +1294 -0
  111. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs.map +1 -0
  112. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts +43 -0
  113. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
  114. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs +120 -0
  115. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
  116. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts +44 -0
  117. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts.map +1 -0
  118. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs +987 -0
  119. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs.map +1 -0
  120. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +14 -2
  121. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  122. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +85 -19
  123. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  124. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +4 -1
  125. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
  126. package/dist/adapters/http/controllers/entities/identity-provider-account/index.d.ts.map +1 -0
  127. package/dist/adapters/http/controllers/entities/identity-provider-account/index.mjs +5 -0
  128. package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts +15 -0
  129. package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts.map +1 -0
  130. package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs +94 -0
  131. package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs.map +1 -0
  132. package/dist/adapters/http/controllers/entities/index.d.ts +2 -0
  133. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  134. package/dist/adapters/http/controllers/entities/index.mjs +5 -1
  135. package/dist/adapters/http/controllers/entities/session-token/index.d.ts +2 -0
  136. package/dist/adapters/http/controllers/entities/session-token/index.d.ts.map +1 -0
  137. package/dist/adapters/http/controllers/entities/session-token/index.mjs +5 -0
  138. package/dist/adapters/http/controllers/entities/session-token/module.d.ts +23 -0
  139. package/dist/adapters/http/controllers/entities/session-token/module.d.ts.map +1 -0
  140. package/dist/adapters/http/controllers/entities/session-token/module.mjs +112 -0
  141. package/dist/adapters/http/controllers/entities/session-token/module.mjs.map +1 -0
  142. package/dist/adapters/http/controllers/index.mjs +4 -1
  143. package/dist/adapters/http/controllers/workflows/account/index.d.ts +2 -0
  144. package/dist/adapters/http/controllers/workflows/account/index.d.ts.map +1 -0
  145. package/dist/adapters/http/controllers/workflows/account/index.mjs +5 -0
  146. package/dist/adapters/http/controllers/workflows/account/module.d.ts +24 -0
  147. package/dist/adapters/http/controllers/workflows/account/module.d.ts.map +1 -0
  148. package/dist/adapters/http/controllers/workflows/account/module.mjs +63 -0
  149. package/dist/adapters/http/controllers/workflows/account/module.mjs.map +1 -0
  150. package/dist/adapters/http/controllers/workflows/activate/module.mjs +1 -1
  151. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts.map +1 -1
  152. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +1 -0
  153. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -1
  154. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +2 -2
  155. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  156. package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
  157. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  158. package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
  159. package/dist/adapters/http/controllers/workflows/logout/module.mjs +2 -2
  160. package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
  161. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +1 -1
  162. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +1 -1
  163. package/dist/adapters/http/controllers/workflows/register/module.mjs +1 -1
  164. package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts.map +1 -1
  165. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs +5 -1
  166. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs.map +1 -1
  167. package/dist/adapters/http/index.mjs +5 -1
  168. package/dist/adapters/http/middleware/built-in/assets.d.ts +8 -1
  169. package/dist/adapters/http/middleware/built-in/assets.d.ts.map +1 -1
  170. package/dist/adapters/http/middleware/built-in/assets.mjs +48 -4
  171. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  172. package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
  173. package/dist/adapters/http/middleware/built-in/error.mjs +4 -3
  174. package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
  175. package/dist/adapters/http/middleware/built-in/index.d.ts +2 -0
  176. package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
  177. package/dist/adapters/http/middleware/built-in/index.mjs +2 -1
  178. package/dist/adapters/http/middleware/built-in/theme.d.ts +15 -0
  179. package/dist/adapters/http/middleware/built-in/theme.d.ts.map +1 -0
  180. package/dist/adapters/http/middleware/built-in/theme.mjs +27 -0
  181. package/dist/adapters/http/middleware/built-in/theme.mjs.map +1 -0
  182. package/dist/adapters/http/middleware/built-in/types.d.ts +14 -0
  183. package/dist/adapters/http/middleware/built-in/types.d.ts.map +1 -0
  184. package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +1 -1
  185. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +1 -1
  186. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +1 -1
  187. package/dist/adapters/http/middleware/index.mjs +2 -1
  188. package/dist/adapters/http/request/event-context.d.ts.map +1 -1
  189. package/dist/adapters/http/request/event-context.mjs +2 -0
  190. package/dist/adapters/http/request/event-context.mjs.map +1 -1
  191. package/dist/adapters/http/ui/account-console/index.d.ts +4 -0
  192. package/dist/adapters/http/ui/account-console/index.d.ts.map +1 -0
  193. package/dist/adapters/http/ui/account-console/index.mjs +6 -0
  194. package/dist/adapters/http/ui/account-console/module.d.ts +28 -0
  195. package/dist/adapters/http/ui/account-console/module.d.ts.map +1 -0
  196. package/dist/adapters/http/ui/account-console/module.mjs +80 -0
  197. package/dist/adapters/http/ui/account-console/module.mjs.map +1 -0
  198. package/dist/adapters/http/ui/account-console/ref.d.ts +30 -0
  199. package/dist/adapters/http/ui/account-console/ref.d.ts.map +1 -0
  200. package/dist/adapters/http/ui/account-console/ref.mjs +50 -0
  201. package/dist/adapters/http/ui/account-console/ref.mjs.map +1 -0
  202. package/dist/adapters/http/ui/account-console/types.d.ts +11 -0
  203. package/dist/adapters/http/ui/account-console/types.d.ts.map +1 -0
  204. package/dist/adapters/http/ui/account-console/types.mjs +4 -0
  205. package/dist/adapters/http/ui/{internal-http-client.d.ts → auth-console/http-client.d.ts} +1 -1
  206. package/dist/adapters/http/ui/auth-console/http-client.d.ts.map +1 -0
  207. package/dist/adapters/http/ui/{internal-http-client.mjs → auth-console/http-client.mjs} +2 -2
  208. package/dist/adapters/http/ui/auth-console/http-client.mjs.map +1 -0
  209. package/dist/adapters/http/ui/auth-console/index.d.ts +6 -0
  210. package/dist/adapters/http/ui/auth-console/index.d.ts.map +1 -0
  211. package/dist/adapters/http/ui/auth-console/index.mjs +8 -0
  212. package/dist/adapters/http/ui/auth-console/module.d.ts +4 -0
  213. package/dist/adapters/http/ui/auth-console/module.d.ts.map +1 -0
  214. package/dist/adapters/http/ui/auth-console/module.mjs +73 -0
  215. package/dist/adapters/http/ui/auth-console/module.mjs.map +1 -0
  216. package/dist/adapters/http/ui/auth-console/resolve.d.ts +21 -0
  217. package/dist/adapters/http/ui/auth-console/resolve.d.ts.map +1 -0
  218. package/dist/adapters/http/ui/auth-console/resolve.mjs +53 -0
  219. package/dist/adapters/http/ui/auth-console/resolve.mjs.map +1 -0
  220. package/dist/adapters/http/ui/{serve.d.ts → auth-console/serve.d.ts} +1 -8
  221. package/dist/adapters/http/ui/auth-console/serve.d.ts.map +1 -0
  222. package/dist/adapters/http/ui/{serve.mjs → auth-console/serve.mjs} +5 -5
  223. package/dist/adapters/http/ui/auth-console/serve.mjs.map +1 -0
  224. package/dist/adapters/http/ui/auth-console/types.d.ts +26 -0
  225. package/dist/adapters/http/ui/auth-console/types.d.ts.map +1 -0
  226. package/dist/adapters/http/ui/auth-console/types.mjs +4 -0
  227. package/dist/adapters/http/ui/console-packages/index.d.ts +3 -0
  228. package/dist/adapters/http/ui/console-packages/index.d.ts.map +1 -0
  229. package/dist/adapters/http/ui/console-packages/index.mjs +5 -0
  230. package/dist/adapters/http/ui/console-packages/module.d.ts +33 -0
  231. package/dist/adapters/http/ui/console-packages/module.d.ts.map +1 -0
  232. package/dist/adapters/http/ui/console-packages/module.mjs +70 -0
  233. package/dist/adapters/http/ui/console-packages/module.mjs.map +1 -0
  234. package/dist/adapters/http/ui/console-packages/types.d.ts +12 -0
  235. package/dist/adapters/http/ui/console-packages/types.d.ts.map +1 -0
  236. package/dist/adapters/http/ui/console-packages/types.mjs +4 -0
  237. package/dist/adapters/http/ui/index.d.ts +5 -5
  238. package/dist/adapters/http/ui/index.d.ts.map +1 -1
  239. package/dist/adapters/http/ui/index.mjs +22 -5
  240. package/dist/adapters/http/ui/shared/html.d.ts +76 -0
  241. package/dist/adapters/http/ui/shared/html.d.ts.map +1 -0
  242. package/dist/adapters/http/ui/shared/html.mjs +103 -0
  243. package/dist/adapters/http/ui/shared/html.mjs.map +1 -0
  244. package/dist/adapters/http/ui/shared/index.d.ts +2 -0
  245. package/dist/adapters/http/ui/shared/index.d.ts.map +1 -0
  246. package/dist/adapters/http/ui/shared/index.mjs +5 -0
  247. package/dist/adapters/http/ui/theme/apply.d.ts +12 -0
  248. package/dist/adapters/http/ui/theme/apply.d.ts.map +1 -0
  249. package/dist/adapters/http/ui/theme/apply.mjs +29 -0
  250. package/dist/adapters/http/ui/theme/apply.mjs.map +1 -0
  251. package/dist/adapters/http/ui/theme/assets.d.ts +20 -0
  252. package/dist/adapters/http/ui/theme/assets.d.ts.map +1 -0
  253. package/dist/adapters/http/ui/theme/assets.mjs +86 -0
  254. package/dist/adapters/http/ui/theme/assets.mjs.map +1 -0
  255. package/dist/adapters/http/ui/theme/constants.d.ts +16 -0
  256. package/dist/adapters/http/ui/theme/constants.d.ts.map +1 -0
  257. package/dist/adapters/http/ui/theme/constants.mjs +20 -0
  258. package/dist/adapters/http/ui/theme/constants.mjs.map +1 -0
  259. package/dist/adapters/http/ui/theme/contract/constants.d.ts +120 -0
  260. package/dist/adapters/http/ui/theme/contract/constants.d.ts.map +1 -0
  261. package/dist/adapters/http/ui/theme/contract/constants.mjs +136 -0
  262. package/dist/adapters/http/ui/theme/contract/constants.mjs.map +1 -0
  263. package/dist/adapters/http/ui/theme/contract/head.d.ts +12 -0
  264. package/dist/adapters/http/ui/theme/contract/head.d.ts.map +1 -0
  265. package/dist/adapters/http/ui/theme/contract/head.mjs +61 -0
  266. package/dist/adapters/http/ui/theme/contract/head.mjs.map +1 -0
  267. package/dist/adapters/http/ui/theme/contract/index.d.ts +6 -0
  268. package/dist/adapters/http/ui/theme/contract/index.d.ts.map +1 -0
  269. package/dist/adapters/http/ui/theme/contract/index.mjs +8 -0
  270. package/dist/adapters/http/ui/theme/contract/manifest.d.ts +25 -0
  271. package/dist/adapters/http/ui/theme/contract/manifest.d.ts.map +1 -0
  272. package/dist/adapters/http/ui/theme/contract/manifest.mjs +77 -0
  273. package/dist/adapters/http/ui/theme/contract/manifest.mjs.map +1 -0
  274. package/dist/adapters/http/ui/theme/contract/types.d.ts +26 -0
  275. package/dist/adapters/http/ui/theme/contract/types.d.ts.map +1 -0
  276. package/dist/adapters/http/ui/theme/contract/types.mjs +4 -0
  277. package/dist/adapters/http/ui/theme/contract/utils.d.ts +11 -0
  278. package/dist/adapters/http/ui/theme/contract/utils.d.ts.map +1 -0
  279. package/dist/adapters/http/ui/theme/contract/utils.mjs +22 -0
  280. package/dist/adapters/http/ui/theme/contract/utils.mjs.map +1 -0
  281. package/dist/adapters/http/ui/theme/index.d.ts +7 -0
  282. package/dist/adapters/http/ui/theme/index.d.ts.map +1 -0
  283. package/dist/adapters/http/ui/theme/index.mjs +13 -0
  284. package/dist/adapters/http/ui/theme/module.d.ts +79 -0
  285. package/dist/adapters/http/ui/theme/module.d.ts.map +1 -0
  286. package/dist/adapters/http/ui/theme/module.mjs +206 -0
  287. package/dist/adapters/http/ui/theme/module.mjs.map +1 -0
  288. package/dist/adapters/http/ui/theme/types.d.ts +42 -0
  289. package/dist/adapters/http/ui/theme/types.d.ts.map +1 -0
  290. package/dist/adapters/http/ui/theme/types.mjs +4 -0
  291. package/dist/app/index.mjs +4 -2
  292. package/dist/app/modules/config/constants.d.ts +5 -0
  293. package/dist/app/modules/config/constants.d.ts.map +1 -1
  294. package/dist/app/modules/config/constants.mjs +5 -0
  295. package/dist/app/modules/config/constants.mjs.map +1 -1
  296. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  297. package/dist/app/modules/config/normalize.mjs +8 -0
  298. package/dist/app/modules/config/normalize.mjs.map +1 -1
  299. package/dist/app/modules/config/origins.d.ts.map +1 -1
  300. package/dist/app/modules/config/origins.mjs +2 -0
  301. package/dist/app/modules/config/origins.mjs.map +1 -1
  302. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  303. package/dist/app/modules/config/read/env.mjs +10 -0
  304. package/dist/app/modules/config/read/env.mjs.map +1 -1
  305. package/dist/app/modules/config/types.d.ts +63 -3
  306. package/dist/app/modules/config/types.d.ts.map +1 -1
  307. package/dist/app/modules/config/validator.d.ts.map +1 -1
  308. package/dist/app/modules/config/validator.mjs +5 -0
  309. package/dist/app/modules/config/validator.mjs.map +1 -1
  310. package/dist/app/modules/database/index.mjs +2 -1
  311. package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts +2 -0
  312. package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts.map +1 -0
  313. package/dist/app/modules/database/repositories/identity-provider-account/index.mjs +5 -0
  314. package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts +18 -0
  315. package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts.map +1 -0
  316. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs +69 -0
  317. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs.map +1 -0
  318. package/dist/app/modules/database/repositories/index.d.ts +1 -0
  319. package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
  320. package/dist/app/modules/database/repositories/index.mjs +3 -1
  321. package/dist/app/modules/database/repositories/key/repository.d.ts +23 -0
  322. package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -1
  323. package/dist/app/modules/database/repositories/key/repository.mjs +39 -3
  324. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
  325. package/dist/app/modules/database/repositories/schema-validation.d.ts +14 -6
  326. package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -1
  327. package/dist/app/modules/database/repositories/schema-validation.mjs +18 -6
  328. package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -1
  329. package/dist/app/modules/http/module.d.ts.map +1 -1
  330. package/dist/app/modules/http/module.mjs +7 -1
  331. package/dist/app/modules/http/module.mjs.map +1 -1
  332. package/dist/app/modules/http/modules/controller.d.ts +5 -2
  333. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  334. package/dist/app/modules/http/modules/controller.mjs +57 -6
  335. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  336. package/dist/app/modules/http/modules/middleware.d.ts +9 -1
  337. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  338. package/dist/app/modules/http/modules/middleware.mjs +18 -3
  339. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  340. package/dist/app/modules/identity/index.mjs +1 -2
  341. package/dist/app/modules/identity/module.d.ts.map +1 -1
  342. package/dist/app/modules/identity/module.mjs +2 -2
  343. package/dist/app/modules/identity/module.mjs.map +1 -1
  344. package/dist/app/modules/identity/repositories/index.mjs +1 -2
  345. package/dist/app/modules/identity/repositories/provider/index.d.ts +0 -1
  346. package/dist/app/modules/identity/repositories/provider/index.d.ts.map +1 -1
  347. package/dist/app/modules/identity/repositories/provider/index.mjs +1 -3
  348. package/dist/app/modules/index.mjs +4 -2
  349. package/dist/app/modules/logger/module.d.ts.map +1 -1
  350. package/dist/app/modules/logger/module.mjs +1 -0
  351. package/dist/app/modules/logger/module.mjs.map +1 -1
  352. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +25 -1
  353. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
  354. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +70 -1
  355. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
  356. package/dist/app/modules/provisioning/constants.d.ts +12 -0
  357. package/dist/app/modules/provisioning/constants.d.ts.map +1 -0
  358. package/dist/app/modules/provisioning/constants.mjs +16 -0
  359. package/dist/app/modules/provisioning/constants.mjs.map +1 -0
  360. package/dist/app/modules/provisioning/index.d.ts +2 -0
  361. package/dist/app/modules/provisioning/index.d.ts.map +1 -1
  362. package/dist/app/modules/provisioning/index.mjs +3 -1
  363. package/dist/app/modules/provisioning/lazy-wildcard.d.ts +15 -0
  364. package/dist/app/modules/provisioning/lazy-wildcard.d.ts.map +1 -0
  365. package/dist/app/modules/provisioning/lazy-wildcard.mjs +23 -0
  366. package/dist/app/modules/provisioning/lazy-wildcard.mjs.map +1 -0
  367. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  368. package/dist/app/modules/provisioning/module.mjs +24 -4
  369. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  370. package/dist/app/modules/provisioning/sources/composite/module.d.ts +0 -19
  371. package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
  372. package/dist/app/modules/provisioning/sources/composite/module.mjs +7 -77
  373. package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
  374. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  375. package/dist/app/modules/provisioning/sources/default/module.mjs +1 -0
  376. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  377. package/dist/core/entities/client/index.d.ts +1 -1
  378. package/dist/core/entities/client/index.d.ts.map +1 -1
  379. package/dist/core/entities/client/index.mjs +2 -2
  380. package/dist/core/entities/client/schema.d.ts.map +1 -1
  381. package/dist/core/entities/client/schema.mjs +29 -10
  382. package/dist/core/entities/client/schema.mjs.map +1 -1
  383. package/dist/core/entities/client/service.mjs.map +1 -1
  384. package/dist/core/entities/client/system-clients.d.ts +95 -0
  385. package/dist/core/entities/client/system-clients.d.ts.map +1 -0
  386. package/dist/core/entities/client/system-clients.mjs +158 -0
  387. package/dist/core/entities/client/system-clients.mjs.map +1 -0
  388. package/dist/core/entities/client/types.d.ts +17 -4
  389. package/dist/core/entities/client/types.d.ts.map +1 -1
  390. package/dist/core/entities/client-permission/schema.d.ts.map +1 -1
  391. package/dist/core/entities/client-permission/schema.mjs +29 -6
  392. package/dist/core/entities/client-permission/schema.mjs.map +1 -1
  393. package/dist/core/entities/client-role/schema.d.ts.map +1 -1
  394. package/dist/core/entities/client-role/schema.mjs +27 -6
  395. package/dist/core/entities/client-role/schema.mjs.map +1 -1
  396. package/dist/core/entities/client-scope/schema.d.ts.map +1 -1
  397. package/dist/core/entities/client-scope/schema.mjs +19 -5
  398. package/dist/core/entities/client-scope/schema.mjs.map +1 -1
  399. package/dist/core/entities/consent/schema.d.ts.map +1 -1
  400. package/dist/core/entities/consent/schema.mjs +28 -6
  401. package/dist/core/entities/consent/schema.mjs.map +1 -1
  402. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
  403. package/dist/core/entities/event/entity-event-handler.mjs +2 -0
  404. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
  405. package/dist/core/entities/event/sanitize.d.ts.map +1 -1
  406. package/dist/core/entities/event/sanitize.mjs +7 -4
  407. package/dist/core/entities/event/sanitize.mjs.map +1 -1
  408. package/dist/core/entities/event/schema.d.ts.map +1 -1
  409. package/dist/core/entities/event/schema.mjs +45 -16
  410. package/dist/core/entities/event/schema.mjs.map +1 -1
  411. package/dist/core/entities/event/service.d.ts.map +1 -1
  412. package/dist/core/entities/event/service.mjs +2 -0
  413. package/dist/core/entities/event/service.mjs.map +1 -1
  414. package/dist/core/entities/event/types.d.ts +2 -0
  415. package/dist/core/entities/event/types.d.ts.map +1 -1
  416. package/dist/core/entities/identity-provider/schema.d.ts.map +1 -1
  417. package/dist/core/entities/identity-provider/schema.mjs +29 -11
  418. package/dist/core/entities/identity-provider/schema.mjs.map +1 -1
  419. package/dist/core/entities/identity-provider-account/error.d.ts +7 -0
  420. package/dist/core/entities/identity-provider-account/error.d.ts.map +1 -0
  421. package/dist/core/entities/identity-provider-account/error.mjs +24 -0
  422. package/dist/core/entities/identity-provider-account/error.mjs.map +1 -0
  423. package/dist/core/entities/identity-provider-account/index.d.ts +5 -0
  424. package/dist/core/entities/identity-provider-account/index.d.ts.map +1 -0
  425. package/dist/core/entities/identity-provider-account/index.mjs +8 -0
  426. package/dist/core/entities/identity-provider-account/schema.d.ts +3 -0
  427. package/dist/core/entities/identity-provider-account/schema.d.ts.map +1 -0
  428. package/dist/core/entities/identity-provider-account/schema.mjs +52 -0
  429. package/dist/core/entities/identity-provider-account/schema.mjs.map +1 -0
  430. package/dist/core/entities/identity-provider-account/service.d.ts +24 -0
  431. package/dist/core/entities/identity-provider-account/service.d.ts.map +1 -0
  432. package/dist/core/entities/identity-provider-account/service.mjs +129 -0
  433. package/dist/core/entities/identity-provider-account/service.mjs.map +1 -0
  434. package/dist/core/entities/identity-provider-account/types.d.ts +69 -0
  435. package/dist/core/entities/identity-provider-account/types.d.ts.map +1 -0
  436. package/dist/core/entities/identity-provider-account/types.mjs +17 -0
  437. package/dist/core/entities/identity-provider-account/types.mjs.map +1 -0
  438. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts.map +1 -1
  439. package/dist/core/entities/identity-provider-role-mapping/schema.mjs +27 -6
  440. package/dist/core/entities/identity-provider-role-mapping/schema.mjs.map +1 -1
  441. package/dist/core/entities/index.d.ts +2 -0
  442. package/dist/core/entities/index.d.ts.map +1 -1
  443. package/dist/core/entities/index.mjs +10 -2
  444. package/dist/core/entities/key/schema.d.ts.map +1 -1
  445. package/dist/core/entities/key/schema.mjs +39 -17
  446. package/dist/core/entities/key/schema.mjs.map +1 -1
  447. package/dist/core/entities/key/service.d.ts.map +1 -1
  448. package/dist/core/entities/key/service.mjs +1 -0
  449. package/dist/core/entities/key/service.mjs.map +1 -1
  450. package/dist/core/entities/permission/schema.d.ts.map +1 -1
  451. package/dist/core/entities/permission/schema.mjs +34 -13
  452. package/dist/core/entities/permission/schema.mjs.map +1 -1
  453. package/dist/core/entities/permission-policy/schema.d.ts.map +1 -1
  454. package/dist/core/entities/permission-policy/schema.mjs +27 -6
  455. package/dist/core/entities/permission-policy/schema.mjs.map +1 -1
  456. package/dist/core/entities/policy/schema.d.ts.map +1 -1
  457. package/dist/core/entities/policy/schema.mjs +31 -12
  458. package/dist/core/entities/policy/schema.mjs.map +1 -1
  459. package/dist/core/entities/realm/schema.d.ts.map +1 -1
  460. package/dist/core/entities/realm/schema.mjs +26 -12
  461. package/dist/core/entities/realm/schema.mjs.map +1 -1
  462. package/dist/core/entities/realm/service.d.ts +8 -6
  463. package/dist/core/entities/realm/service.d.ts.map +1 -1
  464. package/dist/core/entities/realm/service.mjs +5 -8
  465. package/dist/core/entities/realm/service.mjs.map +1 -1
  466. package/dist/core/entities/role/schema.d.ts.map +1 -1
  467. package/dist/core/entities/role/schema.mjs +36 -14
  468. package/dist/core/entities/role/schema.mjs.map +1 -1
  469. package/dist/core/entities/role-attribute/schema.d.ts.map +1 -1
  470. package/dist/core/entities/role-attribute/schema.mjs +28 -14
  471. package/dist/core/entities/role-attribute/schema.mjs.map +1 -1
  472. package/dist/core/entities/role-permission/schema.d.ts.map +1 -1
  473. package/dist/core/entities/role-permission/schema.mjs +29 -6
  474. package/dist/core/entities/role-permission/schema.mjs.map +1 -1
  475. package/dist/core/entities/scope/schema.d.ts.map +1 -1
  476. package/dist/core/entities/scope/schema.mjs +28 -12
  477. package/dist/core/entities/scope/schema.mjs.map +1 -1
  478. package/dist/core/entities/session/schema.d.ts.map +1 -1
  479. package/dist/core/entities/session/schema.mjs +41 -9
  480. package/dist/core/entities/session/schema.mjs.map +1 -1
  481. package/dist/core/entities/session-token/index.d.ts +4 -0
  482. package/dist/core/entities/session-token/index.d.ts.map +1 -0
  483. package/dist/core/entities/session-token/index.mjs +6 -0
  484. package/dist/core/entities/session-token/schema.d.ts +12 -0
  485. package/dist/core/entities/session-token/schema.d.ts.map +1 -0
  486. package/dist/core/entities/session-token/schema.mjs +66 -0
  487. package/dist/core/entities/session-token/schema.mjs.map +1 -0
  488. package/dist/core/entities/session-token/service.d.ts +70 -0
  489. package/dist/core/entities/session-token/service.d.ts.map +1 -0
  490. package/dist/core/entities/session-token/service.mjs +216 -0
  491. package/dist/core/entities/session-token/service.mjs.map +1 -0
  492. package/dist/core/entities/session-token/types.d.ts +37 -0
  493. package/dist/core/entities/session-token/types.d.ts.map +1 -0
  494. package/dist/core/entities/session-token/types.mjs +4 -0
  495. package/dist/core/entities/trust-anchor/schema.d.ts.map +1 -1
  496. package/dist/core/entities/trust-anchor/schema.mjs +27 -13
  497. package/dist/core/entities/trust-anchor/schema.mjs.map +1 -1
  498. package/dist/core/entities/trust-anchor/service.d.ts.map +1 -1
  499. package/dist/core/entities/trust-anchor/service.mjs +1 -0
  500. package/dist/core/entities/trust-anchor/service.mjs.map +1 -1
  501. package/dist/core/entities/user/schema.d.ts.map +1 -1
  502. package/dist/core/entities/user/schema.mjs +29 -12
  503. package/dist/core/entities/user/schema.mjs.map +1 -1
  504. package/dist/core/entities/user-attribute/schema.d.ts.map +1 -1
  505. package/dist/core/entities/user-attribute/schema.mjs +28 -14
  506. package/dist/core/entities/user-attribute/schema.mjs.map +1 -1
  507. package/dist/core/entities/user-authenticator/schema.d.ts.map +1 -1
  508. package/dist/core/entities/user-authenticator/schema.mjs +29 -12
  509. package/dist/core/entities/user-authenticator/schema.mjs.map +1 -1
  510. package/dist/core/entities/user-authenticator/service.d.ts +2 -1
  511. package/dist/core/entities/user-authenticator/service.d.ts.map +1 -1
  512. package/dist/core/entities/user-authenticator/service.mjs +5 -0
  513. package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
  514. package/dist/core/entities/user-authenticator/types.d.ts +7 -1
  515. package/dist/core/entities/user-authenticator/types.d.ts.map +1 -1
  516. package/dist/core/entities/user-authenticator/types.mjs.map +1 -1
  517. package/dist/core/entities/user-permission/schema.d.ts.map +1 -1
  518. package/dist/core/entities/user-permission/schema.mjs +29 -6
  519. package/dist/core/entities/user-permission/schema.mjs.map +1 -1
  520. package/dist/core/entities/user-role/schema.d.ts.map +1 -1
  521. package/dist/core/entities/user-role/schema.mjs +27 -6
  522. package/dist/core/entities/user-role/schema.mjs.map +1 -1
  523. package/dist/core/identity/index.mjs +2 -1
  524. package/dist/core/identity/provider/account/error.d.ts +7 -0
  525. package/dist/core/identity/provider/account/error.d.ts.map +1 -0
  526. package/dist/core/identity/provider/account/error.mjs +24 -0
  527. package/dist/core/identity/provider/account/error.mjs.map +1 -0
  528. package/dist/core/identity/provider/account/index.d.ts +1 -0
  529. package/dist/core/identity/provider/account/index.d.ts.map +1 -1
  530. package/dist/core/identity/provider/account/index.mjs +2 -1
  531. package/dist/core/identity/provider/account/module.d.ts +2 -0
  532. package/dist/core/identity/provider/account/module.d.ts.map +1 -1
  533. package/dist/core/identity/provider/account/module.mjs +30 -0
  534. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  535. package/dist/core/identity/provider/account/types.d.ts +12 -10
  536. package/dist/core/identity/provider/account/types.d.ts.map +1 -1
  537. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts +1 -0
  538. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
  539. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +5 -1
  540. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  541. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts +7 -0
  542. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts.map +1 -1
  543. package/dist/core/identity/provider/index.mjs +2 -1
  544. package/dist/core/index.mjs +15 -3
  545. package/dist/core/key/types.d.ts +2 -1
  546. package/dist/core/key/types.d.ts.map +1 -1
  547. package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
  548. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +2 -2
  549. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  550. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  551. package/dist/core/oauth2/authorization/module.mjs +2 -0
  552. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  553. package/dist/core/oauth2/authorization/state/types.d.ts +11 -0
  554. package/dist/core/oauth2/authorization/state/types.d.ts.map +1 -1
  555. package/dist/core/oauth2/end-session/service.d.ts.map +1 -1
  556. package/dist/core/oauth2/end-session/service.mjs +4 -4
  557. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  558. package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
  559. package/dist/core/oauth2/grant-types/authorize.mjs +1 -5
  560. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  561. package/dist/core/oauth2/grant-types/password.mjs +2 -5
  562. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  563. package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
  564. package/dist/core/oauth2/grant-types/refresh-token.mjs +37 -24
  565. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  566. package/dist/core/oauth2/index.mjs +3 -1
  567. package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -1
  568. package/dist/core/oauth2/mfa-login/module.mjs +4 -7
  569. package/dist/core/oauth2/mfa-login/module.mjs.map +1 -1
  570. package/dist/core/oauth2/session-token/error.d.ts +36 -0
  571. package/dist/core/oauth2/session-token/error.d.ts.map +1 -0
  572. package/dist/core/oauth2/session-token/error.mjs +49 -0
  573. package/dist/core/oauth2/session-token/error.mjs.map +1 -0
  574. package/dist/core/oauth2/session-token/index.d.ts +1 -0
  575. package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
  576. package/dist/core/oauth2/session-token/index.mjs +2 -1
  577. package/dist/core/oauth2/session-token/types.d.ts +40 -0
  578. package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
  579. package/dist/core/oauth2/token/issuer/access/module.d.ts.map +1 -1
  580. package/dist/core/oauth2/token/issuer/access/module.mjs +1 -0
  581. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  582. package/dist/core/oauth2/token/issuer/base.d.ts +1 -1
  583. package/dist/core/oauth2/token/issuer/base.d.ts.map +1 -1
  584. package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
  585. package/dist/core/oauth2/token/issuer/refresh/module.d.ts.map +1 -1
  586. package/dist/core/oauth2/token/issuer/refresh/module.mjs +1 -0
  587. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  588. package/dist/core/provisioning/constants.d.ts +8 -0
  589. package/dist/core/provisioning/constants.d.ts.map +1 -0
  590. package/dist/core/provisioning/constants.mjs +14 -0
  591. package/dist/core/provisioning/constants.mjs.map +1 -0
  592. package/dist/core/provisioning/entities/index.mjs +2 -1
  593. package/dist/core/provisioning/entities/realm/index.d.ts +1 -0
  594. package/dist/core/provisioning/entities/realm/index.d.ts.map +1 -1
  595. package/dist/core/provisioning/entities/realm/index.mjs +2 -1
  596. package/dist/core/provisioning/entities/realm/validator.d.ts +11 -0
  597. package/dist/core/provisioning/entities/realm/validator.d.ts.map +1 -1
  598. package/dist/core/provisioning/entities/realm/validator.mjs +14 -0
  599. package/dist/core/provisioning/entities/realm/validator.mjs.map +1 -1
  600. package/dist/core/provisioning/entities/realm/wildcard-validator.d.ts +19 -0
  601. package/dist/core/provisioning/entities/realm/wildcard-validator.d.ts.map +1 -0
  602. package/dist/core/provisioning/entities/realm/wildcard-validator.mjs +65 -0
  603. package/dist/core/provisioning/entities/realm/wildcard-validator.mjs.map +1 -0
  604. package/dist/core/provisioning/index.d.ts +3 -0
  605. package/dist/core/provisioning/index.d.ts.map +1 -1
  606. package/dist/core/provisioning/index.mjs +7 -1
  607. package/dist/core/provisioning/merge/index.d.ts +3 -0
  608. package/dist/core/provisioning/merge/index.d.ts.map +1 -0
  609. package/dist/core/provisioning/merge/index.mjs +5 -0
  610. package/dist/core/provisioning/merge/module.d.ts +18 -0
  611. package/dist/core/provisioning/merge/module.d.ts.map +1 -0
  612. package/dist/core/provisioning/merge/module.mjs +82 -0
  613. package/dist/core/provisioning/merge/module.mjs.map +1 -0
  614. package/dist/core/provisioning/merge/types.d.ts +34 -0
  615. package/dist/core/provisioning/merge/types.d.ts.map +1 -0
  616. package/dist/core/provisioning/merge/types.mjs +4 -0
  617. package/dist/core/provisioning/types.d.ts +10 -0
  618. package/dist/core/provisioning/types.d.ts.map +1 -1
  619. package/dist/core/provisioning/wildcard/index.d.ts +3 -0
  620. package/dist/core/provisioning/wildcard/index.d.ts.map +1 -0
  621. package/dist/core/provisioning/wildcard/index.mjs +5 -0
  622. package/dist/core/provisioning/wildcard/module.d.ts +53 -0
  623. package/dist/core/provisioning/wildcard/module.d.ts.map +1 -0
  624. package/dist/core/provisioning/wildcard/module.mjs +91 -0
  625. package/dist/core/provisioning/wildcard/module.mjs.map +1 -0
  626. package/dist/core/provisioning/wildcard/types.d.ts +19 -0
  627. package/dist/core/provisioning/wildcard/types.d.ts.map +1 -0
  628. package/dist/core/provisioning/wildcard/types.mjs +4 -0
  629. package/dist/core/query/index.mjs +2 -2
  630. package/dist/core/query/module.d.ts +19 -9
  631. package/dist/core/query/module.d.ts.map +1 -1
  632. package/dist/core/query/module.mjs +22 -10
  633. package/dist/core/query/module.mjs.map +1 -1
  634. package/dist/index.mjs +10 -4
  635. package/dist/path.d.ts +0 -2
  636. package/dist/path.d.ts.map +1 -1
  637. package/dist/path.mjs +1 -3
  638. package/dist/path.mjs.map +1 -1
  639. package/dist/swagger.json +885 -112
  640. package/dist/utils/error.d.ts +20 -3
  641. package/dist/utils/error.d.ts.map +1 -1
  642. package/dist/utils/error.mjs +102 -5
  643. package/dist/utils/error.mjs.map +1 -1
  644. package/dist/utils/index.mjs +2 -2
  645. package/package.json +25 -61
  646. package/dist/adapters/http/ui/base-path.d.ts +0 -9
  647. package/dist/adapters/http/ui/base-path.d.ts.map +0 -1
  648. package/dist/adapters/http/ui/base-path.mjs +0 -18
  649. package/dist/adapters/http/ui/base-path.mjs.map +0 -1
  650. package/dist/adapters/http/ui/internal-http-client.d.ts.map +0 -1
  651. package/dist/adapters/http/ui/internal-http-client.mjs.map +0 -1
  652. package/dist/adapters/http/ui/render.d.ts +0 -4
  653. package/dist/adapters/http/ui/render.d.ts.map +0 -1
  654. package/dist/adapters/http/ui/render.mjs +0 -63
  655. package/dist/adapters/http/ui/render.mjs.map +0 -1
  656. package/dist/adapters/http/ui/serve.d.ts.map +0 -1
  657. package/dist/adapters/http/ui/serve.mjs.map +0 -1
  658. package/dist/adapters/http/ui/types.d.ts +0 -20
  659. package/dist/adapters/http/ui/types.d.ts.map +0 -1
  660. package/dist/app/modules/identity/repositories/provider/account/index.d.ts.map +0 -1
  661. package/dist/app/modules/identity/repositories/provider/account/index.mjs +0 -5
  662. package/dist/app/modules/identity/repositories/provider/account/module.d.ts +0 -10
  663. package/dist/app/modules/identity/repositories/provider/account/module.d.ts.map +0 -1
  664. package/dist/app/modules/identity/repositories/provider/account/module.mjs +0 -28
  665. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +0 -1
  666. package/dist/core/entities/client/web-client.d.ts +0 -72
  667. package/dist/core/entities/client/web-client.d.ts.map +0 -1
  668. package/dist/core/entities/client/web-client.mjs +0 -123
  669. package/dist/core/entities/client/web-client.mjs.map +0 -1
  670. package/dist/ui/client/.vite/ssr-manifest.json +0 -54974
  671. package/dist/ui/client/assets/asap-latin-400-normal-Dc37g3Il.woff +0 -0
  672. package/dist/ui/client/assets/asap-latin-400-normal-DnZ1MOsG.woff2 +0 -0
  673. package/dist/ui/client/assets/asap-latin-700-normal-Dqcopq14.woff +0 -0
  674. package/dist/ui/client/assets/asap-latin-700-normal-l2Y8pi-F.woff2 +0 -0
  675. package/dist/ui/client/assets/asap-latin-ext-400-normal-C-fcRdtE.woff +0 -0
  676. package/dist/ui/client/assets/asap-latin-ext-400-normal-DwYtpHbV.woff2 +0 -0
  677. package/dist/ui/client/assets/asap-latin-ext-700-normal-D00OESsZ.woff +0 -0
  678. package/dist/ui/client/assets/asap-latin-ext-700-normal-y8bo5aW5.woff2 +0 -0
  679. package/dist/ui/client/assets/asap-vietnamese-400-normal-DGyJlJLT.woff2 +0 -0
  680. package/dist/ui/client/assets/asap-vietnamese-400-normal-lfLaoF2x.woff +0 -0
  681. package/dist/ui/client/assets/asap-vietnamese-700-normal-B-e19ug5.woff +0 -0
  682. package/dist/ui/client/assets/asap-vietnamese-700-normal-D-SxY94i.woff2 +0 -0
  683. package/dist/ui/client/assets/index-BTK3GPZZ.js +0 -106
  684. package/dist/ui/client/assets/index-Cx_pI7BS.css +0 -2
  685. package/dist/ui/client/assets/nunito-cyrillic-300-normal-BPQV259B.woff2 +0 -0
  686. package/dist/ui/client/assets/nunito-cyrillic-300-normal-g5qSsvc0.woff +0 -0
  687. package/dist/ui/client/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff +0 -0
  688. package/dist/ui/client/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2 +0 -0
  689. package/dist/ui/client/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff +0 -0
  690. package/dist/ui/client/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2 +0 -0
  691. package/dist/ui/client/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2 +0 -0
  692. package/dist/ui/client/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff +0 -0
  693. package/dist/ui/client/assets/nunito-cyrillic-ext-300-normal-BDHtqmCR.woff +0 -0
  694. package/dist/ui/client/assets/nunito-cyrillic-ext-300-normal-ChMQLIrm.woff2 +0 -0
  695. package/dist/ui/client/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2 +0 -0
  696. package/dist/ui/client/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.woff +0 -0
  697. package/dist/ui/client/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2 +0 -0
  698. package/dist/ui/client/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff +0 -0
  699. package/dist/ui/client/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2 +0 -0
  700. package/dist/ui/client/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff +0 -0
  701. package/dist/ui/client/assets/nunito-latin-300-normal-C3ZIKvzv.woff +0 -0
  702. package/dist/ui/client/assets/nunito-latin-300-normal-COoPE5VN.woff2 +0 -0
  703. package/dist/ui/client/assets/nunito-latin-400-normal-DKg4f3fz.woff +0 -0
  704. package/dist/ui/client/assets/nunito-latin-400-normal-r8SDr6Up.woff2 +0 -0
  705. package/dist/ui/client/assets/nunito-latin-600-normal-Br8yIETf.woff2 +0 -0
  706. package/dist/ui/client/assets/nunito-latin-600-normal-Cd0eNu1l.woff +0 -0
  707. package/dist/ui/client/assets/nunito-latin-700-normal-Dort48En.woff2 +0 -0
  708. package/dist/ui/client/assets/nunito-latin-700-normal-OcDqTBcA.woff +0 -0
  709. package/dist/ui/client/assets/nunito-latin-ext-300-normal-D1SyVuPt.woff2 +0 -0
  710. package/dist/ui/client/assets/nunito-latin-ext-300-normal-DfqbmdMl.woff +0 -0
  711. package/dist/ui/client/assets/nunito-latin-ext-400-normal-CjMJVfGn.woff +0 -0
  712. package/dist/ui/client/assets/nunito-latin-ext-400-normal-i-8OOpdj.woff2 +0 -0
  713. package/dist/ui/client/assets/nunito-latin-ext-600-normal-BKUpuB78.woff +0 -0
  714. package/dist/ui/client/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2 +0 -0
  715. package/dist/ui/client/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2 +0 -0
  716. package/dist/ui/client/assets/nunito-latin-ext-700-normal-D4woHhbd.woff +0 -0
  717. package/dist/ui/client/assets/nunito-vietnamese-300-normal-DATld5Vw.woff +0 -0
  718. package/dist/ui/client/assets/nunito-vietnamese-300-normal-mLneKULB.woff2 +0 -0
  719. package/dist/ui/client/assets/nunito-vietnamese-400-normal-BHkVbP3T.woff2 +0 -0
  720. package/dist/ui/client/assets/nunito-vietnamese-400-normal-DtOtW02z.woff +0 -0
  721. package/dist/ui/client/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2 +0 -0
  722. package/dist/ui/client/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff +0 -0
  723. package/dist/ui/client/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff +0 -0
  724. package/dist/ui/client/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2 +0 -0
  725. package/dist/ui/client/index.html +0 -22
  726. package/dist/ui/server/assets/multipart-parser-BCMy8Xwv.js +0 -181
  727. package/dist/ui/server/assets/multipart-parser-BVY8pIV2.js +0 -176
  728. package/dist/ui/server/server.js +0 -155269
  729. /package/dist/{app/modules/identity/repositories/provider/account → adapters/http/controllers/entities/identity-provider-account}/index.d.ts +0 -0
  730. /package/dist/adapters/http/{ui → middleware/built-in}/types.mjs +0 -0
@@ -1,6 +1,17 @@
1
+ import type { ContainerInput, ContainerRunOptions } from 'validup';
1
2
  import { Container } from 'validup';
3
+ import { RealmWildcardProvisioningValidator } from './wildcard-validator.ts';
2
4
  import type { RealmProvisioningEntity } from './types.ts';
3
5
  export declare class RealmProvisioningValidator extends Container<RealmProvisioningEntity> {
6
+ protected wildcardValidator: RealmWildcardProvisioningValidator;
4
7
  protected initialize(): void;
8
+ /**
9
+ * A realm entry named with the literal wildcard ('*') is a selector
10
+ * over all realms and follows its own, stricter contract — dispatch it
11
+ * to the wildcard validator. Anything else (including partial patterns
12
+ * like 'tenant-*') runs the regular realm validation, where a
13
+ * non-name-safe character fails the name check.
14
+ */
15
+ run(input?: ContainerInput<RealmProvisioningEntity>, options?: ContainerRunOptions<RealmProvisioningEntity>): Promise<RealmProvisioningEntity>;
5
16
  }
6
17
  //# sourceMappingURL=validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../../src/core/provisioning/entities/realm/validator.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,0BAA2B,SAAQ,SAAS,CAAC,uBAAuB,CAAC;IAC9E,SAAS,CAAC,UAAU;CAYvB"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../../src/core/provisioning/entities/realm/validator.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIpC,OAAO,EAAE,kCAAkC,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,0BAA2B,SAAQ,SAAS,CAAC,uBAAuB,CAAC;IAC9E,SAAS,CAAC,iBAAiB,qCAA4C;IAEvE,SAAS,CAAC,UAAU;IAapB;;;;;;OAMG;IACY,GAAG,CACd,KAAK,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,EAC/C,OAAO,CAAC,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,GACvD,OAAO,CAAC,uBAAuB,CAAC;CAWtC"}
@@ -1,13 +1,17 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import "../../constants.mjs";
4
5
  import { ProvisioningStrategyValidator } from "../../strategy/validator.mjs";
5
6
  import "../../strategy/index.mjs";
6
7
  import { RealmProvisioningRelationsValidator } from "./relations-validator.mjs";
8
+ import { RealmWildcardProvisioningValidator } from "./wildcard-validator.mjs";
9
+ import { isObject } from "@authup/kit";
7
10
  import { RealmValidator } from "@authup/core-kit";
8
11
  import { Container } from "validup";
9
12
  //#region src/core/provisioning/entities/realm/validator.ts
10
13
  var RealmProvisioningValidator = class extends Container {
14
+ wildcardValidator = new RealmWildcardProvisioningValidator();
11
15
  initialize() {
12
16
  super.initialize();
13
17
  const strategyValidator = new ProvisioningStrategyValidator();
@@ -17,6 +21,16 @@ var RealmProvisioningValidator = class extends Container {
17
21
  const relationsValidator = new RealmProvisioningRelationsValidator();
18
22
  this.mount("relations", { optional: true }, relationsValidator);
19
23
  }
24
+ /**
25
+ * A realm entry named with the literal wildcard ('*') is a selector
26
+ * over all realms and follows its own, stricter contract — dispatch it
27
+ * to the wildcard validator. Anything else (including partial patterns
28
+ * like 'tenant-*') runs the regular realm validation, where a
29
+ * non-name-safe character fails the name check.
30
+ */ async run(input, options) {
31
+ if (isObject(input) && isObject(input.attributes) && input.attributes.name === "*") return this.wildcardValidator.run(input, options);
32
+ return super.run(input, options);
33
+ }
20
34
  };
21
35
  //#endregion
22
36
  export { RealmProvisioningValidator };
@@ -1 +1 @@
1
- {"version":3,"file":"validator.mjs","names":["RealmValidator","Container","ProvisioningStrategyValidator","RealmProvisioningRelationsValidator","RealmProvisioningValidator","initialize","strategyValidator","mount","optional","attributesValidator","relationsValidator"],"sources":["../../../../../src/core/provisioning/entities/realm/validator.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 { RealmValidator } from '@authup/core-kit';\nimport { Container } from 'validup';\nimport { ProvisioningStrategyValidator } from '../../strategy/index.ts';\nimport { RealmProvisioningRelationsValidator } from './relations-validator.ts';\n\nimport type { RealmProvisioningEntity } from './types.ts';\n\nexport class RealmProvisioningValidator extends Container<RealmProvisioningEntity> {\n protected initialize() {\n super.initialize();\n\n const strategyValidator = new ProvisioningStrategyValidator();\n this.mount('strategy', { optional: true }, strategyValidator);\n\n const attributesValidator = new RealmValidator();\n this.mount('attributes', attributesValidator);\n\n const relationsValidator = new RealmProvisioningRelationsValidator();\n this.mount('relations', { optional: true }, relationsValidator);\n }\n}\n"],"mappings":";;;;;;;;;AAcA,IAAaI,6BAAb,cAAgDH,UAAAA;CAClCI,aAAa;EACnB,MAAMA,WAAAA;EAEN,MAAMC,oBAAoB,IAAIJ,8BAAAA;EAC9B,KAAKK,MAAM,YAAY,EAAEC,UAAU,KAAK,GAAGF,iBAAAA;EAE3C,MAAMG,sBAAsB,IAAIT,eAAAA;EAChC,KAAKO,MAAM,cAAcE,mBAAAA;EAEzB,MAAMC,qBAAqB,IAAIP,oCAAAA;EAC/B,KAAKI,MAAM,aAAa,EAAEC,UAAU,KAAK,GAAGE,kBAAAA;CAChD;AACJ"}
1
+ {"version":3,"file":"validator.mjs","names":["RealmValidator","isObject","Container","REALM_WILDCARD_NAME","ProvisioningStrategyValidator","RealmProvisioningRelationsValidator","RealmWildcardProvisioningValidator","RealmProvisioningValidator","wildcardValidator","initialize","strategyValidator","mount","optional","attributesValidator","relationsValidator","run","input","options","attributes","name"],"sources":["../../../../../src/core/provisioning/entities/realm/validator.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 { RealmValidator } from '@authup/core-kit';\nimport { isObject } from '@authup/kit';\nimport type { ContainerInput, ContainerRunOptions } from 'validup';\nimport { Container } from 'validup';\nimport { REALM_WILDCARD_NAME } from '../../constants.ts';\nimport { ProvisioningStrategyValidator } from '../../strategy/index.ts';\nimport { RealmProvisioningRelationsValidator } from './relations-validator.ts';\nimport { RealmWildcardProvisioningValidator } from './wildcard-validator.ts';\n\nimport type { RealmProvisioningEntity } from './types.ts';\n\nexport class RealmProvisioningValidator extends Container<RealmProvisioningEntity> {\n protected wildcardValidator = new RealmWildcardProvisioningValidator();\n\n protected initialize() {\n super.initialize();\n\n const strategyValidator = new ProvisioningStrategyValidator();\n this.mount('strategy', { optional: true }, strategyValidator);\n\n const attributesValidator = new RealmValidator();\n this.mount('attributes', attributesValidator);\n\n const relationsValidator = new RealmProvisioningRelationsValidator();\n this.mount('relations', { optional: true }, relationsValidator);\n }\n\n /**\n * A realm entry named with the literal wildcard ('*') is a selector\n * over all realms and follows its own, stricter contract — dispatch it\n * to the wildcard validator. Anything else (including partial patterns\n * like 'tenant-*') runs the regular realm validation, where a\n * non-name-safe character fails the name check.\n */\n override async run(\n input?: ContainerInput<RealmProvisioningEntity>,\n options?: ContainerRunOptions<RealmProvisioningEntity>,\n ): Promise<RealmProvisioningEntity> {\n if (\n isObject(input) &&\n isObject(input.attributes) &&\n input.attributes.name === REALM_WILDCARD_NAME\n ) {\n return this.wildcardValidator.run(input, options);\n }\n\n return super.run(input, options);\n }\n}\n"],"mappings":";;;;;;;;;;;;AAkBA,IAAaO,6BAAb,cAAgDL,UAAAA;CAClCM,oBAAoB,IAAIF,mCAAAA;CAExBG,aAAa;EACnB,MAAMA,WAAAA;EAEN,MAAMC,oBAAoB,IAAIN,8BAAAA;EAC9B,KAAKO,MAAM,YAAY,EAAEC,UAAU,KAAK,GAAGF,iBAAAA;EAE3C,MAAMG,sBAAsB,IAAIb,eAAAA;EAChC,KAAKW,MAAM,cAAcE,mBAAAA;EAEzB,MAAMC,qBAAqB,IAAIT,oCAAAA;EAC/B,KAAKM,MAAM,aAAa,EAAEC,UAAU,KAAK,GAAGE,kBAAAA;CAChD;;;;;;;IASA,MAAeC,IACXC,OACAC,SACgC;EAChC,IACIhB,SAASe,KAAAA,KACTf,SAASe,MAAME,UAAU,KACzBF,MAAME,WAAWC,SAAAA,KAEjB,OAAO,KAAKX,kBAAkBO,IAAIC,OAAOC,OAAAA;EAG7C,OAAO,MAAMF,IAAIC,OAAOC,OAAAA;CAC5B;AACJ"}
@@ -0,0 +1,19 @@
1
+ import type { ContainerInput, ContainerRunOptions } from 'validup';
2
+ import { Container } from 'validup';
3
+ import type { RealmProvisioningEntity } from './types.ts';
4
+ /**
5
+ * Validates a WILDCARD realm entry (attributes.name === '*'). A wildcard
6
+ * entry is a selector over realms, not a realm declaration, so it is
7
+ * relations-only: `attributes` may carry nothing but the literal wildcard
8
+ * name, and a realm-level `strategy` is rejected (`absent` would mean
9
+ * "delete every realm"). Child strategies stay fully supported.
10
+ *
11
+ * Reserved client names (system / console clients) are rejected: a
12
+ * template stamping one into every realm would fight the system client
13
+ * MERGE on every boot.
14
+ */
15
+ export declare class RealmWildcardProvisioningValidator extends Container<RealmProvisioningEntity> {
16
+ protected initialize(): void;
17
+ run(input?: ContainerInput<RealmProvisioningEntity>, options?: ContainerRunOptions<RealmProvisioningEntity>): Promise<RealmProvisioningEntity>;
18
+ }
19
+ //# sourceMappingURL=wildcard-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wildcard-validator.d.ts","sourceRoot":"","sources":["../../../../../src/core/provisioning/entities/realm/wildcard-validator.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAS,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAiC,MAAM,SAAS,CAAC;AAInE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,qBAAa,kCAAmC,SAAQ,SAAS,CAAC,uBAAuB,CAAC;IACtF,SAAS,CAAC,UAAU;IA8BL,GAAG,CACd,KAAK,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,EAC/C,OAAO,CAAC,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,GACvD,OAAO,CAAC,uBAAuB,CAAC;CAsBtC"}
@@ -0,0 +1,65 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import "../../constants.mjs";
5
+ import { RealmProvisioningRelationsValidator } from "./relations-validator.mjs";
6
+ import { CLIENT_RESERVED_NAMES } from "@authup/core-kit";
7
+ import { Container, ValidupError, defineIssueItem } from "validup";
8
+ import { createValidator } from "@validup/zod";
9
+ import { z } from "zod";
10
+ //#region src/core/provisioning/entities/realm/wildcard-validator.ts
11
+ /**
12
+ * Validates a WILDCARD realm entry (attributes.name === '*'). A wildcard
13
+ * entry is a selector over realms, not a realm declaration, so it is
14
+ * relations-only: `attributes` may carry nothing but the literal wildcard
15
+ * name, and a realm-level `strategy` is rejected (`absent` would mean
16
+ * "delete every realm"). Child strategies stay fully supported.
17
+ *
18
+ * Reserved client names (system / console clients) are rejected: a
19
+ * template stamping one into every realm would fight the system client
20
+ * MERGE on every boot.
21
+ */ var RealmWildcardProvisioningValidator = class extends Container {
22
+ initialize() {
23
+ super.initialize();
24
+ this.mount("attributes", createValidator(z.looseObject({ name: z.literal("*") }).check((ctx) => {
25
+ if (Object.keys(ctx.value).length > 1) ctx.issues.push({
26
+ code: "custom",
27
+ input: ctx.value,
28
+ message: "A wildcard realm entry is relations-only and can not declare realm attributes."
29
+ });
30
+ })));
31
+ this.mount("strategy", { optional: true }, createValidator(z.any().check((ctx) => {
32
+ ctx.issues.push({
33
+ code: "custom",
34
+ input: ctx.value,
35
+ message: "A wildcard realm entry can not declare a realm-level strategy."
36
+ });
37
+ })));
38
+ const relationsValidator = new RealmProvisioningRelationsValidator();
39
+ this.mount("relations", { optional: true }, relationsValidator);
40
+ }
41
+ async run(input, options) {
42
+ const output = await super.run(input, options);
43
+ const issues = [];
44
+ (output.relations?.clients ?? []).forEach((client, index) => {
45
+ const name = client.attributes?.name;
46
+ if (name && CLIENT_RESERVED_NAMES.includes(name)) issues.push(defineIssueItem({
47
+ path: [
48
+ "relations",
49
+ "clients",
50
+ index,
51
+ "attributes",
52
+ "name"
53
+ ],
54
+ message: `The client name "${name}" is reserved for system clients and can not be declared in a wildcard realm entry.`,
55
+ received: name
56
+ }));
57
+ });
58
+ if (issues.length > 0) throw new ValidupError(issues);
59
+ return output;
60
+ }
61
+ };
62
+ //#endregion
63
+ export { RealmWildcardProvisioningValidator };
64
+
65
+ //# sourceMappingURL=wildcard-validator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wildcard-validator.mjs","names":["CLIENT_RESERVED_NAMES","createValidator","Container","ValidupError","defineIssueItem","z","REALM_WILDCARD_NAME","RealmProvisioningRelationsValidator","RealmWildcardProvisioningValidator","initialize","mount","looseObject","name","literal","check","ctx","keys","Object","value","length","issues","push","code","input","message","optional","any","relationsValidator","run","options","output","clients","relations","forEach","client","index","attributes","includes","path","received"],"sources":["../../../../../src/core/provisioning/entities/realm/wildcard-validator.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 { CLIENT_RESERVED_NAMES } from '@authup/core-kit';\nimport { createValidator } from '@validup/zod';\nimport type { ContainerInput, ContainerRunOptions, Issue } from 'validup';\nimport { Container, ValidupError, defineIssueItem } from 'validup';\nimport { z } from 'zod';\nimport { REALM_WILDCARD_NAME } from '../../constants.ts';\nimport { RealmProvisioningRelationsValidator } from './relations-validator.ts';\nimport type { RealmProvisioningEntity } from './types.ts';\n\n/**\n * Validates a WILDCARD realm entry (attributes.name === '*'). A wildcard\n * entry is a selector over realms, not a realm declaration, so it is\n * relations-only: `attributes` may carry nothing but the literal wildcard\n * name, and a realm-level `strategy` is rejected (`absent` would mean\n * \"delete every realm\"). Child strategies stay fully supported.\n *\n * Reserved client names (system / console clients) are rejected: a\n * template stamping one into every realm would fight the system client\n * MERGE on every boot.\n */\nexport class RealmWildcardProvisioningValidator extends Container<RealmProvisioningEntity> {\n protected initialize() {\n super.initialize();\n\n this.mount('attributes', createValidator(\n z.looseObject({ name: z.literal(REALM_WILDCARD_NAME) }).check((ctx) => {\n const keys = Object.keys(ctx.value);\n if (keys.length > 1) {\n ctx.issues.push({\n code: 'custom',\n input: ctx.value,\n message: 'A wildcard realm entry is relations-only and can not declare realm attributes.',\n });\n }\n }),\n ));\n\n this.mount('strategy', { optional: true }, createValidator(\n z.any().check((ctx) => {\n ctx.issues.push({\n code: 'custom',\n input: ctx.value,\n message: 'A wildcard realm entry can not declare a realm-level strategy.',\n });\n }),\n ));\n\n const relationsValidator = new RealmProvisioningRelationsValidator();\n this.mount('relations', { optional: true }, relationsValidator);\n }\n\n override async run(\n input?: ContainerInput<RealmProvisioningEntity>,\n options?: ContainerRunOptions<RealmProvisioningEntity>,\n ): Promise<RealmProvisioningEntity> {\n const output = await super.run(input, options);\n\n const issues : Issue[] = [];\n const clients = output.relations?.clients ?? [];\n clients.forEach((client, index) => {\n const name = client.attributes?.name;\n if (name && (CLIENT_RESERVED_NAMES as string[]).includes(name)) {\n issues.push(defineIssueItem({\n path: ['relations', 'clients', index, 'attributes', 'name'],\n message: `The client name \"${name}\" is reserved for system clients and can not be declared in a wildcard realm entry.`,\n received: name,\n }));\n }\n });\n\n if (issues.length > 0) {\n throw new ValidupError(issues);\n }\n\n return output;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;GA2BA,IAAaQ,qCAAb,cAAwDN,UAAAA;CAC1CO,aAAa;EACnB,MAAMA,WAAAA;EAEN,KAAKC,MAAM,cAAcT,gBACrBI,EAAEM,YAAY,EAAEC,MAAMP,EAAEQ,QAAAA,GAAQP,EAAqB,CAAA,CAAA,CAAGQ,OAAOC,QAAAA;GAE3D,IADaE,OAAOD,KAAKD,IAAIG,KACzBF,CAAAA,CAAKG,SAAS,GACdJ,IAAIK,OAAOC,KAAK;IACZC,MAAM;IACNC,OAAOR,IAAIG;IACXM,SAAS;GACb,CAAA;EAER,CAAA,CAAA,CAAA;EAGJ,KAAKd,MAAM,YAAY,EAAEe,UAAU,KAAK,GAAGxB,gBACvCI,EAAEqB,IAAG,CAAA,CAAGZ,OAAOC,QAAAA;GACXA,IAAIK,OAAOC,KAAK;IACZC,MAAM;IACNC,OAAOR,IAAIG;IACXM,SAAS;GACb,CAAA;EACJ,CAAA,CAAA,CAAA;EAGJ,MAAMG,qBAAqB,IAAIpB,oCAAAA;EAC/B,KAAKG,MAAM,aAAa,EAAEe,UAAU,KAAK,GAAGE,kBAAAA;CAChD;CAEA,MAAeC,IACXL,OACAM,SACgC;EAChC,MAAMC,SAAS,MAAM,MAAMF,IAAIL,OAAOM,OAAAA;EAEtC,MAAMT,SAAmB,CAAA;EAEzBW,CADgBD,OAAOE,WAAWD,WAAW,CAAA,EAAA,CACrCE,SAASC,QAAQC,UAAAA;GACrB,MAAMvB,OAAOsB,OAAOE,YAAYxB;GAChC,IAAIA,QAAQ,sBAAoCyB,SAASzB,IAAAA,GACrDQ,OAAOC,KAAKjB,gBAAgB;IACxBkC,MAAM;KAAC;KAAa;KAAWH;KAAO;KAAc;IAAO;IAC3DX,SAAS,oBAAoBZ,KAAK;IAClC2B,UAAU3B;GACd,CAAA,CAAA;EAER,CAAA;EAEA,IAAIQ,OAAOD,SAAS,GAChB,MAAM,IAAIhB,aAAaiB,MAAAA;EAG3B,OAAOU;CACX;AACJ"}
@@ -1,5 +1,8 @@
1
+ export * from './constants.ts';
1
2
  export * from './entities/index.ts';
3
+ export * from './merge/index.ts';
2
4
  export * from './strategy/index.ts';
3
5
  export * from './synchronizer/index.ts';
4
6
  export * from './types.ts';
7
+ export * from './wildcard/index.ts';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/provisioning/index.ts"],"names":[],"mappings":"AAOA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/provisioning/index.ts"],"names":[],"mappings":"AAOA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { REALM_WILDCARD_NAME } from "./constants.mjs";
4
5
  import { ProvisioningEntityStrategyType } from "./strategy/constants.mjs";
5
6
  import { normalizeEntityProvisioningStrategy } from "./strategy/normalize.mjs";
6
7
  import { ProvisioningStrategyValidator } from "./strategy/validator.mjs";
@@ -13,9 +14,12 @@ import { ClientProvisioningValidator } from "./entities/client/validator.mjs";
13
14
  import { PolicyProvisioningValidator } from "./entities/policy/validator.mjs";
14
15
  import { ScopeProvisioningValidator } from "./entities/scope/validator.mjs";
15
16
  import { UserProvisioningValidator } from "./entities/user/validator.mjs";
17
+ import { RealmWildcardProvisioningValidator } from "./entities/realm/wildcard-validator.mjs";
16
18
  import { RealmProvisioningValidator } from "./entities/realm/validator.mjs";
17
19
  import { RootProvisioningValidator } from "./entities/root/validator.mjs";
18
20
  import "./entities/index.mjs";
21
+ import { buildProvisioningEntityKey, mergeProvisioningEntities, mergeProvisioningEntity } from "./merge/module.mjs";
22
+ import "./merge/index.mjs";
19
23
  import { ProvisioningEntityResolver } from "./synchronizer/entity-resolver.mjs";
20
24
  import { ProvisioningJunctionSynchronizer } from "./synchronizer/junction-synchronizer.mjs";
21
25
  import { ClientProvisioningSynchronizer } from "./synchronizer/client/module.mjs";
@@ -27,4 +31,6 @@ import { GraphProvisioningSynchronizer } from "./synchronizer/root/module.mjs";
27
31
  import { ScopeProvisioningSynchronizer } from "./synchronizer/scope/module.mjs";
28
32
  import { UserProvisioningSynchronizer } from "./synchronizer/user/module.mjs";
29
33
  import "./synchronizer/index.mjs";
30
- export { ClientProvisioningSynchronizer, ClientProvisioningValidator, GraphProvisioningSynchronizer, PermissionProvisioningRelationsValidator, PermissionProvisioningSynchronizer, PermissionProvisioningValidator, PolicyProvisioningSynchronizer, PolicyProvisioningValidator, ProvisioningEntityResolver, ProvisioningEntityStrategyType, ProvisioningJunctionSynchronizer, ProvisioningStrategyValidator, RealmProvisioningSynchronizer, RealmProvisioningValidator, RoleProvisioningSynchronizer, RoleProvisioningValidator, RootProvisioningValidator, ScopeProvisioningSynchronizer, ScopeProvisioningValidator, UserProvisioningSynchronizer, UserProvisioningValidator, createProvisioningEntitiesValidator, normalizeEntityProvisioningStrategy };
34
+ import { WildcardRealmProvisioner, expandWildcardRealmEntry, extractWildcardRealmEntry } from "./wildcard/module.mjs";
35
+ import "./wildcard/index.mjs";
36
+ export { ClientProvisioningSynchronizer, ClientProvisioningValidator, GraphProvisioningSynchronizer, PermissionProvisioningRelationsValidator, PermissionProvisioningSynchronizer, PermissionProvisioningValidator, PolicyProvisioningSynchronizer, PolicyProvisioningValidator, ProvisioningEntityResolver, ProvisioningEntityStrategyType, ProvisioningJunctionSynchronizer, ProvisioningStrategyValidator, REALM_WILDCARD_NAME, RealmProvisioningSynchronizer, RealmProvisioningValidator, RealmWildcardProvisioningValidator, RoleProvisioningSynchronizer, RoleProvisioningValidator, RootProvisioningValidator, ScopeProvisioningSynchronizer, ScopeProvisioningValidator, UserProvisioningSynchronizer, UserProvisioningValidator, WildcardRealmProvisioner, buildProvisioningEntityKey, createProvisioningEntitiesValidator, expandWildcardRealmEntry, extractWildcardRealmEntry, mergeProvisioningEntities, mergeProvisioningEntity, normalizeEntityProvisioningStrategy };
@@ -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/merge/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 { buildProvisioningEntityKey, mergeProvisioningEntities, mergeProvisioningEntity } from "./module.mjs";
5
+ export { buildProvisioningEntityKey, mergeProvisioningEntities, mergeProvisioningEntity };
@@ -0,0 +1,18 @@
1
+ import type { MergeProvisioningOptions, MergeableProvisioningEntity } from './types.ts';
2
+ export declare function buildProvisioningEntityKey(attributes: MergeableProvisioningEntity['attributes']): string | undefined;
3
+ export declare function mergeProvisioningEntities<T extends MergeableProvisioningEntity>(target: T[] | undefined, source: T[] | undefined, options?: MergeProvisioningOptions): T[] | undefined;
4
+ /**
5
+ * Deep-merge two entries sharing a composite key. The later (source) side
6
+ * wins per attribute, but relations are UNIONED — a later source (e.g. a
7
+ * mounted provisioning file) extending a built-in entry (the default
8
+ * source's master realm) must not silently drop the built-in relations
9
+ * (admin user, system client).
10
+ *
11
+ * Policy extraAttributes merge per key with the later source winning —
12
+ * like attributes, NOT like relations: an EA value (a names denylist,
13
+ * an ATTRIBUTES query tree) is policy configuration, and unioning would
14
+ * make shrinking a list impossible and fabricate predicates neither
15
+ * source authored.
16
+ */
17
+ export declare function mergeProvisioningEntity(target: MergeableProvisioningEntity, source: MergeableProvisioningEntity, options?: MergeProvisioningOptions): MergeableProvisioningEntity;
18
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/core/provisioning/merge/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAExF,wBAAgB,0BAA0B,CACtC,UAAU,EAAE,2BAA2B,CAAC,YAAY,CAAC,GACtD,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,2BAA2B,EAC3E,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EACvB,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EACvB,OAAO,GAAE,wBAA6B,GACvC,CAAC,EAAE,GAAG,SAAS,CAoBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,2BAA2B,EACnC,MAAM,EAAE,2BAA2B,EACnC,OAAO,GAAE,wBAA6B,GACvC,2BAA2B,CAiC7B"}
@@ -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