@authup/server-core 1.0.0-beta.59 → 1.0.0-beta.61
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 +22 -4
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +190 -47
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +5 -2
- 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 +3 -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/index.mjs +3 -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/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/app/index.mjs +4 -2
- 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/modules/controller.d.ts +3 -1
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +39 -2
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/identity/constants.d.ts +2 -1
- package/dist/app/modules/identity/constants.d.ts.map +1 -1
- package/dist/app/modules/identity/constants.mjs +1 -0
- package/dist/app/modules/identity/constants.mjs.map +1 -1
- package/dist/app/modules/identity/index.mjs +3 -2
- package/dist/app/modules/identity/module.d.ts.map +1 -1
- package/dist/app/modules/identity/module.mjs +9 -2
- package/dist/app/modules/identity/module.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/constants.d.ts +4 -0
- package/dist/app/modules/identity/repositories/constants.d.ts.map +1 -0
- package/dist/app/modules/identity/repositories/constants.mjs +12 -0
- package/dist/app/modules/identity/repositories/constants.mjs.map +1 -0
- package/dist/app/modules/identity/repositories/index.d.ts +1 -0
- package/dist/app/modules/identity/repositories/index.d.ts.map +1 -1
- package/dist/app/modules/identity/repositories/index.mjs +3 -2
- package/dist/app/modules/identity/repositories/provider/index.d.ts +1 -1
- package/dist/app/modules/identity/repositories/provider/index.d.ts.map +1 -1
- package/dist/app/modules/identity/repositories/provider/index.mjs +2 -3
- package/dist/app/modules/identity/repositories/provider/link.d.ts +9 -0
- package/dist/app/modules/identity/repositories/provider/link.d.ts.map +1 -0
- package/dist/app/modules/identity/repositories/provider/link.mjs +34 -0
- package/dist/app/modules/identity/repositories/provider/link.mjs.map +1 -0
- 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/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/module.mjs +3 -1
- package/dist/app/modules/provisioning/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/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-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 +9 -1
- 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/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 +3 -1
- package/dist/core/identity/provider/account/constants.d.ts +10 -0
- package/dist/core/identity/provider/account/constants.d.ts.map +1 -0
- package/dist/core/identity/provider/account/constants.mjs +16 -0
- package/dist/core/identity/provider/account/constants.mjs.map +1 -0
- 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 +2 -0
- package/dist/core/identity/provider/account/index.d.ts.map +1 -1
- package/dist/core/identity/provider/account/index.mjs +3 -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 +44 -7
- package/dist/core/identity/provider/account/types.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts +19 -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 +60 -3
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts +9 -0
- package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts +0 -3
- package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs +0 -17
- package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
- package/dist/core/identity/provider/index.mjs +3 -1
- package/dist/core/index.mjs +11 -2
- 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 -1
- 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.mjs +2 -2
- 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/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 +8 -4
- package/dist/swagger.json +961 -132
- 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 +23 -21
- 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/{app/modules/identity/repositories/provider/account → adapters/http/controllers/entities/identity-provider-account}/index.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1786436332251-QueryIndexes.mjs","names":["QueryIndexes1786436332251","name","up","queryRunner","query","down"],"sources":["../../../../../src/adapters/database/migrations/postgres/1786436332251-QueryIndexes.ts"],"sourcesContent":["import type { MigrationInterface, QueryRunner } from 'typeorm';\n\n/**\n * Indexes for the query surface and the foreign-key graph.\n *\n * Query surface: backs the rapiq schema `indexes` declarations (rapiq\n * 2.0.0-beta.20 indexed filters/sort, tada5hi/rapiq#895) — every key in a\n * schema's filter/sort allow-list must LEAD a real database index, so the\n * parse-time index policy never rejects a query the allow-lists permit.\n *\n * Foreign-key graph: indexes every remaining FK scalar column (junction\n * *_realm_id and policy_id columns, client.access_policy_id, the EA and\n * identity-provider mapping tables). MySQL always keeps an implicit FK\n * index, so these matter on Postgres, where realm deletion\n * (crypto-shredding) and cascade deletes otherwise full-scan every\n * junction, and EA tree loads sit on the permission-evaluation hot path.\n *\n * display_name is indexed wherever the column exists, alongside name:\n * the console searches both at once (`or(contains(name), contains(\n * display_name))`), and anchor mode passes an OR only when EVERY branch\n * leads an index, so one missing index would reject the whole search.\n *\n * Compound access paths: (actor_name, request_ip_address, created_at) on\n * auth_events serves the login-throttle countRecent key and replaces the\n * redundant actor_name single; auth_session_tokens.parent_id serves the\n * grace-window hasConsumedChild lookup; auth_sessions gains its three FK\n * indexes; (provider_user_id, provider_id) serves the federated-login\n * account lookup.\n *\n * Cleanup: drops the three orphaned legacy tables no entity has described\n * since their reworks — auth_authorization_codes (codes moved to cache\n * blobs), auth_refresh_tokens (superseded by auth_session_tokens),\n * auth_identity_provider_roles (superseded by\n * auth_identity_provider_role_mappings). down() recreates them exactly as\n * the pre-existing chain leaves them, so older down() paths keep working.\n *\n * Generated with `migration generate`; derived IDX_<hash> names, generated\n * DDL untouched (hand-authored blocks are marked).\n */\n\nexport class QueryIndexes1786436332251 implements MigrationInterface {\n name = 'QueryIndexes1786436332251';\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_ce33c3f58b802bb3c7b2668adc\"\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_4a9118b99a30cfd3d0c49c3f4b\" ON \"auth_realms\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_75e631fcfae706212f5bd67a93\" ON \"auth_realms\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_711b1c0c94c1f50b72ee0bc5b2\" ON \"auth_realms\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_98610803836c2be19b55bc016b\" ON \"auth_realms\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_7cdad1f4b4773508db1c7907e3\" ON \"auth_policies\" (\"type\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_14b3b3b9c0a1b3a1d2abecb6e7\" ON \"auth_policies\" (\"parent_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3bdf0256c69127d59bfd92a313\" ON \"auth_policies\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3f5906dabc9f129555d823408c\" ON \"auth_policies\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f4cdbb6a56eb93fa2598c8483d\" ON \"auth_policy_attributes\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_8b759199b8a0213a7a0f7b1986\" ON \"auth_policy_attributes\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_7e7bca0ba30295b43b02a69051\" ON \"auth_clients\" (\"access_policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e9d2f1997f5bb2e3b25edc3ab6\" ON \"auth_clients\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_01ff3aa3d7f3ea41711fa3abd5\" ON \"auth_clients\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b628ffa1b2f5415598cfb1a72a\" ON \"auth_clients\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_4f168a45a40758502e4833bb85\" ON \"auth_users\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6597f3e492f4f8f3cc40772575\" ON \"auth_users\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_55c4ee639cdf45eb2453ee4fc7\" ON \"auth_users\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9a84db5a27d34b31644b54d910\" ON \"auth_user_attributes\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f50fe4004312e972a547c0e945\" ON \"auth_user_attributes\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_fa1bbd036543e4c4fda32b7ca6\" ON \"auth_user_attributes\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0d93685dd655ce6ee7c8255503\" ON \"auth_user_attributes\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a4a11809dcf8cdd5fcceec774e\" ON \"auth_sessions\" (\"expires_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b1d224a5ac76b109101ce07231\" ON \"auth_sessions\" (\"seen_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_46ab036699db960a12d34aad2b\" ON \"auth_sessions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_60c2b21c37d79572f92da3476d\" ON \"auth_sessions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_4b428fb760524b6ef45e7c2cbf\" ON \"auth_sessions\" (\"client_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_50ccaa6440288a06f0ba693ccc\" ON \"auth_sessions\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5a40fe23cbb002e73bf740715f\" ON \"auth_sessions\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_2cf41b241977b633ee7df5c8ae\" ON \"auth_keys\" (\"use\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_81ce3477ef39f7b5e0e009e81c\" ON \"auth_keys\" (\"status\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0a1114947c976bbe430d24b2c9\" ON \"auth_keys\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5fc18a2304a0cd7129cb8736ed\" ON \"auth_keys\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5d1a390d8b26eb227c3d2a8ca5\" ON \"auth_roles\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a7a399f06c259755d1b27b01ab\" ON \"auth_roles\" (\"target\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9c66869156cbedfc95533f0df1\" ON \"auth_roles\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_414d5037e0b67b5dc3643ac8b8\" ON \"auth_roles\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_2ba00548c512fffe2e5bf4bb3f\" ON \"auth_role_attributes\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_cd014be6be330f64b8405d0c72\" ON \"auth_role_attributes\" (\"role_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b4ec5361a8a3f49267ccef575c\" ON \"auth_role_attributes\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_76b7c51aeeeff6d695c0b8e17f\" ON \"auth_role_attributes\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_dbcfb3a6d68ad40775ff55b0fd\" ON \"auth_client_roles\" (\"role_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f88e0dfb5f8c30fc66fef320f6\" ON \"auth_client_roles\" (\"client_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3a3a792dbd6d343c0dabe9900a\" ON \"auth_client_roles\" (\"client_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_ff4c8615288f1f8ebbeeed7f85\" ON \"auth_client_roles\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_8a110d4e8e1f9be98cc8d41c1c\" ON \"auth_client_roles\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0979aabd6e00c278eb9ac1e0ca\" ON \"auth_permissions\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_798534b4e296f68e1bc658fbe3\" ON \"auth_permissions\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e97033638618a50676a1637ad6\" ON \"auth_permissions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5690205a3d8b0ab370f18c0e4f\" ON \"auth_permissions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_d677e1082c27aae4ede40db0e9\" ON \"auth_client_permissions\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b27b823c96287617e5bdf008ea\" ON \"auth_client_permissions\" (\"client_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_feb56f67d0c919e7626f1df836\" ON \"auth_client_permissions\" (\"permission_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0d08f64ff34cb0d19deff4b1fc\" ON \"auth_client_permissions\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_ccc15bd289a1ee0ba1ff9f061a\" ON \"auth_client_permissions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_7a11a6fbab29ec59fc185d4f9e\" ON \"auth_client_permissions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e41ae7308e97ec75440f973cd8\" ON \"auth_scopes\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a4d3545ecd5c7507c326f6ce0c\" ON \"auth_scopes\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_c6dc9d6f6199967609c555ca07\" ON \"auth_scopes\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_800cdb9ca2821bc6a81b1eff34\" ON \"auth_client_scopes\" (\"default\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_410780c372c6b400e9c6cba743\" ON \"auth_client_scopes\" (\"client_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_471f3da9df80f92c382a586e9c\" ON \"auth_client_scopes\" (\"scope_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_81f39f6e4a90fc8b861cf12dbf\" ON \"auth_client_scopes\" (\"scope_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_88c5c368c6216d7d1f0eb26a97\" ON \"auth_consents\" (\"sub_kind\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_31d8afae3f42a07450dc54c2cb\" ON \"auth_consents\" (\"scope\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_eb128508302d046ee176ef89fd\" ON \"auth_consents\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6cff5665a42c31ebd8cdcfaad8\" ON \"auth_consents\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9486a670458a7377d1bd8f6245\" ON \"auth_events\" (\"scope\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_50f3b5dc6ae4eb17e736ca0a7d\" ON \"auth_events\" (\"ref_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_71c9adc2c466c149650c6c56e8\" ON \"auth_events\" (\"actor_type\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_37d01a405dc14c63738f1481b4\" ON \"auth_events\" (\"actor_name\", \"request_ip_address\", \"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_bac15f2c6806624e4f7223e5ed\" ON \"auth_identity_providers\" (\"protocol\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_213e1f3bdff969667e71206e9f\" ON \"auth_identity_providers\" (\"enabled\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6584e5587d2075fb11a8953bdc\" ON \"auth_identity_providers\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_246ce67900aa852582dae0a7d8\" ON \"auth_identity_providers\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5ac40c5ce92142639df65a33e5\" ON \"auth_identity_provider_attributes\" (\"provider_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_60411456c45c831be656fbf850\" ON \"auth_identity_provider_attributes\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9630da9b4e6c478189cc6062c5\" ON \"auth_identity_provider_accounts\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_430b7434c1f881ab776562e508\" ON \"auth_identity_provider_accounts\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b07582d2705a04c2e868e6c374\" ON \"auth_identity_provider_accounts\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_c9432656798d6116dd47a896e4\" ON \"auth_identity_provider_accounts\" (\"user_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_209348829a22e0fb2715e937e4\" ON \"auth_identity_provider_accounts\" (\"provider_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_ccf3fd36253755bd9a5f43c516\" ON \"auth_identity_provider_accounts\" (\"provider_user_id\", \"provider_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_58a45697736646499b3dc7f0d0\" ON \"auth_identity_provider_attribute_mappings\" (\"provider_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f59883e2400b294414a495002a\" ON \"auth_identity_provider_permission_mappings\" (\"permission_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_acce12b53121e9eb413f32c719\" ON \"auth_identity_provider_permission_mappings\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f2ea716aa0c8bd034b6f28e9eb\" ON \"auth_identity_provider_permission_mappings\" (\"provider_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e84cd23669ae68b3bfd44ef986\" ON \"auth_identity_provider_role_mappings\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_d84c31eb147bde680370f00ea5\" ON \"auth_identity_provider_role_mappings\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0c89b2c523eee535a9a18422fd\" ON \"auth_identity_provider_role_mappings\" (\"role_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0c61ae237f6a87d65feed8bc45\" ON \"auth_identity_provider_role_mappings\" (\"role_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f8dfd31c9dc51e1fb8409c83d0\" ON \"auth_identity_provider_role_mappings\" (\"provider_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_883cfabf7d5f7466a27625843d\" ON \"auth_session_tokens\" (\"client_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_8d823bc0f1c9fae725fe3c6c9e\" ON \"auth_session_tokens\" (\"parent_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9de8962dead711a91eb52badef\" ON \"auth_session_tokens\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_35eec422fb312f3d2d5d104da3\" ON \"auth_trust_anchors\" (\"enabled\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a788087fab74ba22302cc128eb\" ON \"auth_trust_anchors\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_16381ac607f6f4e37415a4879f\" ON \"auth_trust_anchors\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b4a3f78a50e369bfd2d1aa2445\" ON \"auth_permission_policies\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_85164349cdb62316ec19b88470\" ON \"auth_permission_policies\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_babb340dda101f2df8334eea5c\" ON \"auth_permission_policies\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f5225aa8083c99b1cd09f4390c\" ON \"auth_permission_policies\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a76f5f6a12317ea0e24a84c1a5\" ON \"auth_permission_policies\" (\"policy_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6b28c396d6f0c13165ae2d9abe\" ON \"auth_role_permissions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_d1c82cf7a5659d0e6fce7aa481\" ON \"auth_role_permissions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_cfa1834ece97297955f4a9539a\" ON \"auth_role_permissions\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3a6789765734cf5f3f555f2098\" ON \"auth_role_permissions\" (\"role_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3d29528c774bc47404659fad03\" ON \"auth_role_permissions\" (\"role_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f9ab8919ff5d5993816f688187\" ON \"auth_role_permissions\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_c5ad558296a77525b1f52919bf\" ON \"auth_user_authenticators\" (\"confirmed\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_7d3f50dac76afdc4f5a548eaf3\" ON \"auth_user_authenticators\" (\"last_used_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_fc331813cdc3b9c47a83c3be95\" ON \"auth_user_authenticators\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_eb9bd783394e3aedd35f855104\" ON \"auth_user_authenticators\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_db13de293f01ac8ab7bc0342c4\" ON \"auth_user_authenticators\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0a3a42400243fe3f9d969203a8\" ON \"auth_user_permissions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_bc15924b6889713da243e883ca\" ON \"auth_user_permissions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f15efcb7151cdd0d54ebafdd7f\" ON \"auth_user_permissions\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_c1d4523b08aa27f07dff798f8d\" ON \"auth_user_permissions\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5bf6d1affe0575299c44bc58c0\" ON \"auth_user_permissions\" (\"user_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e2de70574303693fea386cc0ed\" ON \"auth_user_permissions\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_77fe9d38c984c640fc155503c4\" ON \"auth_user_roles\" (\"role_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a3a59104c9c9f2a2458972bc96\" ON \"auth_user_roles\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6161ccebf3af1c475758651de4\" ON \"auth_user_roles\" (\"user_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e0588e81b8ff3c640311b7ee39\" ON \"auth_user_roles\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_92ba9504d7698a5a3de297ac76\" ON \"auth_user_roles\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f8538b58d9fe496e4c7bc6c565\" ON \"auth_users\" (\"reset_hash\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b2003e5ab8c075dc0a11f33bca\" ON \"auth_users\" (\"activate_hash\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9c861f8e8ea9fe35507b57fb88\" ON \"auth_policies\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9c08d15bfcf413aad26ee3eda8\" ON \"auth_clients\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5015816deff1b14e7d669ed7cb\" ON \"auth_roles\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f2835b7434c506b81e48a48229\" ON \"auth_scopes\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5b1ba660790692f625c7a777d3\" ON \"auth_identity_providers\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6f92ed4d9d7499b1dff735133c\" ON \"auth_policies\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_dd5af3e4a6f6157685f64d2c80\" ON \"auth_clients\" (\"active\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b532f2eeaa9eb2b5c3ac65459b\" ON \"auth_clients\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_61132a880199e367d87d4f51b5\" ON \"auth_users\" (\"active\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_50bf2034bc55ce71102900f5ae\" ON \"auth_sessions\" (\"realm_id\", \"seen_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_1ab6178864ca0fd7d23efe6abf\" ON \"auth_sessions\" (\"user_id\", \"seen_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6ff3a9ac44beabcc3a9642f0f9\" ON \"auth_events\" (\"realm_id\", \"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_74d37f543d9f9476b4b232c00b\" ON \"auth_session_tokens\" (\"session_id\", \"created_at\")\n `);\n // Hand-authored: drop the three orphaned legacy tables. Each predates a\n // rework that replaced it and nothing has referenced them since:\n // auth_authorization_codes (codes moved to cache blobs),\n // auth_refresh_tokens (superseded by auth_session_tokens, refresh\n // rotation), auth_identity_provider_roles (superseded by\n // auth_identity_provider_role_mappings in the identity-provider\n // rework). No entity describes them, so the schema-drift gate never\n // compared them; rows are pre-rework leftovers and are destroyed.\n await queryRunner.query(`\n DROP TABLE \"auth_authorization_codes\"\n `);\n await queryRunner.query(`\n DROP TABLE \"auth_refresh_tokens\"\n `);\n await queryRunner.query(`\n DROP TABLE \"auth_identity_provider_roles\"\n `);\n }\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_74d37f543d9f9476b4b232c00b\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6ff3a9ac44beabcc3a9642f0f9\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_1ab6178864ca0fd7d23efe6abf\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_50bf2034bc55ce71102900f5ae\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_61132a880199e367d87d4f51b5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b532f2eeaa9eb2b5c3ac65459b\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_dd5af3e4a6f6157685f64d2c80\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6f92ed4d9d7499b1dff735133c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5b1ba660790692f625c7a777d3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f2835b7434c506b81e48a48229\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5015816deff1b14e7d669ed7cb\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9c08d15bfcf413aad26ee3eda8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9c861f8e8ea9fe35507b57fb88\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b2003e5ab8c075dc0a11f33bca\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f8538b58d9fe496e4c7bc6c565\"\n `);\n // Hand-authored: recreate the dropped legacy tables exactly as the\n // pre-existing chain leaves them (constraint and index names\n // included, robot FKs excluded — RemoveRobots dropped those), so\n // the older migrations' down() paths keep working.\n await queryRunner.query(`\n CREATE TABLE \"auth_authorization_codes\" (\n \"id\" uuid NOT NULL DEFAULT uuid_generate_v4(),\n \"content\" character varying(4096) NOT NULL,\n \"expires\" character varying(28) NOT NULL,\n \"scope\" character varying(512),\n \"redirect_uri\" character varying(2000),\n \"id_token\" character varying(1000),\n \"client_id\" uuid,\n \"user_id\" uuid,\n \"robot_id\" uuid,\n \"realm_id\" uuid NOT NULL,\n CONSTRAINT \"PK_c2ecb6968a63a751bd6fd2e2b6b\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query(`\n CREATE TABLE \"auth_refresh_tokens\" (\n \"id\" uuid NOT NULL DEFAULT uuid_generate_v4(),\n \"expires\" character varying(28) NOT NULL,\n \"scope\" character varying(512),\n \"access_token\" uuid,\n \"client_id\" uuid,\n \"user_id\" uuid,\n \"robot_id\" uuid,\n \"realm_id\" uuid NOT NULL,\n CONSTRAINT \"PK_df6893d2063a4ea7bbf1eda31e5\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query(`\n CREATE TABLE \"auth_identity_provider_roles\" (\n \"id\" uuid NOT NULL DEFAULT uuid_generate_v4(),\n \"external_id\" character varying(36) NOT NULL,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"role_id\" uuid NOT NULL,\n \"role_realm_id\" uuid,\n \"provider_id\" uuid NOT NULL,\n \"provider_realm_id\" uuid,\n CONSTRAINT \"PK_345f74231cf39250a3e572b84a7\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query(`\n CREATE UNIQUE INDEX \"IDX_42df2e30eee05e54c74bced78b\" ON \"auth_identity_provider_roles\" (\"provider_id\", \"external_id\")\n `);\n await queryRunner.query(`\n CREATE UNIQUE INDEX \"IDX_fadb9ce4df580cc42e78b74b2f\" ON \"auth_identity_provider_roles\" (\"provider_id\", \"role_id\")\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_authorization_codes\"\n ADD CONSTRAINT \"FK_343b25488aef1b87f4771f8c7eb\" FOREIGN KEY (\"realm_id\") REFERENCES \"auth_realms\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_authorization_codes\"\n ADD CONSTRAINT \"FK_5119ffb8f6b8ba853e52be2e417\" FOREIGN KEY (\"user_id\") REFERENCES \"auth_users\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_authorization_codes\"\n ADD CONSTRAINT \"FK_ff6e597e9dd296da510efc06d28\" FOREIGN KEY (\"client_id\") REFERENCES \"auth_clients\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_refresh_tokens\"\n ADD CONSTRAINT \"FK_8f611e7ff67a2b013c909f60d52\" FOREIGN KEY (\"client_id\") REFERENCES \"auth_clients\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_refresh_tokens\"\n ADD CONSTRAINT \"FK_c1f59fdabbcf5dfd74d6af7f400\" FOREIGN KEY (\"realm_id\") REFERENCES \"auth_realms\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_refresh_tokens\"\n ADD CONSTRAINT \"FK_f795ad14f31838e3ddc663ee150\" FOREIGN KEY (\"user_id\") REFERENCES \"auth_users\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_identity_provider_roles\"\n ADD CONSTRAINT \"FK_2c3139bd232ffde35b71d43018e\" FOREIGN KEY (\"role_realm_id\") REFERENCES \"auth_realms\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_identity_provider_roles\"\n ADD CONSTRAINT \"FK_52a568200844cde16722b9bb95e\" FOREIGN KEY (\"provider_id\") REFERENCES \"auth_identity_providers\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_identity_provider_roles\"\n ADD CONSTRAINT \"FK_d49fb54b140869696a5a14285c7\" FOREIGN KEY (\"provider_realm_id\") REFERENCES \"auth_realms\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_identity_provider_roles\"\n ADD CONSTRAINT \"FK_f32f792ca1aeacea0507ef80a11\" FOREIGN KEY (\"role_id\") REFERENCES \"auth_roles\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_92ba9504d7698a5a3de297ac76\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e0588e81b8ff3c640311b7ee39\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6161ccebf3af1c475758651de4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a3a59104c9c9f2a2458972bc96\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_77fe9d38c984c640fc155503c4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e2de70574303693fea386cc0ed\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5bf6d1affe0575299c44bc58c0\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_c1d4523b08aa27f07dff798f8d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f15efcb7151cdd0d54ebafdd7f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_bc15924b6889713da243e883ca\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0a3a42400243fe3f9d969203a8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_db13de293f01ac8ab7bc0342c4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_eb9bd783394e3aedd35f855104\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_fc331813cdc3b9c47a83c3be95\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_7d3f50dac76afdc4f5a548eaf3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_c5ad558296a77525b1f52919bf\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f9ab8919ff5d5993816f688187\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3d29528c774bc47404659fad03\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3a6789765734cf5f3f555f2098\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_cfa1834ece97297955f4a9539a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_d1c82cf7a5659d0e6fce7aa481\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6b28c396d6f0c13165ae2d9abe\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a76f5f6a12317ea0e24a84c1a5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f5225aa8083c99b1cd09f4390c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_babb340dda101f2df8334eea5c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_85164349cdb62316ec19b88470\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b4a3f78a50e369bfd2d1aa2445\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_16381ac607f6f4e37415a4879f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a788087fab74ba22302cc128eb\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_35eec422fb312f3d2d5d104da3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9de8962dead711a91eb52badef\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_8d823bc0f1c9fae725fe3c6c9e\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_883cfabf7d5f7466a27625843d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f8dfd31c9dc51e1fb8409c83d0\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0c61ae237f6a87d65feed8bc45\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0c89b2c523eee535a9a18422fd\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_d84c31eb147bde680370f00ea5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e84cd23669ae68b3bfd44ef986\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f2ea716aa0c8bd034b6f28e9eb\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_acce12b53121e9eb413f32c719\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f59883e2400b294414a495002a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_58a45697736646499b3dc7f0d0\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_ccf3fd36253755bd9a5f43c516\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_209348829a22e0fb2715e937e4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_c9432656798d6116dd47a896e4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b07582d2705a04c2e868e6c374\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_430b7434c1f881ab776562e508\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9630da9b4e6c478189cc6062c5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_60411456c45c831be656fbf850\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5ac40c5ce92142639df65a33e5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_246ce67900aa852582dae0a7d8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6584e5587d2075fb11a8953bdc\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_213e1f3bdff969667e71206e9f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_bac15f2c6806624e4f7223e5ed\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_37d01a405dc14c63738f1481b4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_71c9adc2c466c149650c6c56e8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_50f3b5dc6ae4eb17e736ca0a7d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9486a670458a7377d1bd8f6245\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6cff5665a42c31ebd8cdcfaad8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_eb128508302d046ee176ef89fd\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_31d8afae3f42a07450dc54c2cb\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_88c5c368c6216d7d1f0eb26a97\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_81f39f6e4a90fc8b861cf12dbf\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_471f3da9df80f92c382a586e9c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_410780c372c6b400e9c6cba743\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_800cdb9ca2821bc6a81b1eff34\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_c6dc9d6f6199967609c555ca07\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a4d3545ecd5c7507c326f6ce0c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e41ae7308e97ec75440f973cd8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_7a11a6fbab29ec59fc185d4f9e\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_ccc15bd289a1ee0ba1ff9f061a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0d08f64ff34cb0d19deff4b1fc\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_feb56f67d0c919e7626f1df836\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b27b823c96287617e5bdf008ea\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_d677e1082c27aae4ede40db0e9\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5690205a3d8b0ab370f18c0e4f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e97033638618a50676a1637ad6\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_798534b4e296f68e1bc658fbe3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0979aabd6e00c278eb9ac1e0ca\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_8a110d4e8e1f9be98cc8d41c1c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_ff4c8615288f1f8ebbeeed7f85\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3a3a792dbd6d343c0dabe9900a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f88e0dfb5f8c30fc66fef320f6\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_dbcfb3a6d68ad40775ff55b0fd\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_76b7c51aeeeff6d695c0b8e17f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b4ec5361a8a3f49267ccef575c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_cd014be6be330f64b8405d0c72\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_2ba00548c512fffe2e5bf4bb3f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_414d5037e0b67b5dc3643ac8b8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9c66869156cbedfc95533f0df1\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a7a399f06c259755d1b27b01ab\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5d1a390d8b26eb227c3d2a8ca5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5fc18a2304a0cd7129cb8736ed\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0a1114947c976bbe430d24b2c9\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_81ce3477ef39f7b5e0e009e81c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_2cf41b241977b633ee7df5c8ae\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5a40fe23cbb002e73bf740715f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_50ccaa6440288a06f0ba693ccc\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_4b428fb760524b6ef45e7c2cbf\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_60c2b21c37d79572f92da3476d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_46ab036699db960a12d34aad2b\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b1d224a5ac76b109101ce07231\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a4a11809dcf8cdd5fcceec774e\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0d93685dd655ce6ee7c8255503\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_fa1bbd036543e4c4fda32b7ca6\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f50fe4004312e972a547c0e945\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9a84db5a27d34b31644b54d910\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_55c4ee639cdf45eb2453ee4fc7\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6597f3e492f4f8f3cc40772575\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_4f168a45a40758502e4833bb85\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b628ffa1b2f5415598cfb1a72a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_01ff3aa3d7f3ea41711fa3abd5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e9d2f1997f5bb2e3b25edc3ab6\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_7e7bca0ba30295b43b02a69051\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_8b759199b8a0213a7a0f7b1986\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f4cdbb6a56eb93fa2598c8483d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3f5906dabc9f129555d823408c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3bdf0256c69127d59bfd92a313\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_14b3b3b9c0a1b3a1d2abecb6e7\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_7cdad1f4b4773508db1c7907e3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_98610803836c2be19b55bc016b\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_711b1c0c94c1f50b72ee0bc5b2\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_75e631fcfae706212f5bd67a93\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_4a9118b99a30cfd3d0c49c3f4b\"\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_ce33c3f58b802bb3c7b2668adc\" ON \"auth_events\" USING btree (\"actor_name\")\n `);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCA,IAAaA,4BAAb,MAAaA;CACTC,OAAO;CAEP,MAAaC,GAAGC,aAAyC;EACrD,MAAMA,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EASD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;CACL;CACA,MAAaC,KAAKF,aAAyC;EACvD,MAAMA,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EAKD,MAAMD,YAAYC,MAAM;;;;;;;;;;;;;;SAcvB;EACD,MAAMD,YAAYC,MAAM;;;;;;;;;;;;SAYvB;EACD,MAAMD,YAAYC,MAAM;;;;;;;;;;;;SAYvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;CACL;AACJ"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import type { IAppEvent } from 'routup';
|
|
2
|
-
import type { IdentityProvider } from '@authup/core-kit';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
2
|
+
import type { IdentityProvider, IdentityProviderAccount } from '@authup/core-kit';
|
|
3
|
+
import type { Logger } from '@authup/server-kit';
|
|
4
|
+
import type { EntityCollectionResponse, EntityRecordResponse, IdentityProviderCreatePayload, IdentityProviderLinkConfirmPayload, IdentityProviderLinkRequestResponse, IdentityProviderSavePayload, IdentityProviderUpdatePayload } from '@authup/core-http-kit';
|
|
5
|
+
import type { IEventService, IIdentityProviderAccountLinkStore, IIdentityProviderAccountManager, IIdentityProviderRepository, IOAuth2AccessPolicyEvaluator, IOAuth2AuthorizationCodeIssuer, IOAuth2AuthorizationCodeRequestVerifier, IOAuth2AuthorizationStateManager, IRealmRepository } from '../../../../../core/index.ts';
|
|
5
6
|
import { OAuth2AuthorizationCodeRequestValidator } from '../../../../../core/index.ts';
|
|
6
7
|
import type { IdentityProviderControllerContext, IdentityProviderControllerOptions } from './types.ts';
|
|
7
8
|
export declare class IdentityProviderController {
|
|
8
9
|
protected options: IdentityProviderControllerOptions;
|
|
9
10
|
protected repository: IIdentityProviderRepository;
|
|
10
11
|
protected realmRepository: IRealmRepository;
|
|
11
|
-
protected clientRepository: IOAuth2ClientRepository;
|
|
12
12
|
protected accountManager: IIdentityProviderAccountManager;
|
|
13
|
+
protected linkStore: IIdentityProviderAccountLinkStore;
|
|
13
14
|
protected codeRequestVerifier: IOAuth2AuthorizationCodeRequestVerifier;
|
|
14
15
|
protected codeRequestValidator: OAuth2AuthorizationCodeRequestValidator;
|
|
15
16
|
protected stateManager: IOAuth2AuthorizationStateManager;
|
|
16
17
|
protected codeIssuer: IOAuth2AuthorizationCodeIssuer;
|
|
17
18
|
protected accessPolicyEvaluator?: IOAuth2AccessPolicyEvaluator;
|
|
19
|
+
protected eventService?: IEventService;
|
|
20
|
+
protected logger?: Logger;
|
|
18
21
|
constructor(ctx: IdentityProviderControllerContext);
|
|
19
22
|
getProviders(event: IAppEvent): Promise<EntityCollectionResponse<IdentityProvider>>;
|
|
20
23
|
getProvider(id: string, event: IAppEvent): Promise<EntityRecordResponse<IdentityProvider>>;
|
|
@@ -23,10 +26,25 @@ export declare class IdentityProviderController {
|
|
|
23
26
|
dropProvider(id: string, event: IAppEvent): Promise<EntityRecordResponse<IdentityProvider>>;
|
|
24
27
|
addProvider(user: IdentityProviderCreatePayload, event: IAppEvent): Promise<EntityRecordResponse<IdentityProvider>>;
|
|
25
28
|
authorizeOut(_id: string, event: IAppEvent): Promise<Response>;
|
|
29
|
+
linkRequest(_id: string, event: IAppEvent): Promise<IdentityProviderLinkRequestResponse>;
|
|
26
30
|
authorizeIn(_id: string, event: IAppEvent): Promise<Response>;
|
|
27
31
|
private write;
|
|
32
|
+
/**
|
|
33
|
+
* Callback half of the account-linking round-trip (plan 091): the
|
|
34
|
+
* external identity is bound to the state-referenced user instead of
|
|
35
|
+
* running the login path. No auth code and no session is minted; the
|
|
36
|
+
* browser lands back on the account console with a marker param.
|
|
37
|
+
*/
|
|
38
|
+
private completeLink;
|
|
39
|
+
/**
|
|
40
|
+
* The bearer-authenticated half of the link (issue #3439): the account
|
|
41
|
+
* row is written here, for the AUTHENTICATED user, never in the callback.
|
|
42
|
+
*/
|
|
43
|
+
confirmLink(_id: string, _data: IdentityProviderLinkConfirmPayload, event: IAppEvent): Promise<EntityRecordResponse<IdentityProviderAccount>>;
|
|
44
|
+
private pickIdentityCandidate;
|
|
28
45
|
private buildHostedAuthorizeURL;
|
|
29
46
|
private resolve;
|
|
47
|
+
private buildProviderAuthenticator;
|
|
30
48
|
private saveAuthorizationState;
|
|
31
49
|
private verifyAuthorizationState;
|
|
32
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/module.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMxC,OAAO,KAAK,EACR,gBAAgB,EAChB,uBAAuB,EAI1B,MAAM,kBAAkB,CAAC;AAc1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAKjD,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,kCAAkC,EAClC,mCAAmC,EACnC,2BAA2B,EAC3B,6BAA6B,EAChC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACR,aAAa,EACb,iCAAiC,EACjC,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,uCAAuC,EACvC,gCAAgC,EAChC,gBAAgB,EAInB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,uCAAuC,EAO1C,MAAM,8BAA8B,CAAC;AAatC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAEvG,qBAEa,0BAA0B;IACnC,SAAS,CAAC,OAAO,EAAE,iCAAiC,CAAC;IAErD,SAAS,CAAC,UAAU,EAAE,2BAA2B,CAAC;IAElD,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,cAAc,EAAE,+BAA+B,CAAC;IAE1D,SAAS,CAAC,SAAS,EAAE,iCAAiC,CAAC;IAEvD,SAAS,CAAC,mBAAmB,EAAG,uCAAuC,CAAC;IAExE,SAAS,CAAC,oBAAoB,EAAG,uCAAuC,CAAC;IAEzE,SAAS,CAAC,YAAY,EAAG,gCAAgC,CAAC;IAE1D,SAAS,CAAC,UAAU,EAAG,8BAA8B,CAAC;IAEtD,SAAS,CAAC,qBAAqB,CAAC,EAAG,4BAA4B,CAAC;IAEhE,SAAS,CAAC,YAAY,CAAC,EAAG,aAAa,CAAC;IAExC,SAAS,CAAC,MAAM,CAAC,EAAG,MAAM,CAAC;gBAIf,GAAG,EAAE,iCAAiC;IAkB5C,YAAY,CACF,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAuChD,WAAW,CACA,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IA0B5C,YAAY,CACD,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAK7C,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EAC9B,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAK7C,YAAY,CACD,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IA6B7C,WAAW,CACJ,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAO7C,YAAY,CACD,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS;IA0C1B,WAAW,CACA,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,mCAAmC,CAAC;IA6B1C,WAAW,CACA,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS;YA4KlB,KAAK;IA+FnB;;;;;OAKG;YACW,YAAY;IAyE1B;;;OAGG;IAEG,WAAW,CACA,GAAG,EAAE,MAAM,EACf,KAAK,EAAE,kCAAkC,EACtC,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;IA2E1D,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,uBAAuB;YAmBjB,OAAO;IAYrB,OAAO,CAAC,0BAA0B;YAepB,sBAAsB;YAWtB,wBAAwB;CAWzC"}
|
|
@@ -14,15 +14,17 @@ import { buildActorContext } from "../../../request/helpers/actor.mjs";
|
|
|
14
14
|
import { getBodyRealmID } from "../../../request/helpers/body-realm-id.mjs";
|
|
15
15
|
import { getRequestParamID, useRequestParamID } from "../../../request/helpers/param-id.mjs";
|
|
16
16
|
import { applyRouteRealmIDToBody, getRequestRealmID } from "../../../request/helpers/realm-id.mjs";
|
|
17
|
+
import { useRequestEventContext } from "../../../request/event-context.mjs";
|
|
17
18
|
import "../../../request/index.mjs";
|
|
18
19
|
import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
|
|
20
|
+
import { describeError } from "../../../../../utils/error.mjs";
|
|
19
21
|
import { resolveURL } from "../../../../../utils/url.mjs";
|
|
20
22
|
import "../../../../../utils/index.mjs";
|
|
21
23
|
import "../../../middleware/index.mjs";
|
|
22
|
-
import { ValidatorGroup, base64URLDecode, isUUID } from "@authup/kit";
|
|
23
|
-
import { IdentityProviderAttributesValidator, IdentityProviderValidator, IdentityType, PermissionName, SessionAuthMethod, isOAuth2IdentityProvider, isOpenIDIdentityProvider } from "@authup/core-kit";
|
|
24
|
+
import { ValidatorGroup, base64URLDecode, isObject, isUUID } from "@authup/kit";
|
|
25
|
+
import { EventName, EventRefType, EventScope, IdentityProviderAttributesValidator, IdentityProviderValidator, IdentityType, PermissionName, SessionAuthMethod, isOAuth2IdentityProvider, isOpenIDIdentityProvider } from "@authup/core-kit";
|
|
24
26
|
import { BuiltInPolicyType, definePolicyData } from "@authup/access";
|
|
25
|
-
import { BadRequestError, EntityNotFoundError } from "@authup/errors";
|
|
27
|
+
import { BadRequestError, EntityInactiveError, EntityNotFoundError } from "@authup/errors";
|
|
26
28
|
import { OAuth2ErrorCode, OAuth2RequestError } from "@authup/specs";
|
|
27
29
|
import { URL } from "node:url";
|
|
28
30
|
import { getRequestHeader, getRequestIP, sendRedirect } from "routup";
|
|
@@ -48,24 +50,28 @@ var IdentityProviderController = class {
|
|
|
48
50
|
options;
|
|
49
51
|
repository;
|
|
50
52
|
realmRepository;
|
|
51
|
-
clientRepository;
|
|
52
53
|
accountManager;
|
|
54
|
+
linkStore;
|
|
53
55
|
codeRequestVerifier;
|
|
54
56
|
codeRequestValidator;
|
|
55
57
|
stateManager;
|
|
56
58
|
codeIssuer;
|
|
57
59
|
accessPolicyEvaluator;
|
|
60
|
+
eventService;
|
|
61
|
+
logger;
|
|
58
62
|
constructor(ctx) {
|
|
59
63
|
this.options = ctx.options;
|
|
60
64
|
this.repository = ctx.repository;
|
|
61
65
|
this.realmRepository = ctx.realmRepository;
|
|
62
|
-
this.clientRepository = ctx.clientRepository;
|
|
63
66
|
this.accountManager = ctx.accountManager;
|
|
67
|
+
this.linkStore = ctx.linkStore;
|
|
64
68
|
this.codeIssuer = ctx.codeIssuer;
|
|
65
69
|
this.codeRequestVerifier = ctx.codeRequestVerifier;
|
|
66
70
|
this.codeRequestValidator = new OAuth2AuthorizationCodeRequestValidator();
|
|
67
71
|
this.stateManager = ctx.stateManager;
|
|
68
72
|
this.accessPolicyEvaluator = ctx.accessPolicyEvaluator;
|
|
73
|
+
this.eventService = ctx.eventService;
|
|
74
|
+
this.logger = ctx.logger;
|
|
69
75
|
}
|
|
70
76
|
async getProviders(event) {
|
|
71
77
|
const { data, meta } = await this.repository.findMany(await decodeQuery(useRequestQuery(event), {
|
|
@@ -146,12 +152,7 @@ var IdentityProviderController = class {
|
|
|
146
152
|
const id = useRequestParamID(event);
|
|
147
153
|
const entity = await this.resolve(id);
|
|
148
154
|
if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) throw new BadRequestError("Only an identity-provider based on the oauth protocol supports authorize redirect.");
|
|
149
|
-
const authenticator =
|
|
150
|
-
accountManager: this.accountManager,
|
|
151
|
-
provider: entity,
|
|
152
|
-
options: { baseURL: this.options.baseURL }
|
|
153
|
-
});
|
|
154
|
-
const parameters = {};
|
|
155
|
+
const authenticator = this.buildProviderAuthenticator(entity);
|
|
155
156
|
let codeRequest;
|
|
156
157
|
const query = useRequestQuery(event);
|
|
157
158
|
if (typeof query.codeRequest === "string") {
|
|
@@ -166,59 +167,86 @@ var IdentityProviderController = class {
|
|
|
166
167
|
if (data.client.realmId && entity.realmId && entity.realmId !== data.client.realmId) throw OAuth2RequestError.malformed("The provider and client realm do not match.");
|
|
167
168
|
codeRequest = data.data;
|
|
168
169
|
}
|
|
169
|
-
|
|
170
|
-
return sendRedirect(event, authenticator.buildRedirectURL(
|
|
170
|
+
const state = await this.saveAuthorizationState(event, { codeRequest });
|
|
171
|
+
return sendRedirect(event, authenticator.buildRedirectURL({ state }));
|
|
172
|
+
}
|
|
173
|
+
async linkRequest(_id, event) {
|
|
174
|
+
const id = useRequestParamID(event);
|
|
175
|
+
const entity = await this.resolve(id);
|
|
176
|
+
if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) throw new BadRequestError("Only an identity-provider based on the oauth protocol supports account linking.");
|
|
177
|
+
if (!entity.enabled) throw new BadRequestError("The identity provider is not enabled.");
|
|
178
|
+
const identity = useRequestIdentityOrFail(event);
|
|
179
|
+
if (identity.type !== IdentityType.USER) throw new BadRequestError("Only a user can link an identity provider account.");
|
|
180
|
+
if (entity.realmId && entity.realmId !== identity.realmId) throw new BadRequestError("The identity provider does not belong to the user realm.");
|
|
181
|
+
const authenticator = this.buildProviderAuthenticator(entity);
|
|
182
|
+
const state = await this.saveAuthorizationState(event, { link: {
|
|
183
|
+
userId: identity.id,
|
|
184
|
+
providerId: entity.id
|
|
185
|
+
} });
|
|
186
|
+
return { url: authenticator.buildRedirectURL({ state }) };
|
|
171
187
|
}
|
|
172
188
|
async authorizeIn(_id, event) {
|
|
173
189
|
const id = useRequestParamID(event);
|
|
174
190
|
const entity = await this.resolve(id);
|
|
175
191
|
if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) throw new Error(`The provider protocol ${entity.protocol} is not valid.`);
|
|
176
192
|
const data = await this.verifyAuthorizationState(event);
|
|
193
|
+
const { link } = data;
|
|
194
|
+
if (link) return this.completeLink(event, entity, data, link);
|
|
177
195
|
if (entity.realmId && data.codeRequest && data.codeRequest.realm_id && data.codeRequest.realm_id !== entity.realmId) throw OAuth2RequestError.malformed("The provider and client realm do not match.");
|
|
178
196
|
const { code } = useRequestQuery(event);
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
clientId: data.codeRequest?.client_id
|
|
185
|
-
}
|
|
186
|
-
}).authenticate(code);
|
|
197
|
+
if (typeof code !== "string" || code.length === 0) throw new BadRequestError("The authorization code is missing.");
|
|
198
|
+
const verified = data.codeRequest ? await this.codeRequestVerifier.verify(data.codeRequest) : void 0;
|
|
199
|
+
if (!entity.enabled) throw new BadRequestError("The identity provider is not enabled.");
|
|
200
|
+
const user = await this.buildProviderAuthenticator(entity, { clientId: verified?.data.client_id }).authenticate({ code });
|
|
201
|
+
if (!user.active) throw new EntityInactiveError({ entity: "user" });
|
|
187
202
|
const realm = await this.realmRepository.resolve(entity.realmId, true);
|
|
188
|
-
if (
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
...user,
|
|
196
|
-
realm
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
if (this.accessPolicyEvaluator && subject) allowed = await this.accessPolicyEvaluator.evaluate(client.accessPolicyId, subject);
|
|
200
|
-
if (!allowed) {
|
|
201
|
-
const url = this.buildHostedAuthorizeURL(data.codeRequest);
|
|
202
|
-
url.searchParams.set("error", OAuth2ErrorCode.ACCESS_DENIED);
|
|
203
|
-
return sendRedirect(event, url.href);
|
|
203
|
+
if (verified?.client.accessPolicyId) {
|
|
204
|
+
let allowed = false;
|
|
205
|
+
const subject = toIdentityPolicyData({
|
|
206
|
+
type: IdentityType.USER,
|
|
207
|
+
data: {
|
|
208
|
+
...user,
|
|
209
|
+
realm
|
|
204
210
|
}
|
|
211
|
+
});
|
|
212
|
+
if (this.accessPolicyEvaluator && subject) allowed = await this.accessPolicyEvaluator.evaluate(verified.client.accessPolicyId, subject);
|
|
213
|
+
if (!allowed) {
|
|
214
|
+
const url = this.buildHostedAuthorizeURL(verified.data);
|
|
215
|
+
url.searchParams.set("error", OAuth2ErrorCode.ACCESS_DENIED);
|
|
216
|
+
return sendRedirect(event, url.href);
|
|
205
217
|
}
|
|
206
218
|
}
|
|
207
|
-
const authorizationCode = await this.codeIssuer.issue({
|
|
208
|
-
response_type: "code",
|
|
209
|
-
client_id: data.codeRequest?.client_id,
|
|
210
|
-
redirect_uri: data.codeRequest?.redirect_uri,
|
|
211
|
-
scope: data.codeRequest?.scope
|
|
212
|
-
}, {
|
|
219
|
+
const authorizationCode = await this.codeIssuer.issue(verified?.data ?? { response_type: "code" }, {
|
|
213
220
|
type: IdentityType.USER,
|
|
214
221
|
data: {
|
|
215
222
|
...user,
|
|
216
223
|
realm
|
|
217
224
|
}
|
|
218
225
|
}, { authMethod: SessionAuthMethod.EXTERNAL });
|
|
219
|
-
|
|
220
|
-
|
|
226
|
+
await this.eventService?.record({
|
|
227
|
+
scope: EventScope.OAUTH2,
|
|
228
|
+
name: EventName.AUTHORIZE,
|
|
229
|
+
refType: EventRefType.CLIENT,
|
|
230
|
+
refId: verified?.data.client_id ?? null,
|
|
231
|
+
clientId: verified?.data.client_id ?? null,
|
|
232
|
+
sessionId: null,
|
|
233
|
+
actorType: IdentityType.USER,
|
|
234
|
+
actorId: user.id,
|
|
235
|
+
actorName: user.name,
|
|
236
|
+
realmId: verified?.data.realm_id ?? realm.id,
|
|
237
|
+
requestIpAddress: getRequestIP(event) ?? null,
|
|
238
|
+
requestUserAgent: getRequestHeader(event, "user-agent") ?? null,
|
|
239
|
+
data: {
|
|
240
|
+
reason: "federated",
|
|
241
|
+
providerId: entity.id,
|
|
242
|
+
providerName: entity.name,
|
|
243
|
+
...verified?.data.scope ? { scope: verified.data.scope } : {}
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
if (verified?.redirectUriVerified && verified.data.redirect_uri) {
|
|
247
|
+
const url = new URL(verified.data.redirect_uri);
|
|
221
248
|
url.searchParams.set("code", authorizationCode.id);
|
|
249
|
+
if (verified.data.state) url.searchParams.set("state", verified.data.state);
|
|
222
250
|
return sendRedirect(event, url.href);
|
|
223
251
|
}
|
|
224
252
|
const url = new URL(this.options.baseURL);
|
|
@@ -289,6 +317,89 @@ var IdentityProviderController = class {
|
|
|
289
317
|
meta: {}
|
|
290
318
|
};
|
|
291
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Callback half of the account-linking round-trip (plan 091): the
|
|
322
|
+
* external identity is bound to the state-referenced user instead of
|
|
323
|
+
* running the login path. No auth code and no session is minted; the
|
|
324
|
+
* browser lands back on the account console with a marker param.
|
|
325
|
+
*/ async completeLink(event, provider, state, link) {
|
|
326
|
+
const url = new URL(resolveURL(this.options.baseURL, "account/connected-accounts"));
|
|
327
|
+
const { code } = useRequestQuery(event);
|
|
328
|
+
try {
|
|
329
|
+
if (link.providerId !== provider.id || !provider.enabled) throw new BadRequestError("The identity provider is not available for account linking.");
|
|
330
|
+
if (typeof code !== "string" || code.length === 0) throw new BadRequestError("The authorization code is missing.");
|
|
331
|
+
const identity = await this.buildProviderAuthenticator(provider).resolveIdentity({ code });
|
|
332
|
+
if (!identity.id) throw new BadRequestError("The identity provider returned no subject.");
|
|
333
|
+
const handle = await this.linkStore.save({
|
|
334
|
+
providerId: provider.id,
|
|
335
|
+
userId: link.userId,
|
|
336
|
+
providerUserId: identity.id,
|
|
337
|
+
providerUserName: this.pickIdentityCandidate(identity, "name"),
|
|
338
|
+
providerUserEmail: this.pickIdentityCandidate(identity, "email")
|
|
339
|
+
});
|
|
340
|
+
url.searchParams.set("linkHandle", handle);
|
|
341
|
+
url.searchParams.set("provider", provider.id);
|
|
342
|
+
} catch (e) {
|
|
343
|
+
this.logger?.error(describeError(e, "The identity-provider account link failed."));
|
|
344
|
+
url.searchParams.set("linkError", "link_failed");
|
|
345
|
+
}
|
|
346
|
+
return sendRedirect(event, url.href);
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* The bearer-authenticated half of the link (issue #3439): the account
|
|
350
|
+
* row is written here, for the AUTHENTICATED user, never in the callback.
|
|
351
|
+
*/ async confirmLink(_id, _data, event) {
|
|
352
|
+
const id = useRequestParamID(event);
|
|
353
|
+
const provider = await this.resolve(id);
|
|
354
|
+
if (!isOAuth2IdentityProvider(provider) && !isOpenIDIdentityProvider(provider)) throw new BadRequestError("Only an identity-provider based on the oauth protocol supports account linking.");
|
|
355
|
+
if (!provider.enabled) throw new BadRequestError("The identity provider is not enabled.");
|
|
356
|
+
const identity = useRequestIdentityOrFail(event);
|
|
357
|
+
if (identity.type !== IdentityType.USER) throw new BadRequestError("Only a user can link an identity provider account.");
|
|
358
|
+
const body = await readRequestBody(event);
|
|
359
|
+
const handle = isObject(body) ? body.handle : void 0;
|
|
360
|
+
if (typeof handle !== "string" || handle.length === 0) throw new BadRequestError("The account link handle is missing.");
|
|
361
|
+
const link = await this.linkStore.consume(handle);
|
|
362
|
+
if (!link) throw new BadRequestError("The account link request is unknown or expired.");
|
|
363
|
+
if (link.userId !== identity.id || link.providerId !== provider.id) throw new BadRequestError("The account link request does not belong to the authenticated user.");
|
|
364
|
+
const account = await this.accountManager.link({
|
|
365
|
+
id: link.providerUserId,
|
|
366
|
+
attributeCandidates: {
|
|
367
|
+
name: [link.providerUserName],
|
|
368
|
+
email: [link.providerUserEmail]
|
|
369
|
+
},
|
|
370
|
+
data: {},
|
|
371
|
+
provider
|
|
372
|
+
}, identity.id);
|
|
373
|
+
const requestContext = useRequestEventContext();
|
|
374
|
+
await this.eventService?.record({
|
|
375
|
+
scope: EventScope.IDENTITY,
|
|
376
|
+
name: EventName.IDENTITY_PROVIDER_LINKED,
|
|
377
|
+
refType: EventRefType.IDENTITY_PROVIDER_ACCOUNT,
|
|
378
|
+
refId: account.id,
|
|
379
|
+
realmId: account.userRealmId ?? provider.realmId ?? null,
|
|
380
|
+
actorType: IdentityType.USER,
|
|
381
|
+
actorId: account.userId,
|
|
382
|
+
actorName: identity.data.name ?? null,
|
|
383
|
+
sessionId: requestContext?.sessionId ?? null,
|
|
384
|
+
requestPath: requestContext?.requestPath ?? null,
|
|
385
|
+
requestMethod: requestContext?.requestMethod ?? null,
|
|
386
|
+
requestIpAddress: requestContext?.requestIpAddress ?? getRequestIP(event) ?? null,
|
|
387
|
+
requestUserAgent: requestContext?.requestUserAgent ?? getRequestHeader(event, "user-agent") ?? null,
|
|
388
|
+
data: {
|
|
389
|
+
providerId: provider.id,
|
|
390
|
+
providerName: provider.name
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
return {
|
|
394
|
+
data: account,
|
|
395
|
+
meta: {}
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
pickIdentityCandidate(identity, key) {
|
|
399
|
+
const candidates = identity.attributeCandidates?.[key] || [];
|
|
400
|
+
for (const candidate of candidates) if (typeof candidate === "string" && candidate.length > 0) return candidate;
|
|
401
|
+
return null;
|
|
402
|
+
}
|
|
292
403
|
buildHostedAuthorizeURL(codeRequest) {
|
|
293
404
|
const url = new URL(resolveURL(this.options.baseURL, "authorize"));
|
|
294
405
|
const codeRequestKeys = Object.keys(codeRequest);
|
|
@@ -304,9 +415,20 @@ var IdentityProviderController = class {
|
|
|
304
415
|
if (!entity) throw new EntityNotFoundError();
|
|
305
416
|
return entity;
|
|
306
417
|
}
|
|
307
|
-
|
|
418
|
+
buildProviderAuthenticator(provider, options = {}) {
|
|
419
|
+
return createIdentityProviderOAuth2Authenticator({
|
|
420
|
+
accountManager: this.accountManager,
|
|
421
|
+
provider,
|
|
422
|
+
logger: this.logger,
|
|
423
|
+
options: {
|
|
424
|
+
baseURL: this.options.baseURL,
|
|
425
|
+
clientId: options.clientId
|
|
426
|
+
}
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
async saveAuthorizationState(event, data = {}) {
|
|
308
430
|
return this.stateManager.save({
|
|
309
|
-
|
|
431
|
+
...data,
|
|
310
432
|
ip: getRequestIP(event) ?? "",
|
|
311
433
|
userAgent: getRequestHeader(event, "user-agent") ?? void 0
|
|
312
434
|
});
|
|
@@ -385,6 +507,14 @@ _ts_decorate([
|
|
|
385
507
|
_ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
|
|
386
508
|
_ts_metadata("design:returntype", Promise)
|
|
387
509
|
], IdentityProviderController.prototype, "authorizeOut", null);
|
|
510
|
+
_ts_decorate([
|
|
511
|
+
DPost("/:id/link-request", [ForceLoggedInMiddleware]),
|
|
512
|
+
_ts_param(0, DPath("id")),
|
|
513
|
+
_ts_param(1, DContext()),
|
|
514
|
+
_ts_metadata("design:type", Function),
|
|
515
|
+
_ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
|
|
516
|
+
_ts_metadata("design:returntype", Promise)
|
|
517
|
+
], IdentityProviderController.prototype, "linkRequest", null);
|
|
388
518
|
_ts_decorate([
|
|
389
519
|
DGet("/:id/authorize-in", []),
|
|
390
520
|
_ts_param(0, DPath("id")),
|
|
@@ -393,6 +523,19 @@ _ts_decorate([
|
|
|
393
523
|
_ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
|
|
394
524
|
_ts_metadata("design:returntype", Promise)
|
|
395
525
|
], IdentityProviderController.prototype, "authorizeIn", null);
|
|
526
|
+
_ts_decorate([
|
|
527
|
+
DPost("/:id/link-confirm", [ForceLoggedInMiddleware]),
|
|
528
|
+
_ts_param(0, DPath("id")),
|
|
529
|
+
_ts_param(1, DBody()),
|
|
530
|
+
_ts_param(2, DContext()),
|
|
531
|
+
_ts_metadata("design:type", Function),
|
|
532
|
+
_ts_metadata("design:paramtypes", [
|
|
533
|
+
String,
|
|
534
|
+
typeof IdentityProviderLinkConfirmPayload === "undefined" ? Object : IdentityProviderLinkConfirmPayload,
|
|
535
|
+
typeof IAppEvent === "undefined" ? Object : IAppEvent
|
|
536
|
+
]),
|
|
537
|
+
_ts_metadata("design:returntype", Promise)
|
|
538
|
+
], IdentityProviderController.prototype, "confirmLink", null);
|
|
396
539
|
IdentityProviderController = _ts_decorate([
|
|
397
540
|
DTags("identity"),
|
|
398
541
|
DController(["/identity-providers", "/realms/:realmId/identity-providers"]),
|