@alacard-project/shared 1.1.8 → 1.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.ts +1 -6
- package/dist/browser.js +1 -6
- package/dist/browser.js.map +1 -1
- package/dist/constants/iam.constants.d.ts +12 -0
- package/dist/constants/iam.constants.js +16 -0
- package/dist/constants/iam.constants.js.map +1 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.js +4 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/microservices.constants.d.ts +10 -0
- package/dist/constants/microservices.constants.js +10 -0
- package/dist/constants/microservices.constants.js.map +1 -1
- package/dist/constants/orchestrator-messages.constants.d.ts +5 -0
- package/dist/constants/orchestrator-messages.constants.js +9 -0
- package/dist/constants/orchestrator-messages.constants.js.map +1 -0
- package/dist/constants/partner-messages.constants.d.ts +7 -0
- package/dist/constants/partner-messages.constants.js +11 -0
- package/dist/constants/partner-messages.constants.js.map +1 -0
- package/dist/constants/user.constants.d.ts +10 -0
- package/dist/constants/user.constants.js +14 -0
- package/dist/constants/user.constants.js.map +1 -0
- package/dist/contracts/card.contract.d.ts +38 -0
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/invoice.contract.d.ts +137 -0
- package/dist/contracts/invoice.contract.js +3 -0
- package/dist/contracts/invoice.contract.js.map +1 -0
- package/dist/contracts/terminal.contract.d.ts +43 -1
- package/dist/contracts/transaction.contract.d.ts +12 -0
- package/dist/decorators/permissions.decorator.d.ts +2 -2
- package/dist/decorators/permissions.decorator.js.map +1 -1
- package/dist/decorators/roles.decorator.d.ts +1 -1
- package/dist/dto/auth.dto.d.ts +1 -0
- package/dist/dto/auth.dto.js +5 -0
- package/dist/dto/auth.dto.js.map +1 -1
- package/dist/dto/card.dto.d.ts +5 -1
- package/dist/dto/card.dto.js +20 -0
- package/dist/dto/card.dto.js.map +1 -1
- package/dist/dto/iam.dto.d.ts +24 -0
- package/dist/dto/iam.dto.js +76 -0
- package/dist/dto/iam.dto.js.map +1 -0
- package/dist/dto/index.d.ts +1 -0
- package/dist/dto/index.js +1 -0
- package/dist/dto/index.js.map +1 -1
- package/dist/dto/invoice.dto.d.ts +29 -2
- package/dist/dto/invoice.dto.js +70 -4
- package/dist/dto/invoice.dto.js.map +1 -1
- package/dist/dto/partner.dto.d.ts +29 -0
- package/dist/dto/partner.dto.js +106 -1
- package/dist/dto/partner.dto.js.map +1 -1
- package/dist/dto/transaction.dto.d.ts +7 -0
- package/dist/dto/transaction.dto.js +35 -0
- package/dist/dto/transaction.dto.js.map +1 -1
- package/dist/dto/user.dto.d.ts +36 -13
- package/dist/dto/user.dto.js +104 -17
- package/dist/dto/user.dto.js.map +1 -1
- package/dist/enums/iam.enum.d.ts +7 -0
- package/dist/enums/iam.enum.js +9 -1
- package/dist/enums/iam.enum.js.map +1 -1
- package/dist/enums/index.d.ts +3 -0
- package/dist/enums/index.js +3 -0
- package/dist/enums/index.js.map +1 -1
- package/dist/enums/job.enum.d.ts +18 -0
- package/dist/enums/job.enum.js +24 -0
- package/dist/enums/job.enum.js.map +1 -0
- package/dist/enums/partner.enum.d.ts +5 -0
- package/dist/enums/partner.enum.js +10 -0
- package/dist/enums/partner.enum.js.map +1 -0
- package/dist/enums/permission.enum.d.ts +1 -1
- package/dist/enums/permission.enum.js +20 -20
- package/dist/enums/permission.enum.js.map +1 -1
- package/dist/enums/saga.enum.d.ts +8 -0
- package/dist/enums/saga.enum.js +13 -0
- package/dist/enums/saga.enum.js.map +1 -0
- package/dist/enums/user.enum.d.ts +7 -1
- package/dist/enums/user.enum.js +8 -1
- package/dist/enums/user.enum.js.map +1 -1
- package/dist/filters/global-exception.filter.d.ts +1 -1
- package/dist/index.d.ts +3 -9
- package/dist/index.js +3 -9
- package/dist/index.js.map +1 -1
- package/dist/middleware/prisma-logging.middleware.d.ts +1 -1
- package/dist/resilience/circuit-breaker.service.js +9 -2
- package/dist/resilience/circuit-breaker.service.js.map +1 -1
- package/dist/resilience/redis-throttler-storage.d.ts +11 -0
- package/dist/resilience/redis-throttler-storage.js +76 -0
- package/dist/resilience/redis-throttler-storage.js.map +1 -0
- package/dist/resilience/resilience.module.js +3 -2
- package/dist/resilience/resilience.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/client.types.d.ts +8 -0
- package/dist/types/client.types.js +3 -0
- package/dist/types/client.types.js.map +1 -0
- package/dist/types/iam.types.d.ts +30 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/orchestrator.types.d.ts +24 -0
- package/dist/types/orchestrator.types.js +3 -0
- package/dist/types/orchestrator.types.js.map +1 -0
- package/dist/types/saga.types.d.ts +24 -0
- package/dist/types/saga.types.js +3 -0
- package/dist/types/saga.types.js.map +1 -0
- package/dist/types/user.types.d.ts +28 -0
- package/dist/utils/app.utils.js +62 -2
- package/dist/utils/app.utils.js.map +1 -1
- package/dist/utils/grpc-tracing.interceptor.d.ts +3 -1
- package/dist/utils/grpc-tracing.interceptor.js +20 -2
- package/dist/utils/grpc-tracing.interceptor.js.map +1 -1
- package/dist/utils/health.utils.d.ts +1 -1
- package/dist/utils/proto-path.js +23 -2
- package/dist/utils/proto-path.js.map +1 -1
- package/dist/utils/tracing.service.js +5 -1
- package/dist/utils/tracing.service.js.map +1 -1
- package/dist/utils/tracing.utils.js +40 -1
- package/dist/utils/tracing.utils.js.map +1 -1
- package/package.json +16 -3
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type ClientOPF = 'РГП на ПХВ' | 'ГКП на ПХВ' | 'КГП на ПХВ' | 'ГККП' | 'КГКП' | 'РГКП' | 'Представительство' | 'Филиал' | 'Учреждение' | 'ТОО' | 'ИП' | 'АО' | 'ЗАО' | 'ОАО' | 'ГКП' | 'КГП' | 'РГП' | 'РГУ' | 'ГУ' | 'КГУ' | 'ЧУ' | 'ПКСК' | 'КСК' | 'ОСИ' | 'ПК' | 'КХ' | 'ФХ' | 'ОО' | 'ОФ' | 'Физ. лицо' | 'Другое';
|
|
2
|
+
export interface ClientTypeDto {
|
|
3
|
+
id: string;
|
|
4
|
+
code: ClientOPF;
|
|
5
|
+
name: string;
|
|
6
|
+
createdAt: string;
|
|
7
|
+
updatedAt: string;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.types.js","sourceRoot":"","sources":["../../src/types/client.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { SubjectType, IdentityStatus, UserRole, IdentifierType } from '../enums';
|
|
2
2
|
import { JsonValue } from './common.types';
|
|
3
3
|
export interface Identity {
|
|
4
|
+
id: string;
|
|
4
5
|
identityId: string;
|
|
5
6
|
subjectType: SubjectType;
|
|
6
7
|
role: UserRole;
|
|
7
8
|
status: IdentityStatus;
|
|
8
9
|
createdAt?: Date;
|
|
9
10
|
updatedAt?: Date;
|
|
11
|
+
createdBy?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ICreateIdentityDto {
|
|
14
|
+
subjectType: SubjectType;
|
|
15
|
+
createdBy?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface IUpdateIdentityStatusDto {
|
|
18
|
+
status: IdentityStatus;
|
|
10
19
|
}
|
|
11
20
|
export interface IdentityAttributes {
|
|
12
21
|
department?: string;
|
|
@@ -34,6 +43,27 @@ export interface ScopeCheckRequest {
|
|
|
34
43
|
scope: string;
|
|
35
44
|
context?: Record<string, JsonValue>;
|
|
36
45
|
}
|
|
46
|
+
export interface Role {
|
|
47
|
+
id: string;
|
|
48
|
+
name: string;
|
|
49
|
+
description?: string;
|
|
50
|
+
level: number;
|
|
51
|
+
isSystem: boolean;
|
|
52
|
+
createdAt: Date;
|
|
53
|
+
updatedAt: Date;
|
|
54
|
+
}
|
|
55
|
+
export interface IAssignRoleDto {
|
|
56
|
+
roleId: string;
|
|
57
|
+
grantedBy?: string;
|
|
58
|
+
expiresAt?: Date;
|
|
59
|
+
}
|
|
60
|
+
export interface IdentityRole {
|
|
61
|
+
identityId: string;
|
|
62
|
+
roleId: string;
|
|
63
|
+
grantedBy?: string;
|
|
64
|
+
grantedAt: Date;
|
|
65
|
+
expiresAt?: Date;
|
|
66
|
+
}
|
|
37
67
|
export interface Credential {
|
|
38
68
|
id: string;
|
|
39
69
|
identityId: string;
|
package/dist/types/index.d.ts
CHANGED
package/dist/types/index.js
CHANGED
|
@@ -20,4 +20,7 @@ __exportStar(require("./iam.types"), exports);
|
|
|
20
20
|
__exportStar(require("./user.types"), exports);
|
|
21
21
|
__exportStar(require("./common.types"), exports);
|
|
22
22
|
__exportStar(require("./monitoring.types"), exports);
|
|
23
|
+
__exportStar(require("./saga.types"), exports);
|
|
24
|
+
__exportStar(require("./orchestrator.types"), exports);
|
|
25
|
+
__exportStar(require("./client.types"), exports);
|
|
23
26
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B;AAC7B,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B;AAC7B,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC;AACnC,+CAA6B;AAC7B,uDAAqC;AACrC,iDAA+B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface EmployeeOnboardingData {
|
|
2
|
+
email: string;
|
|
3
|
+
password: string;
|
|
4
|
+
fullName: string;
|
|
5
|
+
position?: string;
|
|
6
|
+
department?: string;
|
|
7
|
+
roleId: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ClientOnboardingData {
|
|
10
|
+
username: string;
|
|
11
|
+
password: string;
|
|
12
|
+
firstName: string;
|
|
13
|
+
lastName: string;
|
|
14
|
+
companyId?: string;
|
|
15
|
+
roleId: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PartnerOnboardingData {
|
|
18
|
+
username: string;
|
|
19
|
+
password: string;
|
|
20
|
+
firstName: string;
|
|
21
|
+
lastName: string;
|
|
22
|
+
companyId?: string;
|
|
23
|
+
roleId: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.types.js","sourceRoot":"","sources":["../../src/types/orchestrator.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SagaStatus } from '../enums/saga.enum';
|
|
2
|
+
export interface SagaState {
|
|
3
|
+
sagaId: string;
|
|
4
|
+
type: string;
|
|
5
|
+
status: SagaStatus;
|
|
6
|
+
currentStep: number;
|
|
7
|
+
totalSteps: number;
|
|
8
|
+
data: Record<string, any>;
|
|
9
|
+
error?: string;
|
|
10
|
+
createdAt: Date;
|
|
11
|
+
updatedAt: Date;
|
|
12
|
+
completedAt?: Date;
|
|
13
|
+
}
|
|
14
|
+
export interface SagaStep {
|
|
15
|
+
name: string;
|
|
16
|
+
execute: () => Promise<any>;
|
|
17
|
+
compensate: () => Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export interface SagaResult {
|
|
20
|
+
sagaId: string;
|
|
21
|
+
status: SagaStatus;
|
|
22
|
+
data?: Record<string, any>;
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saga.types.js","sourceRoot":"","sources":["../../src/types/saga.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,34 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { UserResponse } from '../dto/auth.dto';
|
|
3
3
|
import { GetUserByIdGrpcRequest, GetUserByEmailGrpcRequest } from '../contracts/auth.contract';
|
|
4
|
+
import { UserType, UserStatus } from '../enums/user.enum';
|
|
5
|
+
export interface User {
|
|
6
|
+
id: string;
|
|
7
|
+
identityId: string;
|
|
8
|
+
userType: UserType;
|
|
9
|
+
status: UserStatus;
|
|
10
|
+
createdAt: Date;
|
|
11
|
+
updatedAt: Date;
|
|
12
|
+
}
|
|
13
|
+
export interface EmployeeProfile {
|
|
14
|
+
userId: string;
|
|
15
|
+
fullName: string;
|
|
16
|
+
shortName?: string;
|
|
17
|
+
email: string;
|
|
18
|
+
workPhone?: string;
|
|
19
|
+
mobilePhone?: string;
|
|
20
|
+
position?: string;
|
|
21
|
+
department?: string;
|
|
22
|
+
fax?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface PublicProfile {
|
|
25
|
+
userId: string;
|
|
26
|
+
firstName: string;
|
|
27
|
+
lastName: string;
|
|
28
|
+
username: string;
|
|
29
|
+
phone?: string;
|
|
30
|
+
email?: string;
|
|
31
|
+
}
|
|
4
32
|
export interface IUserService {
|
|
5
33
|
getUserById(data: GetUserByIdGrpcRequest): Observable<UserResponse>;
|
|
6
34
|
getUserByEmail(data: GetUserByEmailGrpcRequest): Observable<UserResponse>;
|
package/dist/utils/app.utils.js
CHANGED
|
@@ -5,12 +5,72 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.setupStandardApp = setupStandardApp;
|
|
7
7
|
const common_1 = require("@nestjs/common");
|
|
8
|
-
const
|
|
8
|
+
const shared_dto_1 = require("@alacard-project/shared-dto");
|
|
9
9
|
const helmet_1 = __importDefault(require("helmet"));
|
|
10
10
|
const filters_1 = require("../filters");
|
|
11
11
|
const swagger_1 = require("@nestjs/swagger");
|
|
12
|
+
const uuid_1 = require("uuid");
|
|
13
|
+
const tracing_service_1 = require("./tracing.service");
|
|
14
|
+
const grpc_tracing_server_interceptor_1 = require("./grpc-tracing-server.interceptor");
|
|
12
15
|
function setupStandardApp(app, options = {}) {
|
|
13
|
-
const { corsOrigins = ['*'], apiPrefix =
|
|
16
|
+
const { corsOrigins = ['*'], apiPrefix = shared_dto_1.API_PREFIX.V1, helmet: useHelmet = true, validation = true, shutdownHooks = true, enableTelemetry = true, remoteLogger, logger, swagger, } = options;
|
|
17
|
+
app.use((req, res, next) => {
|
|
18
|
+
const headerId = req.headers['x-request-id'] || req.headers['X-Request-ID'];
|
|
19
|
+
const traceId = (Array.isArray(headerId) ? headerId[0] : headerId) || (0, uuid_1.v4)();
|
|
20
|
+
res.setHeader('x-request-id', traceId);
|
|
21
|
+
tracing_service_1.TracingService.getStorage().run(new Map(), () => {
|
|
22
|
+
tracing_service_1.TracingService.setTraceId(traceId);
|
|
23
|
+
next();
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
try {
|
|
27
|
+
const tracingService = app.get(tracing_service_1.TracingService);
|
|
28
|
+
if (tracingService) {
|
|
29
|
+
app.useGlobalInterceptors(new grpc_tracing_server_interceptor_1.GrpcTracingServerInterceptor(tracingService));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const { HttpService } = require('@nestjs/axios');
|
|
36
|
+
if (HttpService) {
|
|
37
|
+
let hasHttpService = false;
|
|
38
|
+
try {
|
|
39
|
+
const container = app.container;
|
|
40
|
+
if (container) {
|
|
41
|
+
const modules = container.getModules();
|
|
42
|
+
for (const [_, moduleInstance] of modules) {
|
|
43
|
+
if (moduleInstance.providers && moduleInstance.providers.has(HttpService)) {
|
|
44
|
+
hasHttpService = true;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
}
|
|
52
|
+
if (hasHttpService) {
|
|
53
|
+
const httpService = app.get(HttpService, { strict: false });
|
|
54
|
+
if (httpService && httpService.axiosRef) {
|
|
55
|
+
httpService.axiosRef.interceptors.request.use((config) => {
|
|
56
|
+
try {
|
|
57
|
+
const traceId = tracing_service_1.TracingService.getTraceId();
|
|
58
|
+
if (traceId && traceId !== 'no-trace-id') {
|
|
59
|
+
config.headers = config.headers || {};
|
|
60
|
+
config.headers['x-request-id'] = traceId;
|
|
61
|
+
config.headers['X-Request-ID'] = traceId;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
}
|
|
66
|
+
return config;
|
|
67
|
+
}, (err) => Promise.reject(err));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
}
|
|
14
74
|
if (logger) {
|
|
15
75
|
app.useLogger(logger);
|
|
16
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.utils.js","sourceRoot":"","sources":["../../src/utils/app.utils.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"app.utils.js","sourceRoot":"","sources":["../../src/utils/app.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { TracingService } from '
|
|
3
|
+
import { TracingService } from './tracing.service';
|
|
4
|
+
import { Interceptor } from '@grpc/grpc-js';
|
|
4
5
|
export declare class GrpcTracingInterceptor implements NestInterceptor {
|
|
5
6
|
private readonly tracingService;
|
|
6
7
|
constructor(tracingService: TracingService);
|
|
7
8
|
intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
|
|
8
9
|
}
|
|
10
|
+
export declare const grpcClientTracingInterceptor: Interceptor;
|
|
@@ -9,9 +9,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.GrpcTracingInterceptor = void 0;
|
|
12
|
+
exports.grpcClientTracingInterceptor = exports.GrpcTracingInterceptor = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const tracing_service_1 = require("
|
|
14
|
+
const tracing_service_1 = require("./tracing.service");
|
|
15
|
+
const grpc_js_1 = require("@grpc/grpc-js");
|
|
15
16
|
let GrpcTracingInterceptor = class GrpcTracingInterceptor {
|
|
16
17
|
constructor(tracingService) {
|
|
17
18
|
this.tracingService = tracingService;
|
|
@@ -32,4 +33,21 @@ exports.GrpcTracingInterceptor = GrpcTracingInterceptor = __decorate([
|
|
|
32
33
|
(0, common_1.Injectable)(),
|
|
33
34
|
__metadata("design:paramtypes", [tracing_service_1.TracingService])
|
|
34
35
|
], GrpcTracingInterceptor);
|
|
36
|
+
const grpcClientTracingInterceptor = (options, nextCall) => {
|
|
37
|
+
return new grpc_js_1.InterceptingCall(nextCall(options), {
|
|
38
|
+
start: (metadata, listener, next) => {
|
|
39
|
+
let traceId = 'no-trace-id';
|
|
40
|
+
try {
|
|
41
|
+
traceId = tracing_service_1.TracingService.getTraceId();
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
}
|
|
45
|
+
if (traceId && traceId !== 'no-trace-id') {
|
|
46
|
+
metadata.set('x-request-id', traceId);
|
|
47
|
+
}
|
|
48
|
+
next(metadata, listener);
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
exports.grpcClientTracingInterceptor = grpcClientTracingInterceptor;
|
|
35
53
|
//# sourceMappingURL=grpc-tracing.interceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-tracing.interceptor.js","sourceRoot":"","sources":["../../src/utils/grpc-tracing.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AAExB,
|
|
1
|
+
{"version":3,"file":"grpc-tracing.interceptor.js","sourceRoot":"","sources":["../../src/utils/grpc-tracing.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AAExB,uDAAmD;AACnD,2CAAwE;AAGjE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAC/B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAClD,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,EAAc,CAAC;YAChE,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gBACjD,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;CACJ,CAAA;AAbY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAEoC,gCAAc;GADlD,sBAAsB,CAalC;AAEM,MAAM,4BAA4B,GAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;IAC3E,OAAO,IAAI,0BAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC3C,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YAChC,IAAI,OAAO,GAAG,aAAa,CAAC;YAC5B,IAAI,CAAC;gBACD,OAAO,GAAG,gCAAc,CAAC,UAAU,EAAE,CAAC;YAC1C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;YAEb,CAAC;YACD,IAAI,OAAO,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBACvC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAfW,QAAA,4BAA4B,gCAevC"}
|
package/dist/utils/proto-path.js
CHANGED
|
@@ -2,14 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getProtoPath = getProtoPath;
|
|
4
4
|
const path_1 = require("path");
|
|
5
|
+
const fs_1 = require("fs");
|
|
5
6
|
function getProtoPath(serviceName) {
|
|
6
7
|
if (process.env.PROTO_PATH_OVERRIDE) {
|
|
7
8
|
return (0, path_1.join)(process.env.PROTO_PATH_OVERRIDE, `${serviceName}.proto`);
|
|
8
9
|
}
|
|
10
|
+
try {
|
|
11
|
+
const protoPath = require.resolve(`@alacard-project/shared/proto/${serviceName}.proto`);
|
|
12
|
+
if ((0, fs_1.existsSync)(protoPath)) {
|
|
13
|
+
return protoPath;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
}
|
|
9
18
|
const dockerProtoPath = '/app/sdks/shared/proto';
|
|
19
|
+
const dockerFile = (0, path_1.join)(dockerProtoPath, `${serviceName}.proto`);
|
|
20
|
+
if ((0, fs_1.existsSync)(dockerFile)) {
|
|
21
|
+
return dockerFile;
|
|
22
|
+
}
|
|
23
|
+
const monorepoProtoPath = (0, path_1.join)(process.cwd(), '..', '..', 'sdks', 'shared', 'proto', `${serviceName}.proto`);
|
|
24
|
+
if ((0, fs_1.existsSync)(monorepoProtoPath)) {
|
|
25
|
+
return monorepoProtoPath;
|
|
26
|
+
}
|
|
27
|
+
const localProtoPath = (0, path_1.join)(process.cwd(), 'proto', `${serviceName}.proto`);
|
|
28
|
+
if ((0, fs_1.existsSync)(localProtoPath)) {
|
|
29
|
+
return localProtoPath;
|
|
30
|
+
}
|
|
10
31
|
if (process.platform === 'linux' || process.env.NODE_ENV === 'production' || process.env.KUBERNETES_SERVICE_HOST) {
|
|
11
|
-
return
|
|
32
|
+
return dockerFile;
|
|
12
33
|
}
|
|
13
|
-
return
|
|
34
|
+
return monorepoProtoPath;
|
|
14
35
|
}
|
|
15
36
|
//# sourceMappingURL=proto-path.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proto-path.js","sourceRoot":"","sources":["../../src/utils/proto-path.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"proto-path.js","sourceRoot":"","sources":["../../src/utils/proto-path.ts"],"names":[],"mappings":";;AAGA,oCAwCC;AA3CD,+BAAqC;AACrC,2BAAgC;AAEhC,SAAgB,YAAY,CAAC,WAAmB;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAClC,OAAO,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;IACzE,CAAC;IAGD,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,iCAAiC,WAAW,QAAQ,CAAC,CAAC;QACxF,IAAI,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;IAEb,CAAC;IAGD,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACjD,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,eAAe,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;IACjE,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC;IACtB,CAAC;IAGD,MAAM,iBAAiB,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;IAC7G,IAAI,IAAA,eAAU,EAAC,iBAAiB,CAAC,EAAE,CAAC;QAChC,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAGD,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;IAC5E,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC;IAC1B,CAAC;IAGD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QAC/G,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC7B,CAAC"}
|
|
@@ -11,6 +11,10 @@ exports.TracingService = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const async_hooks_1 = require("async_hooks");
|
|
13
13
|
const uuid_1 = require("uuid");
|
|
14
|
+
const globalStore = global;
|
|
15
|
+
if (!globalStore.__tracing_storage) {
|
|
16
|
+
globalStore.__tracing_storage = new async_hooks_1.AsyncLocalStorage();
|
|
17
|
+
}
|
|
14
18
|
let TracingService = TracingService_1 = class TracingService {
|
|
15
19
|
static getStorage() {
|
|
16
20
|
return this.storage;
|
|
@@ -36,7 +40,7 @@ let TracingService = TracingService_1 = class TracingService {
|
|
|
36
40
|
}
|
|
37
41
|
};
|
|
38
42
|
exports.TracingService = TracingService;
|
|
39
|
-
TracingService.storage =
|
|
43
|
+
TracingService.storage = globalStore.__tracing_storage;
|
|
40
44
|
exports.TracingService = TracingService = TracingService_1 = __decorate([
|
|
41
45
|
(0, common_1.Injectable)()
|
|
42
46
|
], TracingService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.service.js","sourceRoot":"","sources":["../../src/utils/tracing.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAgD;AAChD,+BAAoC;
|
|
1
|
+
{"version":3,"file":"tracing.service.js","sourceRoot":"","sources":["../../src/utils/tracing.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAgD;AAChD,+BAAoC;AAEpC,MAAM,WAAW,GAAG,MAAa,CAAC;AAClC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;IACjC,WAAW,CAAC,iBAAiB,GAAG,IAAI,+BAAiB,EAAuB,CAAC;AACjF,CAAC;AAGM,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGvB,MAAM,CAAC,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAe;QAC7B,MAAM,KAAK,GAAG,gBAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChD,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,UAAU;QACb,MAAM,KAAK,GAAG,gBAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,OAAe;QACtB,gBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,UAAU;QACN,OAAO,gBAAc,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,eAAe;QACX,OAAO,IAAA,SAAM,GAAE,CAAC;IACpB,CAAC;;AA7BQ,wCAAc;AACC,sBAAO,GAAG,WAAW,CAAC,iBAAiB,AAAhC,CAAiC;yBADvD,cAAc;IAD1B,IAAA,mBAAU,GAAE;GACA,cAAc,CA8B1B"}
|
|
@@ -1,7 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.initTracing = initTracing;
|
|
4
|
+
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
5
|
+
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
|
|
6
|
+
const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
|
|
7
|
+
const resources_1 = require("@opentelemetry/resources");
|
|
8
|
+
let sdk = null;
|
|
4
9
|
function initTracing(serviceName) {
|
|
5
|
-
|
|
10
|
+
if (sdk) {
|
|
11
|
+
console.log(`[Tracing] OpenTelemetry already initialized for ${serviceName}`);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
console.log(`[Tracing] Initializing OpenTelemetry for ${serviceName}...`);
|
|
15
|
+
const otlpEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'http://jaeger:4318/v1/traces';
|
|
16
|
+
const traceExporter = new exporter_trace_otlp_http_1.OTLPTraceExporter({
|
|
17
|
+
url: otlpEndpoint,
|
|
18
|
+
});
|
|
19
|
+
sdk = new sdk_node_1.NodeSDK({
|
|
20
|
+
resource: new resources_1.Resource({
|
|
21
|
+
'service.name': serviceName,
|
|
22
|
+
}),
|
|
23
|
+
traceExporter: traceExporter,
|
|
24
|
+
instrumentations: [
|
|
25
|
+
(0, auto_instrumentations_node_1.getNodeAutoInstrumentations)({
|
|
26
|
+
'@opentelemetry/instrumentation-fs': {
|
|
27
|
+
enabled: false,
|
|
28
|
+
},
|
|
29
|
+
}),
|
|
30
|
+
],
|
|
31
|
+
});
|
|
32
|
+
try {
|
|
33
|
+
sdk.start();
|
|
34
|
+
console.log(`[Tracing] OpenTelemetry successfully started for ${serviceName}. Exporting to ${otlpEndpoint}`);
|
|
35
|
+
process.on('SIGTERM', () => {
|
|
36
|
+
sdk?.shutdown()
|
|
37
|
+
.then(() => console.log('[Tracing] OpenTelemetry SDK terminated'))
|
|
38
|
+
.catch((error) => console.log('[Tracing] Error terminating OpenTelemetry SDK', error))
|
|
39
|
+
.finally(() => process.exit(0));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error('[Tracing] Error starting OpenTelemetry SDK', error);
|
|
44
|
+
}
|
|
6
45
|
}
|
|
7
46
|
//# sourceMappingURL=tracing.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.utils.js","sourceRoot":"","sources":["../../src/utils/tracing.utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"tracing.utils.js","sourceRoot":"","sources":["../../src/utils/tracing.utils.ts"],"names":[],"mappings":";;AAOA,kCAyCC;AAhDD,sDAAkD;AAClD,sFAA4E;AAC5E,0FAAwF;AACxF,wDAAoD;AAEpD,IAAI,GAAG,GAAmB,IAAI,CAAC;AAE/B,SAAgB,WAAW,CAAC,WAAmB;IAC3C,IAAI,GAAG,EAAE,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mDAAmD,WAAW,EAAE,CAAC,CAAC;QAC9E,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,4CAA4C,WAAW,KAAK,CAAC,CAAC;IAE1E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,8BAA8B,CAAC;IAE/F,MAAM,aAAa,GAAG,IAAI,4CAAiB,CAAC;QACxC,GAAG,EAAE,YAAY;KACpB,CAAC,CAAC;IAEH,GAAG,GAAG,IAAI,kBAAO,CAAC;QACd,QAAQ,EAAE,IAAI,oBAAQ,CAAC;YACnB,cAAc,EAAE,WAAW;SAC9B,CAAC;QACF,aAAa,EAAE,aAAoB;QACnC,gBAAgB,EAAE;YACd,IAAA,wDAA2B,EAAC;gBACxB,mCAAmC,EAAE;oBACjC,OAAO,EAAE,KAAK;iBACjB;aACJ,CAAC;SACL;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,oDAAoD,WAAW,kBAAkB,YAAY,EAAE,CAAC,CAAC;QAE7G,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACvB,GAAG,EAAE,QAAQ,EAAE;iBACV,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;iBACjE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;iBACrF,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alacard-project/shared",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.13",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=22.0.0"
|
|
6
6
|
},
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
10
10
|
"exports": {
|
|
11
11
|
".": "./dist/index.js",
|
|
12
|
+
"./package.json": "./package.json",
|
|
12
13
|
"./dist/*": "./dist/*",
|
|
13
14
|
"./*": "./dist/*.js"
|
|
14
15
|
},
|
|
@@ -24,10 +25,13 @@
|
|
|
24
25
|
"@nestjs/common": "10.4.15",
|
|
25
26
|
"@nestjs/core": "10.4.15",
|
|
26
27
|
"@nestjs/microservices": "10.4.15",
|
|
28
|
+
"@nestjs/throttler": "5.1.2",
|
|
27
29
|
"reflect-metadata": "0.2.2",
|
|
28
30
|
"rxjs": "7.8.1"
|
|
29
31
|
},
|
|
30
32
|
"dependencies": {
|
|
33
|
+
"@alacard-project/shared-proto": "^1.1.13",
|
|
34
|
+
"@alacard-project/shared-dto": "^1.1.13",
|
|
31
35
|
"@types/opossum": "8.1.9",
|
|
32
36
|
"axios": "^1.7.9",
|
|
33
37
|
"class-transformer": "0.5.1",
|
|
@@ -35,16 +39,25 @@
|
|
|
35
39
|
"helmet": "8.1.0",
|
|
36
40
|
"opossum": "8.1.4",
|
|
37
41
|
"uuid": "^11.0.0",
|
|
38
|
-
"@nestjs/swagger": "8.0.0"
|
|
42
|
+
"@nestjs/swagger": "8.0.0",
|
|
43
|
+
"@nestjs/throttler": "5.1.2",
|
|
44
|
+
"ioredis": "5.3.2",
|
|
45
|
+
"@grpc/grpc-js": "1.12.5",
|
|
46
|
+
"@opentelemetry/api": "^1.9.0",
|
|
47
|
+
"@opentelemetry/auto-instrumentations-node": "^0.50.0",
|
|
48
|
+
"@opentelemetry/sdk-node": "^0.52.0",
|
|
49
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.52.0"
|
|
39
50
|
},
|
|
40
|
-
|
|
41
51
|
"devDependencies": {
|
|
42
52
|
"@types/uuid": "^10.0.0",
|
|
43
53
|
"@nestjs/common": "10.4.15",
|
|
44
54
|
"@nestjs/config": "3.3.0",
|
|
45
55
|
"@nestjs/core": "10.4.15",
|
|
46
56
|
"@nestjs/microservices": "10.4.15",
|
|
57
|
+
"@nestjs/throttler": "5.1.2",
|
|
58
|
+
"ioredis": "5.3.2",
|
|
47
59
|
"@types/node": "22.10.10",
|
|
60
|
+
"@types/express": "5.0.0",
|
|
48
61
|
"reflect-metadata": "0.2.2",
|
|
49
62
|
"rxjs": "7.8.1",
|
|
50
63
|
"typescript": "~5.9.3"
|