@squiz/optimization-utils 2.0.1 → 2.0.2
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/CHANGELOG.md +6 -0
- package/dist/cloudflare/ImplCloudflareKVHttpService.d.ts +2 -2
- package/dist/cloudflare/ImplCloudflareKVHttpService.js +8 -10
- package/dist/cloudflare/ImplCloudflareKVHttpService.js.map +1 -1
- package/dist/config/ConfigurationLoader.d.ts +1 -1
- package/dist/config/ConfigurationLoader.js +3 -4
- package/dist/config/ConfigurationLoader.js.map +1 -1
- package/dist/index.d.ts +0 -11
- package/dist/index.js +0 -11
- package/dist/index.js.map +1 -1
- package/dist/scheduler/EventBridgeScheduler.d.ts +1 -1
- package/dist/scheduler/EventBridgeScheduler.js +4 -5
- package/dist/scheduler/EventBridgeScheduler.js.map +1 -1
- package/dist/testing/mock.d.ts +0 -8
- package/dist/testing/mock.js +1 -35
- package/dist/testing/mock.js.map +1 -1
- package/package.json +4 -1
- package/src/cloudflare/ImplCloudflareKVHttpService.ts +5 -4
- package/src/cloudflare/__tests__/ImplCloudflareKVHttpService.spec.ts +4 -4
- package/src/config/ConfigurationLoader.ts +4 -2
- package/src/config/__tests__/ConfigurationLoader.spec.ts +3 -3
- package/src/event/__tests__/DynamoDBEventMapper.spec.ts +1 -1
- package/src/index.ts +0 -16
- package/src/scheduler/EventBridgeScheduler.ts +1 -2
- package/src/scheduler/__tests__/EventBridgeScheduler.spec.ts +2 -5
- package/src/testing/mock.ts +0 -47
- package/dist/exception/DomainException.d.ts +0 -18
- package/dist/exception/DomainException.js +0 -41
- package/dist/exception/DomainException.js.map +0 -1
- package/dist/httpClient/FetchHttpClient.d.ts +0 -7
- package/dist/httpClient/FetchHttpClient.js +0 -86
- package/dist/httpClient/FetchHttpClient.js.map +0 -1
- package/dist/httpClient/HttpClient.d.ts +0 -25
- package/dist/httpClient/HttpClient.js +0 -45
- package/dist/httpClient/HttpClient.js.map +0 -1
- package/dist/httpClient/HttpRequestBuilder.d.ts +0 -22
- package/dist/httpClient/HttpRequestBuilder.js +0 -126
- package/dist/httpClient/HttpRequestBuilder.js.map +0 -1
- package/dist/logger/Logger.d.ts +0 -10
- package/dist/logger/Logger.js +0 -30
- package/dist/logger/Logger.js.map +0 -1
- package/dist/logger/LoggerMessage.d.ts +0 -43
- package/dist/logger/LoggerMessage.js +0 -111
- package/dist/logger/LoggerMessage.js.map +0 -1
- package/dist/logger/LogsHandler.d.ts +0 -11
- package/dist/logger/LogsHandler.js +0 -66
- package/dist/logger/LogsHandler.js.map +0 -1
- package/dist/logger/RemoteLogger.d.ts +0 -30
- package/dist/logger/RemoteLogger.js +0 -35
- package/dist/logger/RemoteLogger.js.map +0 -1
- package/dist/logger/SquizRemoteLogger.d.ts +0 -53
- package/dist/logger/SquizRemoteLogger.js +0 -128
- package/dist/logger/SquizRemoteLogger.js.map +0 -1
- package/dist/validation/handleValidation.d.ts +0 -2
- package/dist/validation/handleValidation.js +0 -11
- package/dist/validation/handleValidation.js.map +0 -1
- package/dist/valueObject/TenantId.d.ts +0 -10
- package/dist/valueObject/TenantId.js +0 -23
- package/dist/valueObject/TenantId.js.map +0 -1
- package/src/exception/DomainException.ts +0 -34
- package/src/httpClient/FetchHttpClient.ts +0 -92
- package/src/httpClient/HttpClient.ts +0 -46
- package/src/httpClient/HttpRequestBuilder.ts +0 -120
- package/src/httpClient/__tests__/FetchHttpClient.spec.ts +0 -146
- package/src/httpClient/__tests__/HttpClient.spec.ts +0 -52
- package/src/httpClient/__tests__/httpRequestBuilder.spec.ts +0 -75
- package/src/logger/Logger.ts +0 -40
- package/src/logger/LoggerMessage.ts +0 -179
- package/src/logger/LogsHandler.ts +0 -66
- package/src/logger/RemoteLogger.ts +0 -32
- package/src/logger/SquizRemoteLogger.ts +0 -154
- package/src/logger/__tests__/LoggerMessage.spec.ts +0 -147
- package/src/logger/__tests__/LogsHandler.spec.ts +0 -77
- package/src/logger/__tests__/SquizRemoteLogger.spec.ts +0 -185
- package/src/validation/handleValidation.ts +0 -13
- package/src/valueObject/TenantId.ts +0 -27
|
@@ -1,86 +0,0 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
-
};
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.FetchHttpClient = void 0;
|
|
19
|
-
const inversify_1 = require("inversify");
|
|
20
|
-
const Logger_1 = require("../logger/Logger");
|
|
21
|
-
const LoggerMessage_1 = require("../logger/LoggerMessage");
|
|
22
|
-
const node_fetch_commonjs_1 = __importDefault(require("node-fetch-commonjs"));
|
|
23
|
-
const HttpClient_1 = require("../httpClient/HttpClient");
|
|
24
|
-
const aws_xray_sdk_1 = require("aws-xray-sdk");
|
|
25
|
-
const http_1 = __importDefault(require("http"));
|
|
26
|
-
const https_1 = __importDefault(require("https"));
|
|
27
|
-
(0, aws_xray_sdk_1.captureHTTPsGlobal)(https_1.default, true);
|
|
28
|
-
(0, aws_xray_sdk_1.captureHTTPsGlobal)(http_1.default, true);
|
|
29
|
-
let FetchHttpClient = class FetchHttpClient {
|
|
30
|
-
logger;
|
|
31
|
-
constructor(logger) {
|
|
32
|
-
this.logger = logger;
|
|
33
|
-
}
|
|
34
|
-
async sendRequest({ headers = {}, url, method, body, handleHttpErrorStatusCodes, }) {
|
|
35
|
-
const logMessage = (0, LoggerMessage_1.createLog)()
|
|
36
|
-
.attachMetadata({ url: url.toString() })
|
|
37
|
-
.attachMetadata({ method })
|
|
38
|
-
.create(this);
|
|
39
|
-
const applicationJsonHeader = 'application/json';
|
|
40
|
-
const isApplicationJson = headers['Content-Type'] === applicationJsonHeader;
|
|
41
|
-
const requestBody = body && isApplicationJson ? JSON.stringify(body) : body;
|
|
42
|
-
this.logger.debug(...logMessage('started sending http request'));
|
|
43
|
-
const response = await (0, node_fetch_commonjs_1.default)(url, {
|
|
44
|
-
headers,
|
|
45
|
-
method,
|
|
46
|
-
...(body && { body: requestBody }),
|
|
47
|
-
});
|
|
48
|
-
this.logger.debug(...logMessage('finished sending http request'));
|
|
49
|
-
const responseContentType = response.headers.get('Content-Type');
|
|
50
|
-
const isJsonResponse = responseContentType?.includes(applicationJsonHeader);
|
|
51
|
-
this.logger.debug(...logMessage(`the response ` +
|
|
52
|
-
`${isJsonResponse ? 'contains' : 'does not contain'} ` +
|
|
53
|
-
`the application/json header`));
|
|
54
|
-
this.logger.debug(...logMessage('available headers in the next log:'));
|
|
55
|
-
this.logger.debug(...logMessage(response.headers));
|
|
56
|
-
const responseBodyRawText = await response.text();
|
|
57
|
-
const responseBody = isJsonResponse && responseBodyRawText
|
|
58
|
-
? JSON.parse(responseBodyRawText)
|
|
59
|
-
: responseBodyRawText;
|
|
60
|
-
const httpResponse = new HttpClient_1.HttpResponse({
|
|
61
|
-
statusCode: response.status,
|
|
62
|
-
body: responseBody,
|
|
63
|
-
});
|
|
64
|
-
const shouldBeHandled = handleHttpErrorStatusCodes?.includes(response.status);
|
|
65
|
-
if (shouldBeHandled) {
|
|
66
|
-
this.logger.debug(...logMessage('handled NotFound as an empty response'));
|
|
67
|
-
return httpResponse;
|
|
68
|
-
}
|
|
69
|
-
if (!response.ok) {
|
|
70
|
-
this.logger.error(...logMessage(`http response status: ${response.status}`));
|
|
71
|
-
this.logger.debug(...logMessage(`http response body in the next log`));
|
|
72
|
-
this.logger.debug(...logMessage({ responseBodyRawText }));
|
|
73
|
-
throw new Error(`Error occurs calling: ${method} ${url}`, {
|
|
74
|
-
cause: responseBody,
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
return httpResponse;
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
exports.FetchHttpClient = FetchHttpClient;
|
|
81
|
-
exports.FetchHttpClient = FetchHttpClient = __decorate([
|
|
82
|
-
(0, inversify_1.injectable)(),
|
|
83
|
-
__param(0, (0, inversify_1.inject)(Logger_1.Logger)),
|
|
84
|
-
__metadata("design:paramtypes", [Logger_1.Logger])
|
|
85
|
-
], FetchHttpClient);
|
|
86
|
-
//# sourceMappingURL=FetchHttpClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FetchHttpClient.js","sourceRoot":"","sources":["../../src/httpClient/FetchHttpClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yCAA+C;AAC/C,6CAA0C;AAC1C,2DAAoD;AACpD,8EAAwC;AACxC,yDAIkC;AAClC,+CAAkD;AAClD,gDAAwB;AACxB,kDAA0B;AAE1B,IAAA,iCAAkB,EAAC,eAAK,EAAE,IAAI,CAAC,CAAC;AAChC,IAAA,iCAAkB,EAAC,cAAI,EAAE,IAAI,CAAC,CAAC;AAGxB,IAAM,eAAe,GAArB,MAAM,eAAe;IAGP;IAFnB,YAEmB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,EAChB,OAAO,GAAG,EAAE,EACZ,GAAG,EACH,MAAM,EACN,IAAI,EACJ,0BAA0B,GACP;QACnB,MAAM,UAAU,GAAG,IAAA,yBAAS,GAAE;aAC3B,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;aACvC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;aAC1B,MAAM,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;QACjD,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,qBAAqB,CAAC;QAC5E,MAAM,WAAW,GAAG,IAAI,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAK,EAAC,GAAG,EAAE;YAChC,OAAO;YACP,MAAM;YACN,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAElE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,mBAAmB,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,UAAU,CACX,eAAe;YACb,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,GAAG;YACtD,6BAA6B,CAChC,CACF,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,oCAAoC,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,YAAY,GAChB,cAAc,IAAI,mBAAmB;YACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;YACjC,CAAC,CAAC,mBAAmB,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,yBAAY,CAAC;YACpC,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,0BAA0B,EAAE,QAAQ,CAC1D,QAAQ,CAAC,MAAM,CAChB,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAC1E,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,UAAU,CAAC,yBAAyB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAC1D,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,oCAAoC,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,IAAI,GAAG,EAAE,EAAE;gBACxD,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF,CAAA;AA1EY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,sBAAU,GAAE;IAGR,WAAA,IAAA,kBAAM,EAAC,eAAM,CAAC,CAAA;qCACU,eAAM;GAHtB,eAAe,CA0E3B"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ClassFields } from './../typesUtils/utilities';
|
|
2
|
-
export type HttpRequestOptions = {
|
|
3
|
-
url: URL | string;
|
|
4
|
-
method: HttpMethod;
|
|
5
|
-
body?: string | Record<string, string> | Array<unknown>;
|
|
6
|
-
headers?: Record<string, string>;
|
|
7
|
-
handleHttpErrorStatusCodes?: Array<number>;
|
|
8
|
-
};
|
|
9
|
-
export declare enum HttpMethod {
|
|
10
|
-
GET = "GET",
|
|
11
|
-
POST = "POST",
|
|
12
|
-
DELETE = "DELETE",
|
|
13
|
-
PUT = "PUT",
|
|
14
|
-
PATCH = "PATCH"
|
|
15
|
-
}
|
|
16
|
-
export declare class HttpResponse {
|
|
17
|
-
readonly statusCode: number;
|
|
18
|
-
readonly body: unknown;
|
|
19
|
-
constructor(opts: ClassFields<HttpResponse>);
|
|
20
|
-
hasHttpStatus(statusCode: number): boolean;
|
|
21
|
-
isNotFound(): boolean;
|
|
22
|
-
}
|
|
23
|
-
export declare abstract class HttpClient {
|
|
24
|
-
abstract sendRequest(opts: HttpRequestOptions): Promise<HttpResponse>;
|
|
25
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.HttpClient = exports.HttpResponse = exports.HttpMethod = void 0;
|
|
10
|
-
const inversify_1 = require("inversify");
|
|
11
|
-
const aws_xray_sdk_1 = require("aws-xray-sdk");
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
-
(0, aws_xray_sdk_1.captureHTTPsGlobal)(require('https'));
|
|
14
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
15
|
-
(0, aws_xray_sdk_1.captureHTTPsGlobal)(require('http'));
|
|
16
|
-
var HttpMethod;
|
|
17
|
-
(function (HttpMethod) {
|
|
18
|
-
HttpMethod["GET"] = "GET";
|
|
19
|
-
HttpMethod["POST"] = "POST";
|
|
20
|
-
HttpMethod["DELETE"] = "DELETE";
|
|
21
|
-
HttpMethod["PUT"] = "PUT";
|
|
22
|
-
HttpMethod["PATCH"] = "PATCH";
|
|
23
|
-
})(HttpMethod || (exports.HttpMethod = HttpMethod = {}));
|
|
24
|
-
class HttpResponse {
|
|
25
|
-
statusCode;
|
|
26
|
-
body;
|
|
27
|
-
constructor(opts) {
|
|
28
|
-
this.statusCode = opts.statusCode;
|
|
29
|
-
this.body = opts.body;
|
|
30
|
-
}
|
|
31
|
-
hasHttpStatus(statusCode) {
|
|
32
|
-
return this.statusCode === statusCode;
|
|
33
|
-
}
|
|
34
|
-
isNotFound() {
|
|
35
|
-
return this.hasHttpStatus(404);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.HttpResponse = HttpResponse;
|
|
39
|
-
let HttpClient = class HttpClient {
|
|
40
|
-
};
|
|
41
|
-
exports.HttpClient = HttpClient;
|
|
42
|
-
exports.HttpClient = HttpClient = __decorate([
|
|
43
|
-
(0, inversify_1.injectable)()
|
|
44
|
-
], HttpClient);
|
|
45
|
-
//# sourceMappingURL=HttpClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../src/httpClient/HttpClient.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yCAAuC;AACvC,+CAAkD;AAElD,8DAA8D;AAC9D,IAAA,iCAAkB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,8DAA8D;AAC9D,IAAA,iCAAkB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAUpC,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,yBAAW,CAAA;IACX,6BAAe,CAAA;AACjB,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AAED,MAAa,YAAY;IACd,UAAU,CAAS;IACnB,IAAI,CAAU;IAEvB,YAAY,IAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,UAAkB;QAC9B,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;IACxC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACF;AAhBD,oCAgBC;AAGM,IAAe,UAAU,GAAzB,MAAe,UAAU;CAE/B,CAAA;AAFqB,gCAAU;qBAAV,UAAU;IAD/B,IAAA,sBAAU,GAAE;GACS,UAAU,CAE/B"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { HttpClient, HttpRequestOptions, HttpResponse } from './HttpClient';
|
|
2
|
-
export declare class HttpRequestBuilderFactory {
|
|
3
|
-
private readonly httpClient;
|
|
4
|
-
constructor(httpClient: HttpClient);
|
|
5
|
-
create(): Pick<HttpRequestBuilder, 'url'>;
|
|
6
|
-
}
|
|
7
|
-
export declare class HttpRequestBuilder {
|
|
8
|
-
private opts;
|
|
9
|
-
private readonly httpClient;
|
|
10
|
-
constructor(opts: Partial<HttpRequestOptions>, httpClient: HttpClient);
|
|
11
|
-
url(url: HttpRequestOptions['url']): Pick<HttpRequestBuilder, 'method'>;
|
|
12
|
-
method(method: HttpRequestOptions['method']): HttpRequestBuilder;
|
|
13
|
-
headers(headers: HttpRequestOptions['headers']): HttpRequestBuilder;
|
|
14
|
-
body(body?: HttpRequestOptions['body']): HttpRequestBuilder;
|
|
15
|
-
authorizationByBearer(token: string): HttpRequestBuilder;
|
|
16
|
-
authorizationByXApiKey(apiKey: string): HttpRequestBuilder;
|
|
17
|
-
applicationJson(): HttpRequestBuilder;
|
|
18
|
-
handleNotFound(): HttpRequestBuilder;
|
|
19
|
-
handleErrorStatusCode(errorStatusCode: number): HttpRequestBuilder;
|
|
20
|
-
private setOptions;
|
|
21
|
-
sendRequest(): Promise<HttpResponse>;
|
|
22
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.HttpRequestBuilder = exports.HttpRequestBuilderFactory = void 0;
|
|
13
|
-
const inversify_1 = require("inversify");
|
|
14
|
-
const HttpClient_1 = require("./HttpClient");
|
|
15
|
-
let HttpRequestBuilderFactory = class HttpRequestBuilderFactory {
|
|
16
|
-
httpClient;
|
|
17
|
-
constructor(httpClient) {
|
|
18
|
-
this.httpClient = httpClient;
|
|
19
|
-
}
|
|
20
|
-
create() {
|
|
21
|
-
return new HttpRequestBuilder({}, this.httpClient);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
exports.HttpRequestBuilderFactory = HttpRequestBuilderFactory;
|
|
25
|
-
exports.HttpRequestBuilderFactory = HttpRequestBuilderFactory = __decorate([
|
|
26
|
-
(0, inversify_1.injectable)(),
|
|
27
|
-
__metadata("design:paramtypes", [HttpClient_1.HttpClient])
|
|
28
|
-
], HttpRequestBuilderFactory);
|
|
29
|
-
class HttpRequestBuilder {
|
|
30
|
-
opts;
|
|
31
|
-
httpClient;
|
|
32
|
-
constructor(opts, httpClient) {
|
|
33
|
-
this.opts = opts;
|
|
34
|
-
this.httpClient = httpClient;
|
|
35
|
-
}
|
|
36
|
-
url(url) {
|
|
37
|
-
return this.setOptions({
|
|
38
|
-
...this.opts,
|
|
39
|
-
url,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
method(method) {
|
|
43
|
-
return this.setOptions({
|
|
44
|
-
...this.opts,
|
|
45
|
-
method,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
headers(headers) {
|
|
49
|
-
return this.setOptions({
|
|
50
|
-
...this.opts,
|
|
51
|
-
headers: {
|
|
52
|
-
...this.opts.headers,
|
|
53
|
-
...headers,
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
body(body) {
|
|
58
|
-
return this.setOptions({
|
|
59
|
-
...this.opts,
|
|
60
|
-
body,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
authorizationByBearer(token) {
|
|
64
|
-
return this.setOptions({
|
|
65
|
-
...this.opts,
|
|
66
|
-
headers: {
|
|
67
|
-
...this.opts.headers,
|
|
68
|
-
Authorization: `Bearer ${token}`,
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
authorizationByXApiKey(apiKey) {
|
|
73
|
-
return this.setOptions({
|
|
74
|
-
...this.opts,
|
|
75
|
-
headers: {
|
|
76
|
-
...this.opts.headers,
|
|
77
|
-
'x-api-key': apiKey,
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
applicationJson() {
|
|
82
|
-
return this.setOptions({
|
|
83
|
-
...this.opts,
|
|
84
|
-
headers: {
|
|
85
|
-
...this.opts.headers,
|
|
86
|
-
'Content-Type': 'application/json',
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
handleNotFound() {
|
|
91
|
-
return this.handleErrorStatusCode(404);
|
|
92
|
-
}
|
|
93
|
-
handleErrorStatusCode(errorStatusCode) {
|
|
94
|
-
return this.setOptions({
|
|
95
|
-
...this.opts,
|
|
96
|
-
handleHttpErrorStatusCodes: [
|
|
97
|
-
...new Set([
|
|
98
|
-
...(this.opts.handleHttpErrorStatusCodes ?? []),
|
|
99
|
-
errorStatusCode,
|
|
100
|
-
]),
|
|
101
|
-
],
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
setOptions(opts) {
|
|
105
|
-
this.opts = opts;
|
|
106
|
-
return this;
|
|
107
|
-
}
|
|
108
|
-
sendRequest() {
|
|
109
|
-
if (!this.opts.url) {
|
|
110
|
-
throw new Error('The url is not defined');
|
|
111
|
-
}
|
|
112
|
-
if (!this.opts.method) {
|
|
113
|
-
throw new Error('The method is not defined');
|
|
114
|
-
}
|
|
115
|
-
// this is only for typescript information, without extra variable typescript thinks that
|
|
116
|
-
// the url and method are undefined
|
|
117
|
-
const options = {
|
|
118
|
-
url: this.opts.url,
|
|
119
|
-
method: this.opts.method,
|
|
120
|
-
...this.opts,
|
|
121
|
-
};
|
|
122
|
-
return this.httpClient.sendRequest(options);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
exports.HttpRequestBuilder = HttpRequestBuilder;
|
|
126
|
-
//# sourceMappingURL=HttpRequestBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HttpRequestBuilder.js","sourceRoot":"","sources":["../../src/httpClient/HttpRequestBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/logger/Logger.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { LeveledLogMethod, LogMethod } from 'winston';
|
|
2
|
-
export declare abstract class Logger {
|
|
3
|
-
abstract log: LogMethod;
|
|
4
|
-
abstract error: LeveledLogMethod;
|
|
5
|
-
abstract warn: LeveledLogMethod;
|
|
6
|
-
abstract info: LeveledLogMethod;
|
|
7
|
-
abstract debug: LeveledLogMethod;
|
|
8
|
-
abstract verbose: LeveledLogMethod;
|
|
9
|
-
}
|
|
10
|
-
export declare function createLogger(): Logger;
|
package/dist/logger/Logger.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Logger = void 0;
|
|
4
|
-
exports.createLogger = createLogger;
|
|
5
|
-
const winston_1 = require("winston");
|
|
6
|
-
class Logger {
|
|
7
|
-
}
|
|
8
|
-
exports.Logger = Logger;
|
|
9
|
-
const lambdaFormat = () => {
|
|
10
|
-
return winston_1.format.printf(({ ...attrs }) => {
|
|
11
|
-
// https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime
|
|
12
|
-
return JSON.stringify({
|
|
13
|
-
type: 'app',
|
|
14
|
-
env: process.env.ENV,
|
|
15
|
-
name: process.env.AWS_LAMBDA_FUNCTION_NAME,
|
|
16
|
-
version: process.env.AWS_LAMBDA_FUNCTION_VERSION,
|
|
17
|
-
region: process.env.AWS_REGION,
|
|
18
|
-
trace: process.env._X_AMZN_TRACE_ID,
|
|
19
|
-
...attrs,
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
function createLogger() {
|
|
24
|
-
return (0, winston_1.createLogger)({
|
|
25
|
-
level: process.env.LOGGING_LEVEL || 'debug',
|
|
26
|
-
format: winston_1.format.combine(winston_1.format.timestamp(), winston_1.format.splat(), lambdaFormat()),
|
|
27
|
-
transports: [new winston_1.transports.Console()],
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=Logger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/logger/Logger.ts"],"names":[],"mappings":";;;AAiCA,oCAMC;AAvCD,qCAOiB;AAEjB,MAAsB,MAAM;CAO3B;AAPD,wBAOC;AAED,MAAM,YAAY,GAAG,GAAmB,EAAE;IACxC,OAAO,gBAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;QACpC,wGAAwG;QACxG,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;YACpB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;YAC1C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;YAChD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;YAC9B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;YACnC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,SAAgB,YAAY;IAC1B,OAAO,IAAA,sBAAmB,EAAC;QACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO;QAC3C,MAAM,EAAE,gBAAM,CAAC,OAAO,CAAC,gBAAM,CAAC,SAAS,EAAE,EAAE,gBAAM,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC;QAC1E,UAAU,EAAE,CAAC,IAAI,oBAAU,CAAC,OAAO,EAAE,CAAC;KACvC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { TenantId } from '../valueObject/TenantId';
|
|
2
|
-
type ValueOf = {
|
|
3
|
-
valueOf(): string;
|
|
4
|
-
};
|
|
5
|
-
/**
|
|
6
|
-
* @deprecated
|
|
7
|
-
*/
|
|
8
|
-
export declare function createLogMessage<T extends abstract new (...args: any) => any>(...metadata: Array<string | InstanceType<T>>): (message?: string) => string;
|
|
9
|
-
export declare const TENANT_ID_METADATA: (tenantId: string | ValueOf) => {
|
|
10
|
-
tenantId: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const PROCESSABLE_LOG_METADATA: {
|
|
13
|
-
readonly processable: true;
|
|
14
|
-
};
|
|
15
|
-
export declare const REMOTE_LOG_METADATA: {
|
|
16
|
-
readonly remote: true;
|
|
17
|
-
};
|
|
18
|
-
export interface LogMessage {
|
|
19
|
-
(message: string | any): [string | any, ...Array<any>];
|
|
20
|
-
remote(message: string | any): [string | any, ...Array<any>];
|
|
21
|
-
remote(message: string | any,
|
|
22
|
-
/**
|
|
23
|
-
* The param is not needed if it is passed in the metadata
|
|
24
|
-
*/
|
|
25
|
-
tenantId: TenantId): [string | any, ...Array<any>];
|
|
26
|
-
}
|
|
27
|
-
export type CreateLog = {
|
|
28
|
-
attachMetadata: (metadata: Record<string, unknown>) => CreateLog;
|
|
29
|
-
attachEventName: (eventName: string) => CreateLog;
|
|
30
|
-
attachCorrelationId: (id: string) => CreateLog;
|
|
31
|
-
attachTenantId: (tenantId: string | ValueOf) => CreateLog;
|
|
32
|
-
attachExperimentId: (experimentId: string | ValueOf) => CreateLog;
|
|
33
|
-
attachCaller: <T extends abstract new (...args: any) => any>(caller: InstanceType<T> | string) => CreateLog;
|
|
34
|
-
isProcessable: () => CreateLog;
|
|
35
|
-
remote: () => CreateLog;
|
|
36
|
-
getMetadata: () => Record<string, unknown>;
|
|
37
|
-
create: <T extends abstract new (...args: any) => any>(caller?: InstanceType<T> | string) => LogMessage;
|
|
38
|
-
};
|
|
39
|
-
export declare function createLog(opts?: {
|
|
40
|
-
message?: string;
|
|
41
|
-
metadata?: Record<string, string | boolean | unknown>;
|
|
42
|
-
}): CreateLog;
|
|
43
|
-
export {};
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.REMOTE_LOG_METADATA = exports.PROCESSABLE_LOG_METADATA = exports.TENANT_ID_METADATA = void 0;
|
|
4
|
-
exports.createLogMessage = createLogMessage;
|
|
5
|
-
exports.createLog = createLog;
|
|
6
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
7
|
-
const crypto_1 = require("crypto");
|
|
8
|
-
const normalizeCaller = (stringOrClassInstance) => typeof stringOrClassInstance === 'string'
|
|
9
|
-
? stringOrClassInstance
|
|
10
|
-
: stringOrClassInstance.constructor.name;
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated
|
|
13
|
-
*/
|
|
14
|
-
function createLogMessage(...metadata) {
|
|
15
|
-
const context = (0, crypto_1.randomUUID)();
|
|
16
|
-
const formattedMetadata = [...metadata, `Context: ${context}`]
|
|
17
|
-
.filter((data) => !!data)
|
|
18
|
-
.map((data) => `[${normalizeCaller(data)}]`)
|
|
19
|
-
.join('');
|
|
20
|
-
return (message) => `${formattedMetadata} ${message ?? ''}`;
|
|
21
|
-
}
|
|
22
|
-
const TENANT_ID_METADATA = (tenantId) => ({
|
|
23
|
-
tenantId: typeof tenantId === 'string' ? tenantId : tenantId.valueOf(),
|
|
24
|
-
});
|
|
25
|
-
exports.TENANT_ID_METADATA = TENANT_ID_METADATA;
|
|
26
|
-
exports.PROCESSABLE_LOG_METADATA = { processable: true };
|
|
27
|
-
exports.REMOTE_LOG_METADATA = { remote: true };
|
|
28
|
-
function createLog(opts) {
|
|
29
|
-
opts = {
|
|
30
|
-
metadata: {
|
|
31
|
-
context: (0, crypto_1.randomUUID)(),
|
|
32
|
-
...opts?.metadata,
|
|
33
|
-
},
|
|
34
|
-
message: opts?.message,
|
|
35
|
-
};
|
|
36
|
-
const attachMetadata = (metadata) => {
|
|
37
|
-
return createLog({
|
|
38
|
-
...(opts && opts),
|
|
39
|
-
metadata: {
|
|
40
|
-
...opts?.metadata,
|
|
41
|
-
...metadata,
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
const attachTenantId = (tenantId) => {
|
|
46
|
-
return attachMetadata((0, exports.TENANT_ID_METADATA)(tenantId));
|
|
47
|
-
};
|
|
48
|
-
const attachExperimentId = (experimentId) => {
|
|
49
|
-
return attachMetadata({
|
|
50
|
-
experimentId: typeof experimentId === 'string'
|
|
51
|
-
? experimentId
|
|
52
|
-
: experimentId.valueOf(),
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
const attachEventName = (eventName) => {
|
|
56
|
-
return attachMetadata({
|
|
57
|
-
eventName,
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
const attachCorrelationId = (id) => {
|
|
61
|
-
return attachMetadata({
|
|
62
|
-
correlationId: id,
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
const isProcessable = () => {
|
|
66
|
-
return attachMetadata(exports.PROCESSABLE_LOG_METADATA);
|
|
67
|
-
};
|
|
68
|
-
const remote = () => {
|
|
69
|
-
return attachMetadata(exports.REMOTE_LOG_METADATA);
|
|
70
|
-
};
|
|
71
|
-
const attachCaller = (caller) => {
|
|
72
|
-
return attachMetadata({
|
|
73
|
-
caller: normalizeCaller(caller),
|
|
74
|
-
});
|
|
75
|
-
};
|
|
76
|
-
const create = (caller) => {
|
|
77
|
-
const metadata = {
|
|
78
|
-
...opts?.metadata,
|
|
79
|
-
...(caller && {
|
|
80
|
-
caller: normalizeCaller(caller),
|
|
81
|
-
}),
|
|
82
|
-
};
|
|
83
|
-
function log(message) {
|
|
84
|
-
return [message, metadata];
|
|
85
|
-
}
|
|
86
|
-
log.remote = (message, tenantId) => {
|
|
87
|
-
return [
|
|
88
|
-
message,
|
|
89
|
-
{
|
|
90
|
-
...metadata,
|
|
91
|
-
...exports.REMOTE_LOG_METADATA,
|
|
92
|
-
...(tenantId && { ...(0, exports.TENANT_ID_METADATA)(tenantId) }),
|
|
93
|
-
},
|
|
94
|
-
];
|
|
95
|
-
};
|
|
96
|
-
return log;
|
|
97
|
-
};
|
|
98
|
-
return {
|
|
99
|
-
attachMetadata,
|
|
100
|
-
attachTenantId,
|
|
101
|
-
attachExperimentId,
|
|
102
|
-
attachEventName,
|
|
103
|
-
attachCorrelationId,
|
|
104
|
-
isProcessable,
|
|
105
|
-
attachCaller,
|
|
106
|
-
getMetadata: () => opts?.metadata ?? {},
|
|
107
|
-
remote,
|
|
108
|
-
create,
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=LoggerMessage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LoggerMessage.js","sourceRoot":"","sources":["../../src/logger/LoggerMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { CloudWatchLogsEvent } from 'aws-lambda';
|
|
2
|
-
import { RemoteLogger } from './RemoteLogger';
|
|
3
|
-
import { Logger } from './Logger';
|
|
4
|
-
export declare class LogsHandler {
|
|
5
|
-
private readonly remoteLogger;
|
|
6
|
-
private readonly logger;
|
|
7
|
-
constructor(remoteLogger: RemoteLogger, logger: Logger);
|
|
8
|
-
handle(event: CloudWatchLogsEvent): Promise<void>;
|
|
9
|
-
private mapLogs;
|
|
10
|
-
private decodeLogs;
|
|
11
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
-
};
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.LogsHandler = void 0;
|
|
19
|
-
const zlib_1 = __importDefault(require("zlib"));
|
|
20
|
-
const inversify_1 = require("inversify");
|
|
21
|
-
const util_1 = require("util");
|
|
22
|
-
const RemoteLogger_1 = require("./RemoteLogger");
|
|
23
|
-
const Logger_1 = require("./Logger");
|
|
24
|
-
const LoggerMessage_1 = require("./LoggerMessage");
|
|
25
|
-
let LogsHandler = class LogsHandler {
|
|
26
|
-
remoteLogger;
|
|
27
|
-
logger;
|
|
28
|
-
constructor(remoteLogger, logger) {
|
|
29
|
-
this.remoteLogger = remoteLogger;
|
|
30
|
-
this.logger = logger;
|
|
31
|
-
}
|
|
32
|
-
async handle(event) {
|
|
33
|
-
const logMessage = (0, LoggerMessage_1.createLog)().create(this);
|
|
34
|
-
this.logger.debug(...logMessage(`started mapping CloudWatchLogsEvent`));
|
|
35
|
-
const remoteLogs = this.mapLogs(event, logMessage);
|
|
36
|
-
this.logger.debug(logMessage(`finished mapping CloudWatchLogsEvent`));
|
|
37
|
-
this.logger.debug(logMessage(`started sending logs (count: ${remoteLogs.length}) into the RemoteLogger`));
|
|
38
|
-
await this.remoteLogger.log(remoteLogs);
|
|
39
|
-
this.logger.debug(logMessage('finished sending logs into the RemoteLogger'));
|
|
40
|
-
}
|
|
41
|
-
mapLogs(event, logMessage) {
|
|
42
|
-
const logs = this.decodeLogs(event);
|
|
43
|
-
this.logger.debug(logMessage(`received decoded logs: ${(0, util_1.inspect)(logs, { depth: 4 })}`));
|
|
44
|
-
const isRemoteLog = (log) => !!log;
|
|
45
|
-
return logs
|
|
46
|
-
.map((log) => {
|
|
47
|
-
const result = RemoteLogger_1.REMOTE_LOG_SCHEMA.safeParse(JSON.parse(log.message));
|
|
48
|
-
return result.success ? result.data : undefined;
|
|
49
|
-
})
|
|
50
|
-
.filter(isRemoteLog);
|
|
51
|
-
}
|
|
52
|
-
decodeLogs(event) {
|
|
53
|
-
const payload = Buffer.from(event.awslogs.data, 'base64');
|
|
54
|
-
const logs = JSON.parse(zlib_1.default.unzipSync(payload).toString());
|
|
55
|
-
return logs.logEvents;
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
exports.LogsHandler = LogsHandler;
|
|
59
|
-
exports.LogsHandler = LogsHandler = __decorate([
|
|
60
|
-
(0, inversify_1.injectable)(),
|
|
61
|
-
__param(0, (0, inversify_1.inject)(RemoteLogger_1.RemoteLogger)),
|
|
62
|
-
__param(1, (0, inversify_1.inject)(Logger_1.Logger)),
|
|
63
|
-
__metadata("design:paramtypes", [RemoteLogger_1.RemoteLogger,
|
|
64
|
-
Logger_1.Logger])
|
|
65
|
-
], LogsHandler);
|
|
66
|
-
//# sourceMappingURL=LogsHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LogsHandler.js","sourceRoot":"","sources":["../../src/logger/LogsHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,gDAAwB;AACxB,yCAA+C;AAC/C,+BAA+B;AAE/B,iDAA4E;AAC5E,qCAAkC;AAClC,mDAAwD;AAGjD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGH;IAEA;IAJnB,YAEmB,YAA0B,EAE1B,MAAc;QAFd,iBAAY,GAAZ,YAAY,CAAc;QAE1B,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,MAAM,UAAU,GAAG,IAAA,yBAAS,GAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,UAAU,CACR,gCAAgC,UAAU,CAAC,MAAM,yBAAyB,CAC3E,CACF,CAAC;QACF,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,UAAU,CAAC,6CAA6C,CAAC,CAC1D,CAAC;IACJ,CAAC;IAEO,OAAO,CACb,KAA0B,EAC1B,UAAsB;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,UAAU,CAAC,0BAA0B,IAAA,cAAO,EAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CACpE,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,GAA0B,EAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAE5E,OAAO,IAAI;aACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,MAAM,GAAG,gCAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAEpE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,CAAC,CAAC;aACD,MAAM,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAEO,UAAU,CAChB,KAA0B;QAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF,CAAA;AAvDY,kCAAW;sBAAX,WAAW;IADvB,IAAA,sBAAU,GAAE;IAGR,WAAA,IAAA,kBAAM,EAAC,2BAAY,CAAC,CAAA;IAEpB,WAAA,IAAA,kBAAM,EAAC,eAAM,CAAC,CAAA;qCADgB,2BAAY;QAElB,eAAM;GALtB,WAAW,CAuDvB"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { TenantId } from './../valueObject/TenantId';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
export declare enum RemoteLogLevel {
|
|
4
|
-
INFO = "info",
|
|
5
|
-
WARN = "warn",
|
|
6
|
-
ERROR = "error"
|
|
7
|
-
}
|
|
8
|
-
export declare const REMOTE_LOG_SCHEMA: z.ZodObject<{
|
|
9
|
-
tenantId: z.ZodEffects<z.ZodString, TenantId, string>;
|
|
10
|
-
message: z.ZodString;
|
|
11
|
-
timestamp: z.ZodOptional<z.ZodEffects<z.ZodString, Date, string>>;
|
|
12
|
-
level: z.ZodNativeEnum<typeof RemoteLogLevel>;
|
|
13
|
-
}, "strip", z.ZodTypeAny, {
|
|
14
|
-
message: string;
|
|
15
|
-
level: RemoteLogLevel;
|
|
16
|
-
tenantId: TenantId;
|
|
17
|
-
timestamp?: Date | undefined;
|
|
18
|
-
}, {
|
|
19
|
-
message: string;
|
|
20
|
-
level: RemoteLogLevel;
|
|
21
|
-
tenantId: string;
|
|
22
|
-
timestamp?: string | undefined;
|
|
23
|
-
}>;
|
|
24
|
-
export type RemoteLog = z.infer<typeof REMOTE_LOG_SCHEMA>;
|
|
25
|
-
export declare abstract class RemoteLogger {
|
|
26
|
-
abstract info(log: Omit<RemoteLog, 'level'>): Promise<void>;
|
|
27
|
-
abstract warn(log: Omit<RemoteLog, 'level'>): Promise<void>;
|
|
28
|
-
abstract error(log: Omit<RemoteLog, 'level'>): Promise<void>;
|
|
29
|
-
abstract log(logs: ReadonlyArray<RemoteLog>): Promise<void>;
|
|
30
|
-
}
|