@cryptexlabs/codex-nodejs-common 0.1.7 → 0.1.11

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.
Files changed (40) hide show
  1. package/lib/package.json +1 -1
  2. package/lib/src/pipe/csv.pipe.d.ts +4 -0
  3. package/lib/src/pipe/csv.pipe.js +20 -0
  4. package/lib/src/pipe/csv.pipe.js.map +1 -0
  5. package/lib/src/pipe/index.d.ts +1 -0
  6. package/lib/src/pipe/index.js +1 -0
  7. package/lib/src/pipe/index.js.map +1 -1
  8. package/lib/src/service/{elasticsearch-healthz.service.d.ts → elasticsearch/elasticsearch-healthz.service.d.ts} +2 -2
  9. package/lib/src/service/{elasticsearch-healthz.service.js → elasticsearch/elasticsearch-healthz.service.js} +3 -3
  10. package/lib/src/service/elasticsearch/elasticsearch-healthz.service.js.map +1 -0
  11. package/lib/src/service/elasticsearch/elasticsearch.initializer.d.ts +14 -0
  12. package/lib/src/service/elasticsearch/elasticsearch.initializer.js +59 -0
  13. package/lib/src/service/elasticsearch/elasticsearch.initializer.js.map +1 -0
  14. package/lib/src/service/elasticsearch/index.d.ts +2 -0
  15. package/lib/src/service/elasticsearch/index.js +15 -0
  16. package/lib/src/service/elasticsearch/index.js.map +1 -0
  17. package/lib/src/service/index.d.ts +1 -1
  18. package/lib/src/service/index.js +1 -1
  19. package/lib/src/service/index.js.map +1 -1
  20. package/lib/src/util/array.util.d.ts +3 -0
  21. package/lib/src/util/array.util.js +10 -0
  22. package/lib/src/util/array.util.js.map +1 -0
  23. package/lib/src/util/index.d.ts +1 -0
  24. package/lib/src/util/index.js +1 -0
  25. package/lib/src/util/index.js.map +1 -1
  26. package/lib/src/util/string.util.d.ts +4 -3
  27. package/lib/src/util/string.util.js +6 -3
  28. package/lib/src/util/string.util.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/pipe/csv.pipe.ts +8 -0
  31. package/src/pipe/index.ts +1 -0
  32. package/src/service/{elasticsearch-healthz.service.ts → elasticsearch/elasticsearch-healthz.service.ts} +3 -3
  33. package/src/service/elasticsearch/elasticsearch.initializer.ts +62 -0
  34. package/src/service/elasticsearch/index.ts +2 -0
  35. package/src/service/index.ts +1 -1
  36. package/src/util/array.util.ts +6 -0
  37. package/src/util/index.ts +1 -0
  38. package/src/util/string.util.spec.ts +24 -0
  39. package/src/util/string.util.ts +7 -3
  40. package/lib/src/service/elasticsearch-healthz.service.js.map +0 -1
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptexlabs/codex-nodejs-common",
3
- "version": "0.1.7",
3
+ "version": "0.1.11",
4
4
  "description": "Common code for Assistant applications",
5
5
  "main": "lib/src/index.js",
6
6
  "repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
@@ -0,0 +1,4 @@
1
+ import { ArgumentMetadata, PipeTransform } from "@nestjs/common";
2
+ export declare class CsvPipe implements PipeTransform {
3
+ transform(value: any, metadata: ArgumentMetadata): any;
4
+ }
@@ -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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./country-code.pipe";
2
+ export * from "./csv.pipe";
2
3
  export * from "./language-code.pipe";
3
4
  export * from "./not-empty.pipe";
4
5
  export * from "./joi-http-validation.pipe";
@@ -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 "../config";
2
+ import { DefaultConfig } from "../../config";
3
3
  import { ElasticsearchService } from "@nestjs/elasticsearch";
4
- import { HealthzService } from "./healthz";
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("../config");
17
+ const config_1 = require("../../config");
18
18
  const elasticsearch_1 = require("@nestjs/elasticsearch");
19
- const healthz_1 = require("./healthz");
20
- const time_util_1 = require("../util/time.util");
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,2 @@
1
+ export * from "./elasticsearch-healthz.service";
2
+ export * from "./elasticsearch.initializer";
@@ -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"}
@@ -2,4 +2,4 @@ export * from "./kafka";
2
2
  export * from "./consumer";
3
3
  export * from "./socket";
4
4
  export * from "./healthz";
5
- export * from "./elasticsearch-healthz.service";
5
+ export * from "./elasticsearch";
@@ -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-healthz.service"), exports);
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,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,kDAAgC"}
@@ -0,0 +1,3 @@
1
+ export declare class ArrayUtil {
2
+ static paginate(array: any, pageNumber: any, pageSize: any): any;
3
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArrayUtil = void 0;
4
+ class ArrayUtil {
5
+ static paginate(array, pageNumber, pageSize) {
6
+ return array.slice((pageNumber - 1) * pageSize, pageNumber * pageSize);
7
+ }
8
+ }
9
+ exports.ArrayUtil = ArrayUtil;
10
+ //# sourceMappingURL=array.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.util.js","sourceRoot":"","sources":["../../../src/util/array.util.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ;QAEzC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IACzE,CAAC;CACF;AALD,8BAKC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./string.util";
2
+ export * from "./array.util";
2
3
  export * from "./locale.util";
@@ -11,5 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./string.util"), exports);
14
+ __exportStar(require("./array.util"), exports);
14
15
  __exportStar(require("./locale.util"), exports);
15
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,gDAA8B"}
@@ -2,7 +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 insecureSha1(str: any): void;
6
- static sha256(str: any): void;
7
- static sha512(str: any): void;
5
+ static insecureMd5(str: any): string;
6
+ static insecureSha1(str: any): string;
7
+ static sha256(str: any): string;
8
+ static sha512(str: any): string;
8
9
  }
@@ -20,14 +20,17 @@ class StringUtil {
20
20
  }
21
21
  return false;
22
22
  }
23
+ static insecureMd5(str) {
24
+ return crypto.createHash("md5").update(str).digest("hex");
25
+ }
23
26
  static insecureSha1(str) {
24
- crypto.createHash("sha1").update(str).digest("hex");
27
+ return crypto.createHash("sha1").update(str).digest("hex");
25
28
  }
26
29
  static sha256(str) {
27
- crypto.createHash("sha256").update(str).digest("hex");
30
+ return crypto.createHash("sha256").update(str).digest("hex");
28
31
  }
29
32
  static sha512(str) {
30
- crypto.createHash("sha512").update(str).digest("hex");
33
+ return crypto.createHash("sha512").update(str).digest("hex");
31
34
  }
32
35
  }
33
36
  exports.StringUtil = StringUtil;
@@ -1 +1 @@
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,YAAY,CAAC,GAAG;QAC5B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAG;QACtB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAG;QACtB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;CACF;AApCD,gCAoCC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptexlabs/codex-nodejs-common",
3
- "version": "0.1.7",
3
+ "version": "0.1.11",
4
4
  "description": "Common code for Assistant applications",
5
5
  "main": "lib/src/index.js",
6
6
  "repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
@@ -0,0 +1,8 @@
1
+ import { ArgumentMetadata, Injectable, PipeTransform } from "@nestjs/common";
2
+
3
+ @Injectable()
4
+ export class CsvPipe implements PipeTransform {
5
+ public transform(value: any, metadata: ArgumentMetadata): any {
6
+ return value.split(",");
7
+ }
8
+ }
package/src/pipe/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./country-code.pipe";
2
+ export * from "./csv.pipe";
2
3
  export * from "./language-code.pipe";
3
4
  export * from "./not-empty.pipe";
4
5
  export * from "./joi-http-validation.pipe";
@@ -1,8 +1,8 @@
1
1
  import { Inject, Injectable, LoggerService } from "@nestjs/common";
2
- import { DefaultConfig } from "../config";
2
+ import { DefaultConfig } from "../../config";
3
3
  import { ElasticsearchService } from "@nestjs/elasticsearch";
4
- import { HealthzComponentEnum, HealthzService } from "./healthz";
5
- import { TimeUtil } from "../util/time.util";
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
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./elasticsearch-healthz.service";
2
+ export * from "./elasticsearch.initializer";
@@ -2,4 +2,4 @@ export * from "./kafka";
2
2
  export * from "./consumer";
3
3
  export * from "./socket";
4
4
  export * from "./healthz";
5
- export * from "./elasticsearch-healthz.service";
5
+ export * from "./elasticsearch";
@@ -0,0 +1,6 @@
1
+ export class ArrayUtil {
2
+ static paginate(array, pageNumber, pageSize) {
3
+ // human-readable page numbers usually start with 1, so we reduce 1 in the first argument
4
+ return array.slice((pageNumber - 1) * pageSize, pageNumber * pageSize);
5
+ }
6
+ }
package/src/util/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./string.util";
2
+ export * from "./array.util";
2
3
  export * from "./locale.util";
@@ -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
  });
@@ -24,15 +24,19 @@ export class StringUtil {
24
24
  return false;
25
25
  }
26
26
 
27
+ public static insecureMd5(str) {
28
+ return crypto.createHash("md5").update(str).digest("hex");
29
+ }
30
+
27
31
  public static insecureSha1(str) {
28
- crypto.createHash("sha1").update(str).digest("hex");
32
+ return crypto.createHash("sha1").update(str).digest("hex");
29
33
  }
30
34
 
31
35
  public static sha256(str) {
32
- crypto.createHash("sha256").update(str).digest("hex");
36
+ return crypto.createHash("sha256").update(str).digest("hex");
33
37
  }
34
38
 
35
39
  public static sha512(str) {
36
- crypto.createHash("sha512").update(str).digest("hex");
40
+ return crypto.createHash("sha512").update(str).digest("hex");
37
41
  }
38
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"}