@flusys/nestjs-shared 7.1.0 → 8.0.0
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/classes/api-controller.class.d.ts +4 -4
- package/classes/api-service.class.d.ts +7 -7
- package/classes/disabled-event-bus.class.d.ts +1 -1
- package/classes/domain-event.publisher.d.ts +1 -1
- package/classes/event-bus.registry.d.ts +1 -1
- package/classes/event-transports/event-transport.registry.d.ts +1 -1
- package/classes/event-transports/index.d.ts +2 -2
- package/classes/event-transports/kafka-transport.optional.d.ts +1 -1
- package/classes/event-transports/memory-transport.d.ts +1 -1
- package/classes/event-transports/rabbitmq-transport.optional.d.ts +1 -1
- package/classes/hybrid-event-bus.class.d.ts +1 -1
- package/classes/index.d.ts +11 -11
- package/constants/index.d.ts +2 -2
- package/decorators/api-response.decorator.d.ts +1 -1
- package/decorators/current-user.decorator.d.ts +1 -1
- package/decorators/index.d.ts +6 -6
- package/decorators/require-permission.decorator.d.ts +1 -1
- package/dtos/filter-and-pagination.dto.d.ts +1 -1
- package/dtos/index.d.ts +6 -6
- package/entities/index.d.ts +3 -3
- package/enums/index.d.ts +3 -3
- package/exceptions/index.d.ts +2 -2
- package/fesm/470.js +2713 -0
- package/fesm/509.js +793 -0
- package/fesm/667.js +606 -0
- package/fesm/67.js +808 -0
- package/fesm/720.js +914 -0
- package/{cjs/classes/event-transports/rabbitmq-transport.optional.js → fesm/chunks/123.js} +78 -55
- package/fesm/{classes/event-transports/kafka-transport.optional.js → chunks/37.js} +74 -41
- package/fesm/classes/index.js +62 -12
- package/fesm/constants/index.js +445 -17
- package/fesm/decorators/index.js +341 -6
- package/fesm/dtos/index.js +23 -6
- package/fesm/entities/index.js +336 -3
- package/fesm/enums/index.js +57 -3
- package/fesm/exceptions/index.js +280 -2
- package/fesm/guards/index.js +1003 -3
- package/fesm/index.js +1524 -14
- package/fesm/interceptors/index.js +924 -5
- package/fesm/interfaces/index.js +57 -11
- package/fesm/middlewares/index.js +33 -1
- package/fesm/modules/index.js +432 -9
- package/fesm/runtime.js +134 -0
- package/fesm/utils/index.js +1045 -8
- package/filters/global-exception.filter.d.ts +1 -1
- package/filters/index.d.ts +1 -1
- package/guards/index.d.ts +3 -3
- package/guards/jwt-auth.guard.d.ts +1 -1
- package/guards/optional-jwt-auth.guard.d.ts +1 -1
- package/guards/permission.guard.d.ts +2 -2
- package/index.d.ts +14 -14
- package/interceptors/delete-empty-id-from-body.interceptor.d.ts +1 -1
- package/interceptors/idempotency.interceptor.d.ts +2 -2
- package/interceptors/index.d.ts +5 -5
- package/interceptors/response-meta.interceptor.d.ts +1 -1
- package/interceptors/set-user-field-on-body.interceptor.d.ts +1 -1
- package/interceptors/slug.interceptor.d.ts +2 -2
- package/interfaces/ai-assistant-adapter.interface.d.ts +1 -1
- package/interfaces/api.interface.d.ts +2 -2
- package/interfaces/datasource.interface.d.ts +1 -1
- package/interfaces/event-manager-adapter.interface.d.ts +2 -2
- package/interfaces/index.d.ts +11 -11
- package/interfaces/module-config.interface.d.ts +1 -1
- package/interfaces/notification-adapter.interface.d.ts +1 -1
- package/middlewares/index.d.ts +1 -1
- package/middlewares/logger.middleware.d.ts +2 -2
- package/modules/cache/cache.module.d.ts +1 -1
- package/modules/datasource/index.d.ts +1 -1
- package/modules/datasource/multi-tenant-datasource.service.d.ts +4 -4
- package/modules/event-bus/event-bus.explorer.d.ts +2 -2
- package/modules/event-bus/event-bus.module.d.ts +2 -2
- package/modules/event-bus/module-events.provider.d.ts +1 -1
- package/modules/index.d.ts +9 -9
- package/modules/shared-permission-cache/shared-permission-cache.service.d.ts +3 -3
- package/modules/utils/utils.service.d.ts +1 -1
- package/package.json +30 -44
- package/utils/index.d.ts +8 -8
- package/utils/permission-cache-key.util.d.ts +1 -1
- package/utils/query-helpers.util.d.ts +2 -2
- package/utils/request.util.d.ts +1 -1
- package/cjs/classes/api-controller.class.js +0 -728
- package/cjs/classes/api-controller.class.spec.js +0 -684
- package/cjs/classes/api-service.class.js +0 -631
- package/cjs/classes/api-service.class.spec.js +0 -1137
- package/cjs/classes/disabled-event-bus.class.js +0 -15
- package/cjs/classes/disabled-event-bus.class.spec.js +0 -40
- package/cjs/classes/domain-event.publisher.js +0 -76
- package/cjs/classes/domain-event.publisher.spec.js +0 -234
- package/cjs/classes/event-bus.registry.js +0 -68
- package/cjs/classes/event-bus.registry.spec.js +0 -141
- package/cjs/classes/event-transports/event-transport.registry.js +0 -41
- package/cjs/classes/event-transports/event-transport.registry.spec.js +0 -31
- package/cjs/classes/event-transports/index.js +0 -23
- package/cjs/classes/event-transports/kafka-transport.optional.js +0 -151
- package/cjs/classes/event-transports/kafka-transport.optional.spec.js +0 -198
- package/cjs/classes/event-transports/memory-transport.js +0 -53
- package/cjs/classes/event-transports/memory-transport.spec.js +0 -57
- package/cjs/classes/event-transports/rabbitmq-transport.optional.spec.js +0 -255
- package/cjs/classes/handle-custome-db.js +0 -37
- package/cjs/classes/handle-custome-db.spec.js +0 -82
- package/cjs/classes/hybrid-cache.class.js +0 -96
- package/cjs/classes/hybrid-cache.class.spec.js +0 -168
- package/cjs/classes/hybrid-event-bus.class.js +0 -281
- package/cjs/classes/hybrid-event-bus.class.spec.js +0 -218
- package/cjs/classes/index.js +0 -28
- package/cjs/classes/winston.logger.class.js +0 -274
- package/cjs/classes/winston.logger.class.spec.js +0 -330
- package/cjs/constants/index.js +0 -88
- package/cjs/constants/message-keys.js +0 -68
- package/cjs/constants/permissions.js +0 -307
- package/cjs/decorators/api-response.decorator.js +0 -52
- package/cjs/decorators/api-response.decorator.spec.js +0 -126
- package/cjs/decorators/current-user.decorator.js +0 -16
- package/cjs/decorators/current-user.decorator.spec.js +0 -74
- package/cjs/decorators/index.js +0 -23
- package/cjs/decorators/log-action.decorator.js +0 -149
- package/cjs/decorators/log-action.decorator.spec.js +0 -353
- package/cjs/decorators/on-domain-event.decorator.js +0 -13
- package/cjs/decorators/on-domain-event.decorator.spec.js +0 -50
- package/cjs/decorators/public.decorator.js +0 -13
- package/cjs/decorators/public.decorator.spec.js +0 -50
- package/cjs/decorators/require-permission.decorator.js +0 -32
- package/cjs/decorators/require-permission.decorator.spec.js +0 -147
- package/cjs/dtos/delete.dto.js +0 -92
- package/cjs/dtos/filter-and-pagination.dto.js +0 -164
- package/cjs/dtos/get-by-ids.dto.js +0 -65
- package/cjs/dtos/identity-response.dto.js +0 -108
- package/cjs/dtos/index.js +0 -23
- package/cjs/dtos/pagination.dto.js +0 -67
- package/cjs/dtos/response-payload.dto.js +0 -369
- package/cjs/entities/identity.js +0 -100
- package/cjs/entities/index.js +0 -20
- package/cjs/entities/raw-type.js +0 -4
- package/cjs/entities/user-root.js +0 -189
- package/cjs/enums/index.js +0 -20
- package/cjs/enums/notification-type.enum.js +0 -17
- package/cjs/enums/participant-status.enum.js +0 -17
- package/cjs/enums/recurrence-type.enum.js +0 -18
- package/cjs/exceptions/base-app.exception.js +0 -151
- package/cjs/exceptions/base-app.exception.spec.js +0 -157
- package/cjs/exceptions/index.js +0 -19
- package/cjs/exceptions/permission.exception.js +0 -56
- package/cjs/exceptions/permission.exception.spec.js +0 -82
- package/cjs/filters/global-exception.filter.js +0 -279
- package/cjs/filters/global-exception.filter.spec.js +0 -440
- package/cjs/filters/index.js +0 -18
- package/cjs/guards/index.js +0 -20
- package/cjs/guards/jwt-auth.guard.js +0 -75
- package/cjs/guards/jwt-auth.guard.spec.js +0 -75
- package/cjs/guards/optional-jwt-auth.guard.js +0 -67
- package/cjs/guards/optional-jwt-auth.guard.spec.js +0 -55
- package/cjs/guards/permission.guard.js +0 -179
- package/cjs/guards/permission.guard.spec.js +0 -373
- package/cjs/index.js +0 -31
- package/cjs/interceptors/delete-empty-id-from-body.interceptor.js +0 -40
- package/cjs/interceptors/delete-empty-id-from-body.interceptor.spec.js +0 -107
- package/cjs/interceptors/idempotency.interceptor.js +0 -96
- package/cjs/interceptors/idempotency.interceptor.spec.js +0 -116
- package/cjs/interceptors/index.js +0 -22
- package/cjs/interceptors/response-meta.interceptor.js +0 -47
- package/cjs/interceptors/response-meta.interceptor.spec.js +0 -89
- package/cjs/interceptors/set-user-field-on-body.interceptor.js +0 -60
- package/cjs/interceptors/set-user-field-on-body.interceptor.spec.js +0 -128
- package/cjs/interceptors/slug.interceptor.js +0 -75
- package/cjs/interceptors/slug.interceptor.spec.js +0 -110
- package/cjs/interfaces/ai-assistant-adapter.interface.js +0 -24
- package/cjs/interfaces/api.interface.js +0 -4
- package/cjs/interfaces/datasource.interface.js +0 -4
- package/cjs/interfaces/event-bus.interface.js +0 -4
- package/cjs/interfaces/event-manager-adapter.interface.js +0 -11
- package/cjs/interfaces/identity.interface.js +0 -4
- package/cjs/interfaces/index.js +0 -28
- package/cjs/interfaces/logged-user-info.interface.js +0 -6
- package/cjs/interfaces/module-config.interface.js +0 -4
- package/cjs/interfaces/notification-adapter.interface.js +0 -11
- package/cjs/interfaces/permission-sync-adapter.interface.js +0 -11
- package/cjs/interfaces/permission.interface.js +0 -4
- package/cjs/middlewares/index.js +0 -18
- package/cjs/middlewares/logger.middleware.js +0 -264
- package/cjs/middlewares/logger.middleware.spec.js +0 -462
- package/cjs/modules/cache/cache.module.js +0 -39
- package/cjs/modules/cache/cache.module.spec.js +0 -48
- package/cjs/modules/datasource/index.js +0 -18
- package/cjs/modules/datasource/multi-tenant-datasource.service.js +0 -222
- package/cjs/modules/datasource/multi-tenant-datasource.service.spec.js +0 -381
- package/cjs/modules/event-bus/event-bus.explorer.js +0 -124
- package/cjs/modules/event-bus/event-bus.explorer.spec.js +0 -189
- package/cjs/modules/event-bus/event-bus.integration.spec.js +0 -253
- package/cjs/modules/event-bus/event-bus.module.js +0 -94
- package/cjs/modules/event-bus/event-bus.module.spec.js +0 -149
- package/cjs/modules/event-bus/module-events.provider.js +0 -39
- package/cjs/modules/event-bus/module-events.provider.spec.js +0 -56
- package/cjs/modules/index.js +0 -26
- package/cjs/modules/shared-permission-cache/shared-permission-cache.module.js +0 -32
- package/cjs/modules/shared-permission-cache/shared-permission-cache.service.js +0 -101
- package/cjs/modules/shared-permission-cache/shared-permission-cache.service.spec.js +0 -165
- package/cjs/modules/utils/utils.module.js +0 -32
- package/cjs/modules/utils/utils.service.js +0 -76
- package/cjs/modules/utils/utils.service.spec.js +0 -169
- package/cjs/utils/date-time.util.js +0 -94
- package/cjs/utils/date-time.util.spec.js +0 -84
- package/cjs/utils/event-pattern.util.js +0 -103
- package/cjs/utils/event-pattern.util.spec.js +0 -251
- package/cjs/utils/html-sanitizer.util.js +0 -64
- package/cjs/utils/html-sanitizer.util.spec.js +0 -76
- package/cjs/utils/index.js +0 -25
- package/cjs/utils/optional-module.util.js +0 -35
- package/cjs/utils/optional-module.util.spec.js +0 -14
- package/cjs/utils/permission-cache-key.util.js +0 -31
- package/cjs/utils/permission-cache-key.util.spec.js +0 -88
- package/cjs/utils/query-helpers.util.js +0 -60
- package/cjs/utils/query-helpers.util.spec.js +0 -209
- package/cjs/utils/request.util.js +0 -96
- package/cjs/utils/request.util.spec.js +0 -249
- package/cjs/utils/string.util.js +0 -63
- package/cjs/utils/string.util.spec.js +0 -63
- package/fesm/classes/api-controller.class.js +0 -718
- package/fesm/classes/api-controller.class.spec.js +0 -680
- package/fesm/classes/api-service.class.js +0 -621
- package/fesm/classes/api-service.class.spec.js +0 -1133
- package/fesm/classes/disabled-event-bus.class.js +0 -11
- package/fesm/classes/disabled-event-bus.class.spec.js +0 -36
- package/fesm/classes/domain-event.publisher.js +0 -63
- package/fesm/classes/domain-event.publisher.spec.js +0 -230
- package/fesm/classes/event-bus.registry.js +0 -64
- package/fesm/classes/event-bus.registry.spec.js +0 -137
- package/fesm/classes/event-transports/event-transport.registry.js +0 -35
- package/fesm/classes/event-transports/event-transport.registry.spec.js +0 -27
- package/fesm/classes/event-transports/index.js +0 -6
- package/fesm/classes/event-transports/kafka-transport.optional.spec.js +0 -194
- package/fesm/classes/event-transports/memory-transport.js +0 -49
- package/fesm/classes/event-transports/memory-transport.spec.js +0 -53
- package/fesm/classes/event-transports/rabbitmq-transport.optional.js +0 -174
- package/fesm/classes/event-transports/rabbitmq-transport.optional.spec.js +0 -251
- package/fesm/classes/handle-custome-db.js +0 -19
- package/fesm/classes/handle-custome-db.spec.js +0 -78
- package/fesm/classes/hybrid-cache.class.js +0 -81
- package/fesm/classes/hybrid-cache.class.spec.js +0 -164
- package/fesm/classes/hybrid-event-bus.class.js +0 -237
- package/fesm/classes/hybrid-event-bus.class.spec.js +0 -214
- package/fesm/classes/winston.logger.class.js +0 -228
- package/fesm/classes/winston.logger.class.spec.js +0 -327
- package/fesm/constants/message-keys.js +0 -49
- package/fesm/constants/permissions.js +0 -215
- package/fesm/decorators/api-response.decorator.js +0 -42
- package/fesm/decorators/api-response.decorator.spec.js +0 -122
- package/fesm/decorators/current-user.decorator.js +0 -18
- package/fesm/decorators/current-user.decorator.spec.js +0 -73
- package/fesm/decorators/log-action.decorator.js +0 -139
- package/fesm/decorators/log-action.decorator.spec.js +0 -349
- package/fesm/decorators/on-domain-event.decorator.js +0 -10
- package/fesm/decorators/on-domain-event.decorator.spec.js +0 -46
- package/fesm/decorators/public.decorator.js +0 -20
- package/fesm/decorators/public.decorator.spec.js +0 -46
- package/fesm/decorators/require-permission.decorator.js +0 -27
- package/fesm/decorators/require-permission.decorator.spec.js +0 -143
- package/fesm/dtos/delete.dto.js +0 -82
- package/fesm/dtos/filter-and-pagination.dto.js +0 -148
- package/fesm/dtos/get-by-ids.dto.js +0 -55
- package/fesm/dtos/identity-response.dto.js +0 -98
- package/fesm/dtos/pagination.dto.js +0 -57
- package/fesm/dtos/response-payload.dto.js +0 -336
- package/fesm/entities/identity.js +0 -90
- package/fesm/entities/raw-type.js +0 -1
- package/fesm/entities/user-root.js +0 -179
- package/fesm/enums/notification-type.enum.js +0 -7
- package/fesm/enums/participant-status.enum.js +0 -7
- package/fesm/enums/recurrence-type.enum.js +0 -8
- package/fesm/exceptions/base-app.exception.js +0 -115
- package/fesm/exceptions/base-app.exception.spec.js +0 -153
- package/fesm/exceptions/permission.exception.js +0 -35
- package/fesm/exceptions/permission.exception.spec.js +0 -78
- package/fesm/filters/global-exception.filter.js +0 -269
- package/fesm/filters/global-exception.filter.spec.js +0 -436
- package/fesm/filters/index.js +0 -1
- package/fesm/guards/jwt-auth.guard.js +0 -65
- package/fesm/guards/jwt-auth.guard.spec.js +0 -71
- package/fesm/guards/optional-jwt-auth.guard.js +0 -57
- package/fesm/guards/optional-jwt-auth.guard.spec.js +0 -51
- package/fesm/guards/permission.guard.js +0 -169
- package/fesm/guards/permission.guard.spec.js +0 -369
- package/fesm/interceptors/delete-empty-id-from-body.interceptor.js +0 -30
- package/fesm/interceptors/delete-empty-id-from-body.interceptor.spec.js +0 -103
- package/fesm/interceptors/idempotency.interceptor.js +0 -86
- package/fesm/interceptors/idempotency.interceptor.spec.js +0 -112
- package/fesm/interceptors/response-meta.interceptor.js +0 -37
- package/fesm/interceptors/response-meta.interceptor.spec.js +0 -85
- package/fesm/interceptors/set-user-field-on-body.interceptor.js +0 -39
- package/fesm/interceptors/set-user-field-on-body.interceptor.spec.js +0 -124
- package/fesm/interceptors/slug.interceptor.js +0 -65
- package/fesm/interceptors/slug.interceptor.spec.js +0 -106
- package/fesm/interfaces/ai-assistant-adapter.interface.js +0 -3
- package/fesm/interfaces/api.interface.js +0 -1
- package/fesm/interfaces/datasource.interface.js +0 -1
- package/fesm/interfaces/event-bus.interface.js +0 -1
- package/fesm/interfaces/event-manager-adapter.interface.js +0 -1
- package/fesm/interfaces/identity.interface.js +0 -1
- package/fesm/interfaces/logged-user-info.interface.js +0 -3
- package/fesm/interfaces/module-config.interface.js +0 -5
- package/fesm/interfaces/notification-adapter.interface.js +0 -1
- package/fesm/interfaces/permission-sync-adapter.interface.js +0 -1
- package/fesm/interfaces/permission.interface.js +0 -1
- package/fesm/middlewares/logger.middleware.js +0 -235
- package/fesm/middlewares/logger.middleware.spec.js +0 -459
- package/fesm/modules/cache/cache.module.js +0 -29
- package/fesm/modules/cache/cache.module.spec.js +0 -44
- package/fesm/modules/datasource/index.js +0 -1
- package/fesm/modules/datasource/multi-tenant-datasource.service.js +0 -212
- package/fesm/modules/datasource/multi-tenant-datasource.service.spec.js +0 -377
- package/fesm/modules/event-bus/event-bus.explorer.js +0 -114
- package/fesm/modules/event-bus/event-bus.explorer.spec.js +0 -185
- package/fesm/modules/event-bus/event-bus.integration.spec.js +0 -249
- package/fesm/modules/event-bus/event-bus.module.js +0 -84
- package/fesm/modules/event-bus/event-bus.module.spec.js +0 -145
- package/fesm/modules/event-bus/module-events.provider.js +0 -26
- package/fesm/modules/event-bus/module-events.provider.spec.js +0 -52
- package/fesm/modules/shared-permission-cache/shared-permission-cache.module.js +0 -22
- package/fesm/modules/shared-permission-cache/shared-permission-cache.service.js +0 -91
- package/fesm/modules/shared-permission-cache/shared-permission-cache.service.spec.js +0 -161
- package/fesm/modules/utils/utils.module.js +0 -22
- package/fesm/modules/utils/utils.service.js +0 -66
- package/fesm/modules/utils/utils.service.spec.js +0 -165
- package/fesm/utils/date-time.util.js +0 -70
- package/fesm/utils/date-time.util.spec.js +0 -80
- package/fesm/utils/event-pattern.util.js +0 -91
- package/fesm/utils/event-pattern.util.spec.js +0 -247
- package/fesm/utils/html-sanitizer.util.js +0 -69
- package/fesm/utils/html-sanitizer.util.spec.js +0 -72
- package/fesm/utils/optional-module.util.js +0 -25
- package/fesm/utils/optional-module.util.spec.js +0 -10
- package/fesm/utils/permission-cache-key.util.js +0 -10
- package/fesm/utils/permission-cache-key.util.spec.js +0 -84
- package/fesm/utils/query-helpers.util.js +0 -85
- package/fesm/utils/query-helpers.util.spec.js +0 -205
- package/fesm/utils/request.util.js +0 -81
- package/fesm/utils/request.util.spec.js +0 -245
- package/fesm/utils/string.util.js +0 -71
- package/fesm/utils/string.util.spec.js +0 -59
package/fesm/667.js
ADDED
|
@@ -0,0 +1,606 @@
|
|
|
1
|
+
import { SnakeNamingStrategy } from "typeorm-naming-strategies";
|
|
2
|
+
export const __rspack_esm_id = 667;
|
|
3
|
+
export const __rspack_esm_ids = [667];
|
|
4
|
+
export const __webpack_modules__ = {
|
|
5
|
+
686(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
6
|
+
|
|
7
|
+
// EXPORTS
|
|
8
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
9
|
+
vd: () => (/* reexport */ CacheModule),
|
|
10
|
+
K6: () => (/* reexport */ EventBusExplorer),
|
|
11
|
+
Zv: () => (/* reexport */ EventBusModule),
|
|
12
|
+
Ct: () => (/* reexport */ MultiTenantDataSourceService),
|
|
13
|
+
nE: () => (/* reexport */ SharedPermissionCacheModule),
|
|
14
|
+
U8: () => (/* reexport */ shared_permission_cache_service/* .SharedPermissionCacheService */.U),
|
|
15
|
+
uh: () => (/* reexport */ UtilsModule),
|
|
16
|
+
TJ: () => (/* reexport */ utils_service/* .UtilsService */.T),
|
|
17
|
+
fv: () => (/* reexport */ createModuleEventsProvider),
|
|
18
|
+
Ri: () => (/* reexport */ moduleEventsToken)
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// EXTERNAL MODULE: ./projects/nestjs-shared/src/classes/hybrid-cache.class.ts + 3 modules
|
|
22
|
+
var hybrid_cache_class = __webpack_require__(375);
|
|
23
|
+
// EXTERNAL MODULE: ./projects/nestjs-shared/src/constants/index.ts
|
|
24
|
+
var constants = __webpack_require__(43);
|
|
25
|
+
// EXTERNAL MODULE: external "@nestjs/common"
|
|
26
|
+
var common_ = __webpack_require__(157);
|
|
27
|
+
;// CONCATENATED MODULE: ./projects/nestjs-shared/src/modules/cache/cache.module.ts
|
|
28
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
29
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
30
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
31
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
32
|
+
} else {
|
|
33
|
+
for(var i = decorators.length - 1; i >= 0; i--){
|
|
34
|
+
if (d = decorators[i]) {
|
|
35
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class CacheModule {
|
|
45
|
+
static forRoot(isGlobal = true, memoryTtl = 60_000, memorySize = 5000) {
|
|
46
|
+
return {
|
|
47
|
+
module: CacheModule,
|
|
48
|
+
global: isGlobal,
|
|
49
|
+
providers: [
|
|
50
|
+
{
|
|
51
|
+
provide: constants/* .CACHE_INSTANCE */.zl,
|
|
52
|
+
useFactory: ()=>new hybrid_cache_class/* .HybridCache */.l(memoryTtl, memorySize)
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
exports: [
|
|
56
|
+
constants/* .CACHE_INSTANCE */.zl
|
|
57
|
+
]
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
CacheModule = _ts_decorate([
|
|
62
|
+
(0,common_.Module)({})
|
|
63
|
+
], CacheModule);
|
|
64
|
+
|
|
65
|
+
// EXTERNAL MODULE: external "@flusys/nestjs-core"
|
|
66
|
+
var nestjs_core_ = __webpack_require__(436);
|
|
67
|
+
// EXTERNAL MODULE: ./projects/nestjs-shared/src/constants/message-keys.ts
|
|
68
|
+
var message_keys = __webpack_require__(389);
|
|
69
|
+
// EXTERNAL MODULE: external "@nestjs/core"
|
|
70
|
+
var core_ = __webpack_require__(75);
|
|
71
|
+
// EXTERNAL MODULE: external "typeorm"
|
|
72
|
+
var external_typeorm_ = __webpack_require__(158);
|
|
73
|
+
;// CONCATENATED MODULE: external "typeorm-naming-strategies"
|
|
74
|
+
|
|
75
|
+
;// CONCATENATED MODULE: ./projects/nestjs-shared/src/modules/datasource/multi-tenant-datasource.service.ts
|
|
76
|
+
function multi_tenant_datasource_service_ts_decorate(decorators, target, key, desc) {
|
|
77
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
78
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
79
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
80
|
+
} else {
|
|
81
|
+
for(var i = decorators.length - 1; i >= 0; i--){
|
|
82
|
+
if (d = decorators[i]) {
|
|
83
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
88
|
+
}
|
|
89
|
+
function _ts_metadata(metadataKey, metadataValue) {
|
|
90
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
91
|
+
return Reflect.metadata(metadataKey, metadataValue);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function _ts_param(paramIndex, decorator) {
|
|
95
|
+
return function(target, key) {
|
|
96
|
+
decorator(target, key, paramIndex);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class MultiTenantDataSourceService {
|
|
106
|
+
options;
|
|
107
|
+
request;
|
|
108
|
+
static tenantConnections = new Map();
|
|
109
|
+
static singleDataSource = null;
|
|
110
|
+
static tenantsRegistry = new Map();
|
|
111
|
+
static initialized = false;
|
|
112
|
+
static connectionLocks = new Map();
|
|
113
|
+
static singleConnectionLock = null;
|
|
114
|
+
tenantHeader = nestjs_core_.DEFAULT_TENANT_HEADER;
|
|
115
|
+
constructor(options, request){
|
|
116
|
+
this.options = options;
|
|
117
|
+
this.request = request;
|
|
118
|
+
this.initializeFromOptions();
|
|
119
|
+
}
|
|
120
|
+
get self() {
|
|
121
|
+
return this.constructor;
|
|
122
|
+
}
|
|
123
|
+
initializeFromOptions() {
|
|
124
|
+
if (!this.options) return;
|
|
125
|
+
if (!this.self.initialized) {
|
|
126
|
+
this.registerTenants();
|
|
127
|
+
this.self.initialized = true;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
registerTenants() {
|
|
131
|
+
this.options?.tenants?.forEach((tenant)=>{
|
|
132
|
+
this.self.tenantsRegistry.set(tenant.id, tenant);
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
getDatabaseMode() {
|
|
136
|
+
return this.options?.bootstrapAppConfig?.databaseMode ?? 'single';
|
|
137
|
+
}
|
|
138
|
+
isMultiTenant() {
|
|
139
|
+
return this.getDatabaseMode() === 'multi-tenant';
|
|
140
|
+
}
|
|
141
|
+
getCurrentTenantId() {
|
|
142
|
+
if (!this.request) return null;
|
|
143
|
+
const tenantId = this.request.headers[this.tenantHeader];
|
|
144
|
+
if (!tenantId) return null;
|
|
145
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(tenantId)) {
|
|
146
|
+
throw new common_.BadRequestException({
|
|
147
|
+
message: 'Invalid tenant ID format',
|
|
148
|
+
messageKey: message_keys/* .SYSTEM_MESSAGES.INVALID_TENANT_ID */.hg.INVALID_TENANT_ID
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return tenantId;
|
|
152
|
+
}
|
|
153
|
+
getCurrentTenant() {
|
|
154
|
+
const tenantId = this.getCurrentTenantId();
|
|
155
|
+
return tenantId ? this.getTenant(tenantId) : null;
|
|
156
|
+
}
|
|
157
|
+
getTenant(tenantId) {
|
|
158
|
+
return this.self.tenantsRegistry.get(tenantId) ?? null;
|
|
159
|
+
}
|
|
160
|
+
async getDataSource() {
|
|
161
|
+
return this.isMultiTenant() ? this.getTenantDataSource() : this.getSingleDataSource();
|
|
162
|
+
}
|
|
163
|
+
async getRepository(entity) {
|
|
164
|
+
const dataSource = await this.getDataSource();
|
|
165
|
+
return dataSource.getRepository(entity);
|
|
166
|
+
}
|
|
167
|
+
async closeTenantConnection(tenantId) {
|
|
168
|
+
const connection = this.self.tenantConnections.get(tenantId);
|
|
169
|
+
if (connection?.isInitialized) {
|
|
170
|
+
await connection.destroy();
|
|
171
|
+
this.self.tenantConnections.delete(tenantId);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async onModuleDestroy() {
|
|
175
|
+
for (const [tenantId] of this.self.tenantConnections){
|
|
176
|
+
await this.closeTenantConnection(tenantId);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
async getSingleDataSource() {
|
|
180
|
+
if (this.self.singleDataSource?.isInitialized) {
|
|
181
|
+
return this.self.singleDataSource;
|
|
182
|
+
}
|
|
183
|
+
if (this.self.singleConnectionLock) {
|
|
184
|
+
return this.self.singleConnectionLock;
|
|
185
|
+
}
|
|
186
|
+
const config = this.getDefaultDatabaseConfig();
|
|
187
|
+
if (!config) {
|
|
188
|
+
throw new common_.InternalServerErrorException({
|
|
189
|
+
message: 'No database config available. Provide defaultDatabaseConfig or tenantDefaultDatabaseConfig.',
|
|
190
|
+
messageKey: message_keys/* .SYSTEM_MESSAGES.DATABASE_CONFIG_NOT_AVAILABLE */.hg.DATABASE_CONFIG_NOT_AVAILABLE
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
const connectionPromise = this.createDataSourceFromConfig(config);
|
|
194
|
+
this.self.singleConnectionLock = connectionPromise;
|
|
195
|
+
try {
|
|
196
|
+
const dataSource = await connectionPromise;
|
|
197
|
+
this.self.singleDataSource = dataSource;
|
|
198
|
+
return dataSource;
|
|
199
|
+
} finally{
|
|
200
|
+
this.self.singleConnectionLock = null;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
async getTenantDataSource() {
|
|
204
|
+
const tenant = this.getCurrentTenant();
|
|
205
|
+
if (!tenant) {
|
|
206
|
+
throw new common_.BadRequestException({
|
|
207
|
+
message: `Tenant not found. Ensure '${this.tenantHeader}' header is set.`,
|
|
208
|
+
messageKey: message_keys/* .SYSTEM_MESSAGES.TENANT_HEADER_REQUIRED */.hg.TENANT_HEADER_REQUIRED,
|
|
209
|
+
messageVariables: {
|
|
210
|
+
header: this.tenantHeader
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
return this.getOrCreateTenantConnection(tenant);
|
|
215
|
+
}
|
|
216
|
+
async getOrCreateTenantConnection(tenant) {
|
|
217
|
+
const existing = this.self.tenantConnections.get(tenant.id);
|
|
218
|
+
if (existing?.isInitialized) return existing;
|
|
219
|
+
const pendingConnection = this.self.connectionLocks.get(tenant.id);
|
|
220
|
+
if (pendingConnection) return pendingConnection;
|
|
221
|
+
const config = this.buildTenantDatabaseConfig(tenant);
|
|
222
|
+
const connectionPromise = this.createDataSourceFromConfig(config);
|
|
223
|
+
this.self.connectionLocks.set(tenant.id, connectionPromise);
|
|
224
|
+
try {
|
|
225
|
+
const dataSource = await connectionPromise;
|
|
226
|
+
this.self.tenantConnections.set(tenant.id, dataSource);
|
|
227
|
+
return dataSource;
|
|
228
|
+
} finally{
|
|
229
|
+
this.self.connectionLocks.delete(tenant.id);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
getDefaultDatabaseConfig() {
|
|
233
|
+
return this.options?.defaultDatabaseConfig ?? this.options?.tenantDefaultDatabaseConfig;
|
|
234
|
+
}
|
|
235
|
+
buildTenantDatabaseConfig(tenant) {
|
|
236
|
+
const defaultConfig = this.getDefaultDatabaseConfig();
|
|
237
|
+
if (!defaultConfig) {
|
|
238
|
+
throw new common_.InternalServerErrorException({
|
|
239
|
+
message: 'No default database config for multi-tenant mode.',
|
|
240
|
+
messageKey: message_keys/* .SYSTEM_MESSAGES.DATABASE_CONFIG_NOT_AVAILABLE */.hg.DATABASE_CONFIG_NOT_AVAILABLE
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
type: defaultConfig.type,
|
|
245
|
+
host: tenant.host ?? defaultConfig.host,
|
|
246
|
+
port: tenant.port ?? defaultConfig.port,
|
|
247
|
+
username: tenant.username ?? defaultConfig.username,
|
|
248
|
+
password: tenant.password ?? defaultConfig.password,
|
|
249
|
+
database: tenant.database
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
async createDataSourceFromConfig(config, entities = []) {
|
|
253
|
+
const dataSource = new external_typeorm_.DataSource({
|
|
254
|
+
type: config.type,
|
|
255
|
+
host: config.host,
|
|
256
|
+
port: config.port,
|
|
257
|
+
username: config.username,
|
|
258
|
+
password: config.password,
|
|
259
|
+
database: config.database,
|
|
260
|
+
entities,
|
|
261
|
+
synchronize: false,
|
|
262
|
+
namingStrategy: new SnakeNamingStrategy()
|
|
263
|
+
});
|
|
264
|
+
if (!dataSource.isInitialized) await dataSource.initialize();
|
|
265
|
+
return dataSource;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
MultiTenantDataSourceService = multi_tenant_datasource_service_ts_decorate([
|
|
269
|
+
(0,common_.Injectable)({
|
|
270
|
+
scope: common_.Scope.REQUEST
|
|
271
|
+
}),
|
|
272
|
+
_ts_param(0, (0,common_.Optional)()),
|
|
273
|
+
_ts_param(0, (0,common_.Inject)(nestjs_core_.MODULE_OPTIONS)),
|
|
274
|
+
_ts_param(1, (0,common_.Optional)()),
|
|
275
|
+
_ts_param(1, (0,common_.Inject)(core_.REQUEST)),
|
|
276
|
+
_ts_metadata("design:type", Function),
|
|
277
|
+
_ts_metadata("design:paramtypes", [
|
|
278
|
+
typeof IDataSourceServiceOptions === "undefined" ? Object : IDataSourceServiceOptions,
|
|
279
|
+
typeof Request === "undefined" ? Object : Request
|
|
280
|
+
])
|
|
281
|
+
], MultiTenantDataSourceService);
|
|
282
|
+
|
|
283
|
+
;// CONCATENATED MODULE: ./projects/nestjs-shared/src/modules/datasource/index.ts
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
;// CONCATENATED MODULE: ./projects/nestjs-shared/src/modules/event-bus/event-bus.explorer.ts
|
|
287
|
+
function event_bus_explorer_ts_decorate(decorators, target, key, desc) {
|
|
288
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
289
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
290
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
291
|
+
} else {
|
|
292
|
+
for(var i = decorators.length - 1; i >= 0; i--){
|
|
293
|
+
if (d = decorators[i]) {
|
|
294
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
299
|
+
}
|
|
300
|
+
function event_bus_explorer_ts_metadata(metadataKey, metadataValue) {
|
|
301
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
302
|
+
return Reflect.metadata(metadataKey, metadataValue);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
function event_bus_explorer_ts_param(paramIndex, decorator) {
|
|
306
|
+
return function(target, key) {
|
|
307
|
+
decorator(target, key, paramIndex);
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
class EventBusExplorer {
|
|
314
|
+
eventBus;
|
|
315
|
+
discovery;
|
|
316
|
+
metadataScanner;
|
|
317
|
+
logger = new common_.Logger(EventBusExplorer.name);
|
|
318
|
+
// NOTE: @Inject() required for bundled code - type metadata may be lost during esbuild
|
|
319
|
+
// @Optional() so nothing here is a hard dependency on EventBusModule being registered
|
|
320
|
+
constructor(eventBus, discovery, metadataScanner){
|
|
321
|
+
this.eventBus = eventBus;
|
|
322
|
+
this.discovery = discovery;
|
|
323
|
+
this.metadataScanner = metadataScanner;
|
|
324
|
+
}
|
|
325
|
+
async onApplicationBootstrap() {
|
|
326
|
+
const bus = this.eventBus;
|
|
327
|
+
if (!bus) return;
|
|
328
|
+
const wrappers = [
|
|
329
|
+
...this.discovery.getProviders(),
|
|
330
|
+
...this.discovery.getControllers()
|
|
331
|
+
];
|
|
332
|
+
// The same provider is returned once per module that registers it; binding
|
|
333
|
+
// it twice would run every handler twice for a single event.
|
|
334
|
+
const seen = new Set();
|
|
335
|
+
let bound = 0;
|
|
336
|
+
for (const wrapper of wrappers){
|
|
337
|
+
const instance = wrapper.instance;
|
|
338
|
+
if (!instance || typeof instance !== 'object' || wrapper.isNotMetatype) {
|
|
339
|
+
this.warnIfUnreachableConsumer(wrapper);
|
|
340
|
+
continue;
|
|
341
|
+
}
|
|
342
|
+
if (seen.has(instance)) continue;
|
|
343
|
+
seen.add(instance);
|
|
344
|
+
bound += await this.bindInstance(instance, bus);
|
|
345
|
+
}
|
|
346
|
+
if (bound) {
|
|
347
|
+
const active = bus.getActiveTransports();
|
|
348
|
+
this.logger.log(`Bound ${bound} domain event handler(s); transport '${bus.getTransportLabel()}' ` + `live over ${active.length ? active.join(', ') : 'no transport'}`);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
async bindInstance(instance, bus) {
|
|
352
|
+
const prototype = Object.getPrototypeOf(instance);
|
|
353
|
+
if (!prototype) return 0;
|
|
354
|
+
let bound = 0;
|
|
355
|
+
for (const methodName of this.metadataScanner.getAllMethodNames(prototype)){
|
|
356
|
+
const method = instance[methodName];
|
|
357
|
+
const patterns = this.readPatterns(method);
|
|
358
|
+
if (!patterns.length) continue;
|
|
359
|
+
const handler = method;
|
|
360
|
+
for (const pattern of patterns){
|
|
361
|
+
await bus.subscribe(pattern, (event)=>handler.call(instance, event));
|
|
362
|
+
bound++;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return bound;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* A request scoped provider has no singleton instance to bind, so its
|
|
369
|
+
* handlers would never run - that must not fail silently.
|
|
370
|
+
*/ warnIfUnreachableConsumer(wrapper) {
|
|
371
|
+
const prototype = wrapper.metatype?.prototype;
|
|
372
|
+
if (wrapper.instance || !prototype) return;
|
|
373
|
+
const hasHandler = this.metadataScanner.getAllMethodNames(prototype).some((methodName)=>this.readPatterns(prototype[methodName]).length > 0);
|
|
374
|
+
if (hasHandler) {
|
|
375
|
+
this.logger.warn(`${wrapper.name} declares @OnDomainEvent methods but has no singleton instance ` + `(request scoped providers cannot consume events) - move the handler to a default scoped provider`);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
readPatterns(method) {
|
|
379
|
+
if (typeof method !== 'function') return [];
|
|
380
|
+
return Reflect.getMetadata(constants/* .DOMAIN_EVENT_HANDLER_KEY */.PT, method) ?? [];
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
EventBusExplorer = event_bus_explorer_ts_decorate([
|
|
384
|
+
(0,common_.Injectable)(),
|
|
385
|
+
event_bus_explorer_ts_param(0, (0,common_.Optional)()),
|
|
386
|
+
event_bus_explorer_ts_param(0, (0,common_.Inject)(constants/* .EVENT_BUS_INSTANCE */.Qj)),
|
|
387
|
+
event_bus_explorer_ts_param(1, (0,common_.Inject)(core_.DiscoveryService)),
|
|
388
|
+
event_bus_explorer_ts_param(2, (0,common_.Inject)(core_.MetadataScanner)),
|
|
389
|
+
event_bus_explorer_ts_metadata("design:type", Function),
|
|
390
|
+
event_bus_explorer_ts_metadata("design:paramtypes", [
|
|
391
|
+
Object,
|
|
392
|
+
typeof core_.DiscoveryService === "undefined" ? Object : core_.DiscoveryService,
|
|
393
|
+
typeof core_.MetadataScanner === "undefined" ? Object : core_.MetadataScanner
|
|
394
|
+
])
|
|
395
|
+
], EventBusExplorer);
|
|
396
|
+
|
|
397
|
+
// EXTERNAL MODULE: external "@flusys/nestjs-core/config"
|
|
398
|
+
var config_ = __webpack_require__(307);
|
|
399
|
+
// EXTERNAL MODULE: ./projects/nestjs-shared/src/classes/disabled-event-bus.class.ts
|
|
400
|
+
var disabled_event_bus_class = __webpack_require__(864);
|
|
401
|
+
// EXTERNAL MODULE: ./projects/nestjs-shared/src/classes/event-bus.registry.ts
|
|
402
|
+
var event_bus_registry = __webpack_require__(228);
|
|
403
|
+
// EXTERNAL MODULE: ./projects/nestjs-shared/src/classes/hybrid-event-bus.class.ts
|
|
404
|
+
var hybrid_event_bus_class = __webpack_require__(710);
|
|
405
|
+
;// CONCATENATED MODULE: ./projects/nestjs-shared/src/modules/event-bus/event-bus.module.ts
|
|
406
|
+
function event_bus_module_ts_decorate(decorators, target, key, desc) {
|
|
407
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
408
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
409
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
410
|
+
} else {
|
|
411
|
+
for(var i = decorators.length - 1; i >= 0; i--){
|
|
412
|
+
if (d = decorators[i]) {
|
|
413
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
class EventBusModule {
|
|
428
|
+
static forRoot(options = {}) {
|
|
429
|
+
const enabled = options.enabled ?? config_.envConfig.getBoolean('ENABLE_DOMAIN_EVENTS', false);
|
|
430
|
+
return enabled ? this.enabledModule(options) : this.disabledModule(options);
|
|
431
|
+
}
|
|
432
|
+
static enabledModule(options) {
|
|
433
|
+
return {
|
|
434
|
+
module: EventBusModule,
|
|
435
|
+
global: options.global ?? true,
|
|
436
|
+
imports: [
|
|
437
|
+
core_.DiscoveryModule
|
|
438
|
+
],
|
|
439
|
+
providers: [
|
|
440
|
+
{
|
|
441
|
+
provide: constants/* .EVENT_BUS_MODULE_OPTIONS */.SL,
|
|
442
|
+
useValue: options
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
provide: constants/* .EVENT_BUS_INSTANCE */.Qj,
|
|
446
|
+
useFactory: ()=>{
|
|
447
|
+
const bus = new hybrid_event_bus_class/* .HybridEventBus */.Z(options);
|
|
448
|
+
event_bus_registry/* .EventBusRegistry.setBus */.q.setBus(bus);
|
|
449
|
+
event_bus_registry/* .EventBusRegistry.setDefaultModuleEvents */.q.setDefaultModuleEvents(options.defaultModuleEvents ?? {});
|
|
450
|
+
return bus;
|
|
451
|
+
}
|
|
452
|
+
},
|
|
453
|
+
EventBusExplorer
|
|
454
|
+
],
|
|
455
|
+
exports: [
|
|
456
|
+
constants/* .EVENT_BUS_INSTANCE */.Qj,
|
|
457
|
+
constants/* .EVENT_BUS_MODULE_OPTIONS */.SL
|
|
458
|
+
]
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* The explorer is left out, so no handler is bound and nothing ever calls
|
|
463
|
+
* `subscribe` - which is what would otherwise open a broker connection. The
|
|
464
|
+
* bus is not registered either, so every `publishDomainEvent` call is a no-op
|
|
465
|
+
* rather than an error.
|
|
466
|
+
*/ static disabledModule(options) {
|
|
467
|
+
return {
|
|
468
|
+
module: EventBusModule,
|
|
469
|
+
global: options.global ?? true,
|
|
470
|
+
providers: [
|
|
471
|
+
{
|
|
472
|
+
provide: constants/* .EVENT_BUS_MODULE_OPTIONS */.SL,
|
|
473
|
+
useValue: options
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
provide: constants/* .EVENT_BUS_INSTANCE */.Qj,
|
|
477
|
+
useFactory: ()=>{
|
|
478
|
+
new common_.Logger(EventBusModule.name).log('Domain events are disabled - set ENABLE_DOMAIN_EVENTS=true to publish and consume them');
|
|
479
|
+
return new disabled_event_bus_class/* .DisabledEventBus */.X();
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
],
|
|
483
|
+
exports: [
|
|
484
|
+
constants/* .EVENT_BUS_INSTANCE */.Qj,
|
|
485
|
+
constants/* .EVENT_BUS_MODULE_OPTIONS */.SL
|
|
486
|
+
]
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
async onApplicationShutdown() {
|
|
490
|
+
await event_bus_registry/* .EventBusRegistry */.q.getBus()?.close();
|
|
491
|
+
event_bus_registry/* .EventBusRegistry.reset */.q.reset();
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
EventBusModule = event_bus_module_ts_decorate([
|
|
495
|
+
(0,common_.Module)({})
|
|
496
|
+
], EventBusModule);
|
|
497
|
+
|
|
498
|
+
;// CONCATENATED MODULE: ./projects/nestjs-shared/src/modules/event-bus/module-events.provider.ts
|
|
499
|
+
|
|
500
|
+
const moduleEventsToken = (moduleName)=>`${moduleName.toUpperCase().replace(/-/g, '_')}_EVENTS_CONFIG`;
|
|
501
|
+
const providerCache = new Map();
|
|
502
|
+
/**
|
|
503
|
+
* Registers a feature package's `events` block so every ApiService in that
|
|
504
|
+
* module starts publishing. Add it to the module's own providers:
|
|
505
|
+
*
|
|
506
|
+
* providers: [createModuleEventsProvider('storage', STORAGE_MODULE_OPTIONS)]
|
|
507
|
+
*/ function createModuleEventsProvider(moduleName, optionsToken) {
|
|
508
|
+
const cacheKey = `${moduleName}|${optionsToken}`;
|
|
509
|
+
const cached = providerCache.get(cacheKey);
|
|
510
|
+
if (cached) return cached;
|
|
511
|
+
const provider = {
|
|
512
|
+
provide: moduleEventsToken(moduleName),
|
|
513
|
+
useFactory: (options)=>{
|
|
514
|
+
const events = options?.config?.events ?? {};
|
|
515
|
+
event_bus_registry/* .EventBusRegistry.configureModule */.q.configureModule(moduleName, events);
|
|
516
|
+
return events;
|
|
517
|
+
},
|
|
518
|
+
inject: [
|
|
519
|
+
optionsToken
|
|
520
|
+
]
|
|
521
|
+
};
|
|
522
|
+
providerCache.set(cacheKey, provider);
|
|
523
|
+
return provider;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
// EXTERNAL MODULE: ./projects/nestjs-shared/src/modules/shared-permission-cache/shared-permission-cache.service.ts
|
|
527
|
+
var shared_permission_cache_service = __webpack_require__(657);
|
|
528
|
+
;// CONCATENATED MODULE: ./projects/nestjs-shared/src/modules/shared-permission-cache/shared-permission-cache.module.ts
|
|
529
|
+
function shared_permission_cache_module_ts_decorate(decorators, target, key, desc) {
|
|
530
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
531
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
532
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
533
|
+
} else {
|
|
534
|
+
for(var i = decorators.length - 1; i >= 0; i--){
|
|
535
|
+
if (d = decorators[i]) {
|
|
536
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
class SharedPermissionCacheModule {
|
|
545
|
+
}
|
|
546
|
+
SharedPermissionCacheModule = shared_permission_cache_module_ts_decorate([
|
|
547
|
+
(0,common_.Global)(),
|
|
548
|
+
(0,common_.Module)({
|
|
549
|
+
imports: [],
|
|
550
|
+
providers: [
|
|
551
|
+
shared_permission_cache_service/* .SharedPermissionCacheService */.U
|
|
552
|
+
],
|
|
553
|
+
exports: [
|
|
554
|
+
shared_permission_cache_service/* .SharedPermissionCacheService */.U
|
|
555
|
+
]
|
|
556
|
+
})
|
|
557
|
+
], SharedPermissionCacheModule);
|
|
558
|
+
|
|
559
|
+
// EXTERNAL MODULE: ./projects/nestjs-shared/src/modules/utils/utils.service.ts
|
|
560
|
+
var utils_service = __webpack_require__(169);
|
|
561
|
+
;// CONCATENATED MODULE: ./projects/nestjs-shared/src/modules/utils/utils.module.ts
|
|
562
|
+
function utils_module_ts_decorate(decorators, target, key, desc) {
|
|
563
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
564
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
565
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
566
|
+
} else {
|
|
567
|
+
for(var i = decorators.length - 1; i >= 0; i--){
|
|
568
|
+
if (d = decorators[i]) {
|
|
569
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
class UtilsModule {
|
|
578
|
+
}
|
|
579
|
+
UtilsModule = utils_module_ts_decorate([
|
|
580
|
+
(0,common_.Global)(),
|
|
581
|
+
(0,common_.Module)({
|
|
582
|
+
imports: [],
|
|
583
|
+
providers: [
|
|
584
|
+
utils_service/* .UtilsService */.T
|
|
585
|
+
],
|
|
586
|
+
exports: [
|
|
587
|
+
utils_service/* .UtilsService */.T
|
|
588
|
+
]
|
|
589
|
+
})
|
|
590
|
+
], UtilsModule);
|
|
591
|
+
|
|
592
|
+
;// CONCATENATED MODULE: ./projects/nestjs-shared/src/modules/index.ts
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
},
|
|
605
|
+
|
|
606
|
+
};
|