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