@gaias/basenode 0.0.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.
Files changed (132) hide show
  1. package/.dockerignore +12 -0
  2. package/.drone.yml +54 -0
  3. package/.eslintignore +4 -0
  4. package/.ncurc.json +8 -0
  5. package/Dockerfile +15 -0
  6. package/README.adoc +44 -0
  7. package/README.md +47 -0
  8. package/dist/deps/Libs.d.ts +10 -0
  9. package/dist/deps/Libs.js +46 -0
  10. package/dist/deps/Libs.js.map +1 -0
  11. package/dist/deps/index.d.ts +1 -0
  12. package/dist/deps/index.js +18 -0
  13. package/dist/deps/index.js.map +1 -0
  14. package/dist/index.d.ts +4 -0
  15. package/dist/index.js +21 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/libs/ApiGatewayLoader.d.ts +3 -0
  18. package/dist/libs/ApiGatewayLoader.js +82 -0
  19. package/dist/libs/ApiGatewayLoader.js.map +1 -0
  20. package/dist/libs/ApiRegisterController.d.ts +12 -0
  21. package/dist/libs/ApiRegisterController.js +245 -0
  22. package/dist/libs/ApiRegisterController.js.map +1 -0
  23. package/dist/libs/ApplicationConfig.d.ts +12 -0
  24. package/dist/libs/ApplicationConfig.js +3 -0
  25. package/dist/libs/ApplicationConfig.js.map +1 -0
  26. package/dist/libs/BizError.d.ts +8 -0
  27. package/dist/libs/BizError.js +14 -0
  28. package/dist/libs/BizError.js.map +1 -0
  29. package/dist/libs/CacheService.d.ts +57 -0
  30. package/dist/libs/CacheService.js +309 -0
  31. package/dist/libs/CacheService.js.map +1 -0
  32. package/dist/libs/ConfigManager.d.ts +19 -0
  33. package/dist/libs/ConfigManager.js +52 -0
  34. package/dist/libs/ConfigManager.js.map +1 -0
  35. package/dist/libs/Converter.d.ts +32 -0
  36. package/dist/libs/Converter.js +148 -0
  37. package/dist/libs/Converter.js.map +1 -0
  38. package/dist/libs/CurrentUserToken.d.ts +7 -0
  39. package/dist/libs/CurrentUserToken.js +3 -0
  40. package/dist/libs/CurrentUserToken.js.map +1 -0
  41. package/dist/libs/DistributedEvents.d.ts +13 -0
  42. package/dist/libs/DistributedEvents.js +102 -0
  43. package/dist/libs/DistributedEvents.js.map +1 -0
  44. package/dist/libs/DistributedEventsLoader.d.ts +6 -0
  45. package/dist/libs/DistributedEventsLoader.js +30 -0
  46. package/dist/libs/DistributedEventsLoader.js.map +1 -0
  47. package/dist/libs/EventsManager.d.ts +16 -0
  48. package/dist/libs/EventsManager.js +56 -0
  49. package/dist/libs/EventsManager.js.map +1 -0
  50. package/dist/libs/HealthCheckController.d.ts +24 -0
  51. package/dist/libs/HealthCheckController.js +83 -0
  52. package/dist/libs/HealthCheckController.js.map +1 -0
  53. package/dist/libs/HttpMethods.d.ts +8 -0
  54. package/dist/libs/HttpMethods.js +80 -0
  55. package/dist/libs/HttpMethods.js.map +1 -0
  56. package/dist/libs/IdGenerator.d.ts +1 -0
  57. package/dist/libs/IdGenerator.js +7 -0
  58. package/dist/libs/IdGenerator.js.map +1 -0
  59. package/dist/libs/KoaControllerReturnHandler.d.ts +6 -0
  60. package/dist/libs/KoaControllerReturnHandler.js +83 -0
  61. package/dist/libs/KoaControllerReturnHandler.js.map +1 -0
  62. package/dist/libs/KoaLoader.d.ts +20 -0
  63. package/dist/libs/KoaLoader.js +177 -0
  64. package/dist/libs/KoaLoader.js.map +1 -0
  65. package/dist/libs/Leader.d.ts +39 -0
  66. package/dist/libs/Leader.js +145 -0
  67. package/dist/libs/Leader.js.map +1 -0
  68. package/dist/libs/Logger.d.ts +8 -0
  69. package/dist/libs/Logger.js +48 -0
  70. package/dist/libs/Logger.js.map +1 -0
  71. package/dist/libs/Pagination.d.ts +23 -0
  72. package/dist/libs/Pagination.js +120 -0
  73. package/dist/libs/Pagination.js.map +1 -0
  74. package/dist/libs/RedisClient.d.ts +15 -0
  75. package/dist/libs/RedisClient.js +84 -0
  76. package/dist/libs/RedisClient.js.map +1 -0
  77. package/dist/libs/RedisLoader.d.ts +3 -0
  78. package/dist/libs/RedisLoader.js +31 -0
  79. package/dist/libs/RedisLoader.js.map +1 -0
  80. package/dist/libs/ResRegTypes.d.ts +17 -0
  81. package/dist/libs/ResRegTypes.js +3 -0
  82. package/dist/libs/ResRegTypes.js.map +1 -0
  83. package/dist/libs/Timer.d.ts +13 -0
  84. package/dist/libs/Timer.js +62 -0
  85. package/dist/libs/Timer.js.map +1 -0
  86. package/dist/libs/TypeormLoader.d.ts +8 -0
  87. package/dist/libs/TypeormLoader.js +49 -0
  88. package/dist/libs/TypeormLoader.js.map +1 -0
  89. package/dist/libs/ValidationHelper.d.ts +13 -0
  90. package/dist/libs/ValidationHelper.js +73 -0
  91. package/dist/libs/ValidationHelper.js.map +1 -0
  92. package/dist/libs/apisix/ApisixTemplate.d.ts +6 -0
  93. package/dist/libs/apisix/ApisixTemplate.js +88 -0
  94. package/dist/libs/apisix/ApisixTemplate.js.map +1 -0
  95. package/dist/libs/apisix/HttpPutter.d.ts +1 -0
  96. package/dist/libs/apisix/HttpPutter.js +51 -0
  97. package/dist/libs/apisix/HttpPutter.js.map +1 -0
  98. package/dist/libs/apisix/index.d.ts +2 -0
  99. package/dist/libs/apisix/index.js +19 -0
  100. package/dist/libs/apisix/index.js.map +1 -0
  101. package/dist/libs/i18nValidator.d.ts +3 -0
  102. package/dist/libs/i18nValidator.js +38 -0
  103. package/dist/libs/i18nValidator.js.map +1 -0
  104. package/dist/libs/index.d.ts +28 -0
  105. package/dist/libs/index.js +45 -0
  106. package/dist/libs/index.js.map +1 -0
  107. package/dist/libs/types.d.ts +3 -0
  108. package/dist/libs/types.js +3 -0
  109. package/dist/libs/types.js.map +1 -0
  110. package/dist/server/bootstrap.d.ts +14 -0
  111. package/dist/server/bootstrap.js +63 -0
  112. package/dist/server/bootstrap.js.map +1 -0
  113. package/dist/server/index.d.ts +1 -0
  114. package/dist/server/index.js +18 -0
  115. package/dist/server/index.js.map +1 -0
  116. package/dist/utils/YamlUtil.d.ts +1 -0
  117. package/dist/utils/YamlUtil.js +43 -0
  118. package/dist/utils/YamlUtil.js.map +1 -0
  119. package/dist/utils/crypto.d.ts +9 -0
  120. package/dist/utils/crypto.js +34 -0
  121. package/dist/utils/crypto.js.map +1 -0
  122. package/dist/utils/index.d.ts +4 -0
  123. package/dist/utils/index.js +21 -0
  124. package/dist/utils/index.js.map +1 -0
  125. package/dist/utils/jwtUtil.d.ts +9 -0
  126. package/dist/utils/jwtUtil.js +41 -0
  127. package/dist/utils/jwtUtil.js.map +1 -0
  128. package/dist/utils/transformer.d.ts +9 -0
  129. package/dist/utils/transformer.js +44 -0
  130. package/dist/utils/transformer.js.map +1 -0
  131. package/gen_db.json +7 -0
  132. package/package.json +127 -0
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RedisClient = void 0;
16
+ const ioredis_1 = __importDefault(require("ioredis"));
17
+ const lodash_1 = __importDefault(require("lodash"));
18
+ const Logger_1 = require("./Logger");
19
+ class RedisClient {
20
+ constructor(redisCfg) {
21
+ this.redisCfg = redisCfg;
22
+ this.logger = Logger_1.Logger.getLogger(RedisClient);
23
+ this.redis = this.newClient();
24
+ }
25
+ newClient() {
26
+ return new ioredis_1.default(this.redisCfg);
27
+ }
28
+ saveCounter(counterName, counter, overwrite = false) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ if (overwrite) {
31
+ yield this.redis.hset(counterName, counter);
32
+ }
33
+ else {
34
+ const pl = this.redis.multi();
35
+ Object.keys(counter).forEach((field) => {
36
+ const value = counter[field];
37
+ if (!lodash_1.default.isNil(value)) {
38
+ pl.hsetnx(counterName, field, value);
39
+ }
40
+ });
41
+ yield pl.exec();
42
+ }
43
+ });
44
+ }
45
+ increaseCounter(counterName, name, step = 1) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ return this.redis.hincrby(counterName, name, step);
48
+ });
49
+ }
50
+ decreaseCounter(counterName, name, step = 1) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ return this.redis.hincrby(counterName, name, 0 - step);
53
+ });
54
+ }
55
+ removeCounter(counterName, name) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ if (typeof name === 'string') {
58
+ return this.redis.hdel(counterName, name);
59
+ }
60
+ else {
61
+ const pl = this.redis.multi();
62
+ name.forEach((n) => pl.hdel(counterName, n));
63
+ return pl.exec();
64
+ }
65
+ });
66
+ }
67
+ getCounterKeys(counterName) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ return this.redis.hkeys(counterName);
70
+ });
71
+ }
72
+ getCounterValues(counterName, name) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ if (typeof name === 'string') {
75
+ return this.redis.hget(counterName, name);
76
+ }
77
+ else {
78
+ return this.redis.hmget(counterName, name);
79
+ }
80
+ });
81
+ }
82
+ }
83
+ exports.RedisClient = RedisClient;
84
+ //# sourceMappingURL=RedisClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisClient.js","sourceRoot":"","sources":["../../../src/libs/RedisClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,oDAAuB;AACvB,qCAAkC;AAElC,MAAa,WAAW;IAKtB,YAA4B,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;QAJlD,WAAM,GAAG,eAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAKrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,iBAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEK,WAAW,CAAC,WAAmB,EAAE,OAA+B,EAAE,SAAS,GAAG,KAAK;;YACvF,IAAI,SAAS,EAAE;gBACb,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;aAC7C;iBAAM;gBACL,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC7B,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;wBACnB,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;qBACtC;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;aACjB;QACH,CAAC;KAAA;IAEK,eAAe,CAAC,WAAmB,EAAE,IAAY,EAAE,IAAI,GAAG,CAAC;;YAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;IAEK,eAAe,CAAC,WAAmB,EAAE,IAAY,EAAE,IAAI,GAAG,CAAC;;YAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACzD,CAAC;KAAA;IAEK,aAAa,CAAC,WAAmB,EAAE,IAAuB;;YAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC3C;iBAAM;gBACL,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;aAClB;QACH,CAAC;KAAA;IAEK,cAAc,CAAC,WAAmB;;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;KAAA;IAEK,gBAAgB,CAAC,WAAmB,EAAE,IAAuB;;YACjE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC3C;iBAAM;gBACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC5C;QACH,CAAC;KAAA;CACF;AAzDD,kCAyDC"}
@@ -0,0 +1,3 @@
1
+ import { MicroframeworkSettings } from 'microframework';
2
+ export declare type RedisLoaderOption = unknown;
3
+ export declare const redisLoader: (option: RedisLoaderOption) => (settings?: MicroframeworkSettings) => Promise<void>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.redisLoader = void 0;
13
+ const typedi_1 = require("typedi");
14
+ const ConfigManager_1 = require("./ConfigManager");
15
+ const Logger_1 = require("./Logger");
16
+ const RedisClient_1 = require("./RedisClient");
17
+ const redisLoader = (option) => (settings) => {
18
+ const cfg = ConfigManager_1.ConfigManager.getConfig('database');
19
+ const redisClient = new RedisClient_1.RedisClient(cfg.redis);
20
+ typedi_1.Container.set(RedisClient_1.RedisClient, redisClient);
21
+ const { redis } = redisClient;
22
+ settings === null || settings === void 0 ? void 0 : settings.onShutdown(() => __awaiter(void 0, void 0, void 0, function* () { return redis.disconnect(); }));
23
+ Logger_1.Logger.getLogger('RedisLoader').info(`🔗Redis connected.`);
24
+ return new Promise((resolve) => {
25
+ redis.once('connect', () => {
26
+ resolve();
27
+ });
28
+ });
29
+ };
30
+ exports.redisLoader = redisLoader;
31
+ //# sourceMappingURL=RedisLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisLoader.js","sourceRoot":"","sources":["../../../src/libs/RedisLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAmC;AAEnC,mDAAgD;AAChD,qCAAkC;AAClC,+CAA4C;AAKrC,MAAM,WAAW,GAAG,CAAC,MAAyB,EAAE,EAAE,CAAC,CAAC,QAAiC,EAAE,EAAE;IAC9F,MAAM,GAAG,GAAG,6BAAa,CAAC,SAAS,CAAiB,UAAU,CAAC,CAAC;IAChE,MAAM,WAAW,GAAgB,IAAI,yBAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5D,kBAAS,CAAC,GAAG,CAAC,yBAAW,EAAE,WAAW,CAAC,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;IAC9B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,GAAS,EAAE,kDAAC,OAAA,KAAK,CAAC,UAAU,EAAE,CAAA,GAAA,CAAC,CAAC;IACrD,eAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAE3D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAbW,QAAA,WAAW,eAatB"}
@@ -0,0 +1,17 @@
1
+ export declare type HttpMethodsRegistry = {
2
+ [parentPath: string]: {
3
+ [path: string]: Array<{
4
+ app: string | string[];
5
+ functionName: string;
6
+ method: string;
7
+ _apiName: string;
8
+ }>;
9
+ };
10
+ };
11
+ export declare type UIRegistry = {
12
+ [uiName: string]: {
13
+ app: string | string[];
14
+ functionName: string;
15
+ };
16
+ };
17
+ export declare type MenuRegistry = UIRegistry;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ResRegTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResRegTypes.js","sourceRoot":"","sources":["../../../src/libs/ResRegTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'eventemitter3';
3
+ export declare const TIME_EVENT = "FmkTimer.TimeIsUp";
4
+ declare type Handlers = Record<string, () => any>;
5
+ export declare class FmkTimer extends EventEmitter {
6
+ timer: Record<number, [NodeJS.Timer, Handlers]>;
7
+ private start;
8
+ stop(): void;
9
+ offTimer(name: string): void;
10
+ onTimer(name: string, callback: () => any, interval?: number): void;
11
+ }
12
+ export declare const fmkTimer: FmkTimer;
13
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fmkTimer = exports.FmkTimer = exports.TIME_EVENT = void 0;
7
+ const eventemitter3_1 = require("eventemitter3");
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ exports.TIME_EVENT = 'FmkTimer.TimeIsUp';
10
+ class FmkTimer extends eventemitter3_1.EventEmitter {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.timer = {};
14
+ }
15
+ start(interval = 1) {
16
+ const time = interval * 1000;
17
+ if (!this.timer[time]) {
18
+ this.timer[time] = [
19
+ setInterval(() => {
20
+ this.emit(`${exports.TIME_EVENT}#${interval}s`);
21
+ }, time),
22
+ {},
23
+ ];
24
+ }
25
+ }
26
+ stop() {
27
+ Object.values(this.timer)
28
+ .map((v) => v[0])
29
+ .forEach(clearInterval);
30
+ }
31
+ offTimer(name) {
32
+ Object.values(this.timer)
33
+ .map((v) => v[1])
34
+ .filter((handler) => {
35
+ return !lodash_1.default.isNil(handler[name]);
36
+ })
37
+ .forEach((handler) => {
38
+ delete handler[name];
39
+ });
40
+ Object.keys(this.timer)
41
+ .filter((key) => {
42
+ return Object.keys(this.timer[key][1]).length === 0;
43
+ })
44
+ .forEach((key) => {
45
+ clearInterval(this.timer[key][0]);
46
+ delete this.timer[key];
47
+ });
48
+ }
49
+ onTimer(name, callback, interval = 1) {
50
+ const time = interval * 1000;
51
+ if (!this.timer[time]) {
52
+ this.start(interval);
53
+ this.on(`${exports.TIME_EVENT}#${interval}s`, () => {
54
+ Promise.all(Object.values(this.timer[time][1]).map((cb) => Promise.resolve(cb())));
55
+ });
56
+ }
57
+ this.timer[time][1][name] = callback;
58
+ }
59
+ }
60
+ exports.FmkTimer = FmkTimer;
61
+ exports.fmkTimer = new FmkTimer();
62
+ //# sourceMappingURL=Timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../../src/libs/Timer.ts"],"names":[],"mappings":";;;;;;AAAA,iDAA6C;AAC7C,oDAAuB;AAEV,QAAA,UAAU,GAAG,mBAAmB,CAAC;AAI9C,MAAa,QAAS,SAAQ,4BAAY;IAA1C;;QACE,UAAK,GAA6C,EAAE,CAAC;IAiDvD,CAAC;IA/CS,KAAK,CAAC,QAAQ,GAAG,CAAC;QACxB,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;gBACjB,WAAW,CAAC,GAAG,EAAE;oBACf,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAU,IAAI,QAAQ,GAAG,CAAC,CAAC;gBAC1C,CAAC,EAAE,IAAI,CAAC;gBACR,EAAE;aACH,CAAC;SACH;IACH,CAAC;IAED,IAAI;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAClB,OAAO,CAAC,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QACL,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aACpB,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;YACnB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;YACpB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,QAAmB,EAAE,QAAQ,GAAG,CAAC;QACrD,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrB,IAAI,CAAC,EAAE,CAAC,GAAG,kBAAU,IAAI,QAAQ,GAAG,EAAE,GAAG,EAAE;gBACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IACvC,CAAC;CACF;AAlDD,4BAkDC;AAEY,QAAA,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { MicroframeworkSettings } from 'microframework';
2
+ import 'reflect-metadata';
3
+ import { ClassType } from './types';
4
+ export declare type TypeormLoaderOption = {
5
+ entities?: ClassType[];
6
+ synchronize?: boolean;
7
+ };
8
+ export declare const typeormLoader: (option: TypeormLoaderOption) => (settings?: MicroframeworkSettings) => Promise<import("typeorm").Connection>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.typeormLoader = void 0;
13
+ const os_1 = require("os");
14
+ require("reflect-metadata");
15
+ const typedi_1 = require("typedi");
16
+ const typeorm_1 = require("typeorm");
17
+ const typeorm_transactional_cls_hooked_1 = require("typeorm-transactional-cls-hooked");
18
+ const url_1 = require("url");
19
+ const ConfigManager_1 = require("./ConfigManager");
20
+ const Logger_1 = require("./Logger");
21
+ (0, typeorm_transactional_cls_hooked_1.initializeTransactionalContext)();
22
+ (0, typeorm_transactional_cls_hooked_1.patchTypeORMRepositoryWithBaseRepository)();
23
+ let dbUrl;
24
+ const typeormLoader = (option) => (settings) => {
25
+ var _a;
26
+ const entities = option.entities || [];
27
+ (0, typeorm_1.useContainer)(typedi_1.Container);
28
+ const cfg = ConfigManager_1.ConfigManager.getConfig('database');
29
+ dbUrl = new url_1.URL(cfg.mariaDBUrl);
30
+ return (0, typeorm_1.createConnection)({
31
+ type: 'mariadb',
32
+ url: cfg.mariaDBUrl,
33
+ charset: 'utf8mb4',
34
+ synchronize: (_a = option.synchronize) !== null && _a !== void 0 ? _a : false,
35
+ logging: ConfigManager_1.ConfigManager.isDevelopment(),
36
+ entities,
37
+ extra: {
38
+ waitForConnections: true,
39
+ connectionLimit: (0, os_1.cpus)().length * 2 + 1,
40
+ },
41
+ }).then((conn) => {
42
+ settings === null || settings === void 0 ? void 0 : settings.onShutdown(() => __awaiter(void 0, void 0, void 0, function* () { return conn.close(); }));
43
+ const logger = Logger_1.Logger.getLogger('TypeormLoader');
44
+ logger.info(`🔗Database connected to ${dbUrl === null || dbUrl === void 0 ? void 0 : dbUrl.hostname}:${dbUrl === null || dbUrl === void 0 ? void 0 : dbUrl.port}${dbUrl === null || dbUrl === void 0 ? void 0 : dbUrl.pathname}. CPU: ${(0, os_1.cpus)().length}`);
45
+ return conn;
46
+ });
47
+ };
48
+ exports.typeormLoader = typeormLoader;
49
+ //# sourceMappingURL=TypeormLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeormLoader.js","sourceRoot":"","sources":["../../../src/libs/TypeormLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2BAA0B;AAC1B,4BAA0B;AAC1B,mCAAmC;AACnC,qCAAyD;AACzD,uFAA4H;AAC5H,6BAA0B;AAE1B,mDAAgD;AAChD,qCAAkC;AAElC,IAAA,iEAA8B,GAAE,CAAC;AACjC,IAAA,2EAAwC,GAAE,CAAC;AAM3C,IAAI,KAAU,CAAC;AACR,MAAM,aAAa,GAAG,CAAC,MAA2B,EAAE,EAAE,CAAC,CAAC,QAAiC,EAAE,EAAE;;IAClG,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvC,IAAA,sBAAY,EAAC,kBAAS,CAAC,CAAC;IACxB,MAAM,GAAG,GAAG,6BAAa,CAAC,SAAS,CAAiB,UAAU,CAAC,CAAC;IAChE,KAAK,GAAG,IAAI,SAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,OAAO,IAAA,0BAAgB,EAAC;QACtB,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,GAAG,CAAC,UAAU;QACnB,OAAO,EAAE,SAAS;QAElB,WAAW,EAAE,MAAA,MAAM,CAAC,WAAW,mCAAI,KAAK;QACxC,OAAO,EAAE,6BAAa,CAAC,aAAa,EAAE;QACtC,QAAQ;QACR,KAAK,EAAE;YACL,kBAAkB,EAAE,IAAI;YACxB,eAAe,EAAE,IAAA,SAAI,GAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;SACvC;KACF,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,GAAS,EAAE,kDAAC,OAAA,IAAI,CAAC,KAAK,EAAE,CAAA,GAAA,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,eAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,2BAA2B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,UAAU,IAAA,SAAI,GAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAClH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAvBW,QAAA,aAAa,iBAuBxB"}
@@ -0,0 +1,13 @@
1
+ import { ValidatorOptions } from 'class-validator';
2
+ export declare type ValidationParam = {
3
+ result: boolean | Promise<boolean>;
4
+ property: string;
5
+ msgKey: string;
6
+ param?: any;
7
+ };
8
+ export declare class ValidationHelper {
9
+ static mustBeArray(obj: any): Promise<boolean>;
10
+ static mustNotBeArray(obj: any): Promise<boolean>;
11
+ static check(...params: ValidationParam[]): Promise<boolean>;
12
+ static validateOrReject(object: object, validatorOptions?: ValidatorOptions | undefined): Promise<void>;
13
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ValidationHelper = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const routing_controllers_1 = require("routing-controllers");
15
+ class ValidationHelper {
16
+ static mustBeArray(obj) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ return ValidationHelper.check({
19
+ result: Array.isArray(obj),
20
+ property: '',
21
+ msgKey: 'input.mustBeArray.',
22
+ });
23
+ });
24
+ }
25
+ static mustNotBeArray(obj) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ return ValidationHelper.check({
28
+ result: !Array.isArray(obj),
29
+ property: '',
30
+ msgKey: 'input.mustNotBeArray.',
31
+ });
32
+ });
33
+ }
34
+ static check(...params) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ const validateErrors = new Array();
37
+ yield Promise.all(params.map((p) => __awaiter(this, void 0, void 0, function* () {
38
+ const checkResult = yield Promise.resolve(p.result);
39
+ if (!checkResult) {
40
+ const err = new class_validator_1.ValidationError();
41
+ err.property = p.property;
42
+ err.constraints = {
43
+ validationError: JSON.stringify({
44
+ key: p.msgKey,
45
+ param: p.param,
46
+ }),
47
+ };
48
+ validateErrors.push(err);
49
+ }
50
+ })));
51
+ if (validateErrors.length > 0) {
52
+ const httpErr = new routing_controllers_1.BadRequestError(`Invalid input, check 'errors' property for more info.`);
53
+ httpErr.errors = validateErrors;
54
+ throw httpErr;
55
+ }
56
+ else {
57
+ return true;
58
+ }
59
+ });
60
+ }
61
+ static validateOrReject(object, validatorOptions) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const errors = yield (0, class_validator_1.validate)(object, validatorOptions);
64
+ if (errors.length > 0) {
65
+ const httpErr = new routing_controllers_1.BadRequestError(`Invalid input, check 'errors' property for more info.`);
66
+ httpErr.errors = errors;
67
+ throw httpErr;
68
+ }
69
+ });
70
+ }
71
+ }
72
+ exports.ValidationHelper = ValidationHelper;
73
+ //# sourceMappingURL=ValidationHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationHelper.js","sourceRoot":"","sources":["../../../src/libs/ValidationHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAA8E;AAC9E,6DAAsD;AAStD,MAAa,gBAAgB;IAC3B,MAAM,CAAO,WAAW,CAAC,GAAQ;;YAC/B,OAAO,gBAAgB,CAAC,KAAK,CAAC;gBAC5B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC1B,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,oBAAoB;aAC7B,CAAC,CAAC;QACL,CAAC;KAAA;IAED,MAAM,CAAO,cAAc,CAAC,GAAQ;;YAClC,OAAO,gBAAgB,CAAC,KAAK,CAAC;gBAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC3B,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,uBAAuB;aAChC,CAAC,CAAC;QACL,CAAC;KAAA;IAED,MAAM,CAAO,KAAK,CAAC,GAAG,MAAyB;;YAC7C,MAAM,cAAc,GAAG,IAAI,KAAK,EAAmB,CAAC;YACpD,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAO,CAAC,EAAE,EAAE;gBACrB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,EAAE;oBAChB,MAAM,GAAG,GAAG,IAAI,iCAAe,EAAE,CAAC;oBAClC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;oBAC1B,GAAG,CAAC,WAAW,GAAG;wBAChB,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;4BAC9B,GAAG,EAAE,CAAC,CAAC,MAAM;4BACb,KAAK,EAAE,CAAC,CAAC,KAAK;yBACf,CAAC;qBACH,CAAC;oBACF,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC1B;YACH,CAAC,CAAA,CAAC,CACH,CAAC;YACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,MAAM,OAAO,GAAG,IAAI,qCAAe,CAAC,uDAAuD,CAAQ,CAAC;gBACpG,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC;gBAChC,MAAM,OAAO,CAAC;aACf;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;QACH,CAAC;KAAA;IAED,MAAM,CAAO,gBAAgB,CAAC,MAAc,EAAE,gBAA+C;;YAC3F,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,MAAM,OAAO,GAAG,IAAI,qCAAe,CAAC,uDAAuD,CAAQ,CAAC;gBACpG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBACxB,MAAM,OAAO,CAAC;aACf;QACH,CAAC;KAAA;CACF;AApDD,4CAoDC"}
@@ -0,0 +1,6 @@
1
+ export declare const upstreamUriTemplate: (appName: string) => string;
2
+ export declare const upstreamTemplate: (appName: string, version: string, port: number) => string;
3
+ export declare const serviceUriTemplate: (appName: string) => string;
4
+ export declare const serviceTemplate: (appName: string, enableApiGatewayAuth?: boolean) => string;
5
+ export declare const routeUriTemplate: (appName: string) => string;
6
+ export declare const routeTemplate: (appName: string, domains: string[], apiVersion: string, build: string, version: string) => string;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.routeTemplate = exports.routeUriTemplate = exports.serviceTemplate = exports.serviceUriTemplate = exports.upstreamTemplate = exports.upstreamUriTemplate = void 0;
4
+ const crypto_1 = require("../../utils/crypto");
5
+ const upstreamUriTemplate = (appName) => `/apisix/admin/upstreams/${crypto_1.crypto.md5(`upstream_${appName}`)}`;
6
+ exports.upstreamUriTemplate = upstreamUriTemplate;
7
+ const upstreamTemplate = (appName, version, port) => `{
8
+ "name": "${appName}",
9
+ "type": "roundrobin",
10
+ "nodes": {
11
+ "${appName}:${port}": 1
12
+ },
13
+ "retries": 1,
14
+ "timeout": {
15
+ "connect": 500,
16
+ "send": 500,
17
+ "read": 500
18
+ },
19
+ "enable_websocket": true,
20
+ "checks": {
21
+ "active": {
22
+ "timeout": 5,
23
+ "http_path": "/api/v${version}/${appName}/_healthcheck",
24
+ "host": "${appName}",
25
+ "port": ${port},
26
+ "healthy": {
27
+ "interval": 2,
28
+ "successes": 1
29
+ },
30
+ "unhealthy": {
31
+ "interval": 1,
32
+ "http_failures": 2
33
+ }
34
+ },
35
+ "passive": {
36
+ "healthy": {
37
+ "http_statuses": [
38
+ 200,
39
+ 201
40
+ ],
41
+ "successes": 3
42
+ },
43
+ "unhealthy": {
44
+ "http_statuses": [
45
+ 500
46
+ ],
47
+ "http_failures": 3,
48
+ "tcp_failures": 3
49
+ }
50
+ }
51
+ }
52
+ }`;
53
+ exports.upstreamTemplate = upstreamTemplate;
54
+ const serviceUriTemplate = (appName) => `/apisix/admin/services/${crypto_1.crypto.md5(`service_${appName}`)}`;
55
+ exports.serviceUriTemplate = serviceUriTemplate;
56
+ const serviceTemplate = (appName, enableApiGatewayAuth = false) => `{
57
+ "name": "${appName}",
58
+ "plugins": {
59
+ "prometheus": {},
60
+ "cors": {},
61
+ ${enableApiGatewayAuth ? '"fot-usercenter-auth": {},' : ''}
62
+ "limit-count": {
63
+ "count": 200,
64
+ "time_window": 10,
65
+ "rejected_code": 503,
66
+ "key": "remote_addr"
67
+ }
68
+ },
69
+ "enable_websocket": true,
70
+ "upstream_id": "${crypto_1.crypto.md5(`upstream_${appName}`)}"
71
+ }`;
72
+ exports.serviceTemplate = serviceTemplate;
73
+ const routeUriTemplate = (appName) => `/apisix/admin/routes/${crypto_1.crypto.md5(`route_${appName}`)}`;
74
+ exports.routeUriTemplate = routeUriTemplate;
75
+ const routeTemplate = (appName, domains, apiVersion, build, version) => `{
76
+ "name": "${appName}",
77
+ "uri": "/api/v${apiVersion}/${appName}/*",
78
+ "hosts": ${JSON.stringify(domains)},
79
+ "enable_websocket": true,
80
+ "service_id": "${crypto_1.crypto.md5(`service_${appName}`)}",
81
+ "labels": {
82
+ "API_VERSION": "v${apiVersion}",
83
+ "build": "${build}",
84
+ "version": "${version}"
85
+ }
86
+ }`;
87
+ exports.routeTemplate = routeTemplate;
88
+ //# sourceMappingURL=ApisixTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApisixTemplate.js","sourceRoot":"","sources":["../../../../src/libs/apisix/ApisixTemplate.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAErC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,2BAA2B,eAAM,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC;AAA1G,QAAA,mBAAmB,uBAAuF;AAChH,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,IAAY,EAAE,EAAE,CAAC;eACrE,OAAO;;;WAGX,OAAO,IAAI,IAAI;;;;;;;;;;;;kCAYQ,OAAO,IAAI,OAAO;uBAC7B,OAAO;sBACR,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BxB,CAAC;AA7CU,QAAA,gBAAgB,oBA6C1B;AAEI,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,0BAA0B,eAAM,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,EAAE,CAAC;AAAvG,QAAA,kBAAkB,sBAAqF;AAC7G,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,oBAAoB,GAAG,KAAK,EAAE,EAAE,CAAC;YACtE,OAAO;;;;UAIT,oBAAoB,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE;;;;;;;;;mBAS/C,eAAM,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC;EAClD,CAAC;AAfU,QAAA,eAAe,mBAezB;AAEI,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,wBAAwB,eAAM,CAAC,GAAG,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;AAAjG,QAAA,gBAAgB,oBAAiF;AACvG,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,OAAiB,EAAE,UAAkB,EAAE,KAAa,EAAE,OAAe,EAAE,EAAE,CAAC;eAC1G,OAAO;oBACF,UAAU,IAAI,OAAO;eAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;;qBAEjB,eAAM,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC;;2BAE1B,UAAU;oBACjB,KAAK;sBACH,OAAO;;EAE3B,CAAC;AAXU,QAAA,aAAa,iBAWvB"}
@@ -0,0 +1 @@
1
+ export declare const httpPut: (hostname: string, port: number, path: string, data: string, xApiKey: string, log?: boolean) => Promise<number>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.httpPut = void 0;
16
+ const http_1 = __importDefault(require("http"));
17
+ const httpPut = (hostname, port, path, data, xApiKey, log = false) => __awaiter(void 0, void 0, void 0, function* () {
18
+ return new Promise((resolve, reject) => {
19
+ const options = {
20
+ hostname,
21
+ port,
22
+ path,
23
+ method: 'PUT',
24
+ headers: {
25
+ 'X-API-KEY': xApiKey,
26
+ 'Content-Type': 'application/json',
27
+ 'Content-Length': data.length,
28
+ },
29
+ };
30
+ let statusCode = 200;
31
+ const req = http_1.default.request(options, (res) => {
32
+ var _a;
33
+ statusCode = (_a = res.statusCode) !== null && _a !== void 0 ? _a : 500;
34
+ if (log) {
35
+ console.log(path, statusCode);
36
+ res.on('data', (d) => {
37
+ process.stdout.write(d);
38
+ });
39
+ }
40
+ });
41
+ req.on('error', (error) => {
42
+ reject(error);
43
+ });
44
+ req.write(data);
45
+ req.end(() => {
46
+ resolve(statusCode);
47
+ });
48
+ });
49
+ });
50
+ exports.httpPut = httpPut;
51
+ //# sourceMappingURL=HttpPutter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpPutter.js","sourceRoot":"","sources":["../../../../src/libs/apisix/HttpPutter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AAEjB,MAAM,OAAO,GAAG,CAAO,QAAgB,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,OAAe,EAAE,GAAG,GAAG,KAAK,EAAE,EAAE;IACxH,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG;YACd,QAAQ;YACR,IAAI;YACJ,IAAI;YACJ,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,WAAW,EAAE,OAAO;gBACpB,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,IAAI,CAAC,MAAM;aAC9B;SACF,CAAC;QACF,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;;YACxC,UAAU,GAAG,MAAA,GAAG,CAAC,UAAU,mCAAI,GAAG,CAAC;YACnC,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC9B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;oBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;YACX,OAAO,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAjCW,QAAA,OAAO,WAiClB"}
@@ -0,0 +1,2 @@
1
+ export * from './ApisixTemplate';
2
+ export * from './HttpPutter';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ApisixTemplate"), exports);
18
+ __exportStar(require("./HttpPutter"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/libs/apisix/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,mDAAiC;AACjC,+CAA6B"}
@@ -0,0 +1,3 @@
1
+ declare type ValidationDecorator = (...args: any[]) => PropertyDecorator;
2
+ export declare const i18n: (decorator: ValidationDecorator, ...args: any[]) => PropertyDecorator;
3
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.i18n = void 0;
4
+ const i18nKey = (key, params = []) => {
5
+ const msgObj = { key, param: {} };
6
+ params.forEach((p) => {
7
+ msgObj.param[p] = `$${p}`;
8
+ });
9
+ return (obj) => {
10
+ const message = JSON.stringify(msgObj);
11
+ return Object.assign({}, obj !== null && obj !== void 0 ? obj : {}, {
12
+ message,
13
+ });
14
+ };
15
+ };
16
+ const i18n = (decorator, ...args) => {
17
+ const param = ['property'];
18
+ for (let i = 0; i < decorator.length - 1; i++) {
19
+ param.push(`constraint${i + 1}`);
20
+ }
21
+ const fn = i18nKey(`validation.rule.${decorator.name}`, param);
22
+ const filledArgs = [...args];
23
+ for (let i = 0; i < decorator.length - args.length - 1; i++) {
24
+ filledArgs.push(undefined);
25
+ }
26
+ if (decorator.length === filledArgs.length) {
27
+ filledArgs[filledArgs.length - 1] = fn(filledArgs[filledArgs.length - 1]);
28
+ return decorator(...filledArgs);
29
+ }
30
+ else if (decorator.length > filledArgs.length) {
31
+ return decorator(...filledArgs, fn({}));
32
+ }
33
+ else {
34
+ throw 'Too many args!';
35
+ }
36
+ };
37
+ exports.i18n = i18n;
38
+ //# sourceMappingURL=i18nValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18nValidator.js","sourceRoot":"","sources":["../../../src/libs/i18nValidator.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,SAAmB,EAAE,EAAE,EAAE;IACrD,MAAM,MAAM,GAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACnB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAQ,EAAE,EAAE;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,EAAE;YAClC,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAIK,MAAM,IAAI,GAAG,CAAC,SAA8B,EAAE,GAAG,IAAW,EAAqB,EAAE;IACxF,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7C,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAClC;IACD,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,SAAS,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3D,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC5B;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;QAC1C,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC;KACjC;SAAM,IAAI,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE;QAC/C,OAAO,SAAS,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACzC;SAAM;QACL,MAAM,gBAAgB,CAAC;KACxB;AACH,CAAC,CAAC;AAnBW,QAAA,IAAI,QAmBf"}