@decaf-ts/for-nest 0.11.0 → 0.11.2-refactor
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/README.md +1 -1
- package/dist/for-nest.cjs +2636 -2
- package/dist/for-nest.js +2738 -2
- package/lib/cjs/auth/AuthInterceptor.cjs +88 -0
- package/lib/cjs/auth/DecafAuthHandler.cjs +37 -0
- package/lib/cjs/auth/DecafAuthModule.cjs +56 -0
- package/lib/cjs/auth/constants.cjs +9 -0
- package/lib/cjs/auth/decorators.cjs +28 -0
- package/lib/cjs/auth/index.cjs +23 -0
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/cli-module.cjs +48 -6
- package/lib/cjs/constants.cjs +5 -5
- package/lib/cjs/controllers.cjs +10 -102
- package/lib/cjs/core-module.cjs +8 -8
- package/lib/cjs/decaf-model/DecafModelModule.cjs +19 -4
- package/lib/cjs/decaf-model/FromModelController.cjs +732 -785
- package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs +53 -16
- package/lib/cjs/decaf-model/decorators/ApiParamsFromModel.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/DecafBody.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/DecafParams.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/controller-config.cjs +29 -0
- package/lib/cjs/decaf-model/decorators/decorators.cjs +5 -45
- package/lib/cjs/decaf-model/decorators/expose.cjs +13 -0
- package/lib/cjs/decaf-model/decorators/index.cjs +3 -2
- package/lib/cjs/decaf-model/decorators/types.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/utils.cjs +2 -2
- package/lib/cjs/decaf-model/index.cjs +28 -19
- package/lib/cjs/decaf-model/types.cjs +2 -2
- package/lib/cjs/decaf-model/utils.cjs +2 -2
- package/lib/cjs/decoration.cjs +2 -2
- package/lib/cjs/decorators.cjs +85 -0
- package/lib/cjs/events-module/DecafStreamModule.cjs +2 -2
- package/lib/cjs/events-module/EventsController.cjs +2 -2
- package/lib/cjs/events-module/constant.cjs +2 -2
- package/lib/cjs/events-module/index.cjs +2 -2
- package/lib/cjs/events-module/utils.cjs +2 -2
- package/lib/cjs/factory/NestBootstraper.cjs +2 -2
- package/lib/cjs/factory/errors/cors.cjs +2 -2
- package/lib/cjs/factory/errors/index.cjs +2 -2
- package/lib/cjs/factory/errors/throttling.cjs +2 -2
- package/lib/cjs/factory/exceptions/DecafErrorFilter.cjs +2 -2
- package/lib/cjs/factory/exceptions/decorators.cjs +2 -2
- package/lib/cjs/factory/exceptions/index.cjs +2 -2
- package/lib/cjs/factory/index.cjs +2 -2
- package/lib/cjs/factory/openapi/DtoBuilder.cjs +37 -6
- package/lib/cjs/factory/openapi/SwaggerBuilder.cjs +2 -2
- package/lib/cjs/factory/openapi/SwaggerCustomUI.cjs +2 -2
- package/lib/cjs/factory/openapi/constants.cjs +2 -2
- package/lib/cjs/factory/openapi/index.cjs +2 -2
- package/lib/cjs/index.cjs +8 -7
- package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs +27 -21
- package/lib/cjs/interceptors/index.cjs +3 -4
- package/lib/cjs/module.cjs +4 -2
- package/lib/cjs/overrides/Adapter.cjs +2 -2
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs +2 -2
- package/lib/cjs/overrides/constants.cjs +2 -2
- package/lib/cjs/overrides/decoration.cjs +2 -2
- package/lib/cjs/overrides/helpers.cjs +2 -2
- package/lib/cjs/overrides/index.cjs +3 -2
- package/lib/cjs/overrides/logging.cjs +5 -0
- package/lib/cjs/overrides/overrides.cjs +2 -2
- package/lib/cjs/request/DecafAuthHandler.cjs +5 -39
- package/lib/cjs/request/DecafHandlerExecutor.cjs +2 -2
- package/lib/cjs/request/DecafRequestContext.cjs +11 -20
- package/lib/cjs/request/DecafResponseInterceptor.cjs +3 -3
- package/lib/cjs/request/index.cjs +2 -2
- package/lib/cjs/swagger-types.cjs +2 -2
- package/lib/cjs/types.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/webhooks/DecafWebhookModule.cjs +11 -12
- package/lib/cjs/webhooks/controllers.cjs +10 -10
- package/lib/cjs/webhooks/index.cjs +2 -15
- package/lib/cjs/webhooks/types.cjs +2 -2
- package/lib/esm/auth/AuthInterceptor.js +79 -0
- package/lib/esm/auth/DecafAuthHandler.js +31 -0
- package/lib/esm/auth/DecafAuthModule.js +48 -0
- package/lib/esm/auth/constants.js +5 -0
- package/lib/esm/auth/decorators.js +22 -0
- package/lib/esm/auth/index.js +6 -0
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/cli-module.js +47 -5
- package/lib/esm/constants.js +3 -3
- package/lib/esm/controllers.js +10 -102
- package/lib/esm/core-module.js +7 -7
- package/lib/esm/decaf-model/DecafModelModule.js +18 -3
- package/lib/esm/decaf-model/FromModelController.js +733 -786
- package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js +53 -15
- package/lib/esm/decaf-model/decorators/ApiParamsFromModel.js +1 -1
- package/lib/esm/decaf-model/decorators/DecafBody.js +1 -1
- package/lib/esm/decaf-model/decorators/DecafParams.js +1 -1
- package/lib/esm/decaf-model/decorators/controller-config.js +25 -0
- package/lib/esm/decaf-model/decorators/decorators.js +2 -43
- package/lib/esm/decaf-model/decorators/expose.js +9 -0
- package/lib/esm/decaf-model/decorators/index.js +2 -1
- package/lib/esm/decaf-model/decorators/types.js +1 -1
- package/lib/esm/decaf-model/decorators/utils.js +1 -1
- package/lib/esm/decaf-model/index.js +11 -4
- package/lib/esm/decaf-model/types.js +1 -1
- package/lib/esm/decaf-model/utils.js +1 -1
- package/lib/esm/decoration.js +1 -1
- package/lib/esm/decorators.js +79 -0
- package/lib/esm/events-module/DecafStreamModule.js +1 -1
- package/lib/esm/events-module/EventsController.js +1 -1
- package/lib/esm/events-module/constant.js +1 -1
- package/lib/esm/events-module/index.js +1 -1
- package/lib/esm/events-module/utils.js +1 -1
- package/lib/esm/factory/NestBootstraper.js +1 -1
- package/lib/esm/factory/errors/cors.js +1 -1
- package/lib/esm/factory/errors/index.js +1 -1
- package/lib/esm/factory/errors/throttling.js +1 -1
- package/lib/esm/factory/exceptions/DecafErrorFilter.js +1 -1
- package/lib/esm/factory/exceptions/decorators.js +1 -1
- package/lib/esm/factory/exceptions/index.js +1 -1
- package/lib/esm/factory/index.js +1 -1
- package/lib/esm/factory/openapi/DtoBuilder.js +36 -5
- package/lib/esm/factory/openapi/SwaggerBuilder.js +1 -1
- package/lib/esm/factory/openapi/SwaggerCustomUI.js +1 -1
- package/lib/esm/factory/openapi/constants.js +1 -1
- package/lib/esm/factory/openapi/index.js +1 -1
- package/lib/esm/index.js +7 -6
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js +27 -21
- package/lib/esm/interceptors/index.js +2 -3
- package/lib/esm/module.js +3 -1
- package/lib/esm/overrides/Adapter.js +1 -1
- package/lib/esm/overrides/ModelBuilderExtensions.js +1 -1
- package/lib/esm/overrides/constants.js +1 -1
- package/lib/esm/overrides/decoration.js +1 -1
- package/lib/esm/overrides/helpers.js +1 -1
- package/lib/esm/overrides/index.js +2 -1
- package/lib/esm/overrides/logging.js +2 -0
- package/lib/esm/overrides/overrides.js +1 -1
- package/lib/esm/request/DecafAuthHandler.js +2 -36
- package/lib/esm/request/DecafHandlerExecutor.js +1 -1
- package/lib/esm/request/DecafRequestContext.js +10 -19
- package/lib/esm/request/DecafResponseInterceptor.js +2 -2
- package/lib/esm/request/index.js +1 -1
- package/lib/esm/swagger-types.js +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/esm/webhooks/DecafWebhookModule.js +5 -6
- package/lib/esm/webhooks/controllers.js +2 -2
- package/lib/esm/webhooks/index.js +1 -2
- package/lib/esm/webhooks/types.js +1 -1
- package/lib/types/{interceptors → auth}/AuthInterceptor.d.cts +4 -1
- package/lib/types/{interceptors → auth}/AuthInterceptor.d.mts +4 -1
- package/lib/types/auth/DecafAuthHandler.d.cts +22 -0
- package/lib/types/auth/DecafAuthHandler.d.mts +22 -0
- package/lib/types/auth/DecafAuthModule.d.cts +9 -0
- package/lib/types/auth/DecafAuthModule.d.mts +9 -0
- package/lib/types/auth/constants.d.cts +4 -0
- package/lib/types/auth/constants.d.mts +4 -0
- package/lib/types/auth/decorators.d.cts +4 -0
- package/lib/types/auth/decorators.d.mts +4 -0
- package/lib/types/auth/index.d.cts +6 -0
- package/lib/types/auth/index.d.mts +6 -0
- package/lib/types/cli-module.d.cts +1 -4
- package/lib/types/cli-module.d.mts +1 -4
- package/lib/types/constants.d.cts +2 -2
- package/lib/types/constants.d.mts +2 -2
- package/lib/types/controllers.d.cts +7 -12
- package/lib/types/controllers.d.mts +7 -12
- package/lib/types/decaf-model/DecafModelModule.d.cts +1 -0
- package/lib/types/decaf-model/DecafModelModule.d.mts +1 -0
- package/lib/types/decaf-model/FromModelController.d.cts +40 -52
- package/lib/types/decaf-model/FromModelController.d.mts +40 -52
- package/lib/types/decaf-model/decorators/ApiOperationFromModel.d.cts +0 -2
- package/lib/types/decaf-model/decorators/ApiOperationFromModel.d.mts +0 -2
- package/lib/types/decaf-model/decorators/controller-config.d.cts +18 -0
- package/lib/types/decaf-model/decorators/controller-config.d.mts +18 -0
- package/lib/types/decaf-model/decorators/decorators.d.cts +1 -29
- package/lib/types/decaf-model/decorators/decorators.d.mts +1 -29
- package/lib/types/decaf-model/decorators/expose.d.cts +1 -0
- package/lib/types/decaf-model/decorators/expose.d.mts +1 -0
- package/lib/types/decaf-model/decorators/index.d.cts +1 -0
- package/lib/types/decaf-model/decorators/index.d.mts +1 -0
- package/lib/types/decaf-model/decorators/types.d.cts +8 -21
- package/lib/types/decaf-model/decorators/types.d.mts +8 -21
- package/lib/types/decaf-model/index.d.cts +10 -3
- package/lib/types/decaf-model/index.d.mts +10 -3
- package/lib/types/decaf-model/utils.d.cts +2 -1
- package/lib/types/decaf-model/utils.d.mts +2 -1
- package/lib/types/decorators.d.cts +34 -0
- package/lib/types/decorators.d.mts +34 -0
- package/lib/types/factory/openapi/DtoBuilder.d.cts +7 -3
- package/lib/types/factory/openapi/DtoBuilder.d.mts +7 -3
- package/lib/types/index.d.cts +5 -5
- package/lib/types/index.d.mts +5 -5
- package/lib/types/interceptors/DecafRequestHandlerInterceptor.d.cts +1 -2
- package/lib/types/interceptors/DecafRequestHandlerInterceptor.d.mts +1 -2
- package/lib/types/interceptors/index.d.cts +1 -2
- package/lib/types/interceptors/index.d.mts +1 -2
- package/lib/types/overrides/Adapter.d.cts +1 -1
- package/lib/types/overrides/Adapter.d.mts +1 -1
- package/lib/types/overrides/index.d.cts +1 -0
- package/lib/types/overrides/index.d.mts +1 -0
- package/lib/types/overrides/logging.d.cts +1 -0
- package/lib/types/overrides/logging.d.mts +1 -0
- package/lib/types/request/DecafAuthHandler.d.cts +1 -10
- package/lib/types/request/DecafAuthHandler.d.mts +1 -10
- package/lib/types/request/DecafRequestContext.d.cts +4 -5
- package/lib/types/request/DecafRequestContext.d.mts +4 -5
- package/lib/types/types.d.cts +12 -24
- package/lib/types/types.d.mts +12 -24
- package/lib/types/webhooks/controllers.d.cts +1 -1
- package/lib/types/webhooks/controllers.d.mts +1 -1
- package/lib/types/webhooks/index.d.cts +0 -1
- package/lib/types/webhooks/index.d.mts +0 -1
- package/package.json +5 -13
- package/dist/for-nest.cjs.map +0 -1
- package/dist/for-nest.js.map +0 -1
- package/lib/cjs/bin/cli.cjs.map +0 -1
- package/lib/cjs/cli-module.cjs.map +0 -1
- package/lib/cjs/constants.cjs.map +0 -1
- package/lib/cjs/controllers.cjs.map +0 -1
- package/lib/cjs/core-module.cjs.map +0 -1
- package/lib/cjs/decaf-model/DecafModelModule.cjs.map +0 -1
- package/lib/cjs/decaf-model/FromModelController.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/ApiParamsFromModel.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/DecafBody.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/DecafParams.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/decorators.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/index.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/types.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/utils.cjs.map +0 -1
- package/lib/cjs/decaf-model/index.cjs.map +0 -1
- package/lib/cjs/decaf-model/types.cjs.map +0 -1
- package/lib/cjs/decaf-model/utils.cjs.map +0 -1
- package/lib/cjs/decoration.cjs.map +0 -1
- package/lib/cjs/events-module/DecafStreamModule.cjs.map +0 -1
- package/lib/cjs/events-module/EventsController.cjs.map +0 -1
- package/lib/cjs/events-module/constant.cjs.map +0 -1
- package/lib/cjs/events-module/index.cjs.map +0 -1
- package/lib/cjs/events-module/utils.cjs.map +0 -1
- package/lib/cjs/factory/NestBootstraper.cjs.map +0 -1
- package/lib/cjs/factory/errors/cors.cjs.map +0 -1
- package/lib/cjs/factory/errors/index.cjs.map +0 -1
- package/lib/cjs/factory/errors/throttling.cjs.map +0 -1
- package/lib/cjs/factory/exceptions/DecafErrorFilter.cjs.map +0 -1
- package/lib/cjs/factory/exceptions/decorators.cjs.map +0 -1
- package/lib/cjs/factory/exceptions/index.cjs.map +0 -1
- package/lib/cjs/factory/index.cjs.map +0 -1
- package/lib/cjs/factory/openapi/DtoBuilder.cjs.map +0 -1
- package/lib/cjs/factory/openapi/SwaggerBuilder.cjs.map +0 -1
- package/lib/cjs/factory/openapi/SwaggerCustomUI.cjs.map +0 -1
- package/lib/cjs/factory/openapi/constants.cjs.map +0 -1
- package/lib/cjs/factory/openapi/index.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/interceptors/AuthInterceptor.cjs +0 -52
- package/lib/cjs/interceptors/AuthInterceptor.cjs.map +0 -1
- package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs.map +0 -1
- package/lib/cjs/interceptors/context.cjs +0 -18
- package/lib/cjs/interceptors/context.cjs.map +0 -1
- package/lib/cjs/interceptors/index.cjs.map +0 -1
- package/lib/cjs/migrations/index.cjs +0 -35
- package/lib/cjs/migrations/index.cjs.map +0 -1
- package/lib/cjs/migrations/migration-module.cjs +0 -60
- package/lib/cjs/migrations/migration-module.cjs.map +0 -1
- package/lib/cjs/migrations/migration-options.cjs +0 -4
- package/lib/cjs/migrations/migration-options.cjs.map +0 -1
- package/lib/cjs/module.cjs.map +0 -1
- package/lib/cjs/overrides/Adapter.cjs.map +0 -1
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs.map +0 -1
- package/lib/cjs/overrides/constants.cjs.map +0 -1
- package/lib/cjs/overrides/decoration.cjs.map +0 -1
- package/lib/cjs/overrides/helpers.cjs.map +0 -1
- package/lib/cjs/overrides/index.cjs.map +0 -1
- package/lib/cjs/overrides/overrides.cjs.map +0 -1
- package/lib/cjs/ram/RamRequestTransformer.cjs +0 -26
- package/lib/cjs/ram/RamRequestTransformer.cjs.map +0 -1
- package/lib/cjs/ram/index.cjs +0 -19
- package/lib/cjs/ram/index.cjs.map +0 -1
- package/lib/cjs/request/DecafAuthHandler.cjs.map +0 -1
- package/lib/cjs/request/DecafHandlerExecutor.cjs.map +0 -1
- package/lib/cjs/request/DecafRequestContext.cjs.map +0 -1
- package/lib/cjs/request/DecafResponseInterceptor.cjs.map +0 -1
- package/lib/cjs/request/index.cjs.map +0 -1
- package/lib/cjs/swagger-types.cjs.map +0 -1
- package/lib/cjs/types.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/cjs/webhooks/DecafWebhookModule.cjs.map +0 -1
- package/lib/cjs/webhooks/controllers.cjs.map +0 -1
- package/lib/cjs/webhooks/index.cjs.map +0 -1
- package/lib/cjs/webhooks/types.cjs.map +0 -1
- package/lib/esm/bin/cli.js.map +0 -1
- package/lib/esm/cli-module.js.map +0 -1
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/controllers.js.map +0 -1
- package/lib/esm/core-module.js.map +0 -1
- package/lib/esm/decaf-model/DecafModelModule.js.map +0 -1
- package/lib/esm/decaf-model/FromModelController.js.map +0 -1
- package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js.map +0 -1
- package/lib/esm/decaf-model/decorators/ApiParamsFromModel.js.map +0 -1
- package/lib/esm/decaf-model/decorators/DecafBody.js.map +0 -1
- package/lib/esm/decaf-model/decorators/DecafParams.js.map +0 -1
- package/lib/esm/decaf-model/decorators/decorators.js.map +0 -1
- package/lib/esm/decaf-model/decorators/index.js.map +0 -1
- package/lib/esm/decaf-model/decorators/types.js.map +0 -1
- package/lib/esm/decaf-model/decorators/utils.js.map +0 -1
- package/lib/esm/decaf-model/index.js.map +0 -1
- package/lib/esm/decaf-model/types.js.map +0 -1
- package/lib/esm/decaf-model/utils.js.map +0 -1
- package/lib/esm/decoration.js.map +0 -1
- package/lib/esm/events-module/DecafStreamModule.js.map +0 -1
- package/lib/esm/events-module/EventsController.js.map +0 -1
- package/lib/esm/events-module/constant.js.map +0 -1
- package/lib/esm/events-module/index.js.map +0 -1
- package/lib/esm/events-module/utils.js.map +0 -1
- package/lib/esm/factory/NestBootstraper.js.map +0 -1
- package/lib/esm/factory/errors/cors.js.map +0 -1
- package/lib/esm/factory/errors/index.js.map +0 -1
- package/lib/esm/factory/errors/throttling.js.map +0 -1
- package/lib/esm/factory/exceptions/DecafErrorFilter.js.map +0 -1
- package/lib/esm/factory/exceptions/decorators.js.map +0 -1
- package/lib/esm/factory/exceptions/index.js.map +0 -1
- package/lib/esm/factory/index.js.map +0 -1
- package/lib/esm/factory/openapi/DtoBuilder.js.map +0 -1
- package/lib/esm/factory/openapi/SwaggerBuilder.js.map +0 -1
- package/lib/esm/factory/openapi/SwaggerCustomUI.js.map +0 -1
- package/lib/esm/factory/openapi/constants.js.map +0 -1
- package/lib/esm/factory/openapi/index.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/interceptors/AuthInterceptor.js +0 -43
- package/lib/esm/interceptors/AuthInterceptor.js.map +0 -1
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js.map +0 -1
- package/lib/esm/interceptors/context.js +0 -12
- package/lib/esm/interceptors/context.js.map +0 -1
- package/lib/esm/interceptors/index.js.map +0 -1
- package/lib/esm/migrations/index.js +0 -18
- package/lib/esm/migrations/index.js.map +0 -1
- package/lib/esm/migrations/migration-module.js +0 -52
- package/lib/esm/migrations/migration-module.js.map +0 -1
- package/lib/esm/migrations/migration-options.js +0 -7
- package/lib/esm/migrations/migration-options.js.map +0 -1
- package/lib/esm/module.js.map +0 -1
- package/lib/esm/overrides/Adapter.js.map +0 -1
- package/lib/esm/overrides/ModelBuilderExtensions.js.map +0 -1
- package/lib/esm/overrides/constants.js.map +0 -1
- package/lib/esm/overrides/decoration.js.map +0 -1
- package/lib/esm/overrides/helpers.js.map +0 -1
- package/lib/esm/overrides/index.js.map +0 -1
- package/lib/esm/overrides/overrides.js.map +0 -1
- package/lib/esm/ram/RamRequestTransformer.js +0 -21
- package/lib/esm/ram/RamRequestTransformer.js.map +0 -1
- package/lib/esm/ram/index.js +0 -2
- package/lib/esm/ram/index.js.map +0 -1
- package/lib/esm/request/DecafAuthHandler.js.map +0 -1
- package/lib/esm/request/DecafHandlerExecutor.js.map +0 -1
- package/lib/esm/request/DecafRequestContext.js.map +0 -1
- package/lib/esm/request/DecafResponseInterceptor.js.map +0 -1
- package/lib/esm/request/index.js.map +0 -1
- package/lib/esm/swagger-types.js.map +0 -1
- package/lib/esm/types.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/esm/webhooks/DecafWebhookModule.js.map +0 -1
- package/lib/esm/webhooks/controllers.js.map +0 -1
- package/lib/esm/webhooks/index.js.map +0 -1
- package/lib/esm/webhooks/types.js.map +0 -1
- package/lib/types/interceptors/context.d.cts +0 -6
- package/lib/types/interceptors/context.d.mts +0 -6
- package/lib/types/migrations/index.d.cts +0 -17
- package/lib/types/migrations/index.d.mts +0 -17
- package/lib/types/migrations/migration-module.d.cts +0 -15
- package/lib/types/migrations/migration-module.d.mts +0 -15
- package/lib/types/migrations/migration-options.d.cts +0 -11
- package/lib/types/migrations/migration-options.d.mts +0 -11
- package/lib/types/ram/RamRequestTransformer.d.cts +0 -5
- package/lib/types/ram/RamRequestTransformer.d.mts +0 -5
- package/lib/types/ram/index.d.cts +0 -1
- package/lib/types/ram/index.d.mts +0 -1
|
@@ -25,8 +25,8 @@ const DecafRequestHandlerInterceptor_js_1 = require("./../interceptors/DecafRequ
|
|
|
25
25
|
const constants_js_1 = require("./../constants.cjs");
|
|
26
26
|
const core_3 = require("@nestjs/core");
|
|
27
27
|
const index_js_2 = require("./../decaf-model/index.cjs");
|
|
28
|
-
const context_js_1 = require("./../interceptors/context.cjs");
|
|
29
28
|
const server_1 = require("@decaf-ts/for-http/server");
|
|
29
|
+
const hooks_1 = require("@decaf-ts/for-http/hooks");
|
|
30
30
|
const controllers_js_1 = require("./controllers.cjs");
|
|
31
31
|
let DecafWebhookModule = class DecafWebhookModule {
|
|
32
32
|
static { DecafWebhookModule_1 = this; }
|
|
@@ -61,8 +61,7 @@ let DecafWebhookModule = class DecafWebhookModule {
|
|
|
61
61
|
const c = options.conf[i];
|
|
62
62
|
const possibleTransf = c.slice(2, c.length);
|
|
63
63
|
let transformer = possibleTransf.pop();
|
|
64
|
-
if (!transformer ||
|
|
65
|
-
!transformer.from) {
|
|
64
|
+
if (!transformer || !transformer.from) {
|
|
66
65
|
const contr = core_2.Adapter.transformerFor(clients[i].flavour);
|
|
67
66
|
if (!contr)
|
|
68
67
|
throw new db_decorators_1.InternalError(`No transformer found for flavour ${clients[i].flavour}.`);
|
|
@@ -75,10 +74,10 @@ let DecafWebhookModule = class DecafWebhookModule {
|
|
|
75
74
|
throw new db_decorators_1.InternalError(`Failed to boot transformer for ${clients[i].flavour}: ${e}`);
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
|
-
(0,
|
|
79
|
-
(0, decoration_1.uses)(clients[i].flavour)(
|
|
80
|
-
(0, decoration_1.uses)(clients[i].flavour)(
|
|
81
|
-
(0, decoration_1.uses)(clients[i].flavour)(
|
|
77
|
+
(0, server_1.requestToContextTransformer)(clients[i].flavour)(transformer);
|
|
78
|
+
(0, decoration_1.uses)(clients[i].flavour)(hooks_1.WebhookSubscription);
|
|
79
|
+
(0, decoration_1.uses)(clients[i].flavour)(hooks_1.WebhookEventRecord);
|
|
80
|
+
(0, decoration_1.uses)(clients[i].flavour)(hooks_1.WebhookDelivery);
|
|
82
81
|
}
|
|
83
82
|
log.info("persistence layer created successfully!");
|
|
84
83
|
if (options.initialization) {
|
|
@@ -98,9 +97,9 @@ let DecafWebhookModule = class DecafWebhookModule {
|
|
|
98
97
|
static async forRootAsync(options) {
|
|
99
98
|
const adapters = await this.bootPersistence(options);
|
|
100
99
|
const controllers = [
|
|
101
|
-
index_js_2.FromModelController.create(
|
|
102
|
-
index_js_2.FromModelController.create(
|
|
103
|
-
index_js_2.FromModelController.create(
|
|
100
|
+
index_js_2.FromModelController.create(hooks_1.WebhookSubscription),
|
|
101
|
+
index_js_2.FromModelController.create(hooks_1.WebhookEventRecord),
|
|
102
|
+
index_js_2.FromModelController.create(hooks_1.WebhookDelivery),
|
|
104
103
|
controllers_js_1.WebhookSubscriptionActionsController,
|
|
105
104
|
controllers_js_1.WebhookEventActionsController,
|
|
106
105
|
];
|
|
@@ -137,5 +136,5 @@ exports.DecafWebhookModule = DecafWebhookModule = DecafWebhookModule_1 = __decor
|
|
|
137
136
|
], DecafWebhookModule);
|
|
138
137
|
exports.DecafWebhooksModule = DecafWebhookModule;
|
|
139
138
|
async function runWebhooksMigrations() { }
|
|
140
|
-
//# sourceMappingURL=DecafWebhookModule.js.map
|
|
141
|
-
//# sourceMappingURL=DecafWebhookModule.js.map
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZXZWJob29rTW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dlYmhvb2tzL0RlY2FmV2ViaG9va01vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFlLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsOEJBQW1CO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSw2Q0FBd0M7QUFDdkUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLDREQUF1RDtBQUNoRyxPQUFPLEVBQUUsY0FBYyxFQUFFLDBCQUFxQjtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQ0FBdUI7QUFDckQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsbUJBQW1CLEdBQ3BCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixvQ0FBb0MsR0FDckMseUJBQXNCO0FBR2hCLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQWtCOzthQUNkLFlBQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFrQixDQUFDLEFBQWxDLENBQW1DO0lBR2pELE1BQU0s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O1lBQy9DLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztZQUM5QyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO1lBQzNDLG9DQUFvQztZQUNwQyw2QkFBNkI7U0FDOUIsQ0FBQztRQUVGLE9BQU87WUFDTCxNQUFNLEVBQUUsb0JBQWtCO1lBQzFCLFdBQVc7WUFDWCxPQUFPLEVBQUU7Z0JBQ1AsWUFBWSxDQUFDLFFBQVEsQ0FBQztvQkFDcEI7d0JBQ0UsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDL0QsTUFBTSxFQUFFLG9CQUFrQjtxQkFDM0I7aUJBQ0YsQ0FBQzthQUNIO1lBQ0QsU0FBUyxFQUFFO2dCQUNULG1CQUFtQjtnQkFDbkIsb0JBQW9CO2dCQUNwQjtvQkFDRSxPQUFPLEVBQUUsY0FBYztvQkFDdkIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRTtpQkFDOUQ7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFFBQVEsRUFBRSw4QkFBOEI7aUJBQ3pDO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBQztTQUNyRCxDQUFDO0lBQ0osQ0FBQzs7QUFySFUsa0JBQWtCO0lBRDlCLE1BQU0sQ0FBQyxFQUFFLENBQUM7R0FDRSxrQkFBa0IsQ0FzSDlCOztBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxLQUFLLFVBQVUscUJBQXFCLEtBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljTW9kdWxlLCBNb2R1bGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbmltcG9ydCB7IEFkYXB0ZXIsIFBlcnNpc3RlbmNlU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIHVzZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi4vcmVxdWVzdFwiO1xuaW1wb3J0IHsgRGVjYWZIYW5kbGVyRXhlY3V0b3IgfSBmcm9tIFwiLi4vcmVxdWVzdC9EZWNhZkhhbmRsZXJFeGVjdXRvclwiO1xuaW1wb3J0IHsgRGVjYWZSZXF1ZXN0SGFuZGxlckludGVyY2VwdG9yIH0gZnJvbSBcIi4uL2ludGVyY2VwdG9ycy9EZWNhZlJlcXVlc3RIYW5kbGVySW50ZXJjZXB0b3JcIjtcbmltcG9ydCB7IERFQ0FGX0hBTkRMRVJTIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQVBQX0lOVEVSQ0VQVE9SIH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgRGVjYWZXZWJob29rTW9kdWxlT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBGcm9tTW9kZWxDb250cm9sbGVyIH0gZnJvbSBcIi4uL2RlY2FmLW1vZGVsXCI7XG5pbXBvcnQgeyByZXF1ZXN0VG9Db250ZXh0VHJhbnNmb3JtZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1odHRwL3NlcnZlclwiO1xuaW1wb3J0IHtcbiAgV2ViaG9va0RlbGl2ZXJ5LFxuICBXZWJob29rRXZlbnRSZWNvcmQsXG4gIFdlYmhvb2tTdWJzY3JpcHRpb24sXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWh0dHAvaG9va3NcIjtcbmltcG9ydCB7XG4gIFdlYmhvb2tFdmVudEFjdGlvbnNDb250cm9sbGVyLFxuICBXZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXIsXG59IGZyb20gXCIuL2NvbnRyb2xsZXJzXCI7XG5cbkBNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgRGVjYWZXZWJob29rTW9kdWxlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgX2xvZ2dlciA9IExvZ2dpbmcuZm9yKERlY2FmV2ViaG9va01vZHVsZSk7XG4gIHByaXZhdGUgc3RhdGljIF9wZXJzaXN0ZW5jZT86IFBlcnNpc3RlbmNlU2VydmljZTxBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT4+O1xuXG4gIHByaXZhdGUgc3RhdGljIGdldCBsb2coKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2dlcjtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBib290UGVyc2lzdGVuY2UoXG4gICAgb3B0aW9uczogRGVjYWZXZWJob29rTW9kdWxlT3B0aW9uc1xuICApOiBQcm9taXNlPEFkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55PltdPiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuYm9vdFBlcnNpc3RlbmNlKTtcbiAgICBpZiAoIXRoaXMuX3BlcnNpc3RlbmNlKSB7XG4gICAgICBjb25zdCB0cmltbWVkID0gb3B0aW9ucy5jb25mLm1hcCgoW2NvbnRyLCBjZmcsIC4uLmFyZ3NdKSA9PiB7XG4gICAgICAgIGNvbnN0IHBvc3NpYmxlID0gYXJncy5wb3AoKTtcbiAgICAgICAgaWYgKCFwb3NzaWJsZSkgcmV0dXJuIFtjb250ciwgY2ZnXTtcbiAgICAgICAgcmV0dXJuIFtjb250ciwgY2ZnLCAuLi5hcmdzXTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fcGVyc2lzdGVuY2UgPSBuZXcgUGVyc2lzdGVuY2VTZXJ2aWNlKCk7XG4gICAgICBhd2FpdCB0aGlzLl9wZXJzaXN0ZW5jZS5ib290KHRyaW1tZWQpO1xuXG4gICAgICBjb25zdCBjbGllbnRzID0gdGhpcy5fcGVyc2lzdGVuY2UuY2xpZW50O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGllbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNhY2hlID0gKEFkYXB0ZXIgYXMgYW55KS5fY2FjaGUgfHwgKChBZGFwdGVyIGFzIGFueSkuX2NhY2hlID0ge30pO1xuICAgICAgICBjb25zdCB3ZWJob29rS2V5cyA9IFtcbiAgICAgICAgICBjbGllbnRzW2ldLmZsYXZvdXIsXG4gICAgICAgICAgY2xpZW50c1tpXS5hbGlhcyxcbiAgICAgICAgICBcIndlYmhvb2tfZGVsaXZlcmllc1wiLFxuICAgICAgICAgIFwid2ViaG9va19ldmVudHNcIixcbiAgICAgICAgICBcIndlYmhvb2tfc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICBdLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBzdHJpbmcgPT4gISF2YWx1ZSk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHdlYmhvb2tLZXlzKSB7XG4gICAgICAgICAgY2FjaGVba2V5XSA9IGNsaWVudHNbaV07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjID0gb3B0aW9ucy5jb25mW2ldO1xuICAgICAgICBjb25zdCBwb3NzaWJsZVRyYW5zZiA9IGMuc2xpY2UoMiwgYy5sZW5ndGgpO1xuICAgICAgICBsZXQgdHJhbnNmb3JtZXIgPSBwb3NzaWJsZVRyYW5zZi5wb3AoKTtcbiAgICAgICAgaWYgKCF0cmFuc2Zvcm1lciB8fCAhKHRyYW5zZm9ybWVyIGFzIHsgZnJvbT86IHVua25vd24gfSkuZnJvbSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRyID0gQWRhcHRlci50cmFuc2Zvcm1lckZvcihjbGllbnRzW2ldLmZsYXZvdXIpO1xuICAgICAgICAgIGlmICghY29udHIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgICAgYE5vIHRyYW5zZm9ybWVyIGZvdW5kIGZvciBmbGF2b3VyICR7Y2xpZW50c1tpXS5mbGF2b3VyfS5gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm1lciA9IChjb250ciBhcyBhbnkpLmZyb21cbiAgICAgICAgICAgICAgPyBjb250clxuICAgICAgICAgICAgICA6IG5ldyAoY29udHIgYXMgQ29uc3RydWN0b3I8YW55PikoKTtcbiAgICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBib290IHRyYW5zZm9ybWVyIGZvciAke2NsaWVudHNbaV0uZmxhdm91cn06ICR7ZX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0VG9Db250ZXh0VHJhbnNmb3JtZXIoY2xpZW50c1tpXS5mbGF2b3VyKSh0cmFuc2Zvcm1lcik7XG5cbiAgICAgICAgdXNlcyhjbGllbnRzW2ldLmZsYXZvdXIpKFdlYmhvb2tTdWJzY3JpcHRpb24pO1xuICAgICAgICB1c2VzKGNsaWVudHNbaV0uZmxhdm91cikoV2ViaG9va0V2ZW50UmVjb3JkKTtcbiAgICAgICAgdXNlcyhjbGllbnRzW2ldLmZsYXZvdXIpKFdlYmhvb2tEZWxpdmVyeSk7XG4gICAgICB9XG4gICAgICBsb2cuaW5mbyhcInBlcnNpc3RlbmNlIGxheWVyIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IVwiKTtcblxuICAgICAgaWYgKG9wdGlvbnMuaW5pdGlhbGl6YXRpb24pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBvcHRpb25zLmluaXRpYWxpemF0aW9uKCk7XG4gICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGluaXRpYWxpemUgd2ViaG9vayBtb2R1bGU6ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wZXJzaXN0ZW5jZS5jbGllbnQ7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZm9yUm9vdChcbiAgICBvcHRpb25zOiBEZWNhZldlYmhvb2tNb2R1bGVPcHRpb25zXG4gICk6IFByb21pc2U8RHluYW1pY01vZHVsZT4ge1xuICAgIHJldHVybiB0aGlzLmZvclJvb3RBc3luYyhvcHRpb25zKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBmb3JSb290QXN5bmMoXG4gICAgb3B0aW9uczogRGVjYWZXZWJob29rTW9kdWxlT3B0aW9uc1xuICApOiBQcm9taXNlPER5bmFtaWNNb2R1bGU+IHtcbiAgICBjb25zdCBhZGFwdGVycyA9IGF3YWl0IHRoaXMuYm9vdFBlcnNpc3RlbmNlKG9wdGlvbnMpO1xuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gW1xuICAgICAgRnJvbU1vZGVsQ29udHJvbGxlci5jcmVhdGUoV2ViaG9va1N1YnNjcmlwdGlvbiksXG4gICAgICBGcm9tTW9kZWxDb250cm9sbGVyLmNyZWF0ZShXZWJob29rRXZlbnRSZWNvcmQpLFxuICAgICAgRnJvbU1vZGVsQ29udHJvbGxlci5jcmVhdGUoV2ViaG9va0RlbGl2ZXJ5KSxcbiAgICAgIFdlYmhvb2tTdWJzY3JpcHRpb25BY3Rpb25zQ29udHJvbGxlcixcbiAgICAgIFdlYmhvb2tFdmVudEFjdGlvbnNDb250cm9sbGVyLFxuICAgIF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlOiBEZWNhZldlYmhvb2tNb2R1bGUsXG4gICAgICBjb250cm9sbGVycyxcbiAgICAgIGltcG9ydHM6IFtcbiAgICAgICAgUm91dGVyTW9kdWxlLnJlZ2lzdGVyKFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAob3B0aW9ucy53ZWJob29rQXBpUGF0aCB8fCBcIndlYmhvb2tzXCIpLnJlcGxhY2UoL15cXC8vLCBcIlwiKSxcbiAgICAgICAgICAgIG1vZHVsZTogRGVjYWZXZWJob29rTW9kdWxlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pLFxuICAgICAgXSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBEZWNhZlJlcXVlc3RDb250ZXh0LFxuICAgICAgICBEZWNhZkhhbmRsZXJFeGVjdXRvcixcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IERFQ0FGX0hBTkRMRVJTLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IG9wdGlvbnMuaGFuZGxlcnM/Lm1hcCgoSCkgPT4gbmV3IEgoKSkgPz8gW10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5URVJDRVBUT1IsXG4gICAgICAgICAgdXNlQ2xhc3M6IERlY2FmUmVxdWVzdEhhbmRsZXJJbnRlcmNlcHRvcixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBleHBvcnRzOiBbRGVjYWZSZXF1ZXN0Q29udGV4dCwgRGVjYWZIYW5kbGVyRXhlY3V0b3JdLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IERlY2FmV2ViaG9va3NNb2R1bGUgPSBEZWNhZldlYmhvb2tNb2R1bGU7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5XZWJob29rc01pZ3JhdGlvbnMoKTogUHJvbWlzZTx2b2lkPiB7fVxuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZXZWJob29rTW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRGVjYWZXZWJob29rTW9kdWxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlJQSxzREFBaUQ7QUFqSWpELElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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LENBQUM7YUFDTDtZQUNELFNBQVMsRUFBRTtnQkFDUCw4QkFBbUI7Z0JBQ25CLDhDQUFvQjtnQkFDcEI7b0JBQ0ksT0FBTyxFQUFFLDZCQUFjO29CQUN2QixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFO2lCQUNoRTtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsc0JBQWU7b0JBQ3hCLFFBQVEsRUFBRSxrRUFBOEI7aUJBQzNDO2FBQ0o7WUFDRCxPQUFPLEVBQUUsQ0FBQyw4QkFBbUIsRUFBRSw4Q0FBb0IsQ0FBQztTQUN2RCxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUM7QUFJTyxnREFBa0I7QUFIM0IsNkJBQUEsa0JBQWtCLEdBQUcsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0lBQ25ELElBQUEsZUFBTSxFQUFDLEVBQUUsQ0FBQztDQUNiLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQUVWLFFBQUEsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7QUFDL0MsS0FBSyxVQUFVLHFCQUFxQixLQUFLLENBQUM7QUFDakQsa2haQUFraFoiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgRGVjYWZXZWJob29rTW9kdWxlXzE7XG5pbXBvcnQgeyBNb2R1bGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbmltcG9ydCB7IEFkYXB0ZXIsIFBlcnNpc3RlbmNlU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgdXNlcyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgRGVjYWZSZXF1ZXN0Q29udGV4dCB9IGZyb20gXCIuLy4uL3JlcXVlc3QvaW5kZXguanNcIjtcbmltcG9ydCB7IERlY2FmSGFuZGxlckV4ZWN1dG9yIH0gZnJvbSBcIi4vLi4vcmVxdWVzdC9EZWNhZkhhbmRsZXJFeGVjdXRvci5qc1wiO1xuaW1wb3J0IHsgRGVjYWZSZXF1ZXN0SGFuZGxlckludGVyY2VwdG9yIH0gZnJvbSBcIi4vLi4vaW50ZXJjZXB0b3JzL0RlY2FmUmVxdWVzdEhhbmRsZXJJbnRlcmNlcHRvci5qc1wiO1xuaW1wb3J0IHsgREVDQUZfSEFORExFUlMgfSBmcm9tIFwiLi8uLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IEFQUF9JTlRFUkNFUFRPUiB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbmltcG9ydCB7IEZyb21Nb2RlbENvbnRyb2xsZXIgfSBmcm9tIFwiLi8uLi9kZWNhZi1tb2RlbC9pbmRleC5qc1wiO1xuaW1wb3J0IHsgcmVxdWVzdFRvQ29udGV4dFRyYW5zZm9ybWVyIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItaHR0cC9zZXJ2ZXJcIjtcbmltcG9ydCB7IFdlYmhvb2tEZWxpdmVyeSwgV2ViaG9va0V2ZW50UmVjb3JkLCBXZWJob29rU3Vic2NyaXB0aW9uLCB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWh0dHAvaG9va3NcIjtcbmltcG9ydCB7IFdlYmhvb2tFdmVudEFjdGlvbnNDb250cm9sbGVyLCBXZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXIsIH0gZnJvbSBcIi4vY29udHJvbGxlcnMuanNcIjtcbmxldCBEZWNhZldlYmhvb2tNb2R1bGUgPSBjbGFzcyBEZWNhZldlYmhvb2tNb2R1bGUge1xuICAgIHN0YXRpYyB7IERlY2FmV2ViaG9va01vZHVsZV8xID0gdGhpczsgfVxuICAgIHN0YXRpYyB7IHRoaXMuX2xvZ2dlciA9IExvZ2dpbmcuZm9yKERlY2FmV2ViaG9va01vZHVsZV8xKTsgfVxuICAgIHN0YXRpYyBnZXQgbG9nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9nZ2VyO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgYm9vdFBlcnNpc3RlbmNlKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuYm9vdFBlcnNpc3RlbmNlKTtcbiAgICAgICAgaWYgKCF0aGlzLl9wZXJzaXN0ZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgdHJpbW1lZCA9IG9wdGlvbnMuY29uZi5tYXAoKFtjb250ciwgY2ZnLCAuLi5hcmdzXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBvc3NpYmxlID0gYXJncy5wb3AoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXBvc3NpYmxlKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2NvbnRyLCBjZmddO1xuICAgICAgICAgICAgICAgIHJldHVybiBbY29udHIsIGNmZywgLi4uYXJnc107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX3BlcnNpc3RlbmNlID0gbmV3IFBlcnNpc3RlbmNlU2VydmljZSgpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcGVyc2lzdGVuY2UuYm9vdCh0cmltbWVkKTtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudHMgPSB0aGlzLl9wZXJzaXN0ZW5jZS5jbGllbnQ7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsaWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWNoZSA9IEFkYXB0ZXIuX2NhY2hlIHx8IChBZGFwdGVyLl9jYWNoZSA9IHt9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB3ZWJob29rS2V5cyA9IFtcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50c1tpXS5mbGF2b3VyLFxuICAgICAgICAgICAgICAgICAgICBjbGllbnRzW2ldLmFsaWFzLFxuICAgICAgICAgICAgICAgICAgICBcIndlYmhvb2tfZGVsaXZlcmllc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIndlYmhvb2tfZXZlbnRzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwid2ViaG9va19zdWJzY3JpcHRpb25zXCIsXG4gICAgICAgICAgICAgICAgXS5maWx0ZXIoKHZhbHVlKSA9PiAhIXZhbHVlKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB3ZWJob29rS2V5cykge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVtrZXldID0gY2xpZW50c1tpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgYyA9IG9wdGlvbnMuY29uZltpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3NzaWJsZVRyYW5zZiA9IGMuc2xpY2UoMiwgYy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGxldCB0cmFuc2Zvcm1lciA9IHBvc3NpYmxlVHJhbnNmLnBvcCgpO1xuICAgICAgICAgICAgICAgIGlmICghdHJhbnNmb3JtZXIgfHwgIXRyYW5zZm9ybWVyLmZyb20pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHIgPSBBZGFwdGVyLnRyYW5zZm9ybWVyRm9yKGNsaWVudHNbaV0uZmxhdm91cik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29udHIpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gdHJhbnNmb3JtZXIgZm91bmQgZm9yIGZsYXZvdXIgJHtjbGllbnRzW2ldLmZsYXZvdXJ9LmApO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZXIgPSBjb250ci5mcm9tXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb250clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3IGNvbnRyKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gYm9vdCB0cmFuc2Zvcm1lciBmb3IgJHtjbGllbnRzW2ldLmZsYXZvdXJ9OiAke2V9YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVxdWVzdFRvQ29udGV4dFRyYW5zZm9ybWVyKGNsaWVudHNbaV0uZmxhdm91cikodHJhbnNmb3JtZXIpO1xuICAgICAgICAgICAgICAgIHVzZXMoY2xpZW50c1tpXS5mbGF2b3VyKShXZWJob29rU3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICB1c2VzKGNsaWVudHNbaV0uZmxhdm91cikoV2ViaG9va0V2ZW50UmVjb3JkKTtcbiAgICAgICAgICAgICAgICB1c2VzKGNsaWVudHNbaV0uZmxhdm91cikoV2ViaG9va0RlbGl2ZXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvZy5pbmZvKFwicGVyc2lzdGVuY2UgbGF5ZXIgY3JlYXRlZCBzdWNjZXNzZnVsbHkhXCIpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuaW5pdGlhbGl6YXRpb24pIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBvcHRpb25zLmluaXRpYWxpemF0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB3ZWJob29rIG1vZHVsZTogJHtlfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcGVyc2lzdGVuY2UuY2xpZW50O1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgZm9yUm9vdChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvclJvb3RBc3luYyhvcHRpb25zKTtcbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIGZvclJvb3RBc3luYyhvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGFkYXB0ZXJzID0gYXdhaXQgdGhpcy5ib290UGVyc2lzdGVuY2Uob3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gW1xuICAgICAgICAgICAgRnJvbU1vZGVsQ29udHJvbGxlci5jcmVhdGUoV2ViaG9va1N1YnNjcmlwdGlvbiksXG4gICAgICAgICAgICBGcm9tTW9kZWxDb250cm9sbGVyLmNyZWF0ZShXZWJob29rRXZlbnRSZWNvcmQpLFxuICAgICAgICAgICAgRnJvbU1vZGVsQ29udHJvbGxlci5jcmVhdGUoV2ViaG9va0RlbGl2ZXJ5KSxcbiAgICAgICAgICAgIFdlYmhvb2tTdWJzY3JpcHRpb25BY3Rpb25zQ29udHJvbGxlcixcbiAgICAgICAgICAgIFdlYmhvb2tFdmVudEFjdGlvbnNDb250cm9sbGVyLFxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbW9kdWxlOiBEZWNhZldlYmhvb2tNb2R1bGVfMSxcbiAgICAgICAgICAgIGNvbnRyb2xsZXJzLFxuICAgICAgICAgICAgaW1wb3J0czogW1xuICAgICAgICAgICAgICAgIFJvdXRlck1vZHVsZS5yZWdpc3RlcihbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IChvcHRpb25zLndlYmhvb2tBcGlQYXRoIHx8IFwid2ViaG9va3NcIikucmVwbGFjZSgvXlxcLy8sIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlOiBEZWNhZldlYmhvb2tNb2R1bGVfMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICBEZWNhZlJlcXVlc3RDb250ZXh0LFxuICAgICAgICAgICAgICAgIERlY2FmSGFuZGxlckV4ZWN1dG9yLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogREVDQUZfSEFORExFUlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IG9wdGlvbnMuaGFuZGxlcnM/Lm1hcCgoSCkgPT4gbmV3IEgoKSkgPz8gW10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTlRFUkNFUFRPUixcbiAgICAgICAgICAgICAgICAgICAgdXNlQ2xhc3M6IERlY2FmUmVxdWVzdEhhbmRsZXJJbnRlcmNlcHRvcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGV4cG9ydHM6IFtEZWNhZlJlcXVlc3RDb250ZXh0LCBEZWNhZkhhbmRsZXJFeGVjdXRvcl0sXG4gICAgICAgIH07XG4gICAgfVxufTtcbkRlY2FmV2ViaG9va01vZHVsZSA9IERlY2FmV2ViaG9va01vZHVsZV8xID0gX19kZWNvcmF0ZShbXG4gICAgTW9kdWxlKHt9KVxuXSwgRGVjYWZXZWJob29rTW9kdWxlKTtcbmV4cG9ydCB7IERlY2FmV2ViaG9va01vZHVsZSB9O1xuZXhwb3J0IGNvbnN0IERlY2FmV2ViaG9va3NNb2R1bGUgPSBEZWNhZldlYmhvb2tNb2R1bGU7XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2ViaG9va3NNaWdyYXRpb25zKCkgeyB9XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSR1ZqWVdaWFpXSm9iMjlyVFc5a2RXeGxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMM2RsWW1odmIydHpMMFJsWTJGbVYyVmlhRzl2YTAxdlpIVnNaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPMEZCUVVFc1QwRkJUeXhGUVVGcFFpeE5RVUZOTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU4yUkN4UFFVRlBMRVZCUVVVc1dVRkJXU3hGUVVGRkxFMUJRVTBzWTBGQll5eERRVUZETzBGQlF6VkRMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTTNSQ3hQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRGVFUXNUMEZCVHl4RlFVRmxMRWxCUVVrc1JVRkJSU3hOUVVGTkxITkNRVUZ6UWl4RFFVRkRPMEZCUTNwRUxFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4dFFrRkJiVUlzUTBGQlF6dEJRVU0xUXl4UFFVRlBMRVZCUVVVc2JVSkJRVzFDTEVWQlFVVXNPRUpCUVcxQ08wRkJRMnBFTEU5QlFVOHNSVUZCUlN4dlFrRkJiMElzUlVGQlJTdzJRMEZCZDBNN1FVRkRka1VzVDBGQlR5eEZRVUZGTERoQ1FVRTRRaXhGUVVGRkxEUkVRVUYxUkR0QlFVTm9SeXhQUVVGUExFVkJRVVVzWTBGQll5eEZRVUZGTERCQ1FVRnhRanRCUVVNNVF5eFBRVUZQTEVWQlFVVXNaVUZCWlN4RlFVRkZMRTFCUVUwc1kwRkJZeXhEUVVGRE8wRkJSUzlETEU5QlFVOHNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTeHJRMEZCZFVJN1FVRkRja1FzVDBGQlR5eEZRVUZGTERKQ1FVRXlRaXhGUVVGRkxFMUJRVTBzTWtKQlFUSkNMRU5CUVVNN1FVRkRlRVVzVDBGQlR5eEZRVU5NTEdWQlFXVXNSVUZEWml4clFrRkJhMElzUlVGRGJFSXNiVUpCUVcxQ0xFZEJRM0JDTEUxQlFVMHNNRUpCUVRCQ0xFTkJRVU03UVVGRGJFTXNUMEZCVHl4RlFVTk1MRFpDUVVFMlFpeEZRVU0zUWl4dlEwRkJiME1zUjBGRGNrTXNlVUpCUVhOQ08wRkJSMmhDTEVsQlFVMHNhMEpCUVd0Q0xFZEJRWGhDTEUxQlFVMHNhMEpCUVd0Q096dGhRVU5rTEZsQlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExHOUNRVUZyUWl4RFFVRkRMRUZCUVd4RExFTkJRVzFETzBsQlIycEVMRTFCUVUwc1MwRkJTeXhIUVVGSE8xRkJRM0JDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJRenRKUVVOMFFpeERRVUZETzBsQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRekZDTEU5QlFXdERPMUZCUld4RExFMUJRVTBzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTXZReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMWxCUTNaQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZEZWtRc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVNMVFpeEpRVUZKTEVOQlFVTXNVVUZCVVR0dlFrRkJSU3hQUVVGUExFTkJRVU1zUzBGQlN5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVOdVF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF5OUNMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMGdzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4SlFVRkpMR3RDUVVGclFpeEZRVUZGTEVOQlFVTTdXVUZETjBNc1RVRkJUU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVWMFF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFMUJRVTBzUTBGQlF6dFpRVU42UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETzJkQ1FVTjRReXhOUVVGTkxFdEJRVXNzUjBGQlNTeFBRVUZsTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVVc1QwRkJaU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRlRVVzVFVGQlRTeFhRVUZYTEVkQlFVYzdiMEpCUTJ4Q0xFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBPMjlDUVVOc1FpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTenR2UWtGRGFFSXNiMEpCUVc5Q08yOUNRVU53UWl4blFrRkJaMEk3YjBKQlEyaENMSFZDUVVGMVFqdHBRa0ZEZUVJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFXMUNMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdaMEpCUXpsRExFdEJRVXNzVFVGQlRTeEhRVUZITEVsQlFVa3NWMEZCVnl4RlFVRkZMRU5CUVVNN2IwSkJRemxDTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpGQ0xFTkJRVU03WjBKQlJVUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRNVUlzVFVGQlRTeGpRVUZqTEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMmRDUVVNMVF5eEpRVUZKTEZkQlFWY3NSMEZCUnl4alFVRmpMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03WjBKQlEzWkRMRWxCUVVrc1EwRkJReXhYUVVGWExFbEJRVWtzUTBGQlJTeFhRVUZyUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8yOUNRVU01UkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhQUVVGUExFTkJRVU1zWTBGQll5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dHZRa0ZEZWtRc1NVRkJTU3hEUVVGRExFdEJRVXM3ZDBKQlExSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzYjBOQlFXOURMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVkQlFVY3NRMEZETVVRc1EwRkJRenR2UWtGRFNpeEpRVUZKTEVOQlFVTTdkMEpCUTBnc1YwRkJWeXhIUVVGSkxFdEJRV0VzUTBGQlF5eEpRVUZKT3pSQ1FVTXZRaXhEUVVGRExFTkJRVU1zUzBGQlN6czBRa0ZEVUN4RFFVRkRMRU5CUVVNc1NVRkJTeXhMUVVFd1FpeEZRVUZGTEVOQlFVTTdiMEpCUTNoRExFTkJRVU03YjBKQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenQzUWtGRGNFSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzYTBOQlFXdERMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUXpkRUxFTkJRVU03YjBKQlEwb3NRMEZCUXp0blFrRkRTQ3hEUVVGRE8yZENRVU5FTERKQ1FVRXlRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dG5Ra0ZGTjBRc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMmRDUVVNNVF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU03WjBKQlF6ZERMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03V1VGRE5VTXNRMEZCUXp0WlFVTkVMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zZVVOQlFYbERMRU5CUVVNc1EwRkJRenRaUVVWd1JDeEpRVUZKTEU5QlFVOHNRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRuUWtGRE0wSXNTVUZCU1N4RFFVRkRPMjlDUVVOSUxFMUJRVTBzVDBGQlR5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMmRDUVVOcVF5eERRVUZETzJkQ1FVRkRMRTlCUVU4c1EwRkJWU3hGUVVGRkxFTkJRVU03YjBKQlEzQkNMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zZDBOQlFYZERMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03WjBKQlEzWkZMRU5CUVVNN1dVRkRTQ3hEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVVZFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRGJFTXNRMEZCUXp0SlFVVkVMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVU5zUWl4UFFVRnJRenRSUVVWc1F5eFBRVUZQTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNFTXNRMEZCUXp0SlFVVkVMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeERRVU4yUWl4UFFVRnJRenRSUVVWc1F5eE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY2tRc1RVRkJUU3hYUVVGWExFZEJRVWM3V1VGRGJFSXNiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhEUVVGRE8xbEJReTlETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUTBGQlF5eHJRa0ZCYTBJc1EwRkJRenRaUVVNNVF5eHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFTkJRVU1zWlVGQlpTeERRVUZETzFsQlF6TkRMRzlEUVVGdlF6dFpRVU53UXl3MlFrRkJOa0k3VTBGRE9VSXNRMEZCUXp0UlFVVkdMRTlCUVU4N1dVRkRUQ3hOUVVGTkxFVkJRVVVzYjBKQlFXdENPMWxCUXpGQ0xGZEJRVmM3V1VGRFdDeFBRVUZQTEVWQlFVVTdaMEpCUTFBc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF6dHZRa0ZEY0VJN2QwSkJRMFVzU1VGQlNTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMR05CUVdNc1NVRkJTU3hWUVVGVkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJRenQzUWtGREwwUXNUVUZCVFN4RlFVRkZMRzlDUVVGclFqdHhRa0ZETTBJN2FVSkJRMFlzUTBGQlF6dGhRVU5JTzFsQlEwUXNVMEZCVXl4RlFVRkZPMmRDUVVOVUxHMUNRVUZ0UWp0blFrRkRia0lzYjBKQlFXOUNPMmRDUVVOd1FqdHZRa0ZEUlN4UFFVRlBMRVZCUVVVc1kwRkJZenR2UWtGRGRrSXNWVUZCVlN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1JVRkJSVHRwUWtGRE9VUTdaMEpCUTBRN2IwSkJRMFVzVDBGQlR5eEZRVUZGTEdWQlFXVTdiMEpCUTNoQ0xGRkJRVkVzUlVGQlJTdzRRa0ZCT0VJN2FVSkJRM3BETzJGQlEwWTdXVUZEUkN4UFFVRlBMRVZCUVVVc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4dlFrRkJiMElzUTBGQlF6dFRRVU55UkN4RFFVRkRPMGxCUTBvc1EwRkJRenM3UVVGeVNGVXNhMEpCUVd0Q08wbEJSRGxDTEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNN1IwRkRSU3hyUWtGQmEwSXNRMEZ6U0RsQ096dEJRVVZFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEd0Q1FVRnJRaXhEUVVGRE8wRkJSWFJFTEUxQlFVMHNRMEZCUXl4TFFVRkxMRlZCUVZVc2NVSkJRWEZDTEV0QlFXMUNMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkVlVzVoYldsalRXOWtkV3hsTENCTmIyUjFiR1VnZlNCbWNtOXRJRndpUUc1bGMzUnFjeTlqYjIxdGIyNWNJanRjYm1sdGNHOXlkQ0I3SUZKdmRYUmxjazF2WkhWc1pTQjlJR1p5YjIwZ1hDSkFibVZ6ZEdwekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lFRmtZWEIwWlhJc0lGQmxjbk5wYzNSbGJtTmxVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dTVzUwWlhKdVlXeEZjbkp2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUhzZ1EyOXVjM1J5ZFdOMGIzSXNJSFZ6WlhNZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmxZMjl5WVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUV4dloyZHBibWNnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJ4dloyZHBibWRjSWp0Y2JtbHRjRzl5ZENCN0lFUmxZMkZtVW1WeGRXVnpkRU52Ym5SbGVIUWdmU0JtY205dElGd2lMaTR2Y21WeGRXVnpkRndpTzF4dWFXMXdiM0owSUhzZ1JHVmpZV1pJWVc1a2JHVnlSWGhsWTNWMGIzSWdmU0JtY205dElGd2lMaTR2Y21WeGRXVnpkQzlFWldOaFpraGhibVJzWlhKRmVHVmpkWFJ2Y2x3aU8xeHVhVzF3YjNKMElIc2dSR1ZqWVdaU1pYRjFaWE4wU0dGdVpHeGxja2x1ZEdWeVkyVndkRzl5SUgwZ1puSnZiU0JjSWk0dUwybHVkR1Z5WTJWd2RHOXljeTlFWldOaFpsSmxjWFZsYzNSSVlXNWtiR1Z5U1c1MFpYSmpaWEIwYjNKY0lqdGNibWx0Y0c5eWRDQjdJRVJGUTBGR1gwaEJUa1JNUlZKVElIMGdabkp2YlNCY0lpNHVMMk52Ym5OMFlXNTBjMXdpTzF4dWFXMXdiM0owSUhzZ1FWQlFYMGxPVkVWU1EwVlFWRTlTSUgwZ1puSnZiU0JjSWtCdVpYTjBhbk12WTI5eVpWd2lPMXh1YVcxd2IzSjBJSHNnUkdWallXWlhaV0pvYjI5clRXOWtkV3hsVDNCMGFXOXVjeUI5SUdaeWIyMGdYQ0l1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCR2NtOXRUVzlrWld4RGIyNTBjbTlzYkdWeUlIMGdabkp2YlNCY0lpNHVMMlJsWTJGbUxXMXZaR1ZzWENJN1hHNXBiWEJ2Y25RZ2V5QnlaWEYxWlhOMFZHOURiMjUwWlhoMFZISmhibk5tYjNKdFpYSWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlp2Y2kxb2RIUndMM05sY25abGNsd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1YyVmlhRzl2YTBSbGJHbDJaWEo1TEZ4dUlDQlhaV0pvYjI5clJYWmxiblJTWldOdmNtUXNYRzRnSUZkbFltaHZiMnRUZFdKelkzSnBjSFJwYjI0c1hHNTlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZabTl5TFdoMGRIQXZhRzl2YTNOY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUZkbFltaHZiMnRGZG1WdWRFRmpkR2x2Ym5ORGIyNTBjbTlzYkdWeUxGeHVJQ0JYWldKb2IyOXJVM1ZpYzJOeWFYQjBhVzl1UVdOMGFXOXVjME52Ym5SeWIyeHNaWElzWEc1OUlHWnliMjBnWENJdUwyTnZiblJ5YjJ4c1pYSnpYQ0k3WEc1Y2JrQk5iMlIxYkdVb2UzMHBYRzVsZUhCdmNuUWdZMnhoYzNNZ1JHVmpZV1pYWldKb2IyOXJUVzlrZFd4bElIdGNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdYMnh2WjJkbGNpQTlJRXh2WjJkcGJtY3VabTl5S0VSbFkyRm1WMlZpYUc5dmEwMXZaSFZzWlNrN1hHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklGOXdaWEp6YVhOMFpXNWpaVDg2SUZCbGNuTnBjM1JsYm1ObFUyVnlkbWxqWlR4QlpHRndkR1Z5UEdGdWVTd2dZVzU1TENCaGJua3NJR0Z1ZVQ0K08xeHVYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR2RsZENCc2IyY29LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDJ4dloyZGxjanRjYmlBZ2ZWeHVYRzRnSUhOMFlYUnBZeUJoYzNsdVl5QmliMjkwVUdWeWMybHpkR1Z1WTJVb1hHNGdJQ0FnYjNCMGFXOXVjem9nUkdWallXWlhaV0pvYjI5clRXOWtkV3hsVDNCMGFXOXVjMXh1SUNBcE9pQlFjbTl0YVhObFBFRmtZWEIwWlhJOFlXNTVMQ0JoYm5rc0lHRnVlU3dnWVc1NVBsdGRQaUI3WEc0Z0lDQWdZMjl1YzNRZ2JHOW5JRDBnZEdocGN5NXNiMmN1Wm05eUtIUm9hWE11WW05dmRGQmxjbk5wYzNSbGJtTmxLVHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVYM0JsY25OcGMzUmxibU5sS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwY21sdGJXVmtJRDBnYjNCMGFXOXVjeTVqYjI1bUxtMWhjQ2dvVzJOdmJuUnlMQ0JqWm1jc0lDNHVMbUZ5WjNOZEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEJ2YzNOcFlteGxJRDBnWVhKbmN5NXdiM0FvS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0Z3YjNOemFXSnNaU2tnY21WMGRYSnVJRnRqYjI1MGNpd2dZMlpuWFR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ0amIyNTBjaXdnWTJabkxDQXVMaTVoY21kelhUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkR2hwY3k1ZmNHVnljMmx6ZEdWdVkyVWdQU0J1WlhjZ1VHVnljMmx6ZEdWdVkyVlRaWEoyYVdObEtDazdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbDl3WlhKemFYTjBaVzVqWlM1aWIyOTBLSFJ5YVcxdFpXUXBPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQmpiR2xsYm5SeklEMGdkR2hwY3k1ZmNHVnljMmx6ZEdWdVkyVXVZMnhwWlc1ME8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmpiR2xsYm5SekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR05oWTJobElEMGdLRUZrWVhCMFpYSWdZWE1nWVc1NUtTNWZZMkZqYUdVZ2ZId2dLQ2hCWkdGd2RHVnlJR0Z6SUdGdWVTa3VYMk5oWTJobElEMGdlMzBwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IzWldKb2IyOXJTMlY1Y3lBOUlGdGNiaUFnSUNBZ0lDQWdJQ0JqYkdsbGJuUnpXMmxkTG1ac1lYWnZkWElzWEc0Z0lDQWdJQ0FnSUNBZ1kyeHBaVzUwYzF0cFhTNWhiR2xoY3l4Y2JpQWdJQ0FnSUNBZ0lDQmNJbmRsWW1odmIydGZaR1ZzYVhabGNtbGxjMXdpTEZ4dUlDQWdJQ0FnSUNBZ0lGd2lkMlZpYUc5dmExOWxkbVZ1ZEhOY0lpeGNiaUFnSUNBZ0lDQWdJQ0JjSW5kbFltaHZiMnRmYzNWaWMyTnlhWEIwYVc5dWMxd2lMRnh1SUNBZ0lDQWdJQ0JkTG1acGJIUmxjaWdvZG1Gc2RXVXBPaUIyWVd4MVpTQnBjeUJ6ZEhKcGJtY2dQVDRnSVNGMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2EyVjVJRzltSUhkbFltaHZiMnRMWlhsektTQjdYRzRnSUNBZ0lDQWdJQ0FnWTJGamFHVmJhMlY1WFNBOUlHTnNhV1Z1ZEhOYmFWMDdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0JqSUQwZ2IzQjBhVzl1Y3k1amIyNW1XMmxkTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YjNOemFXSnNaVlJ5WVc1elppQTlJR011YzJ4cFkyVW9NaXdnWXk1c1pXNW5kR2dwTzF4dUlDQWdJQ0FnSUNCc1pYUWdkSEpoYm5ObWIzSnRaWElnUFNCd2IzTnphV0pzWlZSeVlXNXpaaTV3YjNBb0tUdGNiaUFnSUNBZ0lDQWdhV1lnS0NGMGNtRnVjMlp2Y20xbGNpQjhmQ0FoS0hSeVlXNXpabTl5YldWeUlHRnpJSHNnWm5KdmJUODZJSFZ1YTI1dmQyNGdmU2t1Wm5KdmJTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR052Ym5SeUlEMGdRV1JoY0hSbGNpNTBjbUZ1YzJadmNtMWxja1p2Y2loamJHbGxiblJ6VzJsZExtWnNZWFp2ZFhJcE8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNnaFkyOXVkSElwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWUU1dklIUnlZVzV6Wm05eWJXVnlJR1p2ZFc1a0lHWnZjaUJtYkdGMmIzVnlJQ1I3WTJ4cFpXNTBjMXRwWFM1bWJHRjJiM1Z5ZlM1Z1hHNGdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBjbUZ1YzJadmNtMWxjaUE5SUNoamIyNTBjaUJoY3lCaGJua3BMbVp5YjIxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCamIyNTBjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJRzVsZHlBb1kyOXVkSElnWVhNZ1EyOXVjM1J5ZFdOMGIzSThZVzU1UGlrb0tUdGNiaUFnSUNBZ0lDQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lFWmhhV3hsWkNCMGJ5QmliMjkwSUhSeVlXNXpabTl5YldWeUlHWnZjaUFrZTJOc2FXVnVkSE5iYVYwdVpteGhkbTkxY24wNklDUjdaWDFnWEc0Z0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWEYxWlhOMFZHOURiMjUwWlhoMFZISmhibk5tYjNKdFpYSW9ZMnhwWlc1MGMxdHBYUzVtYkdGMmIzVnlLU2gwY21GdWMyWnZjbTFsY2lrN1hHNWNiaUFnSUNBZ0lDQWdkWE5sY3loamJHbGxiblJ6VzJsZExtWnNZWFp2ZFhJcEtGZGxZbWh2YjJ0VGRXSnpZM0pwY0hScGIyNHBPMXh1SUNBZ0lDQWdJQ0IxYzJWektHTnNhV1Z1ZEhOYmFWMHVabXhoZG05MWNpa29WMlZpYUc5dmEwVjJaVzUwVW1WamIzSmtLVHRjYmlBZ0lDQWdJQ0FnZFhObGN5aGpiR2xsYm5SelcybGRMbVpzWVhadmRYSXBLRmRsWW1odmIydEVaV3hwZG1WeWVTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnNiMmN1YVc1bWJ5aGNJbkJsY25OcGMzUmxibU5sSUd4aGVXVnlJR055WldGMFpXUWdjM1ZqWTJWemMyWjFiR3g1SVZ3aUtUdGNibHh1SUNBZ0lDQWdhV1lnS0c5d2RHbHZibk11YVc1cGRHbGhiR2w2WVhScGIyNHBJSHRjYmlBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0JoZDJGcGRDQnZjSFJwYjI1ekxtbHVhWFJwWVd4cGVtRjBhVzl1S0NrN1hHNGdJQ0FnSUNBZ0lIMGdZMkYwWTJnZ0tHVTZJSFZ1YTI1dmQyNHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhnUm1GcGJHVmtJSFJ2SUdsdWFYUnBZV3hwZW1VZ2QyVmlhRzl2YXlCdGIyUjFiR1U2SUNSN1pYMWdLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TGw5d1pYSnphWE4wWlc1alpTNWpiR2xsYm5RN1hHNGdJSDFjYmx4dUlDQnpkR0YwYVdNZ1lYTjVibU1nWm05eVVtOXZkQ2hjYmlBZ0lDQnZjSFJwYjI1ek9pQkVaV05oWmxkbFltaHZiMnROYjJSMWJHVlBjSFJwYjI1elhHNGdJQ2s2SUZCeWIyMXBjMlU4UkhsdVlXMXBZMDF2WkhWc1pUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVp2Y2xKdmIzUkJjM2x1WXlodmNIUnBiMjV6S1R0Y2JpQWdmVnh1WEc0Z0lITjBZWFJwWXlCaGMzbHVZeUJtYjNKU2IyOTBRWE41Ym1Nb1hHNGdJQ0FnYjNCMGFXOXVjem9nUkdWallXWlhaV0pvYjI5clRXOWtkV3hsVDNCMGFXOXVjMXh1SUNBcE9pQlFjbTl0YVhObFBFUjVibUZ0YVdOTmIyUjFiR1UrSUh0Y2JpQWdJQ0JqYjI1emRDQmhaR0Z3ZEdWeWN5QTlJR0YzWVdsMElIUm9hWE11WW05dmRGQmxjbk5wYzNSbGJtTmxLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lHTnZibk4wSUdOdmJuUnliMnhzWlhKeklEMGdXMXh1SUNBZ0lDQWdSbkp2YlUxdlpHVnNRMjl1ZEhKdmJHeGxjaTVqY21WaGRHVW9WMlZpYUc5dmExTjFZbk5qY21sd2RHbHZiaWtzWEc0Z0lDQWdJQ0JHY205dFRXOWtaV3hEYjI1MGNtOXNiR1Z5TG1OeVpXRjBaU2hYWldKb2IyOXJSWFpsYm5SU1pXTnZjbVFwTEZ4dUlDQWdJQ0FnUm5KdmJVMXZaR1ZzUTI5dWRISnZiR3hsY2k1amNtVmhkR1VvVjJWaWFHOXZhMFJsYkdsMlpYSjVLU3hjYmlBZ0lDQWdJRmRsWW1odmIydFRkV0p6WTNKcGNIUnBiMjVCWTNScGIyNXpRMjl1ZEhKdmJHeGxjaXhjYmlBZ0lDQWdJRmRsWW1odmIydEZkbVZ1ZEVGamRHbHZibk5EYjI1MGNtOXNiR1Z5TEZ4dUlDQWdJRjA3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdiVzlrZFd4bE9pQkVaV05oWmxkbFltaHZiMnROYjJSMWJHVXNYRzRnSUNBZ0lDQmpiMjUwY205c2JHVnljeXhjYmlBZ0lDQWdJR2x0Y0c5eWRITTZJRnRjYmlBZ0lDQWdJQ0FnVW05MWRHVnlUVzlrZFd4bExuSmxaMmx6ZEdWeUtGdGNiaUFnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQndZWFJvT2lBb2IzQjBhVzl1Y3k1M1pXSm9iMjlyUVhCcFVHRjBhQ0I4ZkNCY0luZGxZbWh2YjJ0elhDSXBMbkpsY0d4aFkyVW9MMTVjWEM4dkxDQmNJbHdpS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzF2WkhWc1pUb2dSR1ZqWVdaWFpXSm9iMjlyVFc5a2RXeGxMRnh1SUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lGMHBMRnh1SUNBZ0lDQWdYU3hjYmlBZ0lDQWdJSEJ5YjNacFpHVnljem9nVzF4dUlDQWdJQ0FnSUNCRVpXTmhabEpsY1hWbGMzUkRiMjUwWlhoMExGeHVJQ0FnSUNBZ0lDQkVaV05oWmtoaGJtUnNaWEpGZUdWamRYUnZjaXhjYmlBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lIQnliM1pwWkdVNklFUkZRMEZHWDBoQlRrUk1SVkpUTEZ4dUlDQWdJQ0FnSUNBZ0lIVnpaVVpoWTNSdmNuazZJQ2dwSUQwK0lHOXdkR2x2Ym5NdWFHRnVaR3hsY25NL0xtMWhjQ2dvU0NrZ1BUNGdibVYzSUVnb0tTa2dQejhnVzEwc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNCd2NtOTJhV1JsT2lCQlVGQmZTVTVVUlZKRFJWQlVUMUlzWEc0Z0lDQWdJQ0FnSUNBZ2RYTmxRMnhoYzNNNklFUmxZMkZtVW1WeGRXVnpkRWhoYm1Sc1pYSkpiblJsY21ObGNIUnZjaXhjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUYwc1hHNGdJQ0FnSUNCbGVIQnZjblJ6T2lCYlJHVmpZV1pTWlhGMVpYTjBRMjl1ZEdWNGRDd2dSR1ZqWVdaSVlXNWtiR1Z5UlhobFkzVjBiM0pkTEZ4dUlDQWdJSDA3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVJsWTJGbVYyVmlhRzl2YTNOTmIyUjFiR1VnUFNCRVpXTmhabGRsWW1odmIydE5iMlIxYkdVN1hHNWNibVY0Y0c5eWRDQmhjM2x1WXlCbWRXNWpkR2x2YmlCeWRXNVhaV0pvYjI5cmMwMXBaM0poZEdsdmJuTW9LVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdmVnh1SWwxOSJdfQ==
|
|
@@ -23,21 +23,21 @@ const common_1 = require("@nestjs/common");
|
|
|
23
23
|
const core_1 = require("@decaf-ts/core");
|
|
24
24
|
const controllers_js_1 = require("./../controllers.cjs");
|
|
25
25
|
const index_js_1 = require("./../request/index.cjs");
|
|
26
|
-
const
|
|
26
|
+
const hooks_1 = require("@decaf-ts/for-http/hooks");
|
|
27
27
|
let WebhookSubscriptionActionsController = WebhookSubscriptionActionsController_1 = class WebhookSubscriptionActionsController extends controllers_js_1.DecafController {
|
|
28
28
|
constructor(clientContext) {
|
|
29
29
|
super(clientContext, WebhookSubscriptionActionsController_1.name);
|
|
30
30
|
}
|
|
31
31
|
async deactivate(id) {
|
|
32
32
|
const { ctx } = (await this.logCtx([], "deactivate", true)).for(this.deactivate);
|
|
33
|
-
const repo = core_1.Repository.forModel(
|
|
33
|
+
const repo = core_1.Repository.forModel(hooks_1.WebhookSubscription);
|
|
34
34
|
const current = await repo.read(id, ctx);
|
|
35
35
|
current.active = false;
|
|
36
36
|
return repo.update(current, ctx);
|
|
37
37
|
}
|
|
38
38
|
async reactivate(id) {
|
|
39
39
|
const { ctx } = (await this.logCtx([], "reactivate", true)).for(this.reactivate);
|
|
40
|
-
const repo = core_1.Repository.forModel(
|
|
40
|
+
const repo = core_1.Repository.forModel(hooks_1.WebhookSubscription);
|
|
41
41
|
const current = await repo.read(id, ctx);
|
|
42
42
|
current.active = true;
|
|
43
43
|
return repo.update(current, ctx);
|
|
@@ -68,8 +68,8 @@ let WebhookEventActionsController = WebhookEventActionsController_1 = class Webh
|
|
|
68
68
|
}
|
|
69
69
|
async replay(id) {
|
|
70
70
|
const { ctx } = (await this.logCtx([], "replay", true)).for(this.replay);
|
|
71
|
-
const eventRepo = core_1.Repository.forModel(
|
|
72
|
-
const deliveryRepo = core_1.Repository.forModel(
|
|
71
|
+
const eventRepo = core_1.Repository.forModel(hooks_1.WebhookEventRecord);
|
|
72
|
+
const deliveryRepo = core_1.Repository.forModel(hooks_1.WebhookDelivery);
|
|
73
73
|
try {
|
|
74
74
|
let event;
|
|
75
75
|
try {
|
|
@@ -87,7 +87,7 @@ let WebhookEventActionsController = WebhookEventActionsController_1 = class Webh
|
|
|
87
87
|
}
|
|
88
88
|
let deliveries = [];
|
|
89
89
|
try {
|
|
90
|
-
deliveries = await (0,
|
|
90
|
+
deliveries = await (0, hooks_1.collectPagedResults)(() => deliveryRepo
|
|
91
91
|
.select()
|
|
92
92
|
.where(deliveryRepo.attr("eventId").eq(event.id))
|
|
93
93
|
.orderBy("createdAt", core_1.OrderDirection.ASC)
|
|
@@ -107,7 +107,7 @@ let WebhookEventActionsController = WebhookEventActionsController_1 = class Webh
|
|
|
107
107
|
}
|
|
108
108
|
const now = new Date();
|
|
109
109
|
for (const delivery of deliveries) {
|
|
110
|
-
delivery.status =
|
|
110
|
+
delivery.status = hooks_1.WebhookStatus.PENDING;
|
|
111
111
|
delivery.attempts = 0;
|
|
112
112
|
delivery.nextAttemptAt = now;
|
|
113
113
|
delivery.lastAttemptAt = null;
|
|
@@ -115,7 +115,7 @@ let WebhookEventActionsController = WebhookEventActionsController_1 = class Webh
|
|
|
115
115
|
delivery.responseStatus = undefined;
|
|
116
116
|
delivery.responseBody = undefined;
|
|
117
117
|
}
|
|
118
|
-
event.status =
|
|
118
|
+
event.status = hooks_1.WebhookStatus.PENDING;
|
|
119
119
|
event.deliveriesSucceeded = 0;
|
|
120
120
|
event.deliveriesFailed = 0;
|
|
121
121
|
event.nextAttemptAt = now;
|
|
@@ -147,5 +147,5 @@ exports.WebhookEventActionsController = WebhookEventActionsController = WebhookE
|
|
|
147
147
|
(0, common_1.Controller)("webhook-events"),
|
|
148
148
|
__metadata("design:paramtypes", [index_js_1.DecafRequestContext])
|
|
149
149
|
], WebhookEventActionsController);
|
|
150
|
-
//# sourceMappingURL=controllers.js.map
|
|
151
|
-
//# sourceMappingURL=controllers.js.map
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd2ViaG9va3MvY29udHJvbGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQWEsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSw0QkFBdUI7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDhCQUFtQjtBQUVqRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUNwQixNQUFNLDBCQUEwQixDQUFDO0FBRzNCLElBQU0sb0NBQW9DLDRDQUExQyxNQUFNLG9DQUFxQyxTQUFRLGVBQStCO0lBQ3ZGLFlBQVksYUFBa0M7UUFDNUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxzQ0FBb0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsVUFBVSxDQUFjLEVBQVU7UUFDdEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQzdELElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUc5QixtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekMsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdkIsT0FBTyxJQUFJLENB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R0FBRyxDQUFDO1lBQzFCLEtBQUssQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBRXRCLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUM7b0JBQ0gsTUFBTSxZQUFZLENBQUMsU0FBUyxDQUMxQixVQUFVLEVBQ1YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBUyxDQUFDLENBQ3RELENBQUM7Z0JBQ0osQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsNEZBQTRGO2dCQUM5RixDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQS9FTztJQURMLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDTCxXQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTs7OzsyREE4RXhCO0FBcEZVLDZCQUE2QjtJQUR6QyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7cUNBRUEsbUJBQW1CO0dBRG5DLDZCQUE2QixDQXFGekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cm9sbGVyLCBQYXJhbSwgUG9zdCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSwgdHlwZSBSZXBvLCBPcmRlckRpcmVjdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRGVjYWZDb250cm9sbGVyIH0gZnJvbSBcIi4uL2NvbnRyb2xsZXJzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4uL3JlcXVlc3RcIjtcbmltcG9ydCB7IERlY2FmU2VydmVyQ3R4IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgV2ViaG9va0RlbGl2ZXJ5LFxuICBXZWJob29rRXZlbnRSZWNvcmQsXG4gIFdlYmhvb2tTdGF0dXMsXG4gIFdlYmhvb2tTdWJzY3JpcHRpb24sXG4gIGNvbGxlY3RQYWdlZFJlc3VsdHMsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWh0dHAvaG9va3NcIjtcblxuQENvbnRyb2xsZXIoXCJ3ZWJob29rLXN1YnNjcmlwdGlvbnNcIilcbmV4cG9ydCBjbGFzcyBXZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXIgZXh0ZW5kcyBEZWNhZkNvbnRyb2xsZXI8RGVjYWZTZXJ2ZXJDdHg+IHtcbiAgY29uc3RydWN0b3IoY2xpZW50Q29udGV4dDogRGVjYWZSZXF1ZXN0Q29udGV4dCkge1xuICAgIHN1cGVyKGNsaWVudENvbnRleHQsIFdlYmhvb2tTdWJzY3JpcHRpb25BY3Rpb25zQ29udHJvbGxlci5uYW1lKTtcbiAgfVxuXG4gIEBQb3N0KFwiOmlkL2RlYWN0aXZhdGVcIilcbiAgYXN5bmMgZGVhY3RpdmF0ZShAUGFyYW0oXCJpZFwiKSBpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbXSwgXCJkZWFjdGl2YXRlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmRlYWN0aXZhdGVcbiAgICApO1xuICAgIGNvbnN0IHJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsPFxuICAgICAgV2ViaG9va1N1YnNjcmlwdGlvbixcbiAgICAgIFJlcG88V2ViaG9va1N1YnNjcmlwdGlvbj5cbiAgICA+KFdlYmhvb2tTdWJzY3JpcHRpb24pO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCByZXBvLnJlYWQoaWQsIGN0eCk7XG4gICAgY3VycmVudC5hY3RpdmUgPSBmYWxzZTtcbiAgICByZXR1cm4gcmVwby51cGRhdGUoY3VycmVudCwgY3R4KTtcbiAgfVxuXG4gIEBQb3N0KFwiOmlkL3JlYWN0aXZhdGVcIilcbiAgYXN5bmMgcmVhY3RpdmF0ZShAUGFyYW0oXCJpZFwiKSBpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbXSwgXCJyZWFjdGl2YXRlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJlYWN0aXZhdGVcbiAgICApO1xuICAgIGNvbnN0IHJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsPFxuICAgICAgV2ViaG9va1N1YnNjcmlwdGlvbixcbiAgICAgIFJlcG88V2ViaG9va1N1YnNjcmlwdGlvbj5cbiAgICA+KFdlYmhvb2tTdWJzY3JpcHRpb24pO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCByZXBvLnJlYWQoaWQsIGN0eCk7XG4gICAgY3VycmVudC5hY3RpdmUgPSB0cnVlO1xuICAgIHJldHVybiByZXBvLnVwZGF0ZShjdXJyZW50LCBjdHgpO1xuICB9XG59XG5cbkBDb250cm9sbGVyKFwid2ViaG9vay1ldmVudHNcIilcbmV4cG9ydCBjbGFzcyBXZWJob29rRXZlbnRBY3Rpb25zQ29udHJvbGxlciBleHRlbmRzIERlY2FmQ29udHJvbGxlcjxEZWNhZlNlcnZlckN0eD4ge1xuICBjb25zdHJ1Y3RvcihjbGllbnRDb250ZXh0OiBEZWNhZlJlcXVlc3RDb250ZXh0KSB7XG4gICAgc3VwZXIoY2xpZW50Q29udGV4dCwgV2ViaG9va0V2ZW50QWN0aW9uc0NvbnRyb2xsZXIubmFtZSk7XG4gIH1cblxuICBAUG9zdChcIjppZC9yZXBsYXlcIilcbiAgYXN5bmMgcmVwbGF5KEBQYXJhbShcImlkXCIpIGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFtdLCBcInJlcGxheVwiLCB0cnVlKSkuZm9yKHRoaXMucmVwbGF5KTtcbiAgICBjb25zdCBldmVudFJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsPFxuICAgICAgV2ViaG9va0V2ZW50UmVjb3JkLFxuICAgICAgUmVwbzxXZWJob29rRXZlbnRSZWNvcmQ+XG4gICAgPihXZWJob29rRXZlbnRSZWNvcmQpO1xuICAgIGNvbnN0IGRlbGl2ZXJ5UmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWw8XG4gICAgICBXZWJob29rRGVsaXZlcnksXG4gICAgICBSZXBvPFdlYmhvb2tEZWxpdmVyeT5cbiAgICA+KFdlYmhvb2tEZWxpdmVyeSk7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBldmVudDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV2ZW50ID0gYXdhaXQgZXZlbnRSZXBvLnJlYWQoaWQsIGN0eCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCBldmVudHMgPSBhd2FpdCBldmVudFJlcG9cbiAgICAgICAgICAuc2VsZWN0KClcbiAgICAgICAgICAud2hlcmUoZXZlbnRSZXBvLmF0dHIoXCJpZFwiKS5lcShpZCkpXG4gICAgICAgICAgLmxpbWl0KDEpXG4gICAgICAgICAgLmV4ZWN1dGUoY3R4KTtcbiAgICAgICAgaWYgKCFldmVudHMubGVuZ3RoKSB0aHJvdyBlcnJvcjtcbiAgICAgICAgZXZlbnQgPSBldmVudHNbMF07XG4gICAgICB9XG4gICAgICBsZXQgZGVsaXZlcmllczogYW55W10gPSBbXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGRlbGl2ZXJpZXMgPSBhd2FpdCBjb2xsZWN0UGFnZWRSZXN1bHRzKFxuICAgICAgICAgICgpID0+XG4gICAgICAgICAgICBkZWxpdmVyeVJlcG9cbiAgICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAgIC53aGVyZShkZWxpdmVyeVJlcG8uYXR0cihcImV2ZW50SWRcIikuZXEoZXZlbnQuaWQpKVxuICAgICAgICAgICAgICAub3JkZXJCeShcImNyZWF0ZWRBdFwiLCBPcmRlckRpcmVjdGlvbi5BU0MpXG4gICAgICAgICAgICAgIC50aGVuQnkoXCJpZFwiLCBPcmRlckRpcmVjdGlvbi5BU0MpXG4gICAgICAgICAgICAgIC5wYWdpbmF0ZSgyNTAsIGN0eCksXG4gICAgICAgICAgMjUwLFxuICAgICAgICAgIGN0eFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZGVsaXZlcmllcyA9IGF3YWl0IGRlbGl2ZXJ5UmVwb1xuICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAud2hlcmUoZGVsaXZlcnlSZXBvLmF0dHIoXCJldmVudElkXCIpLmVxKGV2ZW50LmlkKSlcbiAgICAgICAgICAgIC5leGVjdXRlKGN0eCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIGRlbGl2ZXJpZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcblxuICAgICAgZm9yIChjb25zdCBkZWxpdmVyeSBvZiBkZWxpdmVyaWVzKSB7XG4gICAgICAgIGRlbGl2ZXJ5LnN0YXR1cyA9IFdlYmhvb2tTdGF0dXMuUEVORElORztcbiAgICAgICAgZGVsaXZlcnkuYXR0ZW1wdHMgPSAwO1xuICAgICAgICBkZWxpdmVyeS5uZXh0QXR0ZW1wdEF0ID0gbm93O1xuICAgICAgICBkZWxpdmVyeS5sYXN0QXR0ZW1wdEF0ID0gbnVsbCBhcyBhbnk7XG4gICAgICAgIGRlbGl2ZXJ5LmVycm9yTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgZGVsaXZlcnkucmVzcG9uc2VTdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIGRlbGl2ZXJ5LnJlc3BvbnNlQm9keSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgZXZlbnQuc3RhdHVzID0gV2ViaG9va1N0YXR1cy5QRU5ESU5HO1xuICAgICAgZXZlbnQuZGVsaXZlcmllc1N1Y2NlZWRlZCA9IDA7XG4gICAgICBldmVudC5kZWxpdmVyaWVzRmFpbGVkID0gMDtcbiAgICAgIGV2ZW50Lm5leHRBdHRlbXB0QXQgPSBub3c7XG4gICAgICBldmVudC51cGRhdGVkQXQgPSBub3c7XG5cbiAgICAgIGlmIChkZWxpdmVyaWVzLmxlbmd0aCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGRlbGl2ZXJ5UmVwby51cGRhdGVBbGwoXG4gICAgICAgICAgICBkZWxpdmVyaWVzLFxuICAgICAgICAgICAgY3R4Lm92ZXJyaWRlKHsgYXBwbHlVcGRhdGVWYWxpZGF0aW9uOiBmYWxzZSB9IGFzIGFueSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBSZXBsYXkgc3RpbGwgcmVzZXRzIHRoZSBldmVudCBzdGF0ZSBldmVuIGlmIGJ1bGsgZGVsaXZlcnkgdXBkYXRlcyBhcmUgbm90IHF1ZXJ5YWJsZSBoZXJlLlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZXZlbnRSZXBvLnVwZGF0ZShldmVudCwgY3R4KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb250cm9sbGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJO0lBQ2pGLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFVBQVU7UUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzs7UUFDMUgsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMs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QUFDLFFBQVEsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0YsQ0FBQztnQkFDRCxNQUFNLENBQUM7b0JBQ0gsNEZBQTRGO2dCQUNoRyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLEtBQUssQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFZTyxzRUFBNkI7QUFYdEMsVUFBVSxDQUFDO0lBQ1AsSUFBQSxhQUFJLEVBQUMsWUFBWSxDQUFDO0lBQ2xCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBQSxjQUFLLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsVUFBVSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7SUFDbkMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQztDQUMzQyxFQUFFLDZCQUE2QixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDNUQsd0NBQUEsNkJBQTZCLEdBQUcsK0JBQStCLEdBQUcsVUFBVSxDQUFDO0lBQ3pFLElBQUEsbUJBQVUsRUFBQyxnQkFBZ0IsQ0FBQztJQUM1QixVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyw4QkFBbUIsQ0FBQyxDQUFDO0NBQ3pELEVBQUUsNkJBQTZCLENBQUMsQ0FBQztBQUVsQywwaldBQTBqVyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG52YXIgX19wYXJhbSA9ICh0aGlzICYmIHRoaXMuX19wYXJhbSkgfHwgZnVuY3Rpb24gKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxufTtcbnZhciBXZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXJfMSwgV2ViaG9va0V2ZW50QWN0aW9uc0NvbnRyb2xsZXJfMTtcbmltcG9ydCB7IENvbnRyb2xsZXIsIFBhcmFtLCBQb3N0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5LCBPcmRlckRpcmVjdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRGVjYWZDb250cm9sbGVyIH0gZnJvbSBcIi4vLi4vY29udHJvbGxlcnMuanNcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi8uLi9yZXF1ZXN0L2luZGV4LmpzXCI7XG5pbXBvcnQgeyBXZWJob29rRGVsaXZlcnksIFdlYmhvb2tFdmVudFJlY29yZCwgV2ViaG9va1N0YXR1cywgV2ViaG9va1N1YnNjcmlwdGlvbiwgY29sbGVjdFBhZ2VkUmVzdWx0cywgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1odHRwL2hvb2tzXCI7XG5sZXQgV2ViaG9va1N1YnNjcmlwdGlvbkFjdGlvbnNDb250cm9sbGVyID0gV2ViaG9va1N1YnNjcmlwdGlvbkFjdGlvbnNDb250cm9sbGVyXzEgPSBjbGFzcyBXZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXIgZXh0ZW5kcyBEZWNhZkNvbnRyb2xsZXIge1xuICAgIGNvbnN0cnVjdG9yKGNsaWVudENvbnRleHQpIHtcbiAgICAgICAgc3VwZXIoY2xpZW50Q29udGV4dCwgV2ViaG9va1N1YnNjcmlwdGlvbkFjdGlvbnNDb250cm9sbGVyXzEubmFtZSk7XG4gICAgfVxuICAgIGFzeW5jIGRlYWN0aXZhdGUoaWQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbXSwgXCJkZWFjdGl2YXRlXCIsIHRydWUpKS5mb3IodGhpcy5kZWFjdGl2YXRlKTtcbiAgICAgICAgY29uc3QgcmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwoV2ViaG9va1N1YnNjcmlwdGlvbik7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCByZXBvLnJlYWQoaWQsIGN0eCk7XG4gICAgICAgIGN1cnJlbnQuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHJldHVybiByZXBvLnVwZGF0ZShjdXJyZW50LCBjdHgpO1xuICAgIH1cbiAgICBhc3luYyByZWFjdGl2YXRlKGlkKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoW10sIFwicmVhY3RpdmF0ZVwiLCB0cnVlKSkuZm9yKHRoaXMucmVhY3RpdmF0ZSk7XG4gICAgICAgIGNvbnN0IHJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsKFdlYmhvb2tTdWJzY3JpcHRpb24pO1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgcmVwby5yZWFkKGlkLCBjdHgpO1xuICAgICAgICBjdXJyZW50LmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHJldHVybiByZXBvLnVwZGF0ZShjdXJyZW50LCBjdHgpO1xuICAgIH1cbn07XG5fX2RlY29yYXRlKFtcbiAgICBQb3N0KFwiOmlkL2RlYWN0aXZhdGVcIiksXG4gICAgX19wYXJhbSgwLCBQYXJhbShcImlkXCIpKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBXZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXIucHJvdG90eXBlLCBcImRlYWN0aXZhdGVcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBQb3N0KFwiOmlkL3JlYWN0aXZhdGVcIiksXG4gICAgX19wYXJhbSgwLCBQYXJhbShcImlkXCIpKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBXZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXIucHJvdG90eXBlLCBcInJlYWN0aXZhdGVcIiwgbnVsbCk7XG5XZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXIgPSBXZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXJfMSA9IF9fZGVjb3JhdGUoW1xuICAgIENvbnRyb2xsZXIoXCJ3ZWJob29rLXN1YnNjcmlwdGlvbnNcIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtEZWNhZlJlcXVlc3RDb250ZXh0XSlcbl0sIFdlYmhvb2tTdWJzY3JpcHRpb25BY3Rpb25zQ29udHJvbGxlcik7XG5leHBvcnQgeyBXZWJob29rU3Vic2NyaXB0aW9uQWN0aW9uc0NvbnRyb2xsZXIgfTtcbmxldCBXZWJob29rRXZlbnRBY3Rpb25zQ29udHJvbGxlciA9IFdlYmhvb2tFdmVudEFjdGlvbnNDb250cm9sbGVyXzEgPSBjbGFzcyBXZWJob29rRXZlbnRBY3Rpb25zQ29udHJvbGxlciBleHRlbmRzIERlY2FmQ29udHJvbGxlciB7XG4gICAgY29uc3RydWN0b3IoY2xpZW50Q29udGV4dCkge1xuICAgICAgICBzdXBlcihjbGllbnRDb250ZXh0LCBXZWJob29rRXZlbnRBY3Rpb25zQ29udHJvbGxlcl8xLm5hbWUpO1xuICAgIH1cbiAgICBhc3luYyByZXBsYXkoaWQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbXSwgXCJyZXBsYXlcIiwgdHJ1ZSkpLmZvcih0aGlzLnJlcGxheSk7XG4gICAgICAgIGNvbnN0IGV2ZW50UmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwoV2ViaG9va0V2ZW50UmVjb3JkKTtcbiAgICAgICAgY29uc3QgZGVsaXZlcnlSZXBvID0gUmVwb3NpdG9yeS5mb3JNb2RlbChXZWJob29rRGVsaXZlcnkpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGV2ZW50O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBldmVudCA9IGF3YWl0IGV2ZW50UmVwby5yZWFkKGlkLCBjdHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnRzID0gYXdhaXQgZXZlbnRSZXBvXG4gICAgICAgICAgICAgICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAgICAgICAgICAgICAud2hlcmUoZXZlbnRSZXBvLmF0dHIoXCJpZFwiKS5lcShpZCkpXG4gICAgICAgICAgICAgICAgICAgIC5saW1pdCgxKVxuICAgICAgICAgICAgICAgICAgICAuZXhlY3V0ZShjdHgpO1xuICAgICAgICAgICAgICAgIGlmICghZXZlbnRzLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgZXZlbnQgPSBldmVudHNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZGVsaXZlcmllcyA9IFtdO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBkZWxpdmVyaWVzID0gYXdhaXQgY29sbGVjdFBhZ2VkUmVzdWx0cygoKSA9PiBkZWxpdmVyeVJlcG9cbiAgICAgICAgICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAgICAgICAgIC53aGVyZShkZWxpdmVyeVJlcG8uYXR0cihcImV2ZW50SWRcIikuZXEoZXZlbnQuaWQpKVxuICAgICAgICAgICAgICAgICAgICAub3JkZXJCeShcImNyZWF0ZWRBdFwiLCBPcmRlckRpcmVjdGlvbi5BU0MpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuQnkoXCJpZFwiLCBPcmRlckRpcmVjdGlvbi5BU0MpXG4gICAgICAgICAgICAgICAgICAgIC5wYWdpbmF0ZSgyNTAsIGN0eCksIDI1MCwgY3R4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBkZWxpdmVyaWVzID0gYXdhaXQgZGVsaXZlcnlSZXBvXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2VsZWN0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIC53aGVyZShkZWxpdmVyeVJlcG8uYXR0cihcImV2ZW50SWRcIikuZXEoZXZlbnQuaWQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGUoY3R4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICBkZWxpdmVyaWVzID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGVsaXZlcnkgb2YgZGVsaXZlcmllcykge1xuICAgICAgICAgICAgICAgIGRlbGl2ZXJ5LnN0YXR1cyA9IFdlYmhvb2tTdGF0dXMuUEVORElORztcbiAgICAgICAgICAgICAgICBkZWxpdmVyeS5hdHRlbXB0cyA9IDA7XG4gICAgICAgICAgICAgICAgZGVsaXZlcnkubmV4dEF0dGVtcHRBdCA9IG5vdztcbiAgICAgICAgICAgICAgICBkZWxpdmVyeS5sYXN0QXR0ZW1wdEF0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICBkZWxpdmVyeS5lcnJvck1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgZGVsaXZlcnkucmVzcG9uc2VTdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgZGVsaXZlcnkucmVzcG9uc2VCb2R5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQuc3RhdHVzID0gV2ViaG9va1N0YXR1cy5QRU5ESU5HO1xuICAgICAgICAgICAgZXZlbnQuZGVsaXZlcmllc1N1Y2NlZWRlZCA9IDA7XG4gICAgICAgICAgICBldmVudC5kZWxpdmVyaWVzRmFpbGVkID0gMDtcbiAgICAgICAgICAgIGV2ZW50Lm5leHRBdHRlbXB0QXQgPSBub3c7XG4gICAgICAgICAgICBldmVudC51cGRhdGVkQXQgPSBub3c7XG4gICAgICAgICAgICBpZiAoZGVsaXZlcmllcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBkZWxpdmVyeVJlcG8udXBkYXRlQWxsKGRlbGl2ZXJpZXMsIGN0eC5vdmVycmlkZSh7IGFwcGx5VXBkYXRlVmFsaWRhdGlvbjogZmFsc2UgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcGxheSBzdGlsbCByZXNldHMgdGhlIGV2ZW50IHN0YXRlIGV2ZW4gaWYgYnVsayBkZWxpdmVyeSB1cGRhdGVzIGFyZSBub3QgcXVlcnlhYmxlIGhlcmUuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGV2ZW50UmVwby51cGRhdGUoZXZlbnQsIGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbn07XG5fX2RlY29yYXRlKFtcbiAgICBQb3N0KFwiOmlkL3JlcGxheVwiKSxcbiAgICBfX3BhcmFtKDAsIFBhcmFtKFwiaWRcIikpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtTdHJpbmddKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFdlYmhvb2tFdmVudEFjdGlvbnNDb250cm9sbGVyLnByb3RvdHlwZSwgXCJyZXBsYXlcIiwgbnVsbCk7XG5XZWJob29rRXZlbnRBY3Rpb25zQ29udHJvbGxlciA9IFdlYmhvb2tFdmVudEFjdGlvbnNDb250cm9sbGVyXzEgPSBfX2RlY29yYXRlKFtcbiAgICBDb250cm9sbGVyKFwid2ViaG9vay1ldmVudHNcIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtEZWNhZlJlcXVlc3RDb250ZXh0XSlcbl0sIFdlYmhvb2tFdmVudEFjdGlvbnNDb250cm9sbGVyKTtcbmV4cG9ydCB7IFdlYmhvb2tFdmVudEFjdGlvbnNDb250cm9sbGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMjl1ZEhKdmJHeGxjbk11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12ZDJWaWFHOXZhM012WTI5dWRISnZiR3hsY25NdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenRCUVVGQkxFOUJRVThzUlVGQlJTeFZRVUZWTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUTNwRUxFOUJRVThzUlVGQlJTeFZRVUZWTEVWQlFXRXNZMEZCWXl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZEZGtVc1QwRkJUeXhGUVVGRkxHVkJRV1VzUlVGQlJTdzBRa0ZCZFVJN1FVRkRha1FzVDBGQlR5eEZRVUZGTEcxQ1FVRnRRaXhGUVVGRkxEaENRVUZ0UWp0QlFVVnFSQ3hQUVVGUExFVkJRMHdzWlVGQlpTeEZRVU5tTEd0Q1FVRnJRaXhGUVVOc1FpeGhRVUZoTEVWQlEySXNiVUpCUVcxQ0xFVkJRMjVDTEcxQ1FVRnRRaXhIUVVOd1FpeE5RVUZOTERCQ1FVRXdRaXhEUVVGRE8wRkJSek5DTEVsQlFVMHNiME5CUVc5RExEUkRRVUV4UXl4TlFVRk5MRzlEUVVGeFF5eFRRVUZSTEdWQlFTdENPMGxCUTNaR0xGbEJRVmtzWVVGQmEwTTdVVUZETlVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUlVGQlJTeHpRMEZCYjBNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU5zUlN4RFFVRkRPMGxCUjBzc1FVRkJUaXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZqTEVWQlFWVTdVVUZEZEVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRemRFTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUTJoQ0xFTkJRVU03VVVGRFJpeE5RVUZOTEVsQlFVa3NSMEZCUnl4VlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVjNVFpeHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8xRkJRM1pDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRla01zVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4TFFVRkxMRU5CUVVNN1VVRkRka0lzVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU51UXl4RFFVRkRPMGxCUjBzc1FVRkJUaXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZqTEVWQlFWVTdVVUZEZEVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRemRFTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUTJoQ0xFTkJRVU03VVVGRFJpeE5RVUZOTEVsQlFVa3NSMEZCUnl4VlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVjNVFpeHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8xRkJRM1pDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRla01zVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRkRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU51UXl4RFFVRkRPME5CUTBZc1EwRkJRVHRCUVRGQ1R6dEpRVVJNTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF6dEpRVU5NTEZkQlFVRXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGQk96czdPM05GUVZjMVFqdEJRVWRMTzBsQlJFd3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETzBsQlEwd3NWMEZCUVN4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVUU3T3pzN2MwVkJWelZDTzBGQkwwSlZMRzlEUVVGdlF6dEpRVVJvUkN4VlFVRlZMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTTdjVU5CUlZBc2JVSkJRVzFDTzBkQlJHNURMRzlEUVVGdlF5eERRV2REYUVRN08wRkJSMDBzU1VGQlRTdzJRa0ZCTmtJc2NVTkJRVzVETEUxQlFVMHNOa0pCUVRoQ0xGTkJRVkVzWlVGQkswSTdTVUZEYUVZc1dVRkJXU3hoUVVGclF6dFJRVU0xUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hGUVVGRkxDdENRVUUyUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRek5FTEVOQlFVTTdTVUZIU3l4QlFVRk9MRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRV01zUlVGQlZUdFJRVU5zUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEZWtVc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEZGQlFWRXNRMEZIYmtNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0UlFVTjBRaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eFZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVZDBReXhsUVVGbExFTkJRVU1zUTBGQlF6dFJRVU51UWl4SlFVRkpMRU5CUVVNN1dVRkRTQ3hKUVVGSkxFdEJRVXNzUTBGQlF6dFpRVU5XTEVsQlFVa3NRMEZCUXp0blFrRkRTQ3hMUVVGTExFZEJRVWNzVFVGQlRTeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU40UXl4RFFVRkRPMWxCUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF6dG5Ra0ZEWml4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxGTkJRVk03Y1VKQlF6TkNMRTFCUVUwc1JVRkJSVHR4UWtGRFVpeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN2NVSkJRMnhETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRMUlzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVOb1FpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwN2IwSkJRVVVzVFVGQlRTeExRVUZMTEVOQlFVTTdaMEpCUTJoRExFdEJRVXNzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRjRUlzUTBGQlF6dFpRVU5FTEVsQlFVa3NWVUZCVlN4SFFVRlZMRVZCUVVVc1EwRkJRenRaUVVNelFpeEpRVUZKTEVOQlFVTTdaMEpCUTBnc1ZVRkJWU3hIUVVGSExFMUJRVTBzYlVKQlFXMUNMRU5CUTNCRExFZEJRVWNzUlVGQlJTeERRVU5JTEZsQlFWazdjVUpCUTFRc1RVRkJUU3hGUVVGRk8zRkNRVU5TTEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03Y1VKQlEyaEVMRTlCUVU4c1EwRkJReXhYUVVGWExFVkJRVVVzWTBGQll5eERRVUZETEVkQlFVY3NRMEZCUXp0eFFrRkRlRU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4alFVRmpMRU5CUVVNc1IwRkJSeXhEUVVGRE8zRkNRVU5vUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVU4yUWl4SFFVRkhMRVZCUTBnc1IwRkJSeXhEUVVOS0xFTkJRVU03V1VGRFNpeERRVUZETzFsQlFVTXNUVUZCVFN4RFFVRkRPMmRDUVVOUUxFbEJRVWtzUTBGQlF6dHZRa0ZEU0N4VlFVRlZMRWRCUVVjc1RVRkJUU3haUVVGWk8zbENRVU0xUWl4TlFVRk5MRVZCUVVVN2VVSkJRMUlzUzBGQlN5eERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenQ1UWtGRGFFUXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU5zUWl4RFFVRkRPMmRDUVVGRExFMUJRVTBzUTBGQlF6dHZRa0ZEVUN4VlFVRlZMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU5zUWl4RFFVRkRPMWxCUTBnc1EwRkJRenRaUVVORUxFMUJRVTBzUjBGQlJ5eEhRVUZITEVsQlFVa3NTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkZka0lzUzBGQlN5eE5RVUZOTEZGQlFWRXNTVUZCU1N4VlFVRlZMRVZCUVVVc1EwRkJRenRuUWtGRGJFTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETzJkQ1FVTjRReXhSUVVGUkxFTkJRVU1zVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCUXp0blFrRkRkRUlzVVVGQlVTeERRVUZETEdGQlFXRXNSMEZCUnl4SFFVRkhMRU5CUVVNN1owSkJRemRDTEZGQlFWRXNRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJWeXhEUVVGRE8yZENRVU55UXl4UlFVRlJMRU5CUVVNc1dVRkJXU3hIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZEYkVNc1VVRkJVU3hEUVVGRExHTkJRV01zUjBGQlJ5eFRRVUZUTEVOQlFVTTdaMEpCUTNCRExGRkJRVkVzUTBGQlF5eFpRVUZaTEVkQlFVY3NVMEZCVXl4RFFVRkRPMWxCUTNCRExFTkJRVU03V1VGRlJDeExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU03V1VGRGNrTXNTMEZCU3l4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTTVRaXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRek5DTEV0QlFVc3NRMEZCUXl4aFFVRmhMRWRCUVVjc1IwRkJSeXhEUVVGRE8xbEJRekZDTEV0QlFVc3NRMEZCUXl4VFFVRlRMRWRCUVVjc1IwRkJSeXhEUVVGRE8xbEJSWFJDTEVsQlFVa3NWVUZCVlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8yZENRVU4wUWl4SlFVRkpMRU5CUVVNN2IwSkJRMGdzVFVGQlRTeFpRVUZaTEVOQlFVTXNVMEZCVXl4RFFVTXhRaXhWUVVGVkxFVkJRMVlzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeEZRVUZGTEV0QlFVc3NSVUZCVXl4RFFVRkRMRU5CUTNSRUxFTkJRVU03WjBKQlEwb3NRMEZCUXp0blFrRkJReXhOUVVGTkxFTkJRVU03YjBKQlExQXNORVpCUVRSR08yZENRVU01Uml4RFFVRkRPMWxCUTBnc1EwRkJRenRaUVVORUxFOUJRVThzVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFTXNRMEZCUXp0UlFVRkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRFppeE5RVUZOTEV0QlFVc3NRMEZCUXp0UlFVTmtMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wTkJRMFlzUTBGQlFUdEJRUzlGVHp0SlFVUk1MRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU03U1VGRFRDeFhRVUZCTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRVHM3T3pzeVJFRTRSWGhDTzBGQmNFWlZMRFpDUVVFMlFqdEpRVVI2UXl4VlFVRlZMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdjVU5CUlVFc2JVSkJRVzFDTzBkQlJHNURMRFpDUVVFMlFpeERRWEZHZWtNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkRiMjUwY205c2JHVnlMQ0JRWVhKaGJTd2dVRzl6ZENCOUlHWnliMjBnWENKQWJtVnpkR3B6TDJOdmJXMXZibHdpTzF4dWFXMXdiM0owSUhzZ1VtVndiM05wZEc5eWVTd2dkSGx3WlNCU1pYQnZMQ0JQY21SbGNrUnBjbVZqZEdsdmJpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dSR1ZqWVdaRGIyNTBjbTlzYkdWeUlIMGdabkp2YlNCY0lpNHVMMk52Ym5SeWIyeHNaWEp6WENJN1hHNXBiWEJ2Y25RZ2V5QkVaV05oWmxKbGNYVmxjM1JEYjI1MFpYaDBJSDBnWm5KdmJTQmNJaTR1TDNKbGNYVmxjM1JjSWp0Y2JtbHRjRzl5ZENCN0lFUmxZMkZtVTJWeWRtVnlRM1I0SUgwZ1puSnZiU0JjSWk0dUwyTnZibk4wWVc1MGMxd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1YyVmlhRzl2YTBSbGJHbDJaWEo1TEZ4dUlDQlhaV0pvYjI5clJYWmxiblJTWldOdmNtUXNYRzRnSUZkbFltaHZiMnRUZEdGMGRYTXNYRzRnSUZkbFltaHZiMnRUZFdKelkzSnBjSFJwYjI0c1hHNGdJR052Ykd4bFkzUlFZV2RsWkZKbGMzVnNkSE1zWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlptOXlMV2gwZEhBdmFHOXZhM05jSWp0Y2JseHVRRU52Ym5SeWIyeHNaWElvWENKM1pXSm9iMjlyTFhOMVluTmpjbWx3ZEdsdmJuTmNJaWxjYm1WNGNHOXlkQ0JqYkdGemN5QlhaV0pvYjI5clUzVmljMk55YVhCMGFXOXVRV04wYVc5dWMwTnZiblJ5YjJ4c1pYSWdaWGgwWlc1a2N5QkVaV05oWmtOdmJuUnliMnhzWlhJOFJHVmpZV1pUWlhKMlpYSkRkSGcrSUh0Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWTJ4cFpXNTBRMjl1ZEdWNGREb2dSR1ZqWVdaU1pYRjFaWE4wUTI5dWRHVjRkQ2tnZTF4dUlDQWdJSE4xY0dWeUtHTnNhV1Z1ZEVOdmJuUmxlSFFzSUZkbFltaHZiMnRUZFdKelkzSnBjSFJwYjI1QlkzUnBiMjV6UTI5dWRISnZiR3hsY2k1dVlXMWxLVHRjYmlBZ2ZWeHVYRzRnSUVCUWIzTjBLRndpT21sa0wyUmxZV04wYVhaaGRHVmNJaWxjYmlBZ1lYTjVibU1nWkdWaFkzUnBkbUYwWlNoQVVHRnlZVzBvWENKcFpGd2lLU0JwWkRvZ2MzUnlhVzVuS1NCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhnZ2ZTQTlJQ2hoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiWFN3Z1hDSmtaV0ZqZEdsMllYUmxYQ0lzSUhSeWRXVXBLUzVtYjNJb1hHNGdJQ0FnSUNCMGFHbHpMbVJsWVdOMGFYWmhkR1ZjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhKbGNHOGdQU0JTWlhCdmMybDBiM0o1TG1admNrMXZaR1ZzUEZ4dUlDQWdJQ0FnVjJWaWFHOXZhMU4xWW5OamNtbHdkR2x2Yml4Y2JpQWdJQ0FnSUZKbGNHODhWMlZpYUc5dmExTjFZbk5qY21sd2RHbHZiajVjYmlBZ0lDQStLRmRsWW1odmIydFRkV0p6WTNKcGNIUnBiMjRwTzF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5RZ1BTQmhkMkZwZENCeVpYQnZMbkpsWVdRb2FXUXNJR04wZUNrN1hHNGdJQ0FnWTNWeWNtVnVkQzVoWTNScGRtVWdQU0JtWVd4elpUdGNiaUFnSUNCeVpYUjFjbTRnY21Wd2J5NTFjR1JoZEdVb1kzVnljbVZ1ZEN3Z1kzUjRLVHRjYmlBZ2ZWeHVYRzRnSUVCUWIzTjBLRndpT21sa0wzSmxZV04wYVhaaGRHVmNJaWxjYmlBZ1lYTjVibU1nY21WaFkzUnBkbUYwWlNoQVVHRnlZVzBvWENKcFpGd2lLU0JwWkRvZ2MzUnlhVzVuS1NCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhnZ2ZTQTlJQ2hoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiWFN3Z1hDSnlaV0ZqZEdsMllYUmxYQ0lzSUhSeWRXVXBLUzVtYjNJb1hHNGdJQ0FnSUNCMGFHbHpMbkpsWVdOMGFYWmhkR1ZjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhKbGNHOGdQU0JTWlhCdmMybDBiM0o1TG1admNrMXZaR1ZzUEZ4dUlDQWdJQ0FnVjJWaWFHOXZhMU4xWW5OamNtbHdkR2x2Yml4Y2JpQWdJQ0FnSUZKbGNHODhWMlZpYUc5dmExTjFZbk5qY21sd2RHbHZiajVjYmlBZ0lDQStLRmRsWW1odmIydFRkV0p6WTNKcGNIUnBiMjRwTzF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5RZ1BTQmhkMkZwZENCeVpYQnZMbkpsWVdRb2FXUXNJR04wZUNrN1hHNGdJQ0FnWTNWeWNtVnVkQzVoWTNScGRtVWdQU0IwY25WbE8xeHVJQ0FnSUhKbGRIVnliaUJ5WlhCdkxuVndaR0YwWlNoamRYSnlaVzUwTENCamRIZ3BPMXh1SUNCOVhHNTlYRzVjYmtCRGIyNTBjbTlzYkdWeUtGd2lkMlZpYUc5dmF5MWxkbVZ1ZEhOY0lpbGNibVY0Y0c5eWRDQmpiR0Z6Y3lCWFpXSm9iMjlyUlhabGJuUkJZM1JwYjI1elEyOXVkSEp2Ykd4bGNpQmxlSFJsYm1SeklFUmxZMkZtUTI5dWRISnZiR3hsY2p4RVpXTmhabE5sY25abGNrTjBlRDRnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaWhqYkdsbGJuUkRiMjUwWlhoME9pQkVaV05oWmxKbGNYVmxjM1JEYjI1MFpYaDBLU0I3WEc0Z0lDQWdjM1Z3WlhJb1kyeHBaVzUwUTI5dWRHVjRkQ3dnVjJWaWFHOXZhMFYyWlc1MFFXTjBhVzl1YzBOdmJuUnliMnhzWlhJdWJtRnRaU2s3WEc0Z0lIMWNibHh1SUNCQVVHOXpkQ2hjSWpwcFpDOXlaWEJzWVhsY0lpbGNiaUFnWVhONWJtTWdjbVZ3YkdGNUtFQlFZWEpoYlNoY0ltbGtYQ0lwSUdsa09pQnpkSEpwYm1jcElIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVDQjlJRDBnS0dGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0Z0ZExDQmNJbkpsY0d4aGVWd2lMQ0IwY25WbEtTa3VabTl5S0hSb2FYTXVjbVZ3YkdGNUtUdGNiaUFnSUNCamIyNXpkQ0JsZG1WdWRGSmxjRzhnUFNCU1pYQnZjMmwwYjNKNUxtWnZjazF2WkdWc1BGeHVJQ0FnSUNBZ1YyVmlhRzl2YTBWMlpXNTBVbVZqYjNKa0xGeHVJQ0FnSUNBZ1VtVndienhYWldKb2IyOXJSWFpsYm5SU1pXTnZjbVErWEc0Z0lDQWdQaWhYWldKb2IyOXJSWFpsYm5SU1pXTnZjbVFwTzF4dUlDQWdJR052Ym5OMElHUmxiR2wyWlhKNVVtVndieUE5SUZKbGNHOXphWFJ2Y25rdVptOXlUVzlrWld3OFhHNGdJQ0FnSUNCWFpXSm9iMjlyUkdWc2FYWmxjbmtzWEc0Z0lDQWdJQ0JTWlhCdlBGZGxZbWh2YjJ0RVpXeHBkbVZ5ZVQ1Y2JpQWdJQ0ErS0ZkbFltaHZiMnRFWld4cGRtVnllU2s3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUd4bGRDQmxkbVZ1ZER0Y2JpQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJR1YyWlc1MElEMGdZWGRoYVhRZ1pYWmxiblJTWlhCdkxuSmxZV1FvYVdRc0lHTjBlQ2s3WEc0Z0lDQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmxkbVZ1ZEhNZ1BTQmhkMkZwZENCbGRtVnVkRkpsY0c5Y2JpQWdJQ0FnSUNBZ0lDQXVjMlZzWldOMEtDbGNiaUFnSUNBZ0lDQWdJQ0F1ZDJobGNtVW9aWFpsYm5SU1pYQnZMbUYwZEhJb1hDSnBaRndpS1M1bGNTaHBaQ2twWEc0Z0lDQWdJQ0FnSUNBZ0xteHBiV2wwS0RFcFhHNGdJQ0FnSUNBZ0lDQWdMbVY0WldOMWRHVW9ZM1I0S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZsZG1WdWRITXViR1Z1WjNSb0tTQjBhSEp2ZHlCbGNuSnZjanRjYmlBZ0lDQWdJQ0FnWlhabGJuUWdQU0JsZG1WdWRITmJNRjA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JzWlhRZ1pHVnNhWFpsY21sbGN6b2dZVzU1VzEwZ1BTQmJYVHRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lHUmxiR2wyWlhKcFpYTWdQU0JoZDJGcGRDQmpiMnhzWldOMFVHRm5aV1JTWlhOMWJIUnpLRnh1SUNBZ0lDQWdJQ0FnSUNncElEMCtYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXeHBkbVZ5ZVZKbGNHOWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xuTmxiR1ZqZENncFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM1M2FHVnlaU2hrWld4cGRtVnllVkpsY0c4dVlYUjBjaWhjSW1WMlpXNTBTV1JjSWlrdVpYRW9aWFpsYm5RdWFXUXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXViM0prWlhKQ2VTaGNJbU55WldGMFpXUkJkRndpTENCUGNtUmxja1JwY21WamRHbHZiaTVCVTBNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM1MGFHVnVRbmtvWENKcFpGd2lMQ0JQY21SbGNrUnBjbVZqZEdsdmJpNUJVME1wWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQzV3WVdkcGJtRjBaU2d5TlRBc0lHTjBlQ2tzWEc0Z0lDQWdJQ0FnSUNBZ01qVXdMRnh1SUNBZ0lDQWdJQ0FnSUdOMGVGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmU0JqWVhSamFDQjdYRzRnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdaR1ZzYVhabGNtbGxjeUE5SUdGM1lXbDBJR1JsYkdsMlpYSjVVbVZ3YjF4dUlDQWdJQ0FnSUNBZ0lDQWdMbk5sYkdWamRDZ3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdWQyaGxjbVVvWkdWc2FYWmxjbmxTWlhCdkxtRjBkSElvWENKbGRtVnVkRWxrWENJcExtVnhLR1YyWlc1MExtbGtLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNWxlR1ZqZFhSbEtHTjBlQ2s3WEc0Z0lDQWdJQ0FnSUgwZ1kyRjBZMmdnZTF4dUlDQWdJQ0FnSUNBZ0lHUmxiR2wyWlhKcFpYTWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1kyOXVjM1FnYm05M0lEMGdibVYzSUVSaGRHVW9LVHRjYmx4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCa1pXeHBkbVZ5ZVNCdlppQmtaV3hwZG1WeWFXVnpLU0I3WEc0Z0lDQWdJQ0FnSUdSbGJHbDJaWEo1TG5OMFlYUjFjeUE5SUZkbFltaHZiMnRUZEdGMGRYTXVVRVZPUkVsT1J6dGNiaUFnSUNBZ0lDQWdaR1ZzYVhabGNua3VZWFIwWlcxd2RITWdQU0F3TzF4dUlDQWdJQ0FnSUNCa1pXeHBkbVZ5ZVM1dVpYaDBRWFIwWlcxd2RFRjBJRDBnYm05M08xeHVJQ0FnSUNBZ0lDQmtaV3hwZG1WeWVTNXNZWE4wUVhSMFpXMXdkRUYwSUQwZ2JuVnNiQ0JoY3lCaGJuazdYRzRnSUNBZ0lDQWdJR1JsYkdsMlpYSjVMbVZ5Y205eVRXVnpjMkZuWlNBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lDQWdaR1ZzYVhabGNua3VjbVZ6Y0c5dWMyVlRkR0YwZFhNZ1BTQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQWdJR1JsYkdsMlpYSjVMbkpsYzNCdmJuTmxRbTlrZVNBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdaWFpsYm5RdWMzUmhkSFZ6SUQwZ1YyVmlhRzl2YTFOMFlYUjFjeTVRUlU1RVNVNUhPMXh1SUNBZ0lDQWdaWFpsYm5RdVpHVnNhWFpsY21sbGMxTjFZMk5sWldSbFpDQTlJREE3WEc0Z0lDQWdJQ0JsZG1WdWRDNWtaV3hwZG1WeWFXVnpSbUZwYkdWa0lEMGdNRHRjYmlBZ0lDQWdJR1YyWlc1MExtNWxlSFJCZEhSbGJYQjBRWFFnUFNCdWIzYzdYRzRnSUNBZ0lDQmxkbVZ1ZEM1MWNHUmhkR1ZrUVhRZ1BTQnViM2M3WEc1Y2JpQWdJQ0FnSUdsbUlDaGtaV3hwZG1WeWFXVnpMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQWdJR0YzWVdsMElHUmxiR2wyWlhKNVVtVndieTUxY0dSaGRHVkJiR3dvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmtaV3hwZG1WeWFXVnpMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1kzUjRMbTkyWlhKeWFXUmxLSHNnWVhCd2JIbFZjR1JoZEdWV1lXeHBaR0YwYVc5dU9pQm1ZV3h6WlNCOUlHRnpJR0Z1ZVNsY2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0I5SUdOaGRHTm9JSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QlNaWEJzWVhrZ2MzUnBiR3dnY21WelpYUnpJSFJvWlNCbGRtVnVkQ0J6ZEdGMFpTQmxkbVZ1SUdsbUlHSjFiR3NnWkdWc2FYWmxjbmtnZFhCa1lYUmxjeUJoY21VZ2JtOTBJSEYxWlhKNVlXSnNaU0JvWlhKbExseHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1pYWmxiblJTWlhCdkxuVndaR0YwWlNobGRtVnVkQ3dnWTNSNEtUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2daWEp5YjNJN1hHNGdJQ0FnZlZ4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
|
|
@@ -14,21 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.verifyWebhookSignature = exports.signWebhookPayload = exports.computeNextAttempt = exports.WebhookSubscriptionService = exports.WebhookSubscription = exports.WebhookStatus = exports.WebhookSignatureMiddleware = exports.WebhookPublisherService = exports.WebhookEventRecord = exports.WebhookDeliveryService = exports.WebhookDelivery = void 0;
|
|
18
17
|
__exportStar(require("./DecafWebhookModule.cjs"), exports);
|
|
19
18
|
__exportStar(require("./controllers.cjs"), exports);
|
|
20
19
|
__exportStar(require("./types.cjs"), exports);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Object.defineProperty(exports, "WebhookDeliveryService", { enumerable: true, get: function () { return server_1.WebhookDeliveryService; } });
|
|
24
|
-
Object.defineProperty(exports, "WebhookEventRecord", { enumerable: true, get: function () { return server_1.WebhookEventRecord; } });
|
|
25
|
-
Object.defineProperty(exports, "WebhookPublisherService", { enumerable: true, get: function () { return server_1.WebhookPublisherService; } });
|
|
26
|
-
Object.defineProperty(exports, "WebhookSignatureMiddleware", { enumerable: true, get: function () { return server_1.WebhookSignatureMiddleware; } });
|
|
27
|
-
Object.defineProperty(exports, "WebhookStatus", { enumerable: true, get: function () { return server_1.WebhookStatus; } });
|
|
28
|
-
Object.defineProperty(exports, "WebhookSubscription", { enumerable: true, get: function () { return server_1.WebhookSubscription; } });
|
|
29
|
-
Object.defineProperty(exports, "WebhookSubscriptionService", { enumerable: true, get: function () { return server_1.WebhookSubscriptionService; } });
|
|
30
|
-
Object.defineProperty(exports, "computeNextAttempt", { enumerable: true, get: function () { return server_1.computeNextAttempt; } });
|
|
31
|
-
Object.defineProperty(exports, "signWebhookPayload", { enumerable: true, get: function () { return server_1.signWebhookPayload; } });
|
|
32
|
-
Object.defineProperty(exports, "verifyWebhookSignature", { enumerable: true, get: function () { return server_1.verifyWebhookSignature; } });
|
|
33
|
-
//# sourceMappingURL=index.js.map
|
|
34
|
-
//# sourceMappingURL=index.js.map
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd2ViaG9va3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXFDO0FBQ3JDLGlDQUE4QjtBQUM5QiwyQkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9EZWNhZldlYmhvb2tNb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnRyb2xsZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuIl19
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMERBQXdDO0FBQ3hDLG1EQUFpQztBQUNqQyw2Q0FBMkI7QUFDM0Isc2FBQXNhIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vRGVjYWZXZWJob29rTW9kdWxlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb250cm9sbGVycy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12ZDJWaWFHOXZhM012YVc1a1pYZ3VkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc2QwTkJRWEZETzBGQlEzSkRMR2xEUVVFNFFqdEJRVU01UWl3eVFrRkJkMElpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKbGVIQnZjblFnS2lCbWNtOXRJRndpTGk5RVpXTmhabGRsWW1odmIydE5iMlIxYkdWY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMk52Ym5SeWIyeHNaWEp6WENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVJbDE5Il19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=
|
|
4
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd2ViaG9va3MvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkYXB0ZXIsIENvbmZpZ09mIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRGVjYWZSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlY2FmV2ViaG9va01vZHVsZU9wdGlvbnM8XG4gIENPTkYgPSBhbnksXG4gIEEgZXh0ZW5kcyBBZGFwdGVyPENPTkYsIGFueSwgYW55LCBhbnk+ID0gQWRhcHRlcjxDT05GLCBhbnksIGFueSwgYW55Pixcbj4ge1xuICBjb25mOiBbXG4gICAgQ29uc3RydWN0b3I8QT4sXG4gICAgQ29uZmlnT2Y8QT4sXG4gICAgLi4uYXJnczpcbiAgICAgIHwgYW55W11cbiAgICAgIHwgW1xuICAgICAgICAgIC4uLmFueVtdLFxuICAgICAgICAgIGFueSxcbiAgICAgICAgXSxcbiAgXVtdO1xuICBoYW5kbGVycz86IFR5cGU8RGVjYWZSZXF1ZXN0SGFuZGxlcj5bXTtcbiAgaW5pdGlhbGl6YXRpb24/OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAvKipcbiAgICogUm91dGVyIHByZWZpeCBmb3IgdGhlIHdlYmhvb2sgY29udHJvbGxlcnMuXG4gICAqIEBkZWZhdWx0IFwiL3dlYmhvb2tzXCJcbiAgICovXG4gIHdlYmhvb2tBcGlQYXRoPzogc3RyaW5nO1xufVxuIl19
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDhvQ0FBOG9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pYTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZkMlZpYUc5dmEzTXZkSGx3WlhNdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRUZrWVhCMFpYSXNJRU52Ym1acFowOW1JSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJEYjI1emRISjFZM1J2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHNnVkhsd1pTQjlJR1p5YjIwZ1hDSkFibVZ6ZEdwekwyTnZiVzF2Ymx3aU8xeHVhVzF3YjNKMElIc2dSR1ZqWVdaU1pYRjFaWE4wU0dGdVpHeGxjaUI5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFUmxZMkZtVjJWaWFHOXZhMDF2WkhWc1pVOXdkR2x2Ym5NOFhHNGdJRU5QVGtZZ1BTQmhibmtzWEc0Z0lFRWdaWGgwWlc1a2N5QkJaR0Z3ZEdWeVBFTlBUa1lzSUdGdWVTd2dZVzU1TENCaGJuaytJRDBnUVdSaGNIUmxjanhEVDA1R0xDQmhibmtzSUdGdWVTd2dZVzU1UGl4Y2JqNGdlMXh1SUNCamIyNW1PaUJiWEc0Z0lDQWdRMjl1YzNSeWRXTjBiM0k4UVQ0c1hHNGdJQ0FnUTI5dVptbG5UMlk4UVQ0c1hHNGdJQ0FnTGk0dVlYSm5jenBjYmlBZ0lDQWdJSHdnWVc1NVcxMWNiaUFnSUNBZ0lId2dXMXh1SUNBZ0lDQWdJQ0FnSUM0dUxtRnVlVnRkTEZ4dUlDQWdJQ0FnSUNBZ0lHRnVlU3hjYmlBZ0lDQWdJQ0FnWFN4Y2JpQWdYVnRkTzF4dUlDQm9ZVzVrYkdWeWN6ODZJRlI1Y0dVOFJHVmpZV1pTWlhGMVpYTjBTR0Z1Wkd4bGNqNWJYVHRjYmlBZ2FXNXBkR2xoYkdsNllYUnBiMjQvT2lBb0tTQTlQaUJRY205dGFYTmxQSFp2YVdRK08xeHVJQ0F2S2lwY2JpQWdJQ29nVW05MWRHVnlJSEJ5WldacGVDQm1iM0lnZEdobElIZGxZbWh2YjJzZ1kyOXVkSEp2Ykd4bGNuTXVYRzRnSUNBcUlFQmtaV1poZFd4MElGd2lMM2RsWW1odmIydHpYQ0pjYmlBZ0lDb3ZYRzRnSUhkbFltaHZiMnRCY0dsUVlYUm9Qem9nYzNSeWFXNW5PMXh1ZlZ4dUlsMTkiXX0=
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { Injectable, Inject, Optional, Scope, } from "@nestjs/common";
|
|
14
|
+
import { Reflector } from "@nestjs/core";
|
|
15
|
+
import { Logging } from "@decaf-ts/logging";
|
|
16
|
+
import { Adapter } from "@decaf-ts/core";
|
|
17
|
+
import { AUTH_HANDLER, AUTH_META_KEY, IS_PUBLIC_KEY, REQUIRED_ROLES_KEY } from "./constants.js";
|
|
18
|
+
import { DecafRequestContext } from "./../request/DecafRequestContext.js";
|
|
19
|
+
let AuthInterceptor = class AuthInterceptor {
|
|
20
|
+
constructor(reflector, requestContext, authHandler) {
|
|
21
|
+
this.reflector = reflector;
|
|
22
|
+
this.requestContext = requestContext;
|
|
23
|
+
this.authHandler = authHandler;
|
|
24
|
+
}
|
|
25
|
+
async intercept(ctx, next) {
|
|
26
|
+
const log = Logging.for(this).for(this.intercept);
|
|
27
|
+
const isPublic = this.reflector.getAllAndOverride(IS_PUBLIC_KEY, [
|
|
28
|
+
ctx.getHandler(),
|
|
29
|
+
ctx.getClass(),
|
|
30
|
+
]);
|
|
31
|
+
const modelName = this.reflector.get(AUTH_META_KEY, ctx.getHandler()) ??
|
|
32
|
+
this.reflector.get(AUTH_META_KEY, ctx.getClass());
|
|
33
|
+
const requiredRoles = this.reflector.getAllAndOverride(REQUIRED_ROLES_KEY, [ctx.getHandler(), ctx.getClass()]);
|
|
34
|
+
log.verbose(`Intercepted request${modelName ? ` for ${modelName}` : ""}`);
|
|
35
|
+
if (isPublic) {
|
|
36
|
+
log.debug(`Public route — skipping auth`);
|
|
37
|
+
}
|
|
38
|
+
else if (this.authHandler) {
|
|
39
|
+
await this.authHandler.authorize(ctx, modelName, requiredRoles, this.requestContext);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
log.debug(`No auth handler registered`);
|
|
43
|
+
}
|
|
44
|
+
// Transformers run AFTER auth so they can read auth-populated fields
|
|
45
|
+
// (e.g. `user`) from the context and map them to adapter-specific keys
|
|
46
|
+
// (e.g. `UUID` for RamAdapter's @createdBy/@updatedBy handlers).
|
|
47
|
+
await this.applyTransformers();
|
|
48
|
+
const user = this.requestContext.getOrUndefined("user");
|
|
49
|
+
const organization = this.requestContext.getOrUndefined("organization");
|
|
50
|
+
if (user || organization) {
|
|
51
|
+
const currentLog = this.requestContext.get("logger");
|
|
52
|
+
const childLog = currentLog.for({ user, organization });
|
|
53
|
+
this.requestContext.accumulate({ logger: childLog });
|
|
54
|
+
}
|
|
55
|
+
return next.handle();
|
|
56
|
+
}
|
|
57
|
+
async applyTransformers() {
|
|
58
|
+
const flavours = Adapter.flavoursToTransform();
|
|
59
|
+
if (!flavours)
|
|
60
|
+
return;
|
|
61
|
+
for (const flavour of flavours) {
|
|
62
|
+
const transformer = Adapter.transformerFor(flavour);
|
|
63
|
+
if (!transformer)
|
|
64
|
+
continue;
|
|
65
|
+
const from = await transformer.from(this.requestContext);
|
|
66
|
+
if (from)
|
|
67
|
+
this.requestContext.accumulate(from);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
AuthInterceptor = __decorate([
|
|
72
|
+
Injectable({ scope: Scope.REQUEST }),
|
|
73
|
+
__param(2, Optional()),
|
|
74
|
+
__param(2, Inject(AUTH_HANDLER)),
|
|
75
|
+
__metadata("design:paramtypes", [Reflector,
|
|
76
|
+
DecafRequestContext, Object])
|
|
77
|
+
], AuthInterceptor);
|
|
78
|
+
export { AuthInterceptor };
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvQXV0aEludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBSVYsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLHVCQUFvQjtBQUU3RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNENBQXVDO0FBRzlELElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFDMUIsWUFDbUIsU0FBb0IsRUFDbEIsY0FBbUMsRUFDSCxXQUF5QjtRQUYzRCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQUNILGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQzNFLENBQUM7SUFFSixLQUFLLENBQUMsU0FBUyxDQUNiLEdBQXFCLEVBQ3JCLElBQWlCO1FBRWpCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBVyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFVLGFBQWEsRUFBRTtZQUN4RSxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxRQUFRLEVBQUU7U0FDZixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FDYixJQUFJLENBQUMs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b3IsXG4gIEV4ZWN1dGlvbkNvbnRleHQsXG4gIENhbGxIYW5kbGVyLFxuICBJbmplY3QsXG4gIE9wdGlvbmFsLFxuICBTY29wZSxcbn0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBSZWZsZWN0b3IgfSBmcm9tIFwiQG5lc3Rqcy9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFJlcXVlc3RUb0NvbnRleHRUcmFuc2Zvcm1lciB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWh0dHAvc2VydmVyXCI7XG5cbmltcG9ydCB7IEFVVEhfSEFORExFUiwgQVVUSF9NRVRBX0tFWSwgSVNfUFVCTElDX0tFWSwgUkVRVUlSRURfUk9MRVNfS0VZIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEF1dGhIYW5kbGVyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4uL3JlcXVlc3QvRGVjYWZSZXF1ZXN0Q29udGV4dFwiO1xuXG5ASW5qZWN0YWJsZSh7IHNjb3BlOiBTY29wZS5SRVFVRVNUIH0pXG5leHBvcnQgY2xhc3MgQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgTmVzdEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWZsZWN0b3I6IFJlZmxlY3RvcixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVxdWVzdENvbnRleHQ6IERlY2FmUmVxdWVzdENvbnRleHQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVRIX0hBTkRMRVIpIHByaXZhdGUgcmVhZG9ubHkgYXV0aEhhbmRsZXI/OiBBdXRoSGFuZGxlclxuICApIHt9XG5cbiAgYXN5bmMgaW50ZXJjZXB0KFxuICAgIGN0eDogRXhlY3V0aW9uQ29udGV4dCxcbiAgICBuZXh0OiBDYWxsSGFuZGxlclxuICApOiBQcm9taXNlPE9ic2VydmFibGU8YW55Pj4ge1xuICAgIGNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKHRoaXMgYXMgYW55KS5mb3IodGhpcy5pbnRlcmNlcHQpO1xuXG4gICAgY29uc3QgaXNQdWJsaWMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZTxib29sZWFuPihJU19QVUJMSUNfS0VZLCBbXG4gICAgICBjdHguZ2V0SGFuZGxlcigpLFxuICAgICAgY3R4LmdldENsYXNzKCksXG4gICAgXSk7XG5cbiAgICBjb25zdCBtb2RlbE5hbWUgPVxuICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0PHN0cmluZyB8IENvbnN0cnVjdG9yPihcbiAgICAgICAgQVVUSF9NRVRBX0tFWSxcbiAgICAgICAgY3R4LmdldEhhbmRsZXIoKVxuICAgICAgKSA/P1xuICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0PHN0cmluZyB8IENvbnN0cnVjdG9yPihBVVRIX01FVEFfS0VZLCBjdHguZ2V0Q2xhc3MoKSk7XG5cbiAgICBjb25zdCByZXF1aXJlZFJvbGVzID0gdGhpcy5yZWZsZWN0b3IuZ2V0QWxsQW5kT3ZlcnJpZGU8c3RyaW5nW10+KFxuICAgICAgUkVRVUlSRURfUk9MRVNfS0VZLFxuICAgICAgW2N0eC5nZXRIYW5kbGVyKCksIGN0eC5nZXRDbGFzcygpXVxuICAgICk7XG5cbiAgICBsb2cudmVyYm9zZShgSW50ZXJjZXB0ZWQgcmVxdWVzdCR7bW9kZWxOYW1lID8gYCBmb3IgJHttb2RlbE5hbWV9YCA6IFwiXCJ9YCk7XG5cbiAgICBpZiAoaXNQdWJsaWMpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUHVibGljIHJvdXRlIOKAlCBza2lwcGluZyBhdXRoYCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmF1dGhIYW5kbGVyKSB7XG4gICAgICBhd2FpdCB0aGlzLmF1dGhIYW5kbGVyLmF1dGhvcml6ZShcbiAgICAgICAgY3R4LFxuICAgICAgICBtb2RlbE5hbWUgYXMgc3RyaW5nIHwgQ29uc3RydWN0b3IsXG4gICAgICAgIHJlcXVpcmVkUm9sZXMsXG4gICAgICAgIHRoaXMucmVxdWVzdENvbnRleHRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5kZWJ1ZyhgTm8gYXV0aCBoYW5kbGVyIHJlZ2lzdGVyZWRgKTtcbiAgICB9XG5cbiAgICAvLyBUcmFuc2Zvcm1lcnMgcnVuIEFGVEVSIGF1dGggc28gdGhleSBjYW4gcmVhZCBhdXRoLXBvcHVsYXRlZCBmaWVsZHNcbiAgICAvLyAoZS5nLiBgdXNlcmApIGZyb20gdGhlIGNvbnRleHQgYW5kIG1hcCB0aGVtIHRvIGFkYXB0ZXItc3BlY2lmaWMga2V5c1xuICAgIC8vIChlLmcuIGBVVUlEYCBmb3IgUmFtQWRhcHRlcidzIEBjcmVhdGVkQnkvQHVwZGF0ZWRCeSBoYW5kbGVycykuXG4gICAgYXdhaXQgdGhpcy5hcHBseVRyYW5zZm9ybWVycygpO1xuXG4gICAgY29uc3QgdXNlciA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJ1c2VyXCIgYXMgYW55KTtcbiAgICBjb25zdCBvcmdhbml6YXRpb24gPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3JnYW5pemF0aW9uXCIgYXMgYW55KTtcbiAgICBpZiAodXNlciB8fCBvcmdhbml6YXRpb24pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRMb2cgPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldChcImxvZ2dlclwiIGFzIGFueSk7XG4gICAgICBjb25zdCBjaGlsZExvZyA9IGN1cnJlbnRMb2cuZm9yKHsgdXNlciwgb3JnYW5pemF0aW9uIH0pO1xuICAgICAgdGhpcy5yZXF1ZXN0Q29udGV4dC5hY2N1bXVsYXRlKHsgbG9nZ2VyOiBjaGlsZExvZyB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYXBwbHlUcmFuc2Zvcm1lcnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmxhdm91cnMgPSBBZGFwdGVyLmZsYXZvdXJzVG9UcmFuc2Zvcm0oKTtcbiAgICBpZiAoIWZsYXZvdXJzKSByZXR1cm47XG5cbiAgICBmb3IgKGNvbnN0IGZsYXZvdXIgb2YgZmxhdm91cnMpIHtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gQWRhcHRlci50cmFuc2Zvcm1lckZvcihcbiAgICAgICAgZmxhdm91clxuICAgICAgKSBhcyBSZXF1ZXN0VG9Db250ZXh0VHJhbnNmb3JtZXI8YW55PjtcbiAgICAgIGlmICghdHJhbnNmb3JtZXIpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgZnJvbSA9IGF3YWl0IHRyYW5zZm9ybWVyLmZyb20odGhpcy5yZXF1ZXN0Q29udGV4dCk7XG4gICAgICBpZiAoZnJvbSkgdGhpcy5yZXF1ZXN0Q29udGV4dC5hY2N1bXVsYXRlKGZyb20pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { AuthorizationError } from "@decaf-ts/core";
|
|
2
|
+
import { AuthHandler } from "@decaf-ts/for-http/server";
|
|
3
|
+
/**
|
|
4
|
+
* Simple auth handler that reads a role string from the `Authorization: Bearer <role>` header.
|
|
5
|
+
*
|
|
6
|
+
* Only overrides {@link AuthHandler.extractFromAuth} to return the bearer token as
|
|
7
|
+
* both the user identifier and the single role. The base class `bindToContext`
|
|
8
|
+
* (`ctx.accumulate(data)`) is sufficient — the transformer/adapter is responsible
|
|
9
|
+
* for mapping context fields to adapter-specific keys like `UUID`.
|
|
10
|
+
*/
|
|
11
|
+
export class DecafAuthHandler extends AuthHandler {
|
|
12
|
+
parseRequest(req) {
|
|
13
|
+
const userRole = req.headers.authorization?.split(" ")[1];
|
|
14
|
+
return userRole;
|
|
15
|
+
}
|
|
16
|
+
extractFromAuth(ctx) {
|
|
17
|
+
const req = ctx.switchToHttp().getRequest();
|
|
18
|
+
const userRole = this.parseRequest(req);
|
|
19
|
+
if (!userRole)
|
|
20
|
+
throw new AuthorizationError("Unauthenticated");
|
|
21
|
+
return { user: userRole, roles: [userRole] };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Alias for {@link DecafAuthHandler} kept for backward compatibility.
|
|
26
|
+
* The "role" variant previously returned roles from `authorize`; with the base
|
|
27
|
+
* class now orchestrating role checks internally, the two classes are equivalent.
|
|
28
|
+
*/
|
|
29
|
+
export class DecafRoleAuthHandler extends DecafAuthHandler {
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZBdXRoSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL0RlY2FmQXV0aEhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBR2xFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FJckM7SUFDVyxZQUFZLENBQUMsR0FBUTtRQUM3QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFXLENBQUM7UUFDcEUsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVTLGVBQWUsQ0FBQyxHQUFxQjtRQUM3QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEF1dGhvcml6YXRpb25FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQXV0aEhhbmRsZXIsIEF1dGhEYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItaHR0cC9zZXJ2ZXJcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi4vcmVxdWVzdC9EZWNhZlJlcXVlc3RDb250ZXh0XCI7XG5cbi8qKlxuICogU2ltcGxlIGF1dGggaGFuZGxlciB0aGF0IHJlYWRzIGEgcm9sZSBzdHJpbmcgZnJvbSB0aGUgYEF1dGhvcml6YXRpb246IEJlYXJlciA8cm9sZT5gIGhlYWRlci5cbiAqXG4gKiBPbmx5IG92ZXJyaWRlcyB7QGxpbmsgQXV0aEhhbmRsZXIuZXh0cmFjdEZyb21BdXRofSB0byByZXR1cm4gdGhlIGJlYXJlciB0b2tlbiBhc1xuICogYm90aCB0aGUgdXNlciBpZGVudGlmaWVyIGFuZCB0aGUgc2luZ2xlIHJvbGUuIFRoZSBiYXNlIGNsYXNzIGBiaW5kVG9Db250ZXh0YFxuICogKGBjdHguYWNjdW11bGF0ZShkYXRhKWApIGlzIHN1ZmZpY2llbnQg4oCUIHRoZSB0cmFuc2Zvcm1lci9hZGFwdGVyIGlzIHJlc3BvbnNpYmxlXG4gKiBmb3IgbWFwcGluZyBjb250ZXh0IGZpZWxkcyB0byBhZGFwdGVyLXNwZWNpZmljIGtleXMgbGlrZSBgVVVJRGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWNhZkF1dGhIYW5kbGVyIGV4dGVuZHMgQXV0aEhhbmRsZXI8XG4gIEV4ZWN1dGlvbkNvbnRleHQsXG4gIERlY2FmUmVxdWVzdENvbnRleHQsXG4gIEF1dGhEYXRhXG4+IHtcbiAgcHJvdGVjdGVkIHBhcnNlUmVxdWVzdChyZXE6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgdXNlclJvbGUgPSByZXEuaGVhZGVycy5hdXRob3JpemF0aW9uPy5zcGxpdChcIiBcIilbMV0gYXMgc3RyaW5nO1xuICAgIHJldHVybiB1c2VyUm9sZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBleHRyYWN0RnJvbUF1dGgoY3R4OiBFeGVjdXRpb25Db250ZXh0KTogQXV0aERhdGEge1xuICAgIGNvbnN0IHJlcSA9IGN0eC5zd2l0Y2hUb0h0dHAoKS5nZXRSZXF1ZXN0KCk7XG4gICAgY29uc3QgdXNlclJvbGUgPSB0aGlzLnBhcnNlUmVxdWVzdChyZXEpO1xuICAgIGlmICghdXNlclJvbGUpIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXCJVbmF1dGhlbnRpY2F0ZWRcIik7XG4gICAgcmV0dXJuIHsgdXNlcjogdXNlclJvbGUsIHJvbGVzOiBbdXNlclJvbGVdIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBbGlhcyBmb3Ige0BsaW5rIERlY2FmQXV0aEhhbmRsZXJ9IGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKiBUaGUgXCJyb2xlXCIgdmFyaWFudCBwcmV2aW91c2x5IHJldHVybmVkIHJvbGVzIGZyb20gYGF1dGhvcml6ZWA7IHdpdGggdGhlIGJhc2VcbiAqIGNsYXNzIG5vdyBvcmNoZXN0cmF0aW5nIHJvbGUgY2hlY2tzIGludGVybmFsbHksIHRoZSB0d28gY2xhc3NlcyBhcmUgZXF1aXZhbGVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIERlY2FmUm9sZUF1dGhIYW5kbGVyIGV4dGVuZHMgRGVjYWZBdXRoSGFuZGxlciB7fVxuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var DecafAuthModule_1;
|
|
8
|
+
import { Module } from "@nestjs/common";
|
|
9
|
+
import { APP_INTERCEPTOR } from "@nestjs/core";
|
|
10
|
+
import { AuthInterceptor } from "./AuthInterceptor.js";
|
|
11
|
+
import { AUTH_HANDLER } from "./constants.js";
|
|
12
|
+
import { DecafRequestHandlerInterceptor } from "./../interceptors/DecafRequestHandlerInterceptor.js";
|
|
13
|
+
let DecafAuthModule = DecafAuthModule_1 = class DecafAuthModule {
|
|
14
|
+
static forRoot(options = {}) {
|
|
15
|
+
const providers = [
|
|
16
|
+
AuthInterceptor,
|
|
17
|
+
DecafRequestHandlerInterceptor,
|
|
18
|
+
{
|
|
19
|
+
provide: APP_INTERCEPTOR,
|
|
20
|
+
useClass: DecafRequestHandlerInterceptor,
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
if (options.handler) {
|
|
24
|
+
providers.push(options.handler);
|
|
25
|
+
providers.push({
|
|
26
|
+
provide: AUTH_HANDLER,
|
|
27
|
+
useClass: options.handler,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
if (options.global) {
|
|
31
|
+
providers.push({
|
|
32
|
+
provide: APP_INTERCEPTOR,
|
|
33
|
+
useExisting: AuthInterceptor,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
module: DecafAuthModule_1,
|
|
38
|
+
global: options.global ?? false,
|
|
39
|
+
providers,
|
|
40
|
+
exports: [AuthInterceptor, AUTH_HANDLER],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
DecafAuthModule = DecafAuthModule_1 = __decorate([
|
|
45
|
+
Module({})
|
|
46
|
+
], DecafAuthModule);
|
|
47
|
+
export { DecafAuthModule };
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZBdXRoTW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvRGVjYWZBdXRoTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEVBQWlCLE1BQU0sRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSw2QkFBMEI7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSx1QkFBb0I7QUFDM0MsT0FBTyxFQUFFLDhCQUE4QixFQUFFLDREQUF1RDtBQVN6RixJQUFNLGVBQWUsdUJBQXJCLE1BQU0sZUFBZTtJQUMxQixNQUFNLENBQUMsT0FBTyxDQUNaLFVBQWtDLEVBQUU7UUFFcEMsTUFBTSxTQUFTLEdBQStCO1lBQzVDLGVBQWU7WUFDZiw4QkFBOEI7WUFDOUI7Z0JBQ0UsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFFBQVEsRUFBRSw4QkFBOEI7YUFDekM7U0FDRixDQUFDO1FBRUYsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDYixPQUFPLEVBQUUsWUFBWTtnQkFDckIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPO2FBQzFCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixTQUFtQixDQUFDLElBQUksQ0FBQztnQkFDeEIsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFdBQVcsRUFBRSxlQUFlO2FBQzdCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLGlCQUFlO1lBQ3ZCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUs7WUFDL0IsU0FBUztZQUNULE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7U0FDekMsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBbkNZLGVBQWU7SUFEM0IsTUFBTSxDQUFDLEVBQUUsQ0FBQztHQUNFLGVBQWUsQ0FtQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY01vZHVsZSwgTW9kdWxlLCBUeXBlIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBBUFBfSU5URVJDRVBUT1IgfSBmcm9tIFwiQG5lc3Rqcy9jb3JlXCI7XG5cbmltcG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9IGZyb20gXCIuL0F1dGhJbnRlcmNlcHRvclwiO1xuaW1wb3J0IHsgQVVUSF9IQU5ETEVSIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RIYW5kbGVySW50ZXJjZXB0b3IgfSBmcm9tIFwiLi4vaW50ZXJjZXB0b3JzL0RlY2FmUmVxdWVzdEhhbmRsZXJJbnRlcmNlcHRvclwiO1xuaW1wb3J0IHsgQXV0aEhhbmRsZXIgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgRGVjYWZBdXRoTW9kdWxlT3B0aW9ucyA9IHtcbiAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgaGFuZGxlcj86IFR5cGU8QXV0aEhhbmRsZXI+O1xufTtcblxuQE1vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBEZWNhZkF1dGhNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChcbiAgICBvcHRpb25zOiBEZWNhZkF1dGhNb2R1bGVPcHRpb25zID0ge31cbiAgKTogRHluYW1pY01vZHVsZSB7XG4gICAgY29uc3QgcHJvdmlkZXJzOiBEeW5hbWljTW9kdWxlW1wicHJvdmlkZXJzXCJdID0gW1xuICAgICAgQXV0aEludGVyY2VwdG9yLFxuICAgICAgRGVjYWZSZXF1ZXN0SGFuZGxlckludGVyY2VwdG9yLFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBBUFBfSU5URVJDRVBUT1IsXG4gICAgICAgIHVzZUNsYXNzOiBEZWNhZlJlcXVlc3RIYW5kbGVySW50ZXJjZXB0b3IsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBpZiAob3B0aW9ucy5oYW5kbGVyKSB7XG4gICAgICBwcm92aWRlcnMucHVzaChvcHRpb25zLmhhbmRsZXIpO1xuICAgICAgcHJvdmlkZXJzLnB1c2goe1xuICAgICAgICBwcm92aWRlOiBBVVRIX0hBTkRMRVIsXG4gICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLmhhbmRsZXIsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5nbG9iYWwpIHtcbiAgICAgIChwcm92aWRlcnMgYXMgYW55W10pLnB1c2goe1xuICAgICAgICBwcm92aWRlOiBBUFBfSU5URVJDRVBUT1IsXG4gICAgICAgIHVzZUV4aXN0aW5nOiBBdXRoSW50ZXJjZXB0b3IsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlOiBEZWNhZkF1dGhNb2R1bGUsXG4gICAgICBnbG9iYWw6IG9wdGlvbnMuZ2xvYmFsID8/IGZhbHNlLFxuICAgICAgcHJvdmlkZXJzLFxuICAgICAgZXhwb3J0czogW0F1dGhJbnRlcmNlcHRvciwgQVVUSF9IQU5ETEVSXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const AUTH_HANDLER = Symbol("AUTH_HANDLER");
|
|
2
|
+
export const AUTH_META_KEY = "auth:meta";
|
|
3
|
+
export const IS_PUBLIC_KEY = "isPublic";
|
|
4
|
+
export const REQUIRED_ROLES_KEY = "requiredRoles";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBVVRIX0hBTkRMRVIgPSBTeW1ib2woXCJBVVRIX0hBTkRMRVJcIik7XG5leHBvcnQgY29uc3QgQVVUSF9NRVRBX0tFWSA9IFwiYXV0aDptZXRhXCI7XG5leHBvcnQgY29uc3QgSVNfUFVCTElDX0tFWSA9IFwiaXNQdWJsaWNcIjtcbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9ST0xFU19LRVkgPSBcInJlcXVpcmVkUm9sZXNcIjtcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { applyDecorators, SetMetadata, UseInterceptors } from "@nestjs/common";
|
|
2
|
+
import { ApiBearerAuth, ApiSecurity } from "@nestjs/swagger";
|
|
3
|
+
import { AUTH_META_KEY, IS_PUBLIC_KEY, REQUIRED_ROLES_KEY } from "./constants.js";
|
|
4
|
+
import { AuthInterceptor } from "./AuthInterceptor.js";
|
|
5
|
+
export function Auth(model) {
|
|
6
|
+
const resource = model
|
|
7
|
+
? typeof model === "string"
|
|
8
|
+
? model
|
|
9
|
+
: model.name
|
|
10
|
+
: undefined;
|
|
11
|
+
const decs = [ApiBearerAuth(), UseInterceptors(AuthInterceptor)];
|
|
12
|
+
if (resource)
|
|
13
|
+
decs.push(SetMetadata(AUTH_META_KEY, resource));
|
|
14
|
+
return applyDecorators(...decs);
|
|
15
|
+
}
|
|
16
|
+
export function Public() {
|
|
17
|
+
return applyDecorators(SetMetadata(IS_PUBLIC_KEY, true));
|
|
18
|
+
}
|
|
19
|
+
export function RequireRoles(...roles) {
|
|
20
|
+
return applyDecorators(ApiSecurity("bearer"), SetMetadata(REQUIRED_ROLES_KEY, roles), UseInterceptors(AuthInterceptor));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSx1QkFBb0I7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSw2QkFBMEI7QUFFcEQsTUFBTSxVQUFVLElBQUksQ0FBQyxLQUE0QjtJQUMvQyxNQUFNLFFBQVEsR0FBRyxLQUFLO1FBQ3BCLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3pCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJO1FBQ2QsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNkLE1BQU0sSUFBSSxHQUFHLENBQUMsYUFBYSxFQUFFLEVBQUUsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDakUsSUFBSSxRQUFRO1FBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDOUQsT0FBTyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU07SUFDcEIsT0FBTyxlQUFlLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQUcsS0FBZTtJQUM3QyxPQUFPLGVBQWUsQ0FDcEIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUNyQixXQUFXLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEVBQ3RDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FDakMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhcHBseURlY29yYXRvcnMsIFNldE1ldGFkYXRhLCBVc2VJbnRlcmNlcHRvcnMgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEFwaUJlYXJlckF1dGgsIEFwaVNlY3VyaXR5IH0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcblxuaW1wb3J0IHsgQVVUSF9NRVRBX0tFWSwgSVNfUFVCTElDX0tFWSwgUkVRVUlSRURfUk9MRVNfS0VZIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tIFwiLi9BdXRoSW50ZXJjZXB0b3JcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIEF1dGgobW9kZWw/OiBzdHJpbmcgfCBDb25zdHJ1Y3Rvcikge1xuICBjb25zdCByZXNvdXJjZSA9IG1vZGVsXG4gICAgPyB0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCJcbiAgICAgID8gbW9kZWxcbiAgICAgIDogbW9kZWwubmFtZVxuICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCBkZWNzID0gW0FwaUJlYXJlckF1dGgoKSwgVXNlSW50ZXJjZXB0b3JzKEF1dGhJbnRlcmNlcHRvcildO1xuICBpZiAocmVzb3VyY2UpIGRlY3MucHVzaChTZXRNZXRhZGF0YShBVVRIX01FVEFfS0VZLCByZXNvdXJjZSkpO1xuICByZXR1cm4gYXBwbHlEZWNvcmF0b3JzKC4uLmRlY3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUHVibGljKCkge1xuICByZXR1cm4gYXBwbHlEZWNvcmF0b3JzKFNldE1ldGFkYXRhKElTX1BVQkxJQ19LRVksIHRydWUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJlcXVpcmVSb2xlcyguLi5yb2xlczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIGFwcGx5RGVjb3JhdG9ycyhcbiAgICBBcGlTZWN1cml0eShcImJlYXJlclwiKSxcbiAgICBTZXRNZXRhZGF0YShSRVFVSVJFRF9ST0xFU19LRVksIHJvbGVzKSxcbiAgICBVc2VJbnRlcmNlcHRvcnMoQXV0aEludGVyY2VwdG9yKVxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./constants.js";
|
|
2
|
+
export * from "./AuthInterceptor.js";
|
|
3
|
+
export * from "./DecafAuthHandler.js";
|
|
4
|
+
export * from "./decorators.js";
|
|
5
|
+
export * from "./DecafAuthModule.js";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXV0aC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBNEI7QUFDNUIscUNBQWtDO0FBQ2xDLHNDQUFtQztBQUNuQyxnQ0FBNkI7QUFDN0IscUNBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9BdXRoSW50ZXJjZXB0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0RlY2FmQXV0aEhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0RlY2FmQXV0aE1vZHVsZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEF1dGhIYW5kbGVyIGFzIEF1dGhIYW5kbGVyQmFzZSxcbiAgQXV0aERhdGEsXG4gIFVzZXJEYXRhLFxuICBBdXRoUmVxdWVzdExpa2UsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWh0dHAvc2VydmVyXCI7XG4iXX0=
|
package/lib/esm/bin/cli.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import nest from "./../cli-module.js";
|
|
2
2
|
nest().parse(process.argv);
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jpbi9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLDJCQUFzQjtBQUVqQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5lc3QgZnJvbSBcIi4uL2NsaS1tb2R1bGVcIjtcblxubmVzdCgpLnBhcnNlKHByb2Nlc3MuYXJndik7XG4iXX0=
|