@cryptexlabs/codex-nodejs-common 0.1.6 → 0.1.10
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/lib/package.json +1 -1
- package/lib/src/pipe/csv.pipe.d.ts +4 -0
- package/lib/src/pipe/csv.pipe.js +20 -0
- package/lib/src/pipe/csv.pipe.js.map +1 -0
- package/lib/src/pipe/index.d.ts +1 -0
- package/lib/src/pipe/index.js +1 -0
- package/lib/src/pipe/index.js.map +1 -1
- package/lib/src/service/{elasticsearch-healthz.service.d.ts → elasticsearch/elasticsearch-healthz.service.d.ts} +2 -2
- package/lib/src/service/{elasticsearch-healthz.service.js → elasticsearch/elasticsearch-healthz.service.js} +3 -3
- package/lib/src/service/elasticsearch/elasticsearch-healthz.service.js.map +1 -0
- package/lib/src/service/elasticsearch/elasticsearch.initializer.d.ts +14 -0
- package/lib/src/service/elasticsearch/elasticsearch.initializer.js +59 -0
- package/lib/src/service/elasticsearch/elasticsearch.initializer.js.map +1 -0
- package/lib/src/service/elasticsearch/index.d.ts +2 -0
- package/lib/src/service/elasticsearch/index.js +15 -0
- package/lib/src/service/elasticsearch/index.js.map +1 -0
- package/lib/src/service/index.d.ts +1 -1
- package/lib/src/service/index.js +1 -1
- package/lib/src/service/index.js.map +1 -1
- package/lib/src/util/string.util.d.ts +4 -0
- package/lib/src/util/string.util.js +13 -0
- package/lib/src/util/string.util.js.map +1 -1
- package/package.json +1 -1
- package/src/pipe/csv.pipe.ts +8 -0
- package/src/pipe/index.ts +1 -0
- package/src/service/{elasticsearch-healthz.service.ts → elasticsearch/elasticsearch-healthz.service.ts} +3 -3
- package/src/service/elasticsearch/elasticsearch.initializer.ts +62 -0
- package/src/service/elasticsearch/index.ts +2 -0
- package/src/service/index.ts +1 -1
- package/src/util/string.util.spec.ts +24 -0
- package/src/util/string.util.ts +17 -0
- package/lib/src/service/elasticsearch-healthz.service.js.map +0 -1
package/lib/package.json
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
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.CsvPipe = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let CsvPipe = class CsvPipe {
|
|
12
|
+
transform(value, metadata) {
|
|
13
|
+
return value.split(",");
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
CsvPipe = __decorate([
|
|
17
|
+
common_1.Injectable()
|
|
18
|
+
], CsvPipe);
|
|
19
|
+
exports.CsvPipe = CsvPipe;
|
|
20
|
+
//# sourceMappingURL=csv.pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv.pipe.js","sourceRoot":"","sources":["../../../src/pipe/csv.pipe.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA6E;AAG7E,IAAa,OAAO,GAApB,MAAa,OAAO;IACX,SAAS,CAAC,KAAU,EAAE,QAA0B;QACrD,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACF,CAAA;AAJY,OAAO;IADnB,mBAAU,EAAE;GACA,OAAO,CAInB;AAJY,0BAAO"}
|
package/lib/src/pipe/index.d.ts
CHANGED
package/lib/src/pipe/index.js
CHANGED
|
@@ -11,6 +11,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./country-code.pipe"), exports);
|
|
14
|
+
__exportStar(require("./csv.pipe"), exports);
|
|
14
15
|
__exportStar(require("./language-code.pipe"), exports);
|
|
15
16
|
__exportStar(require("./not-empty.pipe"), exports);
|
|
16
17
|
__exportStar(require("./joi-http-validation.pipe"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipe/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAoC;AACpC,uDAAqC;AACrC,mDAAiC;AACjC,6DAA2C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipe/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAoC;AACpC,6CAA2B;AAC3B,uDAAqC;AACrC,mDAAiC;AACjC,6DAA2C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LoggerService } from "@nestjs/common";
|
|
2
|
-
import { DefaultConfig } from "
|
|
2
|
+
import { DefaultConfig } from "../../config";
|
|
3
3
|
import { ElasticsearchService } from "@nestjs/elasticsearch";
|
|
4
|
-
import { HealthzService } from "
|
|
4
|
+
import { HealthzService } from "../healthz";
|
|
5
5
|
export declare class ElasticsearchHealthzService {
|
|
6
6
|
private readonly config;
|
|
7
7
|
private readonly logger;
|
|
@@ -14,10 +14,10 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.ElasticsearchHealthzService = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
-
const config_1 = require("
|
|
17
|
+
const config_1 = require("../../config");
|
|
18
18
|
const elasticsearch_1 = require("@nestjs/elasticsearch");
|
|
19
|
-
const healthz_1 = require("
|
|
20
|
-
const time_util_1 = require("
|
|
19
|
+
const healthz_1 = require("../healthz");
|
|
20
|
+
const time_util_1 = require("../../util/time.util");
|
|
21
21
|
let ElasticsearchHealthzService = class ElasticsearchHealthzService {
|
|
22
22
|
constructor(config, logger, elasticsearchService, healthzService) {
|
|
23
23
|
this.config = config;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elasticsearch-healthz.service.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch-healthz.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,yCAA6C;AAC7C,yDAA6D;AAC7D,wCAAkE;AAClE,oDAAgD;AAGhD,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IACtC,YACqC,MAAqB,EACrB,MAAqB,EACvC,oBAA0C,EAC1C,cAA8B;QAHZ,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QACvC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,IAAI,EAAE;YACX,IAAI;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACpC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;wBACjD,IAAI,CAAC,KAAK,EAAE;4BACV,OAAO,CAAC,SAAS,CAAC,CAAC;yBACpB;6BAAM;4BACL,MAAM,oBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC3B,MAAM,EAAE,CAAC;yBACV;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;gBACF,OAAO;aACR;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;gBAC1D,MAAM,oBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACjD,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;gBACpE,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA5DY,2BAA2B;IADvC,mBAAU,EAAE;IAGR,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;qCAD0B,sBAAa,UAEjB,oCAAoB;QAC1B,wBAAc;GALtC,2BAA2B,CA4DvC;AA5DY,kEAA2B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ElasticsearchService } from "@nestjs/elasticsearch";
|
|
2
|
+
import { CustomLogger } from "../../logger";
|
|
3
|
+
export declare class ElasticsearchInitializer {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private readonly index;
|
|
6
|
+
private readonly elasticsearchService;
|
|
7
|
+
private readonly indexProperties;
|
|
8
|
+
constructor(logger: CustomLogger, index: string, elasticsearchService: ElasticsearchService, indexProperties: any);
|
|
9
|
+
private _createIndex;
|
|
10
|
+
private _getIndexExists;
|
|
11
|
+
initializeIndex(): Promise<void>;
|
|
12
|
+
_waitForReady(): Promise<void>;
|
|
13
|
+
_isReady(): Promise<boolean>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ElasticsearchInitializer = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
class ElasticsearchInitializer {
|
|
6
|
+
constructor(logger, index, elasticsearchService, indexProperties) {
|
|
7
|
+
this.logger = logger;
|
|
8
|
+
this.index = index;
|
|
9
|
+
this.elasticsearchService = elasticsearchService;
|
|
10
|
+
this.indexProperties = indexProperties;
|
|
11
|
+
}
|
|
12
|
+
async _createIndex() {
|
|
13
|
+
await this.elasticsearchService.indices.create({
|
|
14
|
+
index: this.index,
|
|
15
|
+
body: {},
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async _getIndexExists() {
|
|
19
|
+
const { body } = await this.elasticsearchService.indices.exists({
|
|
20
|
+
index: this.index,
|
|
21
|
+
});
|
|
22
|
+
return body;
|
|
23
|
+
}
|
|
24
|
+
async initializeIndex() {
|
|
25
|
+
await this._waitForReady();
|
|
26
|
+
const exists = await this._getIndexExists();
|
|
27
|
+
if (!exists) {
|
|
28
|
+
await this._createIndex();
|
|
29
|
+
}
|
|
30
|
+
await this.elasticsearchService.indices.putMapping({
|
|
31
|
+
index: this.index,
|
|
32
|
+
body: {
|
|
33
|
+
properties: this.indexProperties,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async _waitForReady() {
|
|
38
|
+
while (!(await this._isReady())) {
|
|
39
|
+
this.logger.info("Waiting for elasticsearch");
|
|
40
|
+
await new Promise((resolve) => {
|
|
41
|
+
setTimeout(resolve, 1000);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async _isReady() {
|
|
46
|
+
return new Promise((resolve) => {
|
|
47
|
+
try {
|
|
48
|
+
this.elasticsearchService.ping((err, response) => {
|
|
49
|
+
resolve(!err && response.statusCode === common_1.HttpStatus.OK);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
resolve(false);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.ElasticsearchInitializer = ElasticsearchInitializer;
|
|
59
|
+
//# sourceMappingURL=elasticsearch.initializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elasticsearch.initializer.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch.initializer.ts"],"names":[],"mappings":";;;AAEA,2CAA4C;AAE5C,MAAa,wBAAwB;IACnC,YACmB,MAAoB,EACpB,KAAa,EACb,oBAA0C,EAC1C,eAAoB;QAHpB,WAAM,GAAN,MAAM,CAAc;QACpB,UAAK,GAAL,KAAK,CAAQ;QACb,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,oBAAe,GAAf,eAAe,CAAK;IACpC,CAAC;IAEI,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9D,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;SAC3B;QAED,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,UAAU,EAAE,IAAI,CAAC,eAAe;aACjC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI;gBACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;oBAC/C,OAAO,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,UAAU,KAAK,mBAAU,CAAC,EAAE,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC;aACJ;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAzDD,4DAyDC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./elasticsearch-healthz.service"), exports);
|
|
14
|
+
__exportStar(require("./elasticsearch.initializer"), exports);
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kEAAgD;AAChD,8DAA4C"}
|
package/lib/src/service/index.js
CHANGED
|
@@ -14,5 +14,5 @@ __exportStar(require("./kafka"), exports);
|
|
|
14
14
|
__exportStar(require("./consumer"), exports);
|
|
15
15
|
__exportStar(require("./socket"), exports);
|
|
16
16
|
__exportStar(require("./healthz"), exports);
|
|
17
|
-
__exportStar(require("./elasticsearch
|
|
17
|
+
__exportStar(require("./elasticsearch"), exports);
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,kDAAgC"}
|
|
@@ -2,4 +2,8 @@ export declare class StringUtil {
|
|
|
2
2
|
private constructor();
|
|
3
3
|
static isRegexString(str: string): boolean;
|
|
4
4
|
static stringMatches(test: string, str: string): boolean;
|
|
5
|
+
static insecureMd5(str: any): string;
|
|
6
|
+
static insecureSha1(str: any): string;
|
|
7
|
+
static sha256(str: any): string;
|
|
8
|
+
static sha512(str: any): string;
|
|
5
9
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StringUtil = void 0;
|
|
4
|
+
const crypto = require("crypto");
|
|
4
5
|
class StringUtil {
|
|
5
6
|
constructor() { }
|
|
6
7
|
static isRegexString(str) {
|
|
@@ -19,6 +20,18 @@ class StringUtil {
|
|
|
19
20
|
}
|
|
20
21
|
return false;
|
|
21
22
|
}
|
|
23
|
+
static insecureMd5(str) {
|
|
24
|
+
return crypto.createHash("md5").update(str).digest("hex");
|
|
25
|
+
}
|
|
26
|
+
static insecureSha1(str) {
|
|
27
|
+
return crypto.createHash("sha1").update(str).digest("hex");
|
|
28
|
+
}
|
|
29
|
+
static sha256(str) {
|
|
30
|
+
return crypto.createHash("sha256").update(str).digest("hex");
|
|
31
|
+
}
|
|
32
|
+
static sha512(str) {
|
|
33
|
+
return crypto.createHash("sha512").update(str).digest("hex");
|
|
34
|
+
}
|
|
22
35
|
}
|
|
23
36
|
exports.StringUtil = StringUtil;
|
|
24
37
|
//# sourceMappingURL=string.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../../src/util/string.util.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACrB,gBAAuB,CAAC;IAEjB,MAAM,CAAC,aAAa,CAAC,GAAW;QACrC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;IAC3E,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,GAAW;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;YACnC,IACE,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5D,UAAU,CACX,EACD;gBACA,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../../src/util/string.util.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,MAAa,UAAU;IACrB,gBAAuB,CAAC;IAEjB,MAAM,CAAC,aAAa,CAAC,GAAW;QACrC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;IAC3E,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,GAAW;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;YACnC,IACE,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5D,UAAU,CACX,EACD;gBACA,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAAG;QAC3B,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,GAAG;QAC5B,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAG;QACtB,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAG;QACtB,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;CACF;AAxCD,gCAwCC"}
|
package/package.json
CHANGED
package/src/pipe/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Inject, Injectable, LoggerService } from "@nestjs/common";
|
|
2
|
-
import { DefaultConfig } from "
|
|
2
|
+
import { DefaultConfig } from "../../config";
|
|
3
3
|
import { ElasticsearchService } from "@nestjs/elasticsearch";
|
|
4
|
-
import { HealthzComponentEnum, HealthzService } from "
|
|
5
|
-
import { TimeUtil } from "
|
|
4
|
+
import { HealthzComponentEnum, HealthzService } from "../healthz";
|
|
5
|
+
import { TimeUtil } from "../../util/time.util";
|
|
6
6
|
|
|
7
7
|
@Injectable()
|
|
8
8
|
export class ElasticsearchHealthzService {
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ElasticsearchService } from "@nestjs/elasticsearch";
|
|
2
|
+
import { CustomLogger } from "../../logger";
|
|
3
|
+
import { HttpStatus } from "@nestjs/common";
|
|
4
|
+
|
|
5
|
+
export class ElasticsearchInitializer {
|
|
6
|
+
constructor(
|
|
7
|
+
private readonly logger: CustomLogger,
|
|
8
|
+
private readonly index: string,
|
|
9
|
+
private readonly elasticsearchService: ElasticsearchService,
|
|
10
|
+
private readonly indexProperties: any
|
|
11
|
+
) {}
|
|
12
|
+
|
|
13
|
+
private async _createIndex() {
|
|
14
|
+
await this.elasticsearchService.indices.create({
|
|
15
|
+
index: this.index,
|
|
16
|
+
body: {},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
private async _getIndexExists() {
|
|
21
|
+
const { body } = await this.elasticsearchService.indices.exists({
|
|
22
|
+
index: this.index,
|
|
23
|
+
});
|
|
24
|
+
return body;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async initializeIndex() {
|
|
28
|
+
await this._waitForReady();
|
|
29
|
+
|
|
30
|
+
const exists = await this._getIndexExists();
|
|
31
|
+
if (!exists) {
|
|
32
|
+
await this._createIndex();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
await this.elasticsearchService.indices.putMapping({
|
|
36
|
+
index: this.index,
|
|
37
|
+
body: {
|
|
38
|
+
properties: this.indexProperties,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async _waitForReady() {
|
|
44
|
+
while (!(await this._isReady())) {
|
|
45
|
+
this.logger.info("Waiting for elasticsearch");
|
|
46
|
+
await new Promise((resolve) => {
|
|
47
|
+
setTimeout(resolve, 1000);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async _isReady(): Promise<boolean> {
|
|
52
|
+
return new Promise((resolve) => {
|
|
53
|
+
try {
|
|
54
|
+
this.elasticsearchService.ping((err, response) => {
|
|
55
|
+
resolve(!err && response.statusCode === HttpStatus.OK);
|
|
56
|
+
});
|
|
57
|
+
} catch (e) {
|
|
58
|
+
resolve(false);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
package/src/service/index.ts
CHANGED
|
@@ -36,4 +36,28 @@ describe("StringUtil", () => {
|
|
|
36
36
|
)
|
|
37
37
|
).toBe(false);
|
|
38
38
|
});
|
|
39
|
+
|
|
40
|
+
it("should md5 a string", () => {
|
|
41
|
+
expect(StringUtil.insecureMd5("hello world")).toBe(
|
|
42
|
+
"5eb63bbbe01eeed093cb22bb8f5acdc3"
|
|
43
|
+
);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("should sha1 a string", () => {
|
|
47
|
+
expect(StringUtil.insecureSha1("hello world")).toBe(
|
|
48
|
+
"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
|
|
49
|
+
);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it("should sha256 a string", () => {
|
|
53
|
+
expect(StringUtil.sha256("hello world")).toBe(
|
|
54
|
+
"b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
|
|
55
|
+
);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("should sha512 a string", () => {
|
|
59
|
+
expect(StringUtil.sha512("hello world")).toBe(
|
|
60
|
+
"309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f"
|
|
61
|
+
);
|
|
62
|
+
});
|
|
39
63
|
});
|
package/src/util/string.util.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as crypto from "crypto";
|
|
1
2
|
export class StringUtil {
|
|
2
3
|
private constructor() {}
|
|
3
4
|
|
|
@@ -22,4 +23,20 @@ export class StringUtil {
|
|
|
22
23
|
}
|
|
23
24
|
return false;
|
|
24
25
|
}
|
|
26
|
+
|
|
27
|
+
public static insecureMd5(str) {
|
|
28
|
+
return crypto.createHash("md5").update(str).digest("hex");
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public static insecureSha1(str) {
|
|
32
|
+
return crypto.createHash("sha1").update(str).digest("hex");
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public static sha256(str) {
|
|
36
|
+
return crypto.createHash("sha256").update(str).digest("hex");
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public static sha512(str) {
|
|
40
|
+
return crypto.createHash("sha512").update(str).digest("hex");
|
|
41
|
+
}
|
|
25
42
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elasticsearch-healthz.service.js","sourceRoot":"","sources":["../../../src/service/elasticsearch-healthz.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,sCAA0C;AAC1C,yDAA6D;AAC7D,uCAAiE;AACjE,iDAA6C;AAG7C,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IACtC,YACqC,MAAqB,EACrB,MAAqB,EACvC,oBAA0C,EAC1C,cAA8B;QAHZ,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QACvC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,IAAI,EAAE;YACX,IAAI;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACpC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;wBACjD,IAAI,CAAC,KAAK,EAAE;4BACV,OAAO,CAAC,SAAS,CAAC,CAAC;yBACpB;6BAAM;4BACL,MAAM,oBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC3B,MAAM,EAAE,CAAC;yBACV;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;gBACF,OAAO;aACR;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;gBAC1D,MAAM,oBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACjD,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;gBACpE,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA5DY,2BAA2B;IADvC,mBAAU,EAAE;IAGR,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;qCAD0B,sBAAa,UAEjB,oCAAoB;QAC1B,wBAAc;GALtC,2BAA2B,CA4DvC;AA5DY,kEAA2B"}
|