@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.
- package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client/entity.mjs +58 -30
- package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-permission/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client-permission/entity.mjs +48 -24
- package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-role/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client-role/entity.mjs +37 -17
- package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-scope/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client-scope/entity.mjs +30 -14
- package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/consent/entity.mjs +34 -18
- package/dist/adapters/database/domains/consent/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/event/entity.d.ts +1 -0
- package/dist/adapters/database/domains/event/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/event/entity.mjs +48 -23
- package/dist/adapters/database/domains/event/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/identity-provider/entity.mjs +43 -23
- package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-account/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/identity-provider-account/entity.mjs +50 -22
- package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs +14 -6
- package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs +5 -1
- package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs +18 -6
- package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs +34 -14
- package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/key/entity.mjs +35 -19
- package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/permission/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/permission/entity.mjs +35 -19
- package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/permission-policy/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/permission-policy/entity.mjs +37 -17
- package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/policy/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/policy/entity.mjs +51 -27
- package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/policy-attribute/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/policy-attribute/entity.mjs +14 -6
- package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/realm/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/realm/entity.mjs +36 -20
- package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/role/entity.mjs +44 -24
- package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/role-attribute/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/role-attribute/entity.mjs +30 -14
- package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/role-permission/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/role-permission/entity.mjs +45 -21
- package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/scope/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/scope/entity.mjs +35 -19
- package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/session/entity.mjs +63 -31
- package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/session-token/entity.d.ts +4 -1
- package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/session-token/entity.mjs +40 -11
- package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/trust-anchor/entity.mjs +25 -13
- package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/user/entity.mjs +58 -34
- package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-attribute/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/user-attribute/entity.mjs +27 -11
- package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/user-authenticator/entity.mjs +43 -23
- package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-permission/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/user-permission/entity.mjs +45 -21
- package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-role/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/user-role/entity.mjs +37 -17
- package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
- package/dist/adapters/database/errors/driver.d.ts +9 -0
- package/dist/adapters/database/errors/driver.d.ts.map +1 -1
- package/dist/adapters/database/errors/driver.mjs +20 -1
- package/dist/adapters/database/errors/driver.mjs.map +1 -1
- package/dist/adapters/database/errors/index.mjs +2 -2
- package/dist/adapters/database/helpers/index.mjs +2 -2
- package/dist/adapters/database/helpers/is-supported.d.ts +7 -0
- package/dist/adapters/database/helpers/is-supported.d.ts.map +1 -1
- package/dist/adapters/database/helpers/is-supported.mjs +9 -1
- package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
- package/dist/adapters/database/index.mjs +3 -3
- package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts +66 -0
- package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
- package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs +181 -0
- package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
- package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts +44 -0
- package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts.map +1 -0
- package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs +1294 -0
- package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs.map +1 -0
- package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts +43 -0
- package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
- package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs +120 -0
- package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
- package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts +44 -0
- package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts.map +1 -0
- package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs +987 -0
- package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +14 -2
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +85 -19
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +4 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider-account/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/identity-provider-account/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts +15 -0
- package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs +94 -0
- package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/index.mjs +5 -1
- package/dist/adapters/http/controllers/entities/session-token/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/session-token/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/session-token/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/session-token/module.d.ts +23 -0
- package/dist/adapters/http/controllers/entities/session-token/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/session-token/module.mjs +112 -0
- package/dist/adapters/http/controllers/entities/session-token/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/index.mjs +4 -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/authenticator-challenge/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +1 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +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 +5 -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/error.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.mjs +4 -3
- package/dist/adapters/http/middleware/built-in/error.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/request/event-context.d.ts.map +1 -1
- package/dist/adapters/http/request/event-context.mjs +2 -0
- package/dist/adapters/http/request/event-context.mjs.map +1 -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 +4 -2
- 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/database/index.mjs +2 -1
- package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts +2 -0
- package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/identity-provider-account/index.mjs +5 -0
- package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts +18 -0
- package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs +69 -0
- package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs.map +1 -0
- package/dist/app/modules/database/repositories/index.d.ts +1 -0
- package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/index.mjs +3 -1
- package/dist/app/modules/database/repositories/key/repository.d.ts +23 -0
- package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/key/repository.mjs +39 -3
- package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/schema-validation.d.ts +14 -6
- package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/schema-validation.mjs +18 -6
- package/dist/app/modules/database/repositories/schema-validation.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 +5 -2
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +57 -6
- 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/identity/index.mjs +1 -2
- package/dist/app/modules/identity/module.d.ts.map +1 -1
- package/dist/app/modules/identity/module.mjs +2 -2
- package/dist/app/modules/identity/module.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/index.mjs +1 -2
- package/dist/app/modules/identity/repositories/provider/index.d.ts +0 -1
- package/dist/app/modules/identity/repositories/provider/index.d.ts.map +1 -1
- package/dist/app/modules/identity/repositories/provider/index.mjs +1 -3
- package/dist/app/modules/index.mjs +4 -2
- package/dist/app/modules/logger/module.d.ts.map +1 -1
- package/dist/app/modules/logger/module.mjs +1 -0
- package/dist/app/modules/logger/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +25 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +70 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -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 +24 -4
- 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/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs +1 -0
- package/dist/app/modules/provisioning/sources/default/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/schema.d.ts.map +1 -1
- package/dist/core/entities/client/schema.mjs +29 -10
- package/dist/core/entities/client/schema.mjs.map +1 -1
- 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/client-permission/schema.d.ts.map +1 -1
- package/dist/core/entities/client-permission/schema.mjs +29 -6
- package/dist/core/entities/client-permission/schema.mjs.map +1 -1
- package/dist/core/entities/client-role/schema.d.ts.map +1 -1
- package/dist/core/entities/client-role/schema.mjs +27 -6
- package/dist/core/entities/client-role/schema.mjs.map +1 -1
- package/dist/core/entities/client-scope/schema.d.ts.map +1 -1
- package/dist/core/entities/client-scope/schema.mjs +19 -5
- package/dist/core/entities/client-scope/schema.mjs.map +1 -1
- package/dist/core/entities/consent/schema.d.ts.map +1 -1
- package/dist/core/entities/consent/schema.mjs +28 -6
- package/dist/core/entities/consent/schema.mjs.map +1 -1
- package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
- package/dist/core/entities/event/entity-event-handler.mjs +2 -0
- package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
- package/dist/core/entities/event/sanitize.d.ts.map +1 -1
- package/dist/core/entities/event/sanitize.mjs +7 -4
- package/dist/core/entities/event/sanitize.mjs.map +1 -1
- package/dist/core/entities/event/schema.d.ts.map +1 -1
- package/dist/core/entities/event/schema.mjs +45 -16
- package/dist/core/entities/event/schema.mjs.map +1 -1
- package/dist/core/entities/event/service.d.ts.map +1 -1
- package/dist/core/entities/event/service.mjs +2 -0
- package/dist/core/entities/event/service.mjs.map +1 -1
- package/dist/core/entities/event/types.d.ts +2 -0
- package/dist/core/entities/event/types.d.ts.map +1 -1
- package/dist/core/entities/identity-provider/schema.d.ts.map +1 -1
- package/dist/core/entities/identity-provider/schema.mjs +29 -11
- package/dist/core/entities/identity-provider/schema.mjs.map +1 -1
- package/dist/core/entities/identity-provider-account/error.d.ts +7 -0
- package/dist/core/entities/identity-provider-account/error.d.ts.map +1 -0
- package/dist/core/entities/identity-provider-account/error.mjs +24 -0
- package/dist/core/entities/identity-provider-account/error.mjs.map +1 -0
- package/dist/core/entities/identity-provider-account/index.d.ts +5 -0
- package/dist/core/entities/identity-provider-account/index.d.ts.map +1 -0
- package/dist/core/entities/identity-provider-account/index.mjs +8 -0
- package/dist/core/entities/identity-provider-account/schema.d.ts +3 -0
- package/dist/core/entities/identity-provider-account/schema.d.ts.map +1 -0
- package/dist/core/entities/identity-provider-account/schema.mjs +52 -0
- package/dist/core/entities/identity-provider-account/schema.mjs.map +1 -0
- package/dist/core/entities/identity-provider-account/service.d.ts +24 -0
- package/dist/core/entities/identity-provider-account/service.d.ts.map +1 -0
- package/dist/core/entities/identity-provider-account/service.mjs +129 -0
- package/dist/core/entities/identity-provider-account/service.mjs.map +1 -0
- package/dist/core/entities/identity-provider-account/types.d.ts +69 -0
- package/dist/core/entities/identity-provider-account/types.d.ts.map +1 -0
- package/dist/core/entities/identity-provider-account/types.mjs +17 -0
- package/dist/core/entities/identity-provider-account/types.mjs.map +1 -0
- package/dist/core/entities/identity-provider-role-mapping/schema.d.ts.map +1 -1
- package/dist/core/entities/identity-provider-role-mapping/schema.mjs +27 -6
- package/dist/core/entities/identity-provider-role-mapping/schema.mjs.map +1 -1
- package/dist/core/entities/index.d.ts +2 -0
- package/dist/core/entities/index.d.ts.map +1 -1
- package/dist/core/entities/index.mjs +10 -2
- package/dist/core/entities/key/schema.d.ts.map +1 -1
- package/dist/core/entities/key/schema.mjs +39 -17
- package/dist/core/entities/key/schema.mjs.map +1 -1
- package/dist/core/entities/key/service.d.ts.map +1 -1
- package/dist/core/entities/key/service.mjs +1 -0
- package/dist/core/entities/key/service.mjs.map +1 -1
- package/dist/core/entities/permission/schema.d.ts.map +1 -1
- package/dist/core/entities/permission/schema.mjs +34 -13
- package/dist/core/entities/permission/schema.mjs.map +1 -1
- package/dist/core/entities/permission-policy/schema.d.ts.map +1 -1
- package/dist/core/entities/permission-policy/schema.mjs +27 -6
- package/dist/core/entities/permission-policy/schema.mjs.map +1 -1
- package/dist/core/entities/policy/schema.d.ts.map +1 -1
- package/dist/core/entities/policy/schema.mjs +31 -12
- package/dist/core/entities/policy/schema.mjs.map +1 -1
- package/dist/core/entities/realm/schema.d.ts.map +1 -1
- package/dist/core/entities/realm/schema.mjs +26 -12
- package/dist/core/entities/realm/schema.mjs.map +1 -1
- 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/entities/role/schema.d.ts.map +1 -1
- package/dist/core/entities/role/schema.mjs +36 -14
- package/dist/core/entities/role/schema.mjs.map +1 -1
- package/dist/core/entities/role-attribute/schema.d.ts.map +1 -1
- package/dist/core/entities/role-attribute/schema.mjs +28 -14
- package/dist/core/entities/role-attribute/schema.mjs.map +1 -1
- package/dist/core/entities/role-permission/schema.d.ts.map +1 -1
- package/dist/core/entities/role-permission/schema.mjs +29 -6
- package/dist/core/entities/role-permission/schema.mjs.map +1 -1
- package/dist/core/entities/scope/schema.d.ts.map +1 -1
- package/dist/core/entities/scope/schema.mjs +28 -12
- package/dist/core/entities/scope/schema.mjs.map +1 -1
- package/dist/core/entities/session/schema.d.ts.map +1 -1
- package/dist/core/entities/session/schema.mjs +41 -9
- package/dist/core/entities/session/schema.mjs.map +1 -1
- package/dist/core/entities/session-token/index.d.ts +4 -0
- package/dist/core/entities/session-token/index.d.ts.map +1 -0
- package/dist/core/entities/session-token/index.mjs +6 -0
- package/dist/core/entities/session-token/schema.d.ts +12 -0
- package/dist/core/entities/session-token/schema.d.ts.map +1 -0
- package/dist/core/entities/session-token/schema.mjs +66 -0
- package/dist/core/entities/session-token/schema.mjs.map +1 -0
- package/dist/core/entities/session-token/service.d.ts +70 -0
- package/dist/core/entities/session-token/service.d.ts.map +1 -0
- package/dist/core/entities/session-token/service.mjs +216 -0
- package/dist/core/entities/session-token/service.mjs.map +1 -0
- package/dist/core/entities/session-token/types.d.ts +37 -0
- package/dist/core/entities/session-token/types.d.ts.map +1 -0
- package/dist/core/entities/session-token/types.mjs +4 -0
- package/dist/core/entities/trust-anchor/schema.d.ts.map +1 -1
- package/dist/core/entities/trust-anchor/schema.mjs +27 -13
- package/dist/core/entities/trust-anchor/schema.mjs.map +1 -1
- package/dist/core/entities/trust-anchor/service.d.ts.map +1 -1
- package/dist/core/entities/trust-anchor/service.mjs +1 -0
- package/dist/core/entities/trust-anchor/service.mjs.map +1 -1
- package/dist/core/entities/user/schema.d.ts.map +1 -1
- package/dist/core/entities/user/schema.mjs +29 -12
- package/dist/core/entities/user/schema.mjs.map +1 -1
- package/dist/core/entities/user-attribute/schema.d.ts.map +1 -1
- package/dist/core/entities/user-attribute/schema.mjs +28 -14
- package/dist/core/entities/user-attribute/schema.mjs.map +1 -1
- package/dist/core/entities/user-authenticator/schema.d.ts.map +1 -1
- package/dist/core/entities/user-authenticator/schema.mjs +29 -12
- package/dist/core/entities/user-authenticator/schema.mjs.map +1 -1
- package/dist/core/entities/user-authenticator/service.d.ts +2 -1
- package/dist/core/entities/user-authenticator/service.d.ts.map +1 -1
- package/dist/core/entities/user-authenticator/service.mjs +5 -0
- package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
- package/dist/core/entities/user-authenticator/types.d.ts +7 -1
- package/dist/core/entities/user-authenticator/types.d.ts.map +1 -1
- package/dist/core/entities/user-authenticator/types.mjs.map +1 -1
- package/dist/core/entities/user-permission/schema.d.ts.map +1 -1
- package/dist/core/entities/user-permission/schema.mjs +29 -6
- package/dist/core/entities/user-permission/schema.mjs.map +1 -1
- package/dist/core/entities/user-role/schema.d.ts.map +1 -1
- package/dist/core/entities/user-role/schema.mjs +27 -6
- package/dist/core/entities/user-role/schema.mjs.map +1 -1
- package/dist/core/identity/index.mjs +2 -1
- package/dist/core/identity/provider/account/error.d.ts +7 -0
- package/dist/core/identity/provider/account/error.d.ts.map +1 -0
- package/dist/core/identity/provider/account/error.mjs +24 -0
- package/dist/core/identity/provider/account/error.mjs.map +1 -0
- package/dist/core/identity/provider/account/index.d.ts +1 -0
- package/dist/core/identity/provider/account/index.d.ts.map +1 -1
- package/dist/core/identity/provider/account/index.mjs +2 -1
- package/dist/core/identity/provider/account/module.d.ts +2 -0
- package/dist/core/identity/provider/account/module.d.ts.map +1 -1
- package/dist/core/identity/provider/account/module.mjs +30 -0
- package/dist/core/identity/provider/account/module.mjs.map +1 -1
- package/dist/core/identity/provider/account/types.d.ts +12 -10
- package/dist/core/identity/provider/account/types.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts +1 -0
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +5 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts +7 -0
- package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts.map +1 -1
- package/dist/core/identity/provider/index.mjs +2 -1
- package/dist/core/index.mjs +15 -3
- 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/authorization/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/module.mjs +2 -0
- package/dist/core/oauth2/authorization/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/state/types.d.ts +11 -0
- package/dist/core/oauth2/authorization/state/types.d.ts.map +1 -1
- package/dist/core/oauth2/end-session/service.d.ts.map +1 -1
- package/dist/core/oauth2/end-session/service.mjs +4 -4
- package/dist/core/oauth2/end-session/service.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.mjs +1 -5
- package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/password.mjs +2 -5
- package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.mjs +37 -24
- package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
- package/dist/core/oauth2/index.mjs +3 -1
- package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -1
- package/dist/core/oauth2/mfa-login/module.mjs +4 -7
- package/dist/core/oauth2/mfa-login/module.mjs.map +1 -1
- package/dist/core/oauth2/session-token/error.d.ts +36 -0
- package/dist/core/oauth2/session-token/error.d.ts.map +1 -0
- package/dist/core/oauth2/session-token/error.mjs +49 -0
- package/dist/core/oauth2/session-token/error.mjs.map +1 -0
- package/dist/core/oauth2/session-token/index.d.ts +1 -0
- package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
- package/dist/core/oauth2/session-token/index.mjs +2 -1
- package/dist/core/oauth2/session-token/types.d.ts +40 -0
- package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
- package/dist/core/oauth2/token/issuer/access/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/issuer/access/module.mjs +1 -0
- package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/base.d.ts +1 -1
- package/dist/core/oauth2/token/issuer/base.d.ts.map +1 -1
- package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/refresh/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/issuer/refresh/module.mjs +1 -0
- package/dist/core/oauth2/token/issuer/refresh/module.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/core/query/index.mjs +2 -2
- package/dist/core/query/module.d.ts +19 -9
- package/dist/core/query/module.d.ts.map +1 -1
- package/dist/core/query/module.mjs +22 -10
- package/dist/core/query/module.mjs.map +1 -1
- package/dist/index.mjs +10 -4
- 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 +885 -112
- package/dist/utils/error.d.ts +20 -3
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.mjs +102 -5
- package/dist/utils/error.mjs.map +1 -1
- package/dist/utils/index.mjs +2 -2
- package/package.json +25 -61
- 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/app/modules/identity/repositories/provider/account/index.d.ts.map +0 -1
- package/dist/app/modules/identity/repositories/provider/account/index.mjs +0 -5
- package/dist/app/modules/identity/repositories/provider/account/module.d.ts +0 -10
- package/dist/app/modules/identity/repositories/provider/account/module.d.ts.map +0 -1
- package/dist/app/modules/identity/repositories/provider/account/module.mjs +0 -28
- package/dist/app/modules/identity/repositories/provider/account/module.mjs.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/{app/modules/identity/repositories/provider/account → adapters/http/controllers/entities/identity-provider-account}/index.d.ts +0 -0
- /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":"
|
|
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":"
|
|
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
|
-
|
|
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 @@
|
|
|
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,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"}
|
|
@@ -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
|