@edifice.io/edifice-nestjs-core 1.0.0 → 1.0.3-develop.20260513125613
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 +43 -2
- package/dist/appregistry/appregistry.service.js +2 -2
- package/dist/appregistry/appregistry.service.js.map +1 -1
- package/dist/bin/generate-rest-clients.d.ts +2 -0
- package/dist/bin/generate-rest-clients.js +581 -0
- package/dist/bin/generate-rest-clients.js.map +1 -0
- package/dist/bin/generate-swagger-pdf.d.ts +1 -0
- package/dist/bin/generate-swagger-pdf.js +172 -0
- package/dist/bin/generate-swagger-pdf.js.map +1 -0
- package/dist/config/configuration.d.ts +23 -0
- package/dist/config/configuration.js +39 -0
- package/dist/config/configuration.js.map +1 -1
- package/dist/config/postgres.config.js +2 -0
- package/dist/config/postgres.config.js.map +1 -1
- package/dist/core.module.js +22 -9
- package/dist/core.module.js.map +1 -1
- package/dist/database/migration.service.js +3 -3
- package/dist/database/migration.service.js.map +1 -1
- package/dist/frontend.controller.js +6 -6
- package/dist/frontend.controller.js.map +1 -1
- package/dist/health/health.controller.js +2 -2
- package/dist/health/health.controller.js.map +1 -1
- package/dist/i18n/i18n-bootstrap.service.d.ts +13 -0
- package/dist/i18n/i18n-bootstrap.service.js +54 -0
- package/dist/i18n/i18n-bootstrap.service.js.map +1 -0
- package/dist/i18n/i18n-lifecycle.controller.d.ts +17 -0
- package/dist/i18n/i18n-lifecycle.controller.js +55 -0
- package/dist/i18n/i18n-lifecycle.controller.js.map +1 -0
- package/dist/i18n/i18n.module.js +4 -1
- package/dist/i18n/i18n.module.js.map +1 -1
- package/dist/i18n/i18n.service.d.ts +1 -0
- package/dist/i18n/i18n.service.js +8 -0
- package/dist/i18n/i18n.service.js.map +1 -1
- package/dist/i18n/index.d.ts +2 -3
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/logger/request-logger.service.js +3 -2
- package/dist/logger/request-logger.service.js.map +1 -1
- package/dist/performance/copy-metadata.utils.d.ts +1 -0
- package/dist/performance/copy-metadata.utils.js +9 -0
- package/dist/performance/copy-metadata.utils.js.map +1 -0
- package/dist/performance/correlation.interceptor.d.ts +5 -0
- package/dist/performance/correlation.interceptor.js +28 -0
- package/dist/performance/correlation.interceptor.js.map +1 -0
- package/dist/performance/index.d.ts +4 -0
- package/dist/performance/index.js +16 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/performance/performance-stats.d.ts +26 -0
- package/dist/performance/performance-stats.js +57 -0
- package/dist/performance/performance-stats.js.map +1 -0
- package/dist/performance/performance.decorator.d.ts +11 -0
- package/dist/performance/performance.decorator.js +56 -0
- package/dist/performance/performance.decorator.js.map +1 -0
- package/dist/performance/performance.module.d.ts +5 -0
- package/dist/performance/performance.module.js +38 -0
- package/dist/performance/performance.module.js.map +1 -0
- package/dist/permission/admc.guard.d.ts +0 -3
- package/dist/permission/admc.guard.js +1 -18
- package/dist/permission/admc.guard.js.map +1 -1
- package/dist/permission/basicauth.guard.d.ts +12 -0
- package/dist/permission/basicauth.guard.js +54 -0
- package/dist/permission/basicauth.guard.js.map +1 -0
- package/dist/permission/decorators.d.ts +10 -0
- package/dist/permission/decorators.js +20 -0
- package/dist/permission/decorators.js.map +1 -0
- package/dist/permission/global.guard.d.ts +16 -0
- package/dist/permission/global.guard.js +68 -0
- package/dist/permission/global.guard.js.map +1 -0
- package/dist/permission/index.d.ts +4 -3
- package/dist/permission/index.js +4 -3
- package/dist/permission/index.js.map +1 -1
- package/dist/permission/permission.guard.d.ts +1 -1
- package/dist/permission/permission.guard.js +2 -18
- package/dist/permission/permission.guard.js.map +1 -1
- package/dist/permission/require-login.guard.d.ts +8 -0
- package/dist/permission/require-login.guard.js +49 -0
- package/dist/permission/require-login.guard.js.map +1 -0
- package/dist/redirect/redirect-lifecycle.controller.d.ts +15 -0
- package/dist/redirect/redirect-lifecycle.controller.js +48 -0
- package/dist/redirect/redirect-lifecycle.controller.js.map +1 -0
- package/dist/redirect/redirect.module.d.ts +2 -0
- package/dist/redirect/redirect.module.js +25 -0
- package/dist/redirect/redirect.module.js.map +1 -0
- package/dist/redirect/redirect.service.d.ts +28 -0
- package/dist/redirect/redirect.service.js +154 -0
- package/dist/redirect/redirect.service.js.map +1 -0
- package/dist/session/frontend-session.middleware.d.ts +10 -0
- package/dist/session/frontend-session.middleware.js +40 -0
- package/dist/session/frontend-session.middleware.js.map +1 -0
- package/dist/session/query-param-token.middleware.d.ts +11 -0
- package/dist/session/query-param-token.middleware.js +68 -0
- package/dist/session/query-param-token.middleware.js.map +1 -0
- package/dist/session/session-middleware.utils.d.ts +17 -0
- package/dist/session/session-middleware.utils.js +82 -0
- package/dist/session/session-middleware.utils.js.map +1 -0
- package/dist/session/session.middleware.d.ts +8 -8
- package/dist/session/session.middleware.js +29 -47
- package/dist/session/session.middleware.js.map +1 -1
- package/dist/session/session.module.js +14 -2
- package/dist/session/session.module.js.map +1 -1
- package/dist/timeline/index.d.ts +2 -3
- package/dist/timeline/index.js +2 -2
- package/dist/timeline/index.js.map +1 -1
- package/dist/timeline/timeline-i18n-bootstrap.service.d.ts +13 -0
- package/dist/timeline/timeline-i18n-bootstrap.service.js +54 -0
- package/dist/timeline/timeline-i18n-bootstrap.service.js.map +1 -0
- package/dist/timeline/timeline-lifecycle.controller.d.ts +17 -0
- package/dist/timeline/timeline-lifecycle.controller.js +55 -0
- package/dist/timeline/timeline-lifecycle.controller.js.map +1 -0
- package/dist/timeline/timeline.module.js +4 -1
- package/dist/timeline/timeline.module.js.map +1 -1
- package/dist/timeline/timeline.service.d.ts +11 -0
- package/dist/timeline/timeline.service.js +98 -13
- package/dist/timeline/timeline.service.js.map +1 -1
- package/dist/timeline/timeline.types.d.ts +8 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/static-assets.utils.js +1 -1
- package/dist/utils/static-assets.utils.js.map +1 -1
- package/package.json +19 -12
- package/dist/permission/admc.decorator.d.ts +0 -2
- package/dist/permission/admc.decorator.js +0 -11
- package/dist/permission/admc.decorator.js.map +0 -1
- package/dist/permission/permission.decorator.d.ts +0 -2
- package/dist/permission/permission.decorator.js +0 -8
- package/dist/permission/permission.decorator.js.map +0 -1
- package/dist/permission/public.decorator.d.ts +0 -2
- package/dist/permission/public.decorator.js +0 -8
- package/dist/permission/public.decorator.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/timeline/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,mDAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/timeline/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,mDAAiC;AACjC,kEAAgD;AAChD,oEAAkD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OnApplicationBootstrap } from '@nestjs/common';
|
|
2
|
+
import { ConfigService } from '@nestjs/config';
|
|
3
|
+
import { TimelineService } from './timeline.service';
|
|
4
|
+
export declare class TimelineI18nBootstrapService implements OnApplicationBootstrap {
|
|
5
|
+
private readonly timelineService;
|
|
6
|
+
private readonly configService;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
private readonly maxAttempts;
|
|
9
|
+
private readonly delayMs;
|
|
10
|
+
constructor(timelineService: TimelineService, configService: ConfigService);
|
|
11
|
+
onApplicationBootstrap(): Promise<void>;
|
|
12
|
+
private tryRegister;
|
|
13
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var TimelineI18nBootstrapService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.TimelineI18nBootstrapService = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const config_1 = require("@nestjs/config");
|
|
16
|
+
const timeline_service_1 = require("./timeline.service");
|
|
17
|
+
let TimelineI18nBootstrapService = TimelineI18nBootstrapService_1 = class TimelineI18nBootstrapService {
|
|
18
|
+
timelineService;
|
|
19
|
+
configService;
|
|
20
|
+
logger = new common_1.Logger(TimelineI18nBootstrapService_1.name);
|
|
21
|
+
maxAttempts;
|
|
22
|
+
delayMs;
|
|
23
|
+
constructor(timelineService, configService) {
|
|
24
|
+
this.timelineService = timelineService;
|
|
25
|
+
this.configService = configService;
|
|
26
|
+
this.maxAttempts =
|
|
27
|
+
this.configService.get('timeline.bootstrap.maxAttempts') ?? 3;
|
|
28
|
+
this.delayMs =
|
|
29
|
+
this.configService.get('timeline.bootstrap.delayMs') ?? 5000;
|
|
30
|
+
}
|
|
31
|
+
async onApplicationBootstrap() {
|
|
32
|
+
void this.tryRegister(1);
|
|
33
|
+
}
|
|
34
|
+
async tryRegister(attempt) {
|
|
35
|
+
try {
|
|
36
|
+
await this.timelineService.registerTimelineI18n();
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
if (attempt >= this.maxAttempts) {
|
|
40
|
+
this.logger.warn({ err: String(err), attempt, maxAttempts: this.maxAttempts }, 'Timeline i18n initial register exhausted retries');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.logger.warn({ err: String(err), attempt, delayMs: this.delayMs }, 'Timeline i18n initial register failed, retrying');
|
|
44
|
+
setTimeout(() => void this.tryRegister(attempt + 1), this.delayMs);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.TimelineI18nBootstrapService = TimelineI18nBootstrapService;
|
|
49
|
+
exports.TimelineI18nBootstrapService = TimelineI18nBootstrapService = TimelineI18nBootstrapService_1 = __decorate([
|
|
50
|
+
(0, common_1.Injectable)(),
|
|
51
|
+
__metadata("design:paramtypes", [timeline_service_1.TimelineService,
|
|
52
|
+
config_1.ConfigService])
|
|
53
|
+
], TimelineI18nBootstrapService);
|
|
54
|
+
//# sourceMappingURL=timeline-i18n-bootstrap.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-i18n-bootstrap.service.js","sourceRoot":"","sources":["../../src/timeline/timeline-i18n-bootstrap.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4E;AAC5E,2CAA+C;AAC/C,yDAAqD;AAG9C,IAAM,4BAA4B,oCAAlC,MAAM,4BAA4B;IAMpB;IACA;IANF,MAAM,GAAG,IAAI,eAAM,CAAC,8BAA4B,CAAC,IAAI,CAAC,CAAC;IACvD,WAAW,CAAS;IACpB,OAAO,CAAS;IAEjC,YACmB,eAAgC,EAChC,aAA4B;QAD5B,oBAAe,GAAf,eAAe,CAAiB;QAChC,kBAAa,GAAb,aAAa,CAAe;QAE7C,IAAI,CAAC,WAAW;YACd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,gCAAgC,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,4BAA4B,CAAC,IAAI,IAAI,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAAe;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAC5D,kDAAkD,CACnD,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EACpD,iDAAiD,CAClD,CAAC;YACF,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF,CAAA;AArCY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,mBAAU,GAAE;qCAOyB,kCAAe;QACjB,sBAAa;GAPpC,4BAA4B,CAqCxC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { NatsContext } from '@nestjs/microservices';
|
|
3
|
+
import { TimelineService } from './timeline.service';
|
|
4
|
+
interface ApplicationStatusPayload {
|
|
5
|
+
application?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class TimelineLifecycleController implements OnModuleInit {
|
|
9
|
+
private readonly timelineService;
|
|
10
|
+
private readonly logger;
|
|
11
|
+
private debounceTimer;
|
|
12
|
+
private static readonly DEBOUNCE_MS;
|
|
13
|
+
constructor(timelineService: TimelineService);
|
|
14
|
+
onModuleInit(): void;
|
|
15
|
+
onTimelineStarted(data: ApplicationStatusPayload, ctx: NatsContext): void;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var TimelineLifecycleController_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.TimelineLifecycleController = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
19
|
+
const timeline_service_1 = require("./timeline.service");
|
|
20
|
+
let TimelineLifecycleController = class TimelineLifecycleController {
|
|
21
|
+
static { TimelineLifecycleController_1 = this; }
|
|
22
|
+
timelineService;
|
|
23
|
+
logger = new common_1.Logger(TimelineLifecycleController_1.name);
|
|
24
|
+
debounceTimer = null;
|
|
25
|
+
static DEBOUNCE_MS = 5000;
|
|
26
|
+
constructor(timelineService) {
|
|
27
|
+
this.timelineService = timelineService;
|
|
28
|
+
this.logger.log('TimelineLifecycleController instantiated');
|
|
29
|
+
}
|
|
30
|
+
onModuleInit() {
|
|
31
|
+
this.logger.log('TimelineLifecycleController module init');
|
|
32
|
+
}
|
|
33
|
+
onTimelineStarted(data, ctx) {
|
|
34
|
+
this.logger.log({ subject: ctx.getSubject(), data }, 'Received application.timeline.start event');
|
|
35
|
+
if (this.debounceTimer)
|
|
36
|
+
clearTimeout(this.debounceTimer);
|
|
37
|
+
this.debounceTimer = setTimeout(() => {
|
|
38
|
+
void this.timelineService.replayLastRegistrations();
|
|
39
|
+
}, TimelineLifecycleController_1.DEBOUNCE_MS);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.TimelineLifecycleController = TimelineLifecycleController;
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, microservices_1.EventPattern)('application.timeline.start'),
|
|
45
|
+
__param(0, (0, microservices_1.Payload)()),
|
|
46
|
+
__param(1, (0, microservices_1.Ctx)()),
|
|
47
|
+
__metadata("design:type", Function),
|
|
48
|
+
__metadata("design:paramtypes", [Object, microservices_1.NatsContext]),
|
|
49
|
+
__metadata("design:returntype", void 0)
|
|
50
|
+
], TimelineLifecycleController.prototype, "onTimelineStarted", null);
|
|
51
|
+
exports.TimelineLifecycleController = TimelineLifecycleController = TimelineLifecycleController_1 = __decorate([
|
|
52
|
+
(0, common_1.Controller)(),
|
|
53
|
+
__metadata("design:paramtypes", [timeline_service_1.TimelineService])
|
|
54
|
+
], TimelineLifecycleController);
|
|
55
|
+
//# sourceMappingURL=timeline-lifecycle.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-lifecycle.controller.js","sourceRoot":"","sources":["../../src/timeline/timeline-lifecycle.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAkE;AAClE,yDAAgF;AAChF,yDAAqD;AAQ9C,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;;IAKT;IAJZ,MAAM,GAAG,IAAI,eAAM,CAAC,6BAA2B,CAAC,IAAI,CAAC,CAAC;IAC/D,aAAa,GAA0B,IAAI,CAAC;IAC5C,MAAM,CAAU,WAAW,GAAG,IAAI,CAAC;IAE3C,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,YAAY;QACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAGD,iBAAiB,CACJ,IAA8B,EAClC,GAAgB;QAEvB,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EACnC,2CAA2C,CAC5C,CAAC;QACF,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,KAAK,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;QACtD,CAAC,EAAE,6BAA2B,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;;AA1BU,kEAA2B;AActC;IADC,IAAA,4BAAY,EAAC,4BAA4B,CAAC;IAExC,WAAA,IAAA,uBAAO,GAAE,CAAA;IACT,WAAA,IAAA,mBAAG,GAAE,CAAA;;6CAAM,2BAAW;;oEAUxB;sCA1BU,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAMmC,kCAAe;GALlD,2BAA2B,CA2BvC"}
|
|
@@ -11,13 +11,16 @@ const common_1 = require("@nestjs/common");
|
|
|
11
11
|
const config_1 = require("@nestjs/config");
|
|
12
12
|
const nats_1 = require("../nats");
|
|
13
13
|
const timeline_service_1 = require("./timeline.service");
|
|
14
|
+
const timeline_lifecycle_controller_1 = require("./timeline-lifecycle.controller");
|
|
15
|
+
const timeline_i18n_bootstrap_service_1 = require("./timeline-i18n-bootstrap.service");
|
|
14
16
|
let TimelineModule = class TimelineModule {
|
|
15
17
|
};
|
|
16
18
|
exports.TimelineModule = TimelineModule;
|
|
17
19
|
exports.TimelineModule = TimelineModule = __decorate([
|
|
18
20
|
(0, common_1.Module)({
|
|
19
21
|
imports: [nats_1.NatsModule, config_1.ConfigModule],
|
|
20
|
-
|
|
22
|
+
controllers: [timeline_lifecycle_controller_1.TimelineLifecycleController],
|
|
23
|
+
providers: [timeline_service_1.TimelineService, timeline_i18n_bootstrap_service_1.TimelineI18nBootstrapService],
|
|
21
24
|
exports: [timeline_service_1.TimelineService],
|
|
22
25
|
})
|
|
23
26
|
], TimelineModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.module.js","sourceRoot":"","sources":["../../src/timeline/timeline.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2CAA8C;AAC9C,kCAAqC;AACrC,yDAAqD;
|
|
1
|
+
{"version":3,"file":"timeline.module.js","sourceRoot":"","sources":["../../src/timeline/timeline.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2CAA8C;AAC9C,kCAAqC;AACrC,yDAAqD;AACrD,mFAA8E;AAC9E,uFAAiF;AAQ1E,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAN1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,iBAAU,EAAE,qBAAY,CAAC;QACnC,WAAW,EAAE,CAAC,2DAA2B,CAAC;QAC1C,SAAS,EAAE,CAAC,kCAAe,EAAE,8DAA4B,CAAC;QAC1D,OAAO,EAAE,CAAC,kCAAe,CAAC;KAC3B,CAAC;GACW,cAAc,CAAG"}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { ConfigService } from '@nestjs/config';
|
|
2
2
|
import { EntNatsServiceClient, RegisterNotificationRequestDTO, RegisterNotificationResponseDTO, SendNotificationRequestDTO, SendNotificationResponseDTO, SessionDto } from '@edifice.io/edifice-ent-client';
|
|
3
|
+
import type { RegisterTimelineI18nOptions, SenderDto } from './timeline.types';
|
|
3
4
|
export declare class TimelineService {
|
|
4
5
|
private readonly configService;
|
|
5
6
|
private readonly entClient;
|
|
6
7
|
private readonly logger;
|
|
7
8
|
private readonly appName;
|
|
9
|
+
private lastNotifications;
|
|
10
|
+
private lastI18nOptions;
|
|
8
11
|
constructor(configService: ConfigService, entClient: EntNatsServiceClient);
|
|
9
12
|
registerNotifications(notifications: RegisterNotificationRequestDTO[]): Promise<RegisterNotificationResponseDTO>;
|
|
10
13
|
sendNotification(session: SessionDto, options: SendNotificationRequestDTO): Promise<SendNotificationResponseDTO>;
|
|
14
|
+
sendNotificationWithSender(sender: SenderDto, options: SendNotificationRequestDTO): Promise<SendNotificationResponseDTO>;
|
|
15
|
+
private doSendNotification;
|
|
16
|
+
registerTimelineI18n(options?: RegisterTimelineI18nOptions): Promise<{
|
|
17
|
+
application: string;
|
|
18
|
+
languagesCount: number;
|
|
19
|
+
keysCount: number;
|
|
20
|
+
}>;
|
|
21
|
+
replayLastRegistrations(): Promise<void>;
|
|
11
22
|
}
|
|
@@ -14,11 +14,15 @@ exports.TimelineService = void 0;
|
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
15
|
const config_1 = require("@nestjs/config");
|
|
16
16
|
const edifice_ent_client_1 = require("@edifice.io/edifice-ent-client");
|
|
17
|
+
const path_1 = require("path");
|
|
18
|
+
const fs_1 = require("fs");
|
|
17
19
|
let TimelineService = TimelineService_1 = class TimelineService {
|
|
18
20
|
configService;
|
|
19
21
|
entClient;
|
|
20
22
|
logger = new common_1.Logger(TimelineService_1.name);
|
|
21
23
|
appName;
|
|
24
|
+
lastNotifications = null;
|
|
25
|
+
lastI18nOptions;
|
|
22
26
|
constructor(configService, entClient) {
|
|
23
27
|
this.configService = configService;
|
|
24
28
|
this.entClient = entClient;
|
|
@@ -37,6 +41,7 @@ let TimelineService = TimelineService_1 = class TimelineService {
|
|
|
37
41
|
const response = await this.entClient.registerNotifications(batchRequest);
|
|
38
42
|
if (response) {
|
|
39
43
|
this.logger.log(`Successfully registered ${notifications.length} notification templates`);
|
|
44
|
+
this.lastNotifications = [...notifications];
|
|
40
45
|
return response;
|
|
41
46
|
}
|
|
42
47
|
else {
|
|
@@ -50,19 +55,27 @@ let TimelineService = TimelineService_1 = class TimelineService {
|
|
|
50
55
|
}
|
|
51
56
|
}
|
|
52
57
|
async sendNotification(session, options) {
|
|
58
|
+
if (session) {
|
|
59
|
+
return this.doSendNotification(session.userId, session.username, options);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.logger.error({
|
|
63
|
+
notificationName: options.notificationName,
|
|
64
|
+
recipientCount: options.recipientIds?.length,
|
|
65
|
+
}, 'Failed to send notification: No session information available');
|
|
66
|
+
throw new Error('Unable to determine sender for notification');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async sendNotificationWithSender(sender, options) {
|
|
70
|
+
return this.doSendNotification(sender.userId, sender.userName, options);
|
|
71
|
+
}
|
|
72
|
+
async doSendNotification(userId, userName, options) {
|
|
53
73
|
try {
|
|
54
|
-
if (!session) {
|
|
55
|
-
this.logger.error({
|
|
56
|
-
notificationName: options.notificationName,
|
|
57
|
-
recipientCount: options.recipientIds?.length,
|
|
58
|
-
}, 'Failed to send notification: No session information available');
|
|
59
|
-
throw new Error('Unable to determine sender for notification');
|
|
60
|
-
}
|
|
61
74
|
const notificationRequest = {
|
|
62
75
|
notificationName: options.notificationName,
|
|
63
76
|
recipientIds: options.recipientIds,
|
|
64
|
-
senderId:
|
|
65
|
-
senderName:
|
|
77
|
+
senderId: userId,
|
|
78
|
+
senderName: userName,
|
|
66
79
|
resourceId: options.resourceId,
|
|
67
80
|
resourceName: options.resourceName,
|
|
68
81
|
resourceUri: options.resourceUri,
|
|
@@ -87,15 +100,15 @@ let TimelineService = TimelineService_1 = class TimelineService {
|
|
|
87
100
|
this.logger.log({
|
|
88
101
|
notificationName: options.notificationName,
|
|
89
102
|
recipientCount: options.recipientIds?.length,
|
|
90
|
-
senderId:
|
|
91
|
-
senderName:
|
|
103
|
+
senderId: userId,
|
|
104
|
+
senderName: userName,
|
|
92
105
|
}, `Sending notification`);
|
|
93
106
|
const result = await this.entClient.sendNotification(notificationRequest);
|
|
94
107
|
this.logger.log({
|
|
95
108
|
notificationName: options.notificationName,
|
|
96
109
|
recipientCount: result.recipientCount,
|
|
97
|
-
senderId:
|
|
98
|
-
senderName:
|
|
110
|
+
senderId: userId,
|
|
111
|
+
senderName: userName,
|
|
99
112
|
}, `Notification sent successfully`);
|
|
100
113
|
return result;
|
|
101
114
|
}
|
|
@@ -104,6 +117,78 @@ let TimelineService = TimelineService_1 = class TimelineService {
|
|
|
104
117
|
throw error;
|
|
105
118
|
}
|
|
106
119
|
}
|
|
120
|
+
async registerTimelineI18n(options) {
|
|
121
|
+
try {
|
|
122
|
+
const application = this.appName;
|
|
123
|
+
let translationsByLanguage;
|
|
124
|
+
if (options?.translationsByLanguage) {
|
|
125
|
+
translationsByLanguage = options.translationsByLanguage;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
const i18nPath = options?.i18nPath ||
|
|
129
|
+
(0, path_1.join)(process.cwd(), 'assets', 'i18n', 'timeline');
|
|
130
|
+
if (!(0, fs_1.existsSync)(i18nPath)) {
|
|
131
|
+
this.logger.warn({ i18nPath }, `Timeline i18n directory not found`);
|
|
132
|
+
return { application, languagesCount: 0, keysCount: 0 };
|
|
133
|
+
}
|
|
134
|
+
const i18nFiles = (0, fs_1.readdirSync)(i18nPath).filter((file) => file.endsWith('.json'));
|
|
135
|
+
if (i18nFiles.length === 0) {
|
|
136
|
+
this.logger.warn('No timeline i18n files found');
|
|
137
|
+
return { application, languagesCount: 0, keysCount: 0 };
|
|
138
|
+
}
|
|
139
|
+
translationsByLanguage = {};
|
|
140
|
+
let keysCount = 0;
|
|
141
|
+
for (const file of i18nFiles) {
|
|
142
|
+
const fileContent = (0, fs_1.readFileSync)((0, path_1.join)(i18nPath, file), 'utf8');
|
|
143
|
+
const translations = JSON.parse(fileContent);
|
|
144
|
+
translationsByLanguage[file] = translations;
|
|
145
|
+
keysCount += Object.keys(translations).length;
|
|
146
|
+
}
|
|
147
|
+
this.logger.log({
|
|
148
|
+
filesCount: i18nFiles.length,
|
|
149
|
+
keysCount,
|
|
150
|
+
i18nPath,
|
|
151
|
+
}, `Loaded timeline i18n files`);
|
|
152
|
+
}
|
|
153
|
+
this.logger.log({ application }, `Registering timeline i18n for application`);
|
|
154
|
+
const response = await this.entClient.registerTimelineI18n({
|
|
155
|
+
application,
|
|
156
|
+
translationsByLanguage,
|
|
157
|
+
});
|
|
158
|
+
if (response) {
|
|
159
|
+
this.logger.log({
|
|
160
|
+
application,
|
|
161
|
+
languagesCount: response.languagesCount,
|
|
162
|
+
keysCount: response.keysCount,
|
|
163
|
+
}, `Successfully registered timeline i18n`);
|
|
164
|
+
this.lastI18nOptions = options;
|
|
165
|
+
return {
|
|
166
|
+
application: response.application ?? application,
|
|
167
|
+
keysCount: response.keysCount ?? 0,
|
|
168
|
+
languagesCount: response.languagesCount ?? 0,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
this.logger.error('Failed to register timeline i18n: No response received');
|
|
173
|
+
throw new Error('Failed to register timeline i18n: No response received');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
this.logger.error({ error: String(error) }, 'Failed to register timeline i18n');
|
|
178
|
+
throw error;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
async replayLastRegistrations() {
|
|
182
|
+
const tasks = [];
|
|
183
|
+
tasks.push(this.registerTimelineI18n(this.lastI18nOptions).catch((err) => this.logger.error({ err: String(err) }, 'Failed to replay timeline i18n registration')));
|
|
184
|
+
if (this.lastNotifications && this.lastNotifications.length > 0) {
|
|
185
|
+
tasks.push(this.registerNotifications(this.lastNotifications).catch((err) => this.logger.error({ err: String(err) }, 'Failed to replay timeline notifications registration')));
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
this.logger.debug('No notifications cached — skipping notifications replay');
|
|
189
|
+
}
|
|
190
|
+
await Promise.all(tasks);
|
|
191
|
+
}
|
|
107
192
|
};
|
|
108
193
|
exports.TimelineService = TimelineService;
|
|
109
194
|
exports.TimelineService = TimelineService = TimelineService_1 = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.service.js","sourceRoot":"","sources":["../../src/timeline/timeline.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,2CAA+C;AAC/C,uEAUwC;
|
|
1
|
+
{"version":3,"file":"timeline.service.js","sourceRoot":"","sources":["../../src/timeline/timeline.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,12 @@ export interface RegisterNotificationOptions {
|
|
|
8
8
|
restriction?: 'NONE' | 'INTERNAL' | 'EXTERNAL' | 'HIDDEN';
|
|
9
9
|
pushNotif?: boolean;
|
|
10
10
|
}
|
|
11
|
+
export interface RegisterTimelineI18nOptions {
|
|
12
|
+
translationsByLanguage?: Record<string, Record<string, string>>;
|
|
13
|
+
i18nPath?: string;
|
|
14
|
+
}
|
|
11
15
|
export { RegisterNotificationResponseDTO };
|
|
16
|
+
export interface SenderDto {
|
|
17
|
+
userId: string;
|
|
18
|
+
userName: string;
|
|
19
|
+
}
|