@minimaltech/node-infra 0.2.27
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/LICENSE +26 -0
- package/README.md +8 -0
- package/dist/base/applications/base.application.d.ts +306 -0
- package/dist/base/applications/base.application.js +147 -0
- package/dist/base/applications/base.application.js.map +1 -0
- package/dist/base/applications/default.application.d.ts +19 -0
- package/dist/base/applications/default.application.js +78 -0
- package/dist/base/applications/default.application.js.map +1 -0
- package/dist/base/applications/index.d.ts +2 -0
- package/dist/base/applications/index.js +19 -0
- package/dist/base/applications/index.js.map +1 -0
- package/dist/base/base.component.d.ts +8 -0
- package/dist/base/base.component.js +12 -0
- package/dist/base/base.component.js.map +1 -0
- package/dist/base/base.datasource.d.ts +9 -0
- package/dist/base/base.datasource.js +13 -0
- package/dist/base/base.datasource.js.map +1 -0
- package/dist/base/base.model.d.ts +107 -0
- package/dist/base/base.model.js +79 -0
- package/dist/base/base.model.js.map +1 -0
- package/dist/base/base.provider.d.ts +7 -0
- package/dist/base/base.provider.js +12 -0
- package/dist/base/base.provider.js.map +1 -0
- package/dist/base/base.sequence.d.ts +8 -0
- package/dist/base/base.sequence.js +62 -0
- package/dist/base/base.sequence.js.map +1 -0
- package/dist/base/base.service.d.ts +8 -0
- package/dist/base/base.service.js +12 -0
- package/dist/base/base.service.js.map +1 -0
- package/dist/base/controllers/common.d.ts +17 -0
- package/dist/base/controllers/common.js +33 -0
- package/dist/base/controllers/common.js.map +1 -0
- package/dist/base/controllers/crud.controller.d.ts +39 -0
- package/dist/base/controllers/crud.controller.js +297 -0
- package/dist/base/controllers/crud.controller.js.map +1 -0
- package/dist/base/controllers/index.d.ts +4 -0
- package/dist/base/controllers/index.js +21 -0
- package/dist/base/controllers/index.js.map +1 -0
- package/dist/base/controllers/kv.controller.d.ts +20 -0
- package/dist/base/controllers/kv.controller.js +139 -0
- package/dist/base/controllers/kv.controller.js.map +1 -0
- package/dist/base/controllers/relational.controller.d.ts +40 -0
- package/dist/base/controllers/relational.controller.js +393 -0
- package/dist/base/controllers/relational.controller.js.map +1 -0
- package/dist/base/index.d.ts +9 -0
- package/dist/base/index.js +26 -0
- package/dist/base/index.js.map +1 -0
- package/dist/base/repositories/base.repository.d.ts +54 -0
- package/dist/base/repositories/base.repository.js +156 -0
- package/dist/base/repositories/base.repository.js.map +1 -0
- package/dist/base/repositories/index.d.ts +3 -0
- package/dist/base/repositories/index.js +20 -0
- package/dist/base/repositories/index.js.map +1 -0
- package/dist/base/repositories/searchable-tz-crud.repository.d.ts +42 -0
- package/dist/base/repositories/searchable-tz-crud.repository.js +241 -0
- package/dist/base/repositories/searchable-tz-crud.repository.js.map +1 -0
- package/dist/base/repositories/tz-crud.repository.d.ts +64 -0
- package/dist/base/repositories/tz-crud.repository.js +244 -0
- package/dist/base/repositories/tz-crud.repository.js.map +1 -0
- package/dist/common/constants.d.ts +62 -0
- package/dist/common/constants.js +87 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/environments.d.ts +20 -0
- package/dist/common/environments.js +25 -0
- package/dist/common/environments.js.map +1 -0
- package/dist/common/index.d.ts +5 -0
- package/dist/common/index.js +22 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/keys.d.ts +4 -0
- package/dist/common/keys.js +9 -0
- package/dist/common/keys.js.map +1 -0
- package/dist/common/statuses.d.ts +36 -0
- package/dist/common/statuses.js +53 -0
- package/dist/common/statuses.js.map +1 -0
- package/dist/common/types.d.ts +96 -0
- package/dist/common/types.js +3 -0
- package/dist/common/types.js.map +1 -0
- package/dist/components/authenticate/common/constants.d.ts +15 -0
- package/dist/components/authenticate/common/constants.js +23 -0
- package/dist/components/authenticate/common/constants.js.map +1 -0
- package/dist/components/authenticate/common/index.d.ts +3 -0
- package/dist/components/authenticate/common/index.js +20 -0
- package/dist/components/authenticate/common/index.js.map +1 -0
- package/dist/components/authenticate/common/keys.d.ts +8 -0
- package/dist/components/authenticate/common/keys.js +13 -0
- package/dist/components/authenticate/common/keys.js.map +1 -0
- package/dist/components/authenticate/common/types.d.ts +80 -0
- package/dist/components/authenticate/common/types.js +146 -0
- package/dist/components/authenticate/common/types.js.map +1 -0
- package/dist/components/authenticate/component.d.ts +14 -0
- package/dist/components/authenticate/component.js +143 -0
- package/dist/components/authenticate/component.js.map +1 -0
- package/dist/components/authenticate/controllers/auth.controller.d.ts +21 -0
- package/dist/components/authenticate/controllers/auth.controller.js +125 -0
- package/dist/components/authenticate/controllers/auth.controller.js.map +1 -0
- package/dist/components/authenticate/controllers/index.d.ts +2 -0
- package/dist/components/authenticate/controllers/index.js +19 -0
- package/dist/components/authenticate/controllers/index.js.map +1 -0
- package/dist/components/authenticate/controllers/oauth2.controller.d.ts +46 -0
- package/dist/components/authenticate/controllers/oauth2.controller.js +227 -0
- package/dist/components/authenticate/controllers/oauth2.controller.js.map +1 -0
- package/dist/components/authenticate/index.d.ts +7 -0
- package/dist/components/authenticate/index.js +24 -0
- package/dist/components/authenticate/index.js.map +1 -0
- package/dist/components/authenticate/middleware.d.ts +11 -0
- package/dist/components/authenticate/middleware.js +89 -0
- package/dist/components/authenticate/middleware.js.map +1 -0
- package/dist/components/authenticate/models/index.d.ts +3 -0
- package/dist/components/authenticate/models/index.js +20 -0
- package/dist/components/authenticate/models/index.js.map +1 -0
- package/dist/components/authenticate/models/oauth2-client.model.d.ts +19 -0
- package/dist/components/authenticate/models/oauth2-client.model.js +100 -0
- package/dist/components/authenticate/models/oauth2-client.model.js.map +1 -0
- package/dist/components/authenticate/models/oauth2-scope.model.d.ts +8 -0
- package/dist/components/authenticate/models/oauth2-scope.model.js +61 -0
- package/dist/components/authenticate/models/oauth2-scope.model.js.map +1 -0
- package/dist/components/authenticate/models/oauth2-token.model.d.ts +12 -0
- package/dist/components/authenticate/models/oauth2-token.model.js +87 -0
- package/dist/components/authenticate/models/oauth2-token.model.js.map +1 -0
- package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.d.ts +13 -0
- package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js +56 -0
- package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js.map +1 -0
- package/dist/components/authenticate/oauth2-handlers/base.d.ts +37 -0
- package/dist/components/authenticate/oauth2-handlers/base.js +192 -0
- package/dist/components/authenticate/oauth2-handlers/base.js.map +1 -0
- package/dist/components/authenticate/oauth2-handlers/client-credential.handler.d.ts +12 -0
- package/dist/components/authenticate/oauth2-handlers/client-credential.handler.js +28 -0
- package/dist/components/authenticate/oauth2-handlers/client-credential.handler.js.map +1 -0
- package/dist/components/authenticate/oauth2-handlers/index.d.ts +5 -0
- package/dist/components/authenticate/oauth2-handlers/index.js +22 -0
- package/dist/components/authenticate/oauth2-handlers/index.js.map +1 -0
- package/dist/components/authenticate/oauth2-handlers/oauth2.d.ts +15 -0
- package/dist/components/authenticate/oauth2-handlers/oauth2.js +36 -0
- package/dist/components/authenticate/oauth2-handlers/oauth2.js.map +1 -0
- package/dist/components/authenticate/oauth2-handlers/password.handler.d.ts +12 -0
- package/dist/components/authenticate/oauth2-handlers/password.handler.js +22 -0
- package/dist/components/authenticate/oauth2-handlers/password.handler.js.map +1 -0
- package/dist/components/authenticate/repositories/index.d.ts +1 -0
- package/dist/components/authenticate/repositories/index.js +18 -0
- package/dist/components/authenticate/repositories/index.js.map +1 -0
- package/dist/components/authenticate/repositories/oauth2.repository.d.ts +17 -0
- package/dist/components/authenticate/repositories/oauth2.repository.js +78 -0
- package/dist/components/authenticate/repositories/oauth2.repository.js.map +1 -0
- package/dist/components/authenticate/services/basic-token.service.d.ts +8 -0
- package/dist/components/authenticate/services/basic-token.service.js +42 -0
- package/dist/components/authenticate/services/basic-token.service.js.map +1 -0
- package/dist/components/authenticate/services/basic.strategy.d.ts +13 -0
- package/dist/components/authenticate/services/basic.strategy.js +64 -0
- package/dist/components/authenticate/services/basic.strategy.js.map +1 -0
- package/dist/components/authenticate/services/index.d.ts +6 -0
- package/dist/components/authenticate/services/index.js +23 -0
- package/dist/components/authenticate/services/index.js.map +1 -0
- package/dist/components/authenticate/services/jwt-token.service.d.ts +23 -0
- package/dist/components/authenticate/services/jwt-token.service.js +154 -0
- package/dist/components/authenticate/services/jwt-token.service.js.map +1 -0
- package/dist/components/authenticate/services/jwt.strategy.d.ts +9 -0
- package/dist/components/authenticate/services/jwt.strategy.js +34 -0
- package/dist/components/authenticate/services/jwt.strategy.js.map +1 -0
- package/dist/components/authenticate/services/oauth2.service.d.ts +51 -0
- package/dist/components/authenticate/services/oauth2.service.js +208 -0
- package/dist/components/authenticate/services/oauth2.service.js.map +1 -0
- package/dist/components/authenticate/services/oauth2.strategy.d.ts +23 -0
- package/dist/components/authenticate/services/oauth2.strategy.js +69 -0
- package/dist/components/authenticate/services/oauth2.strategy.js.map +1 -0
- package/dist/components/authenticate/views/fragments/footer.ejs +0 -0
- package/dist/components/authenticate/views/fragments/head.ejs +26 -0
- package/dist/components/authenticate/views/fragments/header.ejs +0 -0
- package/dist/components/authenticate/views/pages/auth.ejs +61 -0
- package/dist/components/authenticate/views/pages/error.ejs +21 -0
- package/dist/components/authorize/adapters/adapter-builder.d.ts +12 -0
- package/dist/components/authorize/adapters/adapter-builder.js +34 -0
- package/dist/components/authorize/adapters/adapter-builder.js.map +1 -0
- package/dist/components/authorize/adapters/base.adapter.d.ts +18 -0
- package/dist/components/authorize/adapters/base.adapter.js +67 -0
- package/dist/components/authorize/adapters/base.adapter.js.map +1 -0
- package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.d.ts +12 -0
- package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js +91 -0
- package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js.map +1 -0
- package/dist/components/authorize/adapters/casbin-redis-adapter.helper.d.ts +7 -0
- package/dist/components/authorize/adapters/casbin-redis-adapter.helper.js +15 -0
- package/dist/components/authorize/adapters/casbin-redis-adapter.helper.js.map +1 -0
- package/dist/components/authorize/adapters/index.d.ts +4 -0
- package/dist/components/authorize/adapters/index.js +21 -0
- package/dist/components/authorize/adapters/index.js.map +1 -0
- package/dist/components/authorize/common/constants.d.ts +14 -0
- package/dist/components/authorize/common/constants.js +22 -0
- package/dist/components/authorize/common/constants.js.map +1 -0
- package/dist/components/authorize/common/index.d.ts +3 -0
- package/dist/components/authorize/common/index.js +20 -0
- package/dist/components/authorize/common/index.js.map +1 -0
- package/dist/components/authorize/common/keys.d.ts +17 -0
- package/dist/components/authorize/common/keys.js +22 -0
- package/dist/components/authorize/common/keys.js.map +1 -0
- package/dist/components/authorize/common/types.d.ts +16 -0
- package/dist/components/authorize/common/types.js +9 -0
- package/dist/components/authorize/common/types.js.map +1 -0
- package/dist/components/authorize/component.d.ts +12 -0
- package/dist/components/authorize/component.js +158 -0
- package/dist/components/authorize/component.js.map +1 -0
- package/dist/components/authorize/decorators/index.d.ts +8 -0
- package/dist/components/authorize/decorators/index.js +19 -0
- package/dist/components/authorize/decorators/index.js.map +1 -0
- package/dist/components/authorize/index.d.ts +9 -0
- package/dist/components/authorize/index.js +26 -0
- package/dist/components/authorize/index.js.map +1 -0
- package/dist/components/authorize/interceptor.d.ts +9 -0
- package/dist/components/authorize/interceptor.js +121 -0
- package/dist/components/authorize/interceptor.js.map +1 -0
- package/dist/components/authorize/migrations/0000-create-view-policy.d.ts +7 -0
- package/dist/components/authorize/migrations/0000-create-view-policy.js +83 -0
- package/dist/components/authorize/migrations/0000-create-view-policy.js.map +1 -0
- package/dist/components/authorize/migrations/index.d.ts +1 -0
- package/dist/components/authorize/migrations/index.js +18 -0
- package/dist/components/authorize/migrations/index.js.map +1 -0
- package/dist/components/authorize/models/defs.d.ts +173 -0
- package/dist/components/authorize/models/defs.js +243 -0
- package/dist/components/authorize/models/defs.js.map +1 -0
- package/dist/components/authorize/models/index.d.ts +6 -0
- package/dist/components/authorize/models/index.js +23 -0
- package/dist/components/authorize/models/index.js.map +1 -0
- package/dist/components/authorize/models/permission-mapping.model.d.ts +36 -0
- package/dist/components/authorize/models/permission-mapping.model.js +40 -0
- package/dist/components/authorize/models/permission-mapping.model.js.map +1 -0
- package/dist/components/authorize/models/permission.model.d.ts +44 -0
- package/dist/components/authorize/models/permission.model.js +34 -0
- package/dist/components/authorize/models/permission.model.js.map +1 -0
- package/dist/components/authorize/models/role.model.d.ts +40 -0
- package/dist/components/authorize/models/role.model.js +46 -0
- package/dist/components/authorize/models/role.model.js.map +1 -0
- package/dist/components/authorize/models/user-role.model.d.ts +34 -0
- package/dist/components/authorize/models/user-role.model.js +35 -0
- package/dist/components/authorize/models/user-role.model.js.map +1 -0
- package/dist/components/authorize/models/view-authorize-policy.model.d.ts +9 -0
- package/dist/components/authorize/models/view-authorize-policy.model.js +70 -0
- package/dist/components/authorize/models/view-authorize-policy.model.js.map +1 -0
- package/dist/components/authorize/provider.d.ts +30 -0
- package/dist/components/authorize/provider.js +157 -0
- package/dist/components/authorize/provider.js.map +1 -0
- package/dist/components/authorize/repositories/authorize.repository.d.ts +33 -0
- package/dist/components/authorize/repositories/authorize.repository.js +105 -0
- package/dist/components/authorize/repositories/authorize.repository.js.map +1 -0
- package/dist/components/authorize/repositories/index.d.ts +1 -0
- package/dist/components/authorize/repositories/index.js +18 -0
- package/dist/components/authorize/repositories/index.js.map +1 -0
- package/dist/components/authorize/services/enforcer.service.d.ts +13 -0
- package/dist/components/authorize/services/enforcer.service.js +99 -0
- package/dist/components/authorize/services/enforcer.service.js.map +1 -0
- package/dist/components/authorize/services/generator.service.d.ts +54 -0
- package/dist/components/authorize/services/generator.service.js +161 -0
- package/dist/components/authorize/services/generator.service.js.map +1 -0
- package/dist/components/authorize/services/index.d.ts +2 -0
- package/dist/components/authorize/services/index.js +19 -0
- package/dist/components/authorize/services/index.js.map +1 -0
- package/dist/components/grpc/common/constants.d.ts +2 -0
- package/dist/components/grpc/common/constants.js +6 -0
- package/dist/components/grpc/common/constants.js.map +1 -0
- package/dist/components/grpc/common/index.d.ts +3 -0
- package/dist/components/grpc/common/index.js +20 -0
- package/dist/components/grpc/common/index.js.map +1 -0
- package/dist/components/grpc/common/keys.d.ts +10 -0
- package/dist/components/grpc/common/keys.js +17 -0
- package/dist/components/grpc/common/keys.js.map +1 -0
- package/dist/components/grpc/common/types.d.ts +31 -0
- package/dist/components/grpc/common/types.js +3 -0
- package/dist/components/grpc/common/types.js.map +1 -0
- package/dist/components/grpc/components/index.d.ts +1 -0
- package/dist/components/grpc/components/index.js +18 -0
- package/dist/components/grpc/components/index.js.map +1 -0
- package/dist/components/grpc/components/server.component.d.ts +10 -0
- package/dist/components/grpc/components/server.component.js +65 -0
- package/dist/components/grpc/components/server.component.js.map +1 -0
- package/dist/components/grpc/controllers/base.d.ts +14 -0
- package/dist/components/grpc/controllers/base.js +31 -0
- package/dist/components/grpc/controllers/base.js.map +1 -0
- package/dist/components/grpc/controllers/index.d.ts +1 -0
- package/dist/components/grpc/controllers/index.js +18 -0
- package/dist/components/grpc/controllers/index.js.map +1 -0
- package/dist/components/grpc/decorators/index.d.ts +3 -0
- package/dist/components/grpc/decorators/index.js +14 -0
- package/dist/components/grpc/decorators/index.js.map +1 -0
- package/dist/components/grpc/helpers/grpc-client.d.ts +15 -0
- package/dist/components/grpc/helpers/grpc-client.js +58 -0
- package/dist/components/grpc/helpers/grpc-client.js.map +1 -0
- package/dist/components/grpc/helpers/grpc-server.d.ts +21 -0
- package/dist/components/grpc/helpers/grpc-server.js +152 -0
- package/dist/components/grpc/helpers/grpc-server.js.map +1 -0
- package/dist/components/grpc/helpers/index.d.ts +2 -0
- package/dist/components/grpc/helpers/index.js +19 -0
- package/dist/components/grpc/helpers/index.js.map +1 -0
- package/dist/components/grpc/index.d.ts +6 -0
- package/dist/components/grpc/index.js +23 -0
- package/dist/components/grpc/index.js.map +1 -0
- package/dist/components/grpc/persistents/grpc.connector.d.ts +27 -0
- package/dist/components/grpc/persistents/grpc.connector.js +39 -0
- package/dist/components/grpc/persistents/grpc.connector.js.map +1 -0
- package/dist/components/grpc/persistents/grpc.datasource.d.ts +21 -0
- package/dist/components/grpc/persistents/grpc.datasource.js +43 -0
- package/dist/components/grpc/persistents/grpc.datasource.js.map +1 -0
- package/dist/components/grpc/persistents/grpc.repository.d.ts +13 -0
- package/dist/components/grpc/persistents/grpc.repository.js +28 -0
- package/dist/components/grpc/persistents/grpc.repository.js.map +1 -0
- package/dist/components/grpc/persistents/index.d.ts +3 -0
- package/dist/components/grpc/persistents/index.js +20 -0
- package/dist/components/grpc/persistents/index.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.js +23 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/migration/common/index.d.ts +2 -0
- package/dist/components/migration/common/index.js +19 -0
- package/dist/components/migration/common/index.js.map +1 -0
- package/dist/components/migration/common/keys.d.ts +5 -0
- package/dist/components/migration/common/keys.js +10 -0
- package/dist/components/migration/common/keys.js.map +1 -0
- package/dist/components/migration/common/types.d.ts +9 -0
- package/dist/components/migration/common/types.js +3 -0
- package/dist/components/migration/common/types.js.map +1 -0
- package/dist/components/migration/component.d.ts +11 -0
- package/dist/components/migration/component.js +55 -0
- package/dist/components/migration/component.js.map +1 -0
- package/dist/components/migration/index.d.ts +4 -0
- package/dist/components/migration/index.js +21 -0
- package/dist/components/migration/index.js.map +1 -0
- package/dist/components/migration/models/index.d.ts +1 -0
- package/dist/components/migration/models/index.js +18 -0
- package/dist/components/migration/models/index.js.map +1 -0
- package/dist/components/migration/models/migration.model.d.ts +6 -0
- package/dist/components/migration/models/migration.model.js +54 -0
- package/dist/components/migration/models/migration.model.js.map +1 -0
- package/dist/components/migration/repositories/index.d.ts +1 -0
- package/dist/components/migration/repositories/index.js +18 -0
- package/dist/components/migration/repositories/index.js.map +1 -0
- package/dist/components/migration/repositories/migration.repository.d.ts +13 -0
- package/dist/components/migration/repositories/migration.repository.js +53 -0
- package/dist/components/migration/repositories/migration.repository.js.map +1 -0
- package/dist/components/socket-io/common/constants.d.ts +12 -0
- package/dist/components/socket-io/common/constants.js +17 -0
- package/dist/components/socket-io/common/constants.js.map +1 -0
- package/dist/components/socket-io/common/index.d.ts +2 -0
- package/dist/components/socket-io/common/index.js +19 -0
- package/dist/components/socket-io/common/index.js.map +1 -0
- package/dist/components/socket-io/common/keys.d.ts +8 -0
- package/dist/components/socket-io/common/keys.js +13 -0
- package/dist/components/socket-io/common/keys.js.map +1 -0
- package/dist/components/socket-io/component.d.ts +9 -0
- package/dist/components/socket-io/component.js +73 -0
- package/dist/components/socket-io/component.js.map +1 -0
- package/dist/components/socket-io/helpers/index.d.ts +2 -0
- package/dist/components/socket-io/helpers/index.js +19 -0
- package/dist/components/socket-io/helpers/index.js.map +1 -0
- package/dist/components/socket-io/helpers/socket-io-client.helper.d.ts +34 -0
- package/dist/components/socket-io/helpers/socket-io-client.helper.js +89 -0
- package/dist/components/socket-io/helpers/socket-io-client.helper.js.map +1 -0
- package/dist/components/socket-io/helpers/socket-io-server.helper.d.ts +74 -0
- package/dist/components/socket-io/helpers/socket-io-server.helper.js +325 -0
- package/dist/components/socket-io/helpers/socket-io-server.helper.js.map +1 -0
- package/dist/components/socket-io/helpers/types.d.ts +15 -0
- package/dist/components/socket-io/helpers/types.js +3 -0
- package/dist/components/socket-io/helpers/types.js.map +1 -0
- package/dist/components/socket-io/index.d.ts +3 -0
- package/dist/components/socket-io/index.js +20 -0
- package/dist/components/socket-io/index.js.map +1 -0
- package/dist/components/static-asset/common/index.d.ts +1 -0
- package/dist/components/static-asset/common/index.js +18 -0
- package/dist/components/static-asset/common/index.js.map +1 -0
- package/dist/components/static-asset/common/keys.d.ts +6 -0
- package/dist/components/static-asset/common/keys.js +11 -0
- package/dist/components/static-asset/common/keys.js.map +1 -0
- package/dist/components/static-asset/component.d.ts +13 -0
- package/dist/components/static-asset/component.js +73 -0
- package/dist/components/static-asset/component.js.map +1 -0
- package/dist/components/static-asset/controllers/asset.controller.d.ts +18 -0
- package/dist/components/static-asset/controllers/asset.controller.js +239 -0
- package/dist/components/static-asset/controllers/asset.controller.js.map +1 -0
- package/dist/components/static-asset/controllers/index.d.ts +2 -0
- package/dist/components/static-asset/controllers/index.js +19 -0
- package/dist/components/static-asset/controllers/index.js.map +1 -0
- package/dist/components/static-asset/controllers/resource.controller.d.ts +14 -0
- package/dist/components/static-asset/controllers/resource.controller.js +140 -0
- package/dist/components/static-asset/controllers/resource.controller.js.map +1 -0
- package/dist/components/static-asset/index.d.ts +3 -0
- package/dist/components/static-asset/index.js +20 -0
- package/dist/components/static-asset/index.js.map +1 -0
- package/dist/datasources/index.d.ts +2 -0
- package/dist/datasources/index.js +19 -0
- package/dist/datasources/index.js.map +1 -0
- package/dist/datasources/kvmem.datasource.d.ts +9 -0
- package/dist/datasources/kvmem.datasource.js +36 -0
- package/dist/datasources/kvmem.datasource.js.map +1 -0
- package/dist/datasources/postgres.datasource.d.ts +14 -0
- package/dist/datasources/postgres.datasource.js +71 -0
- package/dist/datasources/postgres.datasource.js.map +1 -0
- package/dist/helpers/application-environment.helper.d.ts +13 -0
- package/dist/helpers/application-environment.helper.js +31 -0
- package/dist/helpers/application-environment.helper.js.map +1 -0
- package/dist/helpers/cron.helper.d.ts +21 -0
- package/dist/helpers/cron.helper.js +59 -0
- package/dist/helpers/cron.helper.js.map +1 -0
- package/dist/helpers/database/index.d.ts +1 -0
- package/dist/helpers/database/index.js +18 -0
- package/dist/helpers/database/index.js.map +1 -0
- package/dist/helpers/database/query-builder.helper.d.ts +43 -0
- package/dist/helpers/database/query-builder.helper.js +72 -0
- package/dist/helpers/database/query-builder.helper.js.map +1 -0
- package/dist/helpers/index.d.ts +9 -0
- package/dist/helpers/index.js +26 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/logger/application-logger.d.ts +13 -0
- package/dist/helpers/logger/application-logger.js +66 -0
- package/dist/helpers/logger/application-logger.js.map +1 -0
- package/dist/helpers/logger/default-logger.d.ts +4 -0
- package/dist/helpers/logger/default-logger.js +40 -0
- package/dist/helpers/logger/default-logger.js.map +1 -0
- package/dist/helpers/logger/factory.d.ts +4 -0
- package/dist/helpers/logger/factory.js +13 -0
- package/dist/helpers/logger/factory.js.map +1 -0
- package/dist/helpers/logger/index.d.ts +3 -0
- package/dist/helpers/logger/index.js +20 -0
- package/dist/helpers/logger/index.js.map +1 -0
- package/dist/helpers/network/base-network-request.d.ts +16 -0
- package/dist/helpers/network/base-network-request.js +65 -0
- package/dist/helpers/network/base-network-request.js.map +1 -0
- package/dist/helpers/network/index.d.ts +4 -0
- package/dist/helpers/network/index.js +21 -0
- package/dist/helpers/network/index.js.map +1 -0
- package/dist/helpers/network/network-tcp-client.helper.d.ts +45 -0
- package/dist/helpers/network/network-tcp-client.helper.js +136 -0
- package/dist/helpers/network/network-tcp-client.helper.js.map +1 -0
- package/dist/helpers/network/network-udp-client.helper.d.ts +43 -0
- package/dist/helpers/network/network-udp-client.helper.js +82 -0
- package/dist/helpers/network/network-udp-client.helper.js.map +1 -0
- package/dist/helpers/network/network.helper.d.ts +26 -0
- package/dist/helpers/network/network.helper.js +121 -0
- package/dist/helpers/network/network.helper.js.map +1 -0
- package/dist/helpers/queue/bullmq.helper.d.ts +32 -0
- package/dist/helpers/queue/bullmq.helper.js +94 -0
- package/dist/helpers/queue/bullmq.helper.js.map +1 -0
- package/dist/helpers/queue/index.d.ts +3 -0
- package/dist/helpers/queue/index.js +20 -0
- package/dist/helpers/queue/index.js.map +1 -0
- package/dist/helpers/queue/mqtt.helper.d.ts +35 -0
- package/dist/helpers/queue/mqtt.helper.js +99 -0
- package/dist/helpers/queue/mqtt.helper.js.map +1 -0
- package/dist/helpers/queue/queue.helper.d.ts +31 -0
- package/dist/helpers/queue/queue.helper.js +90 -0
- package/dist/helpers/queue/queue.helper.js.map +1 -0
- package/dist/helpers/redis.helper.d.ts +82 -0
- package/dist/helpers/redis.helper.js +238 -0
- package/dist/helpers/redis.helper.js.map +1 -0
- package/dist/helpers/storage/di-container.helper.d.ts +11 -0
- package/dist/helpers/storage/di-container.helper.js +28 -0
- package/dist/helpers/storage/di-container.helper.js.map +1 -0
- package/dist/helpers/storage/index.d.ts +2 -0
- package/dist/helpers/storage/index.js +19 -0
- package/dist/helpers/storage/index.js.map +1 -0
- package/dist/helpers/storage/minio.helper.d.ts +58 -0
- package/dist/helpers/storage/minio.helper.js +171 -0
- package/dist/helpers/storage/minio.helper.js.map +1 -0
- package/dist/helpers/testing/common.d.ts +6 -0
- package/dist/helpers/testing/common.js +10 -0
- package/dist/helpers/testing/common.js.map +1 -0
- package/dist/helpers/testing/describe.d.ts +15 -0
- package/dist/helpers/testing/describe.js +55 -0
- package/dist/helpers/testing/describe.js.map +1 -0
- package/dist/helpers/testing/index.d.ts +6 -0
- package/dist/helpers/testing/index.js +23 -0
- package/dist/helpers/testing/index.js.map +1 -0
- package/dist/helpers/testing/test-case.d.ts +20 -0
- package/dist/helpers/testing/test-case.js +18 -0
- package/dist/helpers/testing/test-case.js.map +1 -0
- package/dist/helpers/testing/test-handler.d.ts +23 -0
- package/dist/helpers/testing/test-handler.js +54 -0
- package/dist/helpers/testing/test-handler.js.map +1 -0
- package/dist/helpers/testing/test-plan/base.d.ts +28 -0
- package/dist/helpers/testing/test-plan/base.js +70 -0
- package/dist/helpers/testing/test-plan/base.js.map +1 -0
- package/dist/helpers/testing/test-plan/default.d.ts +5 -0
- package/dist/helpers/testing/test-plan/default.js +11 -0
- package/dist/helpers/testing/test-plan/default.js.map +1 -0
- package/dist/helpers/testing/test-plan/index.d.ts +2 -0
- package/dist/helpers/testing/test-plan/index.js +19 -0
- package/dist/helpers/testing/test-plan/index.js.map +1 -0
- package/dist/helpers/testing/types.d.ts +51 -0
- package/dist/helpers/testing/types.js +3 -0
- package/dist/helpers/testing/types.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors/content-range.interceptor.d.ts +26 -0
- package/dist/interceptors/content-range.interceptor.js +188 -0
- package/dist/interceptors/content-range.interceptor.js.map +1 -0
- package/dist/interceptors/index.d.ts +1 -0
- package/dist/interceptors/index.js +18 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/middlewares/index.d.ts +2 -0
- package/dist/middlewares/index.js +19 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/request-body-parser.middleware.d.ts +9 -0
- package/dist/middlewares/request-body-parser.middleware.js +80 -0
- package/dist/middlewares/request-body-parser.middleware.js.map +1 -0
- package/dist/middlewares/request-spy.middleware.d.ts +8 -0
- package/dist/middlewares/request-spy.middleware.js +64 -0
- package/dist/middlewares/request-spy.middleware.js.map +1 -0
- package/dist/migrations/base-path.d.ts +1 -0
- package/dist/migrations/base-path.js +6 -0
- package/dist/migrations/base-path.js.map +1 -0
- package/dist/migrations/handler.d.ts +9 -0
- package/dist/migrations/handler.js +80 -0
- package/dist/migrations/handler.js.map +1 -0
- package/dist/migrations/index.d.ts +1 -0
- package/dist/migrations/index.js +18 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/mixins/data-type.mixin.d.ts +15 -0
- package/dist/mixins/data-type.mixin.js +68 -0
- package/dist/mixins/data-type.mixin.js.map +1 -0
- package/dist/mixins/index.d.ts +8 -0
- package/dist/mixins/index.js +25 -0
- package/dist/mixins/index.js.map +1 -0
- package/dist/mixins/object-search.mixin.d.ts +12 -0
- package/dist/mixins/object-search.mixin.js +31 -0
- package/dist/mixins/object-search.mixin.js.map +1 -0
- package/dist/mixins/principal.mixin.d.ts +13 -0
- package/dist/mixins/principal.mixin.js +41 -0
- package/dist/mixins/principal.mixin.js.map +1 -0
- package/dist/mixins/soft-delete.mixin.d.ts +11 -0
- package/dist/mixins/soft-delete.mixin.js +31 -0
- package/dist/mixins/soft-delete.mixin.js.map +1 -0
- package/dist/mixins/soft-persistent.mixin.d.ts +11 -0
- package/dist/mixins/soft-persistent.mixin.js +30 -0
- package/dist/mixins/soft-persistent.mixin.js.map +1 -0
- package/dist/mixins/text-search.mixin.d.ts +11 -0
- package/dist/mixins/text-search.mixin.js +31 -0
- package/dist/mixins/text-search.mixin.js.map +1 -0
- package/dist/mixins/tz.mixin.d.ts +12 -0
- package/dist/mixins/tz.mixin.js +42 -0
- package/dist/mixins/tz.mixin.js.map +1 -0
- package/dist/mixins/user-audit.mixin.d.ts +13 -0
- package/dist/mixins/user-audit.mixin.js +42 -0
- package/dist/mixins/user-audit.mixin.js.map +1 -0
- package/dist/static/security/authorize_model.conf +14 -0
- package/dist/static/security/authorize_model_match_subject.conf +14 -0
- package/dist/utilities/crypto.utility.d.ts +22 -0
- package/dist/utilities/crypto.utility.js +131 -0
- package/dist/utilities/crypto.utility.js.map +1 -0
- package/dist/utilities/date.utility.d.ts +13 -0
- package/dist/utilities/date.utility.js +59 -0
- package/dist/utilities/date.utility.js.map +1 -0
- package/dist/utilities/error.utility.d.ts +14 -0
- package/dist/utilities/error.utility.js +18 -0
- package/dist/utilities/error.utility.js.map +1 -0
- package/dist/utilities/index.d.ts +7 -0
- package/dist/utilities/index.js +24 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/parse.utility.d.ts +12 -0
- package/dist/utilities/parse.utility.js +160 -0
- package/dist/utilities/parse.utility.js.map +1 -0
- package/dist/utilities/performance.utility.d.ts +4 -0
- package/dist/utilities/performance.utility.js +11 -0
- package/dist/utilities/performance.utility.js.map +1 -0
- package/dist/utilities/request.utility.d.ts +17 -0
- package/dist/utilities/request.utility.js +41 -0
- package/dist/utilities/request.utility.js.map +1 -0
- package/dist/utilities/url.utility.d.ts +2 -0
- package/dist/utilities/url.utility.js +32 -0
- package/dist/utilities/url.utility.js.map +1 -0
- package/package.json +128 -0
@@ -0,0 +1,208 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
|
+
};
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
13
|
+
};
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
21
|
+
});
|
22
|
+
};
|
23
|
+
var OAuth2Service_1;
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
25
|
+
exports.OAuth2Service = void 0;
|
26
|
+
const applications_1 = require("../../../base/applications");
|
27
|
+
const base_service_1 = require("../../../base/base.service");
|
28
|
+
const common_1 = require("../../../common");
|
29
|
+
const helpers_1 = require("../../../helpers");
|
30
|
+
const utilities_1 = require("../../../utilities");
|
31
|
+
const core_1 = require("@loopback/core");
|
32
|
+
const oauth2_server_1 = require("@node-oauth/oauth2-server");
|
33
|
+
const common_2 = require("../common");
|
34
|
+
const oauth2_handlers_1 = require("../oauth2-handlers");
|
35
|
+
const repositories_1 = require("../repositories");
|
36
|
+
let OAuth2Service = OAuth2Service_1 = class OAuth2Service extends base_service_1.BaseService {
|
37
|
+
constructor(application, handler, oauth2ClientRepository) {
|
38
|
+
super({ scope: OAuth2Service_1.name });
|
39
|
+
this.application = application;
|
40
|
+
this.handler = handler;
|
41
|
+
this.oauth2ClientRepository = oauth2ClientRepository;
|
42
|
+
}
|
43
|
+
// --------------------------------------------------------------------------------
|
44
|
+
encryptClientToken(opts) {
|
45
|
+
const { clientId, clientSecret } = opts;
|
46
|
+
const applicationSecret = helpers_1.applicationEnvironment.get(common_1.EnvironmentKeys.APP_ENV_APPLICATION_SECRET);
|
47
|
+
return (0, utilities_1.encrypt)([clientId, clientSecret].join('_'), applicationSecret);
|
48
|
+
}
|
49
|
+
// --------------------------------------------------------------------------------
|
50
|
+
decryptClientToken(opts) {
|
51
|
+
const { token } = opts;
|
52
|
+
const applicationSecret = helpers_1.applicationEnvironment.get(common_1.EnvironmentKeys.APP_ENV_APPLICATION_SECRET);
|
53
|
+
const decrypted = (0, utilities_1.decrypt)(token, applicationSecret, { doThrow: false });
|
54
|
+
const [clientId, clientSecret] = decrypted.split('_');
|
55
|
+
this.logger.debug('[decryptClientToken] Token: %s | ClientId: %s', clientId, token);
|
56
|
+
if (!clientId || !clientSecret) {
|
57
|
+
this.logger.error('[decryptClientToken] Failed to decrypt token: %s', token);
|
58
|
+
throw (0, utilities_1.getError)({ message: 'Failed to decryptClientToken' });
|
59
|
+
}
|
60
|
+
return { clientId, clientSecret };
|
61
|
+
}
|
62
|
+
// --------------------------------------------------------------------------------
|
63
|
+
getOAuth2RequestPath(opts) {
|
64
|
+
const { clientId, clientSecret, redirectUrl } = opts;
|
65
|
+
return new Promise((resolve, reject) => {
|
66
|
+
this.oauth2ClientRepository
|
67
|
+
.findOne({ where: Object.assign({}, opts), fields: ['id', 'endpoints'] })
|
68
|
+
.then(client => {
|
69
|
+
var _a, _b, _c;
|
70
|
+
if (!client) {
|
71
|
+
throw (0, utilities_1.getError)({
|
72
|
+
message: `[getOAuth2RequestPath] Client not found!`,
|
73
|
+
});
|
74
|
+
}
|
75
|
+
if (!((_b = (_a = client === null || client === void 0 ? void 0 : client.endpoints) === null || _a === void 0 ? void 0 : _a.redirectUrls) === null || _b === void 0 ? void 0 : _b.includes(redirectUrl))) {
|
76
|
+
throw (0, utilities_1.getError)({
|
77
|
+
message: `[getOAuth2RequestPath] Invalid redirectUrl!`,
|
78
|
+
});
|
79
|
+
}
|
80
|
+
const basePath = (_c = helpers_1.applicationEnvironment.get(common_1.EnvironmentKeys.APP_ENV_SERVER_BASE_PATH)) !== null && _c !== void 0 ? _c : '';
|
81
|
+
const applicationSecret = helpers_1.applicationEnvironment.get(common_1.EnvironmentKeys.APP_ENV_APPLICATION_SECRET);
|
82
|
+
if (!applicationSecret) {
|
83
|
+
throw (0, utilities_1.getError)({
|
84
|
+
message: `[getOAuth2RequestPath] Invalid applicationSecret!`,
|
85
|
+
});
|
86
|
+
}
|
87
|
+
const urlParam = new URLSearchParams();
|
88
|
+
const requestToken = (0, utilities_1.encrypt)([clientId, clientSecret].join('_'), applicationSecret);
|
89
|
+
urlParam.set('c', encodeURIComponent(requestToken));
|
90
|
+
if (redirectUrl) {
|
91
|
+
urlParam.set('r', encodeURIComponent(redirectUrl));
|
92
|
+
}
|
93
|
+
resolve({
|
94
|
+
requestPath: `${basePath}/oauth2/auth?${urlParam.toString()}`,
|
95
|
+
});
|
96
|
+
})
|
97
|
+
.catch(reject);
|
98
|
+
});
|
99
|
+
}
|
100
|
+
// --------------------------------------------------------------------------------
|
101
|
+
generateToken(opts) {
|
102
|
+
const { request, response } = opts;
|
103
|
+
return this.handler.token(new oauth2_server_1.Request(request), new oauth2_server_1.Response(response));
|
104
|
+
}
|
105
|
+
// --------------------------------------------------------------------------------
|
106
|
+
authorize(opts) {
|
107
|
+
const { request, response } = opts;
|
108
|
+
return this.handler.authorize(new oauth2_server_1.Request(request), new oauth2_server_1.Response(response));
|
109
|
+
}
|
110
|
+
// --------------------------------------------------------------------------------
|
111
|
+
doOAuth2(opts) {
|
112
|
+
return __awaiter(this, void 0, void 0, function* () {
|
113
|
+
var _a;
|
114
|
+
const { context, authServiceKey, signInRequest, redirectUrl } = opts;
|
115
|
+
const authService = this.application.getSync(authServiceKey);
|
116
|
+
const signInRs = yield authService.signIn(signInRequest);
|
117
|
+
const tokenValue = (_a = signInRs === null || signInRs === void 0 ? void 0 : signInRs.token) === null || _a === void 0 ? void 0 : _a.value;
|
118
|
+
if (!tokenValue) {
|
119
|
+
throw (0, utilities_1.getError)({ message: `[auth] Failed to get token value!` });
|
120
|
+
}
|
121
|
+
const authorizationCodeRequest = new oauth2_server_1.Request(context.request);
|
122
|
+
authorizationCodeRequest.body = {
|
123
|
+
client_id: signInRequest.clientId, // eslint-disable-line @typescript-eslint/naming-convention
|
124
|
+
response_type: 'code', // eslint-disable-line @typescript-eslint/naming-convention
|
125
|
+
grant_type: 'authorization_code', // eslint-disable-line @typescript-eslint/naming-convention
|
126
|
+
scope: 'profile',
|
127
|
+
access_token: tokenValue, // eslint-disable-line @typescript-eslint/naming-convention
|
128
|
+
redirect_uri: redirectUrl, // eslint-disable-line @typescript-eslint/naming-convention
|
129
|
+
};
|
130
|
+
const authorizationCodeRs = yield this.authorize({
|
131
|
+
request: authorizationCodeRequest,
|
132
|
+
response: new oauth2_server_1.Response(context.response),
|
133
|
+
});
|
134
|
+
const client = yield this.oauth2ClientRepository.findOne({
|
135
|
+
where: { clientId: signInRequest.clientId },
|
136
|
+
fields: ['id', 'clientId', 'clientSecret'],
|
137
|
+
});
|
138
|
+
const oauth2TokenRequest = new oauth2_server_1.Request(context.request);
|
139
|
+
oauth2TokenRequest.body = {
|
140
|
+
client_id: client.clientId, // eslint-disable-line @typescript-eslint/naming-convention
|
141
|
+
client_secret: client.clientSecret, // eslint-disable-line @typescript-eslint/naming-convention
|
142
|
+
code: authorizationCodeRs.authorizationCode,
|
143
|
+
grant_type: 'authorization_code', // eslint-disable-line @typescript-eslint/naming-convention
|
144
|
+
};
|
145
|
+
if (redirectUrl) {
|
146
|
+
oauth2TokenRequest.body.redirect_uri = redirectUrl;
|
147
|
+
}
|
148
|
+
const oauth2TokenRs = yield this.generateToken({
|
149
|
+
request: oauth2TokenRequest,
|
150
|
+
response: new oauth2_server_1.Response(context.response),
|
151
|
+
});
|
152
|
+
return {
|
153
|
+
redirectUrl: authorizationCodeRs.redirectUri,
|
154
|
+
oauth2TokenRs,
|
155
|
+
};
|
156
|
+
});
|
157
|
+
}
|
158
|
+
// --------------------------------------------------------------------------------
|
159
|
+
doClientCallback(opts) {
|
160
|
+
return __awaiter(this, void 0, void 0, function* () {
|
161
|
+
var _a;
|
162
|
+
const { c, accessToken, authorizationCode, accessTokenExpiresAt, client, user } = opts.oauth2Token;
|
163
|
+
if (!client) {
|
164
|
+
this.logger.error('[doClientCallback] Invalid client | Client: %j', client);
|
165
|
+
return;
|
166
|
+
}
|
167
|
+
const callbackUrls = (_a = client === null || client === void 0 ? void 0 : client.callbackUrls) !== null && _a !== void 0 ? _a : [];
|
168
|
+
if (!callbackUrls.length) {
|
169
|
+
this.logger.error('[doClientCallback] No client callbackUrls');
|
170
|
+
return;
|
171
|
+
}
|
172
|
+
const payload = {
|
173
|
+
c,
|
174
|
+
accessToken,
|
175
|
+
authorizationCode,
|
176
|
+
accessTokenExpiresAt,
|
177
|
+
user,
|
178
|
+
};
|
179
|
+
yield Promise.all(callbackUrls.map(callbackUrl => {
|
180
|
+
return new Promise((resolve, reject) => {
|
181
|
+
fetch(callbackUrl, {
|
182
|
+
method: 'POST',
|
183
|
+
body: JSON.stringify(payload),
|
184
|
+
headers: { ['content-type']: 'application/x-www-form-urlencoded' },
|
185
|
+
})
|
186
|
+
.then(rs => {
|
187
|
+
this.logger.info('[doClientCallback] Successfull to callback | Url: %s', callbackUrl);
|
188
|
+
resolve(rs);
|
189
|
+
})
|
190
|
+
.catch(error => {
|
191
|
+
this.logger.error('[doClientCallback] Failed to callback | Url: %s | Error: %s', callbackUrl, error);
|
192
|
+
reject(error);
|
193
|
+
});
|
194
|
+
});
|
195
|
+
}));
|
196
|
+
});
|
197
|
+
}
|
198
|
+
};
|
199
|
+
exports.OAuth2Service = OAuth2Service;
|
200
|
+
exports.OAuth2Service = OAuth2Service = OAuth2Service_1 = __decorate([
|
201
|
+
__param(0, (0, core_1.inject)(core_1.CoreBindings.APPLICATION_INSTANCE)),
|
202
|
+
__param(1, (0, core_1.inject)(common_2.AuthenticateKeys.OAUTH2_HANDLER)),
|
203
|
+
__param(2, (0, core_1.inject)('repositories.OAuth2ClientRepository')),
|
204
|
+
__metadata("design:paramtypes", [applications_1.BaseApplication,
|
205
|
+
oauth2_handlers_1.OAuth2Handler,
|
206
|
+
repositories_1.OAuth2ClientRepository])
|
207
|
+
], OAuth2Service);
|
208
|
+
//# sourceMappingURL=oauth2.service.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"oauth2.service.js","sourceRoot":"","sources":["../../../../src/components/authenticate/services/oauth2.service.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { BaseNetworkRequest } from '../../../helpers';
|
2
|
+
import { Context } from '@loopback/core';
|
3
|
+
import { Request } from '@loopback/rest';
|
4
|
+
declare class AuthProviderNetworkRequest extends BaseNetworkRequest {
|
5
|
+
}
|
6
|
+
export declare const defineOAuth2Strategy: (opts: {
|
7
|
+
name: string;
|
8
|
+
baseURL: string;
|
9
|
+
authPath?: string;
|
10
|
+
}) => {
|
11
|
+
new (): {
|
12
|
+
name: string;
|
13
|
+
authProvider: AuthProviderNetworkRequest;
|
14
|
+
authPath: string;
|
15
|
+
authenticate(request: Request): Promise<any>;
|
16
|
+
};
|
17
|
+
};
|
18
|
+
export declare const registerOAuth2Strategy: (context: Context, options: {
|
19
|
+
strategyName: string;
|
20
|
+
authenticateUrl: string;
|
21
|
+
authenticatePath?: string;
|
22
|
+
}) => void;
|
23
|
+
export {};
|
@@ -0,0 +1,69 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
+
exports.registerOAuth2Strategy = exports.defineOAuth2Strategy = void 0;
|
16
|
+
const helpers_1 = require("../../../helpers");
|
17
|
+
const utilities_1 = require("../../../utilities");
|
18
|
+
const authentication_1 = require("@loopback/authentication");
|
19
|
+
const security_1 = require("@loopback/security");
|
20
|
+
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
21
|
+
class AuthProviderNetworkRequest extends helpers_1.BaseNetworkRequest {
|
22
|
+
}
|
23
|
+
const defineOAuth2Strategy = (opts) => {
|
24
|
+
class Strategy {
|
25
|
+
constructor() {
|
26
|
+
var _a;
|
27
|
+
this.name = opts.name;
|
28
|
+
const baseURL = opts.baseURL;
|
29
|
+
if (!baseURL || (0, isEmpty_1.default)(baseURL)) {
|
30
|
+
throw (0, utilities_1.getError)({
|
31
|
+
message: `[RemoteAuthenticationStrategy][DANGER] INVALID baseURL | Missing env: APP_ENV_REMOTE_AUTH_SERVER_URL`,
|
32
|
+
});
|
33
|
+
}
|
34
|
+
this.authPath = (_a = opts.authPath) !== null && _a !== void 0 ? _a : '/auth/who-am-i';
|
35
|
+
this.authProvider = new AuthProviderNetworkRequest({
|
36
|
+
name: AuthProviderNetworkRequest.name,
|
37
|
+
scope: `${Strategy.name}_${opts.name}`,
|
38
|
+
networkOptions: { baseURL },
|
39
|
+
});
|
40
|
+
}
|
41
|
+
authenticate(request) {
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
43
|
+
var _a, _b, _c;
|
44
|
+
const networkService = this.authProvider.getNetworkService();
|
45
|
+
const rs = yield networkService.send({
|
46
|
+
url: this.authProvider.getRequestUrl({ paths: [this.authPath] }),
|
47
|
+
headers: { Authorization: request.headers['authorization'] },
|
48
|
+
});
|
49
|
+
if ((_a = rs === null || rs === void 0 ? void 0 : rs.data) === null || _a === void 0 ? void 0 : _a.error) {
|
50
|
+
throw (0, utilities_1.getError)(rs.data.error);
|
51
|
+
}
|
52
|
+
return Object.assign(Object.assign({}, rs === null || rs === void 0 ? void 0 : rs.data), { [security_1.securityId]: (_c = (_b = rs === null || rs === void 0 ? void 0 : rs.data) === null || _b === void 0 ? void 0 : _b.userId) === null || _c === void 0 ? void 0 : _c.toString() });
|
53
|
+
});
|
54
|
+
}
|
55
|
+
}
|
56
|
+
return Strategy;
|
57
|
+
};
|
58
|
+
exports.defineOAuth2Strategy = defineOAuth2Strategy;
|
59
|
+
const registerOAuth2Strategy = (context, options) => {
|
60
|
+
var _a;
|
61
|
+
const remoteOAuth2Strategy = (0, exports.defineOAuth2Strategy)({
|
62
|
+
name: options.strategyName,
|
63
|
+
baseURL: options.authenticateUrl,
|
64
|
+
authPath: (_a = options.authenticatePath) !== null && _a !== void 0 ? _a : '/auth/who-am-i',
|
65
|
+
});
|
66
|
+
(0, authentication_1.registerAuthenticationStrategy)(context, remoteOAuth2Strategy);
|
67
|
+
};
|
68
|
+
exports.registerOAuth2Strategy = registerOAuth2Strategy;
|
69
|
+
//# sourceMappingURL=oauth2.strategy.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"oauth2.strategy.js","sourceRoot":"","sources":["../../../../src/components/authenticate/services/oauth2.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA+C;AAC/C,2CAAuC;AACvC,6DAAkG;AAGlG,iDAAgD;AAChD,6DAAqC;AAErC,MAAM,0BAA2B,SAAQ,4BAAkB;CAAG;AAEvD,MAAM,oBAAoB,GAAG,CAAC,IAA0D,EAAE,EAAE;IACjG,MAAM,QAAQ;QAMZ;;YALA,SAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAMf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,OAAO,IAAI,IAAA,iBAAO,EAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAA,oBAAQ,EAAC;oBACb,OAAO,EAAE,sGAAsG;iBAChH,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,MAAA,IAAI,CAAC,QAAQ,mCAAI,gBAAgB,CAAC;YAElD,IAAI,CAAC,YAAY,GAAG,IAAI,0BAA0B,CAAC;gBACjD,IAAI,EAAE,0BAA0B,CAAC,IAAI;gBACrC,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;gBACtC,cAAc,EAAE,EAAE,OAAO,EAAE;aAC5B,CAAC,CAAC;QACL,CAAC;QAEK,YAAY,CAAC,OAAgB;;;gBACjC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBAC7D,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC;oBACnC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChE,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;iBAC7D,CAAC,CAAC;gBAEH,IAAI,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,0CAAE,KAAK,EAAE,CAAC;oBACpB,MAAM,IAAA,oBAAQ,EAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC;gBAED,uCAAY,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,KAAE,CAAC,qBAAU,CAAC,EAAE,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,0CAAE,MAAM,0CAAE,QAAQ,EAAE,IAAG;YACrE,CAAC;SAAA;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAxCW,QAAA,oBAAoB,wBAwC/B;AAEK,MAAM,sBAAsB,GAAG,CACpC,OAAgB,EAChB,OAIC,EACD,EAAE;;IACF,MAAM,oBAAoB,GAAG,IAAA,4BAAoB,EAAC;QAChD,IAAI,EAAE,OAAO,CAAC,YAAY;QAC1B,OAAO,EAAE,OAAO,CAAC,eAAe;QAChC,QAAQ,EAAE,MAAA,OAAO,CAAC,gBAAgB,mCAAI,gBAAgB;KACvD,CAAC,CAAC;IACH,IAAA,+CAA8B,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAChE,CAAC,CAAC;AAdW,QAAA,sBAAsB,0BAcjC"}
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<title>MINIMALTECH - Minimal Technology</title>
|
2
|
+
<link rel="icon" href="https://minimaltek.com/favicon.ico">
|
3
|
+
<style>
|
4
|
+
html {
|
5
|
+
color-scheme: dark;
|
6
|
+
}
|
7
|
+
|
8
|
+
body {
|
9
|
+
width: 95vw;
|
10
|
+
height: 95vh;
|
11
|
+
margin: 0;
|
12
|
+
|
13
|
+
display: flex;
|
14
|
+
flex-direction: column;
|
15
|
+
flex: 1;
|
16
|
+
justify-content: center;
|
17
|
+
align-items: center;
|
18
|
+
}
|
19
|
+
|
20
|
+
#message {
|
21
|
+
}
|
22
|
+
|
23
|
+
#token {
|
24
|
+
font-style: italic;
|
25
|
+
}
|
26
|
+
</style>
|
File without changes
|
@@ -0,0 +1,61 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<%- include('../fragments/head'); %>
|
5
|
+
</head>
|
6
|
+
<body class="container">
|
7
|
+
|
8
|
+
<header>
|
9
|
+
<%- include('../fragments/header'); %>
|
10
|
+
</header>
|
11
|
+
|
12
|
+
<main>
|
13
|
+
<div id="container">
|
14
|
+
<h1>
|
15
|
+
<%- payload.title %>
|
16
|
+
</h1>
|
17
|
+
|
18
|
+
<br />
|
19
|
+
<span id="message">
|
20
|
+
<%- message %>
|
21
|
+
</span>
|
22
|
+
<br />
|
23
|
+
<br />
|
24
|
+
|
25
|
+
<% if (payload.c) { %>
|
26
|
+
<form method="post" action=<%- payload.action %>>
|
27
|
+
<p>
|
28
|
+
<label for="username">Username:</label>
|
29
|
+
<input type="text" name="username" />
|
30
|
+
</p>
|
31
|
+
|
32
|
+
<p>
|
33
|
+
<label for="password">Password:</label>
|
34
|
+
<input type="password" name="password" />
|
35
|
+
</p>
|
36
|
+
|
37
|
+
<input type="hidden" name="token" value=<%- payload.c %>>
|
38
|
+
<input type="hidden" name="redirectUrl" value=<%- payload.r %>>
|
39
|
+
|
40
|
+
<p>
|
41
|
+
<input type="submit" value="Login">
|
42
|
+
</p>
|
43
|
+
</form>
|
44
|
+
<% } %>
|
45
|
+
|
46
|
+
<br />
|
47
|
+
<hr />
|
48
|
+
|
49
|
+
<p id="token">
|
50
|
+
Token: <%- payload.c %>
|
51
|
+
</p>
|
52
|
+
|
53
|
+
</div>
|
54
|
+
</main>
|
55
|
+
|
56
|
+
<footer>
|
57
|
+
<%- include('../fragments/footer'); %>
|
58
|
+
</footer>
|
59
|
+
|
60
|
+
</body>
|
61
|
+
</html>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<%- include('../fragments/head'); %>
|
5
|
+
</head>
|
6
|
+
<body class="container">
|
7
|
+
|
8
|
+
<header>
|
9
|
+
<%- include('../fragments/header'); %>
|
10
|
+
</header>
|
11
|
+
|
12
|
+
<main>
|
13
|
+
<%- message %>
|
14
|
+
</main>
|
15
|
+
|
16
|
+
<footer>
|
17
|
+
<%- include('../fragments/footer'); %>
|
18
|
+
</footer>
|
19
|
+
|
20
|
+
</body>
|
21
|
+
</html>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { BaseDataSource } from '../../../base/base.datasource';
|
2
|
+
import { FilteredAdapter } from 'casbin';
|
3
|
+
import { TCasbinAdapter } from '../common';
|
4
|
+
export declare class CasbinAdapterBuilder {
|
5
|
+
private static instance;
|
6
|
+
private constructor();
|
7
|
+
static getInstance(): CasbinAdapterBuilder;
|
8
|
+
build(opts: {
|
9
|
+
type: TCasbinAdapter;
|
10
|
+
dataSource: BaseDataSource;
|
11
|
+
}): FilteredAdapter;
|
12
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.CasbinAdapterBuilder = void 0;
|
4
|
+
const utilities_1 = require("../../../utilities");
|
5
|
+
const common_1 = require("../common");
|
6
|
+
const casbin_postgres_adapter_helper_1 = require("./casbin-postgres-adapter.helper");
|
7
|
+
const casbin_redis_adapter_helper_1 = require("./casbin-redis-adapter.helper");
|
8
|
+
class CasbinAdapterBuilder {
|
9
|
+
constructor() { }
|
10
|
+
static getInstance() {
|
11
|
+
if (!this.instance) {
|
12
|
+
this.instance = new CasbinAdapterBuilder();
|
13
|
+
}
|
14
|
+
return this.instance;
|
15
|
+
}
|
16
|
+
build(opts) {
|
17
|
+
const { type, dataSource } = opts;
|
18
|
+
switch (type) {
|
19
|
+
case common_1.CasbinAdapterTypes.POSTGRES: {
|
20
|
+
return new casbin_postgres_adapter_helper_1.CasbinPostgresAdapter(dataSource);
|
21
|
+
}
|
22
|
+
case common_1.CasbinAdapterTypes.REDIS: {
|
23
|
+
return new casbin_redis_adapter_helper_1.CasbinRedisAdapter(dataSource);
|
24
|
+
}
|
25
|
+
default: {
|
26
|
+
throw (0, utilities_1.getError)({
|
27
|
+
message: `[CasbinAdapterBuilder][build] Invalid type to build casbin adapter | type: ${type}`,
|
28
|
+
});
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
exports.CasbinAdapterBuilder = CasbinAdapterBuilder;
|
34
|
+
//# sourceMappingURL=adapter-builder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"adapter-builder.js","sourceRoot":"","sources":["../../../../src/components/authorize/adapters/adapter-builder.ts"],"names":[],"mappings":";;;AACA,2CAAuC;AAEvC,sCAA+D;AAC/D,qFAAyE;AACzE,+EAAmE;AAEnE,MAAa,oBAAoB;IAG/B,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAA0D;QAC9D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAElC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,2BAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,OAAO,IAAI,sDAAqB,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;YACD,KAAK,2BAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9B,OAAO,IAAI,gDAAkB,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAA,oBAAQ,EAAC;oBACb,OAAO,EAAE,8EAA8E,IAAI,EAAE;iBAC9F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA9BD,oDA8BC"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { BaseDataSource } from '../../../base';
|
2
|
+
import { ApplicationLogger } from '../../../helpers';
|
3
|
+
import { FilteredAdapter, Model } from 'casbin';
|
4
|
+
export declare abstract class AbstractCasbinAdapter implements FilteredAdapter {
|
5
|
+
protected logger: ApplicationLogger;
|
6
|
+
protected datasource: BaseDataSource;
|
7
|
+
constructor(opts: {
|
8
|
+
scope: string;
|
9
|
+
datasource: BaseDataSource;
|
10
|
+
});
|
11
|
+
abstract loadFilteredPolicy(model: Model, filter: any): Promise<void>;
|
12
|
+
isFiltered(): boolean;
|
13
|
+
loadPolicy(_: Model): Promise<void>;
|
14
|
+
savePolicy(model: Model): Promise<boolean>;
|
15
|
+
addPolicy(sec: string, ptype: string, rule: string[]): Promise<void>;
|
16
|
+
removePolicy(sec: string, ptype: string, rule: string[]): Promise<void>;
|
17
|
+
removeFilteredPolicy(sec: string, ptype: string, fieldIndex: number, ...fieldValues: string[]): Promise<void>;
|
18
|
+
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.AbstractCasbinAdapter = void 0;
|
4
|
+
const helpers_1 = require("../../../helpers");
|
5
|
+
const common_1 = require("../common");
|
6
|
+
// -----------------------------------------------------------------------------------------
|
7
|
+
class AbstractCasbinAdapter {
|
8
|
+
constructor(opts) {
|
9
|
+
const { scope, datasource } = opts;
|
10
|
+
this.logger = helpers_1.LoggerFactory.getLogger([scope]);
|
11
|
+
this.datasource = datasource;
|
12
|
+
}
|
13
|
+
// -----------------------------------------------------------------------------------------
|
14
|
+
isFiltered() {
|
15
|
+
return true;
|
16
|
+
}
|
17
|
+
// -----------------------------------------------------------------------------------------
|
18
|
+
loadPolicy(_) {
|
19
|
+
return Promise.resolve();
|
20
|
+
}
|
21
|
+
// -----------------------------------------------------------------------------------------
|
22
|
+
savePolicy(model) {
|
23
|
+
this.logger.info('[savePolicy] Ignore save policy method with options: ', {
|
24
|
+
model,
|
25
|
+
});
|
26
|
+
return Promise.resolve(true);
|
27
|
+
}
|
28
|
+
// -----------------------------------------------------------------------------------------
|
29
|
+
addPolicy(sec, ptype, rule) {
|
30
|
+
this.logger.info('[addPolicy] Ignore add policy method with options: ', {
|
31
|
+
sec,
|
32
|
+
ptype,
|
33
|
+
rule,
|
34
|
+
});
|
35
|
+
return Promise.resolve();
|
36
|
+
}
|
37
|
+
// -----------------------------------------------------------------------------------------
|
38
|
+
removePolicy(sec, ptype, rule) {
|
39
|
+
this.logger.info('[removePolicy] Ignore remove policy method with options: ', { sec, ptype, rule });
|
40
|
+
return Promise.resolve();
|
41
|
+
}
|
42
|
+
// -----------------------------------------------------------------------------------------
|
43
|
+
removeFilteredPolicy(sec, ptype, fieldIndex, ...fieldValues) {
|
44
|
+
switch (ptype) {
|
45
|
+
case common_1.EnforcerDefinitions.PREFIX_USER: {
|
46
|
+
// Remove user policy
|
47
|
+
break;
|
48
|
+
}
|
49
|
+
case common_1.EnforcerDefinitions.PREFIX_ROLE: {
|
50
|
+
// Remove role policy
|
51
|
+
break;
|
52
|
+
}
|
53
|
+
default: {
|
54
|
+
break;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
this.logger.info('[removeFilteredPolicy] Ignore remove filtered policy method with options: ', {
|
58
|
+
sec,
|
59
|
+
ptype,
|
60
|
+
fieldIndex,
|
61
|
+
fieldValues,
|
62
|
+
});
|
63
|
+
return Promise.resolve();
|
64
|
+
}
|
65
|
+
}
|
66
|
+
exports.AbstractCasbinAdapter = AbstractCasbinAdapter;
|
67
|
+
//# sourceMappingURL=base.adapter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../../../src/components/authorize/adapters/base.adapter.ts"],"names":[],"mappings":";;;AACA,uCAA6D;AAE7D,sCAAgD;AAEhD,4FAA4F;AAC5F,MAAsB,qBAAqB;IAIzC,YAAY,IAAmD;QAC7D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEnC,IAAI,CAAC,MAAM,GAAG,uBAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAID,4FAA4F;IAC5F,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4FAA4F;IAC5F,UAAU,CAAC,CAAQ;QACjB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,4FAA4F;IAC5F,UAAU,CAAC,KAAY;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uDAAuD,EAAE;YACxE,KAAK;SACN,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,4FAA4F;IAC5F,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,IAAc;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE;YACtE,GAAG;YACH,KAAK;YACL,IAAI;SACL,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,4FAA4F;IAC5F,YAAY,CAAC,GAAW,EAAE,KAAa,EAAE,IAAc;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpG,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,4FAA4F;IAC5F,oBAAoB,CAAC,GAAW,EAAE,KAAa,EAAE,UAAkB,EAAE,GAAG,WAAqB;QAC3F,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,4BAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;gBACrC,qBAAqB;gBACrB,MAAM;YACR,CAAC;YACD,KAAK,4BAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;gBACrC,qBAAqB;gBACrB,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4EAA4E,EAAE;YAC7F,GAAG;YACH,KAAK;YACL,UAAU;YACV,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAvED,sDAuEC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { BaseDataSource } from '../../../base/base.datasource';
|
2
|
+
import { Model } from 'casbin';
|
3
|
+
import { IEnforcerFilterValue } from '../common';
|
4
|
+
import { AbstractCasbinAdapter } from './base.adapter';
|
5
|
+
export declare class CasbinPostgresAdapter extends AbstractCasbinAdapter {
|
6
|
+
constructor(datasource: BaseDataSource);
|
7
|
+
generateGroupLine(rule: {
|
8
|
+
userId: number;
|
9
|
+
roleId: number;
|
10
|
+
}): string;
|
11
|
+
loadFilteredPolicy(model: Model, filter: IEnforcerFilterValue): Promise<void>;
|
12
|
+
}
|