@stefaninigo/core 1.0.0 → 1.1.1
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/libs/stefaninigo/cache/cache-service.interface.d.ts +4 -4
- package/dist/libs/stefaninigo/cache/cache.module.d.ts +1 -5
- package/dist/libs/stefaninigo/cache/cache.module.js +2 -2
- package/dist/libs/stefaninigo/cache/cache.module.js.map +1 -1
- package/dist/libs/stefaninigo/cache/local/{loca.service.d.ts → local.service.d.ts} +4 -4
- package/dist/libs/stefaninigo/cache/local/{loca.service.js → local.service.js} +6 -6
- package/dist/libs/stefaninigo/cache/local/local.service.js.map +1 -0
- package/dist/libs/stefaninigo/config/config.service.d.ts +60 -6
- package/dist/libs/stefaninigo/config/config.service.js +11 -7
- package/dist/libs/stefaninigo/config/config.service.js.map +1 -1
- package/dist/libs/stefaninigo/core/bootstrap/bootstrap.helpers.js +1 -1
- package/dist/libs/stefaninigo/core/bootstrap/bootstrap.helpers.js.map +1 -1
- package/dist/libs/stefaninigo/core/dtos/problem-details.dto.js +11 -11
- package/dist/libs/stefaninigo/core/dtos/problem-details.dto.js.map +1 -1
- package/dist/libs/stefaninigo/core/errors/http.error.d.ts +2 -2
- package/dist/libs/stefaninigo/core/errors/http.error.js +7 -3
- package/dist/libs/stefaninigo/core/errors/http.error.js.map +1 -1
- package/dist/libs/stefaninigo/core/filters/http-exception.filter.d.ts +0 -3
- package/dist/libs/stefaninigo/core/filters/http-exception.filter.js +5 -60
- package/dist/libs/stefaninigo/core/filters/http-exception.filter.js.map +1 -1
- package/dist/libs/stefaninigo/core/health/health.service.d.ts +2 -2
- package/dist/libs/stefaninigo/core/interceptors/problem-details.interceptor.d.ts +1 -5
- package/dist/libs/stefaninigo/core/interceptors/problem-details.interceptor.js +13 -83
- package/dist/libs/stefaninigo/core/interceptors/problem-details.interceptor.js.map +1 -1
- package/dist/libs/stefaninigo/core/interceptors/problem-details.utils.d.ts +6 -0
- package/dist/libs/stefaninigo/core/interceptors/problem-details.utils.js +70 -0
- package/dist/libs/stefaninigo/core/interceptors/problem-details.utils.js.map +1 -0
- package/dist/libs/stefaninigo/database/database-service.interface.d.ts +22 -21
- package/dist/libs/stefaninigo/database/database-service.interface.js +0 -16
- package/dist/libs/stefaninigo/database/database-service.interface.js.map +1 -1
- package/dist/libs/stefaninigo/database/database.module.d.ts +2 -6
- package/dist/libs/stefaninigo/database/database.module.js +1 -1
- package/dist/libs/stefaninigo/database/database.module.js.map +1 -1
- package/dist/libs/stefaninigo/database/dynamodb/dynamodb.service.d.ts +11 -9
- package/dist/libs/stefaninigo/database/dynamodb/dynamodb.service.js +7 -10
- package/dist/libs/stefaninigo/database/dynamodb/dynamodb.service.js.map +1 -1
- package/dist/libs/stefaninigo/database/index.js.map +1 -1
- package/dist/libs/stefaninigo/database/postgresdb/postgresdb.services.d.ts +6 -3
- package/dist/libs/stefaninigo/database/postgresdb/postgresdb.services.js +4 -4
- package/dist/libs/stefaninigo/database/postgresdb/postgresdb.services.js.map +1 -1
- package/dist/libs/stefaninigo/events/event-bus/event-bus.types.d.ts +1 -1
- package/dist/libs/stefaninigo/index.d.ts +0 -1
- package/dist/libs/stefaninigo/messaging/index.d.ts +2 -2
- package/dist/libs/stefaninigo/messaging/index.js +2 -2
- package/dist/libs/stefaninigo/messaging/index.js.map +1 -1
- package/dist/libs/stefaninigo/messaging/{messagin-service.interface.d.ts → messaging-service.interface.d.ts} +1 -1
- package/dist/libs/stefaninigo/messaging/{messagin-service.interface.js → messaging-service.interface.js} +1 -1
- package/dist/libs/stefaninigo/messaging/messaging-service.interface.js.map +1 -0
- package/dist/libs/stefaninigo/messaging/{messagin.module.d.ts → messaging.module.d.ts} +2 -6
- package/dist/libs/stefaninigo/messaging/{messagin.module.js → messaging.module.js} +2 -2
- package/dist/libs/stefaninigo/messaging/messaging.module.js.map +1 -0
- package/dist/libs/stefaninigo/messaging/sns/sns.service.d.ts +2 -2
- package/dist/libs/stefaninigo/messaging/sns/sns.service.js +1 -1
- package/dist/libs/stefaninigo/messaging/sns/sns.service.js.map +1 -1
- package/dist/libs/stefaninigo/messaging/sqs/sqs.service.d.ts +1 -1
- package/dist/libs/stefaninigo/messaging/sqs/sqs.service.js +11 -7
- package/dist/libs/stefaninigo/messaging/sqs/sqs.service.js.map +1 -1
- package/dist/libs/stefaninigo/storage/s3/s3-services.js +4 -4
- package/dist/libs/stefaninigo/storage/s3/s3-services.js.map +1 -1
- package/dist/libs/stefaninigo/storage/storage.module.js +1 -1
- package/dist/libs/stefaninigo/storage/storage.module.js.map +1 -1
- package/dist/libs/stefaninigo/transport/index.d.ts +1 -1
- package/dist/libs/stefaninigo/transport/index.js +1 -1
- package/dist/libs/stefaninigo/transport/index.js.map +1 -1
- package/dist/libs/stefaninigo/transport/{trasnport.module.d.ts → transport.module.d.ts} +2 -6
- package/dist/libs/stefaninigo/transport/{trasnport.module.js → transport.module.js} +1 -1
- package/dist/libs/stefaninigo/transport/{trasnport.module.js.map → transport.module.js.map} +1 -1
- package/dist/libs/stefaninigo/transport/web-socket/aws/aws-ws-transport.service.d.ts +2 -2
- package/package.json +7 -2
- package/dist/libs/stefaninigo/cache/local/loca.service.js.map +0 -1
- package/dist/libs/stefaninigo/database/utils/index.d.ts +0 -1
- package/dist/libs/stefaninigo/database/utils/index.js +0 -18
- package/dist/libs/stefaninigo/database/utils/index.js.map +0 -1
- package/dist/libs/stefaninigo/database/utils/normalize-list.d.ts +0 -6
- package/dist/libs/stefaninigo/database/utils/normalize-list.js +0 -13
- package/dist/libs/stefaninigo/database/utils/normalize-list.js.map +0 -1
- package/dist/libs/stefaninigo/messaging/messagin-service.interface.js.map +0 -1
- package/dist/libs/stefaninigo/messaging/messagin.module.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export interface CacheServiceInterface<T = any> {
|
|
2
|
-
set(key: string, value: T, ttl?: number): void
|
|
3
|
-
get(key: string): T | undefined
|
|
4
|
-
delete(key: string): void
|
|
5
|
-
clear(): void
|
|
2
|
+
set(key: string, value: T, ttl?: number): Promise<void>;
|
|
3
|
+
get(key: string): Promise<T | undefined>;
|
|
4
|
+
delete(key: string): Promise<void>;
|
|
5
|
+
clear(): Promise<void>;
|
|
6
6
|
}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { DynamicModule } from '@nestjs/common';
|
|
2
2
|
import { CacheServiceInterface } from './cache-service.interface';
|
|
3
|
-
declare const cacheStrategies:
|
|
4
|
-
[key: string]: new (config: {
|
|
5
|
-
[key: string]: any;
|
|
6
|
-
}) => CacheServiceInterface;
|
|
7
|
-
};
|
|
3
|
+
declare const cacheStrategies: Record<string, new (config: Record<string, any>) => CacheServiceInterface>;
|
|
8
4
|
interface CacheProviderConfig {
|
|
9
5
|
name: string;
|
|
10
6
|
provider: keyof typeof cacheStrategies;
|
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.CacheModule = void 0;
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const redis_service_1 = require("./redis/redis.service");
|
|
13
|
-
const
|
|
13
|
+
const local_service_1 = require("./local/local.service");
|
|
14
14
|
const config_1 = require("../config");
|
|
15
15
|
const config_2 = require("@nestjs/config");
|
|
16
16
|
const PROVIDERS = {
|
|
@@ -19,7 +19,7 @@ const PROVIDERS = {
|
|
|
19
19
|
};
|
|
20
20
|
const cacheStrategies = {
|
|
21
21
|
[PROVIDERS.REDIS]: redis_service_1.RedisCacheService,
|
|
22
|
-
[PROVIDERS.LOCAL]:
|
|
22
|
+
[PROVIDERS.LOCAL]: local_service_1.LocalCacheService,
|
|
23
23
|
};
|
|
24
24
|
let CacheModule = CacheModule_1 = class CacheModule {
|
|
25
25
|
static forRootAsync(providers) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.module.js","sourceRoot":"","sources":["../../../../libs/stefaninigo/src/cache/cache.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAiE;AACjE,yDAA0D;AAE1D,
|
|
1
|
+
{"version":3,"file":"cache.module.js","sourceRoot":"","sources":["../../../../libs/stefaninigo/src/cache/cache.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAiE;AACjE,yDAA0D;AAE1D,yDAA0D;AAC1D,sCAAqD;AACrD,2CAA+C;AAE/C,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,eAAe,GAA+E;IAClG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,iCAAiB;IACpC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,iCAAiB;CACrC,CAAC;AAWK,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAGtB,MAAM,CAAC,YAAY,CAAC,SAAgC;QAClD,MAAM,cAAc,GAAe,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YACtE,MAAM,iBAAiB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAEpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,CAAC,aAAuC,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACvH,MAAM,EAAE,CAAC,iCAAwB,EAAE,sBAAa,CAAC;aAClD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,SAAS,EAAE,cAAc;YACzB,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;;AAvBU,kCAAW;AACf,qBAAS,GAAG,SAAS,AAAZ,CAAa;sBADlB,WAAW;IAJvB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,iCAAwB,EAAE,sBAAa,CAAC;QACpD,OAAO,EAAE,CAAC,iCAAwB,EAAE,sBAAa,CAAC;KACnD,CAAC;GACW,WAAW,CAwBvB"}
|
|
@@ -6,9 +6,9 @@ export declare class LocalCacheService implements CacheServiceInterface {
|
|
|
6
6
|
constructor(config: {
|
|
7
7
|
ttl?: number;
|
|
8
8
|
});
|
|
9
|
-
set(key: string, value: any, ttl?: number): void
|
|
10
|
-
get(key: string): any |
|
|
11
|
-
delete(key: string): void
|
|
12
|
-
clear(): void
|
|
9
|
+
set(key: string, value: any, ttl?: number): Promise<void>;
|
|
10
|
+
get(key: string): Promise<any | undefined>;
|
|
11
|
+
delete(key: string): Promise<void>;
|
|
12
|
+
clear(): Promise<void>;
|
|
13
13
|
destroy(): void;
|
|
14
14
|
}
|
|
@@ -7,7 +7,7 @@ class LocalCacheService {
|
|
|
7
7
|
this.cache = new Map();
|
|
8
8
|
this.timers = new Map();
|
|
9
9
|
}
|
|
10
|
-
set(key, value, ttl) {
|
|
10
|
+
async set(key, value, ttl) {
|
|
11
11
|
const expirationTime = ttl || this.config.ttl || 86400000;
|
|
12
12
|
const existingTimer = this.timers.get(key);
|
|
13
13
|
if (existingTimer) {
|
|
@@ -23,7 +23,7 @@ class LocalCacheService {
|
|
|
23
23
|
}
|
|
24
24
|
this.timers.set(key, timer);
|
|
25
25
|
}
|
|
26
|
-
get(key) {
|
|
26
|
+
async get(key) {
|
|
27
27
|
const cached = this.cache.get(key);
|
|
28
28
|
if (!cached || cached.expiresAt < Date.now()) {
|
|
29
29
|
this.cache.delete(key);
|
|
@@ -32,11 +32,11 @@ class LocalCacheService {
|
|
|
32
32
|
clearTimeout(timer);
|
|
33
33
|
this.timers.delete(key);
|
|
34
34
|
}
|
|
35
|
-
return
|
|
35
|
+
return undefined;
|
|
36
36
|
}
|
|
37
37
|
return cached.value;
|
|
38
38
|
}
|
|
39
|
-
delete(key) {
|
|
39
|
+
async delete(key) {
|
|
40
40
|
this.cache.delete(key);
|
|
41
41
|
const timer = this.timers.get(key);
|
|
42
42
|
if (timer) {
|
|
@@ -44,7 +44,7 @@ class LocalCacheService {
|
|
|
44
44
|
this.timers.delete(key);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
clear() {
|
|
47
|
+
async clear() {
|
|
48
48
|
for (const timer of this.timers.values()) {
|
|
49
49
|
clearTimeout(timer);
|
|
50
50
|
}
|
|
@@ -56,4 +56,4 @@ class LocalCacheService {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
exports.LocalCacheService = LocalCacheService;
|
|
59
|
-
//# sourceMappingURL=
|
|
59
|
+
//# sourceMappingURL=local.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.service.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/cache/local/local.service.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAI5B,YAA6B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;QAH7C,UAAK,GAAqB,IAAI,GAAG,EAAE,CAAC;QACpC,WAAM,GAAgC,IAAI,GAAG,EAAE,CAAC;IAEA,CAAC;IAEzD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,GAAY;QAC7C,MAAM,cAAc,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC;QAG1D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;QAEvE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,EAAE,cAAc,CAAC,CAAC;QAGnB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAOD,OAAO;QACL,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACF;AArED,8CAqEC"}
|
|
@@ -1,20 +1,74 @@
|
|
|
1
1
|
import { ConfigService } from '@nestjs/config';
|
|
2
|
+
export interface MongoDBProviderConfig {
|
|
3
|
+
uri: string;
|
|
4
|
+
dbName: string;
|
|
5
|
+
updateAllFields?: boolean;
|
|
6
|
+
returnUpdatedDocument?: boolean;
|
|
7
|
+
maxPoolSize?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface DynamoDBProviderConfig {
|
|
10
|
+
region: string;
|
|
11
|
+
accessKeyId: string;
|
|
12
|
+
secretAccessKey: string;
|
|
13
|
+
updateAllFields?: boolean;
|
|
14
|
+
returnUpdatedDocument?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface PostgresProviderConfig {
|
|
17
|
+
host: string;
|
|
18
|
+
port: number;
|
|
19
|
+
username: string;
|
|
20
|
+
password: string;
|
|
21
|
+
database: string;
|
|
22
|
+
synchronize?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface S3ProviderConfig {
|
|
25
|
+
region: string;
|
|
26
|
+
accessKeyId: string;
|
|
27
|
+
secretAccessKey: string;
|
|
28
|
+
bucket: string;
|
|
29
|
+
containerPath: string;
|
|
30
|
+
expiresIn?: number;
|
|
31
|
+
}
|
|
32
|
+
export interface RedisProviderConfig {
|
|
33
|
+
host: string;
|
|
34
|
+
port: number;
|
|
35
|
+
password?: string;
|
|
36
|
+
db?: number;
|
|
37
|
+
tls?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface SQSProviderConfig {
|
|
40
|
+
region: string;
|
|
41
|
+
queueUrl: string;
|
|
42
|
+
accessKeyId: string;
|
|
43
|
+
secretAccessKey: string;
|
|
44
|
+
MaxNumberOfMessages?: number;
|
|
45
|
+
WaitTimeSeconds?: number;
|
|
46
|
+
pollInterval?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface SNSProviderConfig {
|
|
49
|
+
region: string;
|
|
50
|
+
accessKeyId: string;
|
|
51
|
+
secretAccessKey: string;
|
|
52
|
+
}
|
|
53
|
+
export interface WsProviderConfig {
|
|
54
|
+
domain: string;
|
|
55
|
+
}
|
|
2
56
|
export declare class StefaniniGoConfigService {
|
|
3
57
|
private configService;
|
|
4
58
|
constructor(configService: ConfigService);
|
|
5
59
|
storage: {
|
|
6
|
-
getConfig: (provider:
|
|
60
|
+
getConfig: (provider: string) => S3ProviderConfig | undefined;
|
|
7
61
|
};
|
|
8
62
|
database: {
|
|
9
|
-
getConfig: (provider: string, configKey?: string) =>
|
|
63
|
+
getConfig: (provider: string, configKey?: string) => MongoDBProviderConfig | DynamoDBProviderConfig | PostgresProviderConfig | undefined;
|
|
10
64
|
};
|
|
11
65
|
cache: {
|
|
12
|
-
getConfig: (provider:
|
|
66
|
+
getConfig: (provider: string) => RedisProviderConfig | undefined;
|
|
13
67
|
};
|
|
14
|
-
|
|
15
|
-
getConfig: (provider:
|
|
68
|
+
messaging: {
|
|
69
|
+
getConfig: (provider: string) => SQSProviderConfig | SNSProviderConfig | undefined;
|
|
16
70
|
};
|
|
17
71
|
transport: {
|
|
18
|
-
getConfig: (provider:
|
|
72
|
+
getConfig: (provider: string) => WsProviderConfig | Record<string, never> | undefined;
|
|
19
73
|
};
|
|
20
74
|
}
|
|
@@ -24,7 +24,8 @@ let StefaniniGoConfigService = class StefaniniGoConfigService {
|
|
|
24
24
|
region: this.configService.get('storage.s3.region'),
|
|
25
25
|
bucket: this.configService.get('storage.s3.bucket'),
|
|
26
26
|
containerPath: this.configService.get('storage.s3.containerPath'),
|
|
27
|
-
|
|
27
|
+
expiresIn: this.configService.get('storage.s3.expiresIn'),
|
|
28
|
+
},
|
|
28
29
|
};
|
|
29
30
|
return providersConfig[provider];
|
|
30
31
|
},
|
|
@@ -66,12 +67,15 @@ let StefaniniGoConfigService = class StefaniniGoConfigService {
|
|
|
66
67
|
REDIS: {
|
|
67
68
|
host: this.configService.get('cache.redis.host'),
|
|
68
69
|
port: this.configService.get('cache.redis.port'),
|
|
69
|
-
|
|
70
|
+
password: this.configService.get('cache.redis.password'),
|
|
71
|
+
db: this.configService.get('cache.redis.db'),
|
|
72
|
+
tls: this.configService.get('cache.redis.tls'),
|
|
73
|
+
},
|
|
70
74
|
};
|
|
71
75
|
return providersConfig[provider];
|
|
72
76
|
},
|
|
73
77
|
};
|
|
74
|
-
this.
|
|
78
|
+
this.messaging = {
|
|
75
79
|
getConfig: (provider) => {
|
|
76
80
|
const providersConfig = {
|
|
77
81
|
SQS: {
|
|
@@ -87,10 +91,10 @@ let StefaniniGoConfigService = class StefaniniGoConfigService {
|
|
|
87
91
|
region: this.configService.get('message.sns.region'),
|
|
88
92
|
accessKeyId: this.configService.get('message.sns.accessKeyId'),
|
|
89
93
|
secretAccessKey: this.configService.get('message.sns.secretAccessKey'),
|
|
90
|
-
}
|
|
94
|
+
},
|
|
91
95
|
};
|
|
92
96
|
return providersConfig[provider];
|
|
93
|
-
}
|
|
97
|
+
},
|
|
94
98
|
};
|
|
95
99
|
this.transport = {
|
|
96
100
|
getConfig: (provider) => {
|
|
@@ -98,10 +102,10 @@ let StefaniniGoConfigService = class StefaniniGoConfigService {
|
|
|
98
102
|
HTTP: {},
|
|
99
103
|
AWS_WS: {
|
|
100
104
|
domain: this.configService.get('transport.aws_ws.domain'),
|
|
101
|
-
}
|
|
105
|
+
},
|
|
102
106
|
};
|
|
103
107
|
return providersConfig[provider];
|
|
104
|
-
}
|
|
108
|
+
},
|
|
105
109
|
};
|
|
106
110
|
}
|
|
107
111
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../../libs/stefaninigo/src/config/config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;
|
|
1
|
+
{"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../../libs/stefaninigo/src/config/config.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.helpers.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/core/bootstrap/bootstrap.helpers.ts"],"names":[],"mappings":";;AAMA,oEAUC;AAsBD,oCA2DC;AAWD,8BASC;AArHD,2CAAkE;AAClE,6CAAiE;AAKjE,SAAgB,4BAA4B;IAC1C,OAAO,IAAI,uBAAc,CAAC;QACxB,SAAS,EAAE,IAAI;QACf,oBAAoB,EAAE,IAAI;QAC1B,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE;YAChB,wBAAwB,EAAE,
|
|
1
|
+
{"version":3,"file":"bootstrap.helpers.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/core/bootstrap/bootstrap.helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,22 +16,22 @@ class ValidationErrorDto {
|
|
|
16
16
|
exports.ValidationErrorDto = ValidationErrorDto;
|
|
17
17
|
__decorate([
|
|
18
18
|
(0, swagger_1.ApiProperty)({
|
|
19
|
-
description: '
|
|
19
|
+
description: 'Field with the error',
|
|
20
20
|
example: 'email',
|
|
21
21
|
}),
|
|
22
22
|
__metadata("design:type", String)
|
|
23
23
|
], ValidationErrorDto.prototype, "path", void 0);
|
|
24
24
|
__decorate([
|
|
25
25
|
(0, swagger_1.ApiProperty)({
|
|
26
|
-
description: '
|
|
26
|
+
description: 'Error code',
|
|
27
27
|
example: 'required',
|
|
28
28
|
}),
|
|
29
29
|
__metadata("design:type", String)
|
|
30
30
|
], ValidationErrorDto.prototype, "code", void 0);
|
|
31
31
|
__decorate([
|
|
32
32
|
(0, swagger_1.ApiProperty)({
|
|
33
|
-
description: '
|
|
34
|
-
example: '
|
|
33
|
+
description: 'Descriptive error message',
|
|
34
|
+
example: 'Email is required',
|
|
35
35
|
}),
|
|
36
36
|
__metadata("design:type", String)
|
|
37
37
|
], ValidationErrorDto.prototype, "message", void 0);
|
|
@@ -40,42 +40,42 @@ class ProblemDetailsDto {
|
|
|
40
40
|
exports.ProblemDetailsDto = ProblemDetailsDto;
|
|
41
41
|
__decorate([
|
|
42
42
|
(0, swagger_1.ApiProperty)({
|
|
43
|
-
description: '
|
|
43
|
+
description: 'Error type (URI)',
|
|
44
44
|
example: 'https://errors.sg.dev/validation-error',
|
|
45
45
|
}),
|
|
46
46
|
__metadata("design:type", String)
|
|
47
47
|
], ProblemDetailsDto.prototype, "type", void 0);
|
|
48
48
|
__decorate([
|
|
49
49
|
(0, swagger_1.ApiProperty)({
|
|
50
|
-
description: '
|
|
50
|
+
description: 'Error title',
|
|
51
51
|
example: 'Validation Error',
|
|
52
52
|
}),
|
|
53
53
|
__metadata("design:type", String)
|
|
54
54
|
], ProblemDetailsDto.prototype, "title", void 0);
|
|
55
55
|
__decorate([
|
|
56
56
|
(0, swagger_1.ApiProperty)({
|
|
57
|
-
description: '
|
|
57
|
+
description: 'HTTP status code',
|
|
58
58
|
example: 422,
|
|
59
59
|
}),
|
|
60
60
|
__metadata("design:type", Number)
|
|
61
61
|
], ProblemDetailsDto.prototype, "status", void 0);
|
|
62
62
|
__decorate([
|
|
63
63
|
(0, swagger_1.ApiProperty)({
|
|
64
|
-
description: '
|
|
64
|
+
description: 'Detailed error description',
|
|
65
65
|
example: 'The provided payload is invalid.',
|
|
66
66
|
}),
|
|
67
67
|
__metadata("design:type", String)
|
|
68
68
|
], ProblemDetailsDto.prototype, "detail", void 0);
|
|
69
69
|
__decorate([
|
|
70
70
|
(0, swagger_1.ApiProperty)({
|
|
71
|
-
description: '
|
|
71
|
+
description: 'Specific error instance',
|
|
72
72
|
example: '/api/v1/resource',
|
|
73
73
|
}),
|
|
74
74
|
__metadata("design:type", String)
|
|
75
75
|
], ProblemDetailsDto.prototype, "instance", void 0);
|
|
76
76
|
__decorate([
|
|
77
77
|
(0, swagger_1.ApiProperty)({
|
|
78
|
-
description: '
|
|
78
|
+
description: 'Request trace ID',
|
|
79
79
|
example: 'a1b2c3d4-e5f6-4a8b-9c0d-1e2f3a4b5c6d',
|
|
80
80
|
required: false,
|
|
81
81
|
}),
|
|
@@ -83,7 +83,7 @@ __decorate([
|
|
|
83
83
|
], ProblemDetailsDto.prototype, "traceId", void 0);
|
|
84
84
|
__decorate([
|
|
85
85
|
(0, swagger_1.ApiProperty)({
|
|
86
|
-
description: '
|
|
86
|
+
description: 'Specific validation errors',
|
|
87
87
|
type: [ValidationErrorDto],
|
|
88
88
|
required: false,
|
|
89
89
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"problem-details.dto.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/core/dtos/problem-details.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,kBAAkB;CAkB9B;AAlBD,gDAkBC;AAbC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"problem-details.dto.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/core/dtos/problem-details.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,kBAAkB;CAkB9B;AAlBD,gDAkBC;AAbC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,OAAO;KACjB,CAAC;;gDACW;AAMb;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,UAAU;KACpB,CAAC;;gDACW;AAMb;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,mBAAmB;KAC7B,CAAC;;mDACc;AAGlB,MAAa,iBAAiB;CA4C7B;AA5CD,8CA4CC;AAvCC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,wCAAwC;KAClD,CAAC;;+CACW;AAMb;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,kBAAkB;KAC5B,CAAC;;gDACY;AAMd;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,GAAG;KACb,CAAC;;iDACa;AAMf;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,kCAAkC;KAC5C,CAAC;;iDACa;AAMf;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;;mDACe;AAOjB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,sCAAsC;QAC/C,QAAQ,EAAE,KAAK;KAChB,CAAC;;kDACe;AAOjB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,CAAC,kBAAkB,CAAC;QAC1B,QAAQ,EAAE,KAAK;KAChB,CAAC;;iDAC4B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HttpException, HttpStatus } from '@nestjs/common';
|
|
2
2
|
export declare class HttpError extends HttpException {
|
|
3
|
-
errorCode: string;
|
|
4
|
-
details?: any;
|
|
5
3
|
constructor(message: string, status: HttpStatus, errorCode: string, details?: any);
|
|
4
|
+
get errorCode(): string;
|
|
5
|
+
get details(): any;
|
|
6
6
|
}
|
|
@@ -4,9 +4,13 @@ exports.HttpError = void 0;
|
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
class HttpError extends common_1.HttpException {
|
|
6
6
|
constructor(message, status, errorCode, details) {
|
|
7
|
-
super(message, status);
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
super({ message, errorCode, details, statusCode: status }, status);
|
|
8
|
+
}
|
|
9
|
+
get errorCode() {
|
|
10
|
+
return this.getResponse().errorCode;
|
|
11
|
+
}
|
|
12
|
+
get details() {
|
|
13
|
+
return this.getResponse().details;
|
|
10
14
|
}
|
|
11
15
|
}
|
|
12
16
|
exports.HttpError = HttpError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.error.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/core/errors/http.error.ts"],"names":[],"mappings":";;;AAAA,2CAA2D;AAE3D,MAAa,SAAU,SAAQ,sBAAa;
|
|
1
|
+
{"version":3,"file":"http.error.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/core/errors/http.error.ts"],"names":[],"mappings":";;;AAAA,2CAA2D;AAE3D,MAAa,SAAU,SAAQ,sBAAa;IAC1C,YACE,OAAe,EACf,MAAkB,EAClB,SAAiB,EACjB,OAAa;QAEb,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,SAAS;QACX,OAAQ,IAAI,CAAC,WAAW,EAAU,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO;QACT,OAAQ,IAAI,CAAC,WAAW,EAAU,CAAC,OAAO,CAAC;IAC7C,CAAC;CACF;AAjBD,8BAiBC"}
|
|
@@ -4,9 +4,6 @@ export declare class HttpExceptionFilter implements ExceptionFilter {
|
|
|
4
4
|
private readonly logger;
|
|
5
5
|
private readonly isDevelopment;
|
|
6
6
|
catch(exception: unknown, host: ArgumentsHost): Response<any, Record<string, any>>;
|
|
7
|
-
private isValidProblemDetails;
|
|
8
7
|
private extractDetail;
|
|
9
|
-
private buildProblemDetails;
|
|
10
8
|
private logError;
|
|
11
|
-
private sanitizeBody;
|
|
12
9
|
}
|
|
@@ -9,6 +9,7 @@ var HttpExceptionFilter_1;
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.HttpExceptionFilter = void 0;
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
|
+
const problem_details_utils_1 = require("../interceptors/problem-details.utils");
|
|
12
13
|
let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
|
|
13
14
|
constructor() {
|
|
14
15
|
this.logger = new common_1.Logger(HttpExceptionFilter_1.name);
|
|
@@ -22,11 +23,11 @@ let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
|
|
|
22
23
|
if (exception instanceof common_1.HttpException) {
|
|
23
24
|
const status = exception.getStatus();
|
|
24
25
|
const responseBody = exception.getResponse();
|
|
25
|
-
if (
|
|
26
|
+
if ((0, problem_details_utils_1.isValidProblemDetails)(responseBody)) {
|
|
26
27
|
return res.status(status).json(responseBody);
|
|
27
28
|
}
|
|
28
29
|
const detail = this.extractDetail(responseBody, exception);
|
|
29
|
-
const problemDetails =
|
|
30
|
+
const problemDetails = (0, problem_details_utils_1.buildProblemDetails)(status, detail, req.url, req['traceId']);
|
|
30
31
|
if (this.isDevelopment) {
|
|
31
32
|
problemDetails.debugInfo = {
|
|
32
33
|
errorType: exception.constructor.name,
|
|
@@ -37,7 +38,7 @@ let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
|
|
|
37
38
|
}
|
|
38
39
|
const errorMessage = exception instanceof Error ? exception.message : 'Unknown error';
|
|
39
40
|
const errorName = exception instanceof Error ? exception.constructor.name : 'UnknownError';
|
|
40
|
-
const problemDetails =
|
|
41
|
+
const problemDetails = (0, problem_details_utils_1.buildProblemDetails)(common_1.HttpStatus.INTERNAL_SERVER_ERROR, this.isDevelopment
|
|
41
42
|
? `${errorName}: ${errorMessage}`
|
|
42
43
|
: 'Internal server error. Check the server logs for more details.', req.url, req['traceId']);
|
|
43
44
|
if (this.isDevelopment) {
|
|
@@ -49,15 +50,6 @@ let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
|
|
|
49
50
|
}
|
|
50
51
|
return res.status(common_1.HttpStatus.INTERNAL_SERVER_ERROR).json(problemDetails);
|
|
51
52
|
}
|
|
52
|
-
isValidProblemDetails(body) {
|
|
53
|
-
return (typeof body === 'object' &&
|
|
54
|
-
body !== null &&
|
|
55
|
-
'type' in body &&
|
|
56
|
-
'title' in body &&
|
|
57
|
-
'status' in body &&
|
|
58
|
-
'detail' in body &&
|
|
59
|
-
'instance' in body);
|
|
60
|
-
}
|
|
61
53
|
extractDetail(responseBody, exception) {
|
|
62
54
|
if (typeof responseBody === 'string') {
|
|
63
55
|
return responseBody;
|
|
@@ -76,38 +68,6 @@ let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
|
|
|
76
68
|
}
|
|
77
69
|
return exception.message || 'Request error';
|
|
78
70
|
}
|
|
79
|
-
buildProblemDetails(status, detail, instance, traceId) {
|
|
80
|
-
const statusMap = {
|
|
81
|
-
400: 'bad-request',
|
|
82
|
-
401: 'unauthorized',
|
|
83
|
-
403: 'forbidden',
|
|
84
|
-
404: 'not-found',
|
|
85
|
-
409: 'conflict',
|
|
86
|
-
422: 'validation-error',
|
|
87
|
-
429: 'too-many-requests',
|
|
88
|
-
500: 'internal-server-error',
|
|
89
|
-
503: 'service-unavailable',
|
|
90
|
-
};
|
|
91
|
-
const titleMap = {
|
|
92
|
-
400: 'Bad Request',
|
|
93
|
-
401: 'Unauthorized',
|
|
94
|
-
403: 'Forbidden',
|
|
95
|
-
404: 'Not Found',
|
|
96
|
-
409: 'Conflict',
|
|
97
|
-
422: 'Validation Error',
|
|
98
|
-
429: 'Too Many Requests',
|
|
99
|
-
500: 'Internal Server Error',
|
|
100
|
-
503: 'Service Unavailable',
|
|
101
|
-
};
|
|
102
|
-
return {
|
|
103
|
-
type: `https://errors.sg.dev/${statusMap[status] || 'error'}`,
|
|
104
|
-
title: titleMap[status] || 'Error',
|
|
105
|
-
status,
|
|
106
|
-
detail,
|
|
107
|
-
instance,
|
|
108
|
-
traceId,
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
71
|
logError(exception, req) {
|
|
112
72
|
const isHttpException = exception instanceof common_1.HttpException;
|
|
113
73
|
const statusCode = isHttpException ? exception.getStatus() : 500;
|
|
@@ -119,24 +79,9 @@ let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
|
|
|
119
79
|
` URL: ${req.method} ${req.url}\n` +
|
|
120
80
|
` Query: ${JSON.stringify(req.query || {})}\n` +
|
|
121
81
|
` Params: ${JSON.stringify(req.params || {})}\n` +
|
|
122
|
-
` Body: ${JSON.stringify(
|
|
82
|
+
` Body: ${JSON.stringify((0, problem_details_utils_1.sanitizeBody)(req.body) || {})}`);
|
|
123
83
|
this.logger.error(`Stack Trace:\n${stack}`);
|
|
124
84
|
}
|
|
125
|
-
sanitizeBody(body) {
|
|
126
|
-
if (!body)
|
|
127
|
-
return null;
|
|
128
|
-
const sensitiveFields = [
|
|
129
|
-
'password', 'temporaryPassword', 'newPassword', 'oldPassword',
|
|
130
|
-
'token', 'accessToken', 'refreshToken',
|
|
131
|
-
];
|
|
132
|
-
const sanitized = { ...body };
|
|
133
|
-
for (const field of sensitiveFields) {
|
|
134
|
-
if (sanitized[field]) {
|
|
135
|
-
sanitized[field] = '[REDACTED]';
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return sanitized;
|
|
139
|
-
}
|
|
140
85
|
};
|
|
141
86
|
exports.HttpExceptionFilter = HttpExceptionFilter;
|
|
142
87
|
exports.HttpExceptionFilter = HttpExceptionFilter = HttpExceptionFilter_1 = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/core/filters/http-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAOwB;
|
|
1
|
+
{"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/core/filters/http-exception.filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { HealthConfig, HealthSummary, ReadinessReport, LivenessReport } from './health.types';
|
|
2
|
-
import {
|
|
2
|
+
import { DatabaseMethods } from '../../database/database-service.interface';
|
|
3
3
|
export declare class HealthService {
|
|
4
4
|
private readonly config;
|
|
5
5
|
private readonly databaseService?;
|
|
6
6
|
private readonly logger;
|
|
7
7
|
private readonly startTime;
|
|
8
|
-
constructor(config: HealthConfig, databaseService?:
|
|
8
|
+
constructor(config: HealthConfig, databaseService?: DatabaseMethods);
|
|
9
9
|
health(): Promise<HealthSummary>;
|
|
10
10
|
readiness(): Promise<ReadinessReport>;
|
|
11
11
|
liveness(): LivenessReport;
|
|
@@ -7,12 +7,8 @@ export declare class ProblemDetailsInterceptor implements NestInterceptor {
|
|
|
7
7
|
private readonly isDevelopment;
|
|
8
8
|
intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
|
|
9
9
|
private logError;
|
|
10
|
-
private sanitizeBody;
|
|
11
|
-
private isValidProblemDetails;
|
|
12
10
|
private createProblemDetails;
|
|
13
11
|
private convertToProblemDetails;
|
|
14
|
-
private
|
|
15
|
-
private getErrorTypeFromStatus;
|
|
16
|
-
private getTitleFromStatus;
|
|
12
|
+
private buildWithDebug;
|
|
17
13
|
private extractValidationErrors;
|
|
18
14
|
}
|