@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,102 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ var DistributedEvents_1;
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.DistributedEvents = void 0;
23
+ const amqplib_1 = __importDefault(require("amqplib"));
24
+ const eventemitter3_1 = __importDefault(require("eventemitter3"));
25
+ const typedi_1 = require("typedi");
26
+ const Logger_1 = require("./Logger");
27
+ const EVENTS_EXCHANGE = 'BizEvents';
28
+ const DEAD_LETTER_EXCHANGE = 'BizEventDeadLetter';
29
+ const DEAD_LETTER_QUEUE = 'DeadLetters';
30
+ const DEAD_LETTER_ROUTING_KEY = 'DeadLetter';
31
+ let DistributedEvents = DistributedEvents_1 = class DistributedEvents extends eventemitter3_1.default {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.logger = Logger_1.Logger.getLogger(DistributedEvents_1);
35
+ }
36
+ static open(config, queueName) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ const conn = yield amqplib_1.default.connect(config.connection);
39
+ const channel = yield conn.createChannel();
40
+ const events = new DistributedEvents_1();
41
+ events.channel = channel;
42
+ events.queueName = queueName;
43
+ yield channel.assertExchange(DEAD_LETTER_EXCHANGE, 'direct', { durable: true });
44
+ yield channel.assertQueue(queueName, {
45
+ durable: true,
46
+ arguments: {
47
+ 'x-dead-letter-exchange': DEAD_LETTER_EXCHANGE,
48
+ 'x-dead-letter-routing-key': DEAD_LETTER_ROUTING_KEY,
49
+ },
50
+ });
51
+ yield channel.assertQueue(DEAD_LETTER_QUEUE, {
52
+ durable: true,
53
+ });
54
+ yield channel.assertExchange(EVENTS_EXCHANGE, 'topic', { durable: true });
55
+ yield channel.bindQueue(DEAD_LETTER_QUEUE, DEAD_LETTER_EXCHANGE, DEAD_LETTER_ROUTING_KEY);
56
+ return events;
57
+ });
58
+ }
59
+ sub(events) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ yield Promise.all(events.map((event) => this.channel.bindQueue(this.queueName, EVENTS_EXCHANGE, event)));
62
+ this.channel.consume(this.queueName, (msg) => {
63
+ if (msg) {
64
+ const eventName = msg.properties.headers['x-eventName'];
65
+ const content = msg.content.toString();
66
+ const data = JSON.parse(content);
67
+ try {
68
+ this.logger.debug(`Received event: ${eventName}, Content: ${content}`);
69
+ this.emit('RemoteEvent', eventName, data);
70
+ this.channel.ack(msg);
71
+ }
72
+ catch (error) {
73
+ this.logger.debug(`Message rejected: ${eventName} with error: ${error}`);
74
+ this.channel.reject(msg, !msg.fields.redelivered);
75
+ }
76
+ }
77
+ });
78
+ });
79
+ }
80
+ pub(event, data) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ this.channel.publish(EVENTS_EXCHANGE, event, Buffer.from(JSON.stringify(data)), {
83
+ contentEncoding: 'UTF-8',
84
+ contentType: 'text/json',
85
+ deliveryMode: 2,
86
+ headers: {
87
+ 'x-eventName': event,
88
+ },
89
+ });
90
+ });
91
+ }
92
+ close() {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ yield this.channel.close();
95
+ });
96
+ }
97
+ };
98
+ DistributedEvents = DistributedEvents_1 = __decorate([
99
+ (0, typedi_1.Service)()
100
+ ], DistributedEvents);
101
+ exports.DistributedEvents = DistributedEvents;
102
+ //# sourceMappingURL=DistributedEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DistributedEvents.js","sourceRoot":"","sources":["../../../src/libs/DistributedEvents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { MicroframeworkSettings } from 'microframework';
2
+ import { ClassType } from './types';
3
+ export declare type DistributedEventsLoaderOption = {
4
+ eventsHandlers?: ClassType[];
5
+ };
6
+ export declare const distributedEventsLoader: (option: DistributedEventsLoaderOption) => (settings?: MicroframeworkSettings) => Promise<void>;
@@ -0,0 +1,30 @@
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.distributedEventsLoader = void 0;
13
+ const typedi_1 = require("typedi");
14
+ const _1 = require(".");
15
+ const ConfigManager_1 = require("./ConfigManager");
16
+ const DistributedEvents_1 = require("./DistributedEvents");
17
+ const Logger_1 = require("./Logger");
18
+ const distributedEventsLoader = (option) => (settings) => {
19
+ const appCfg = ConfigManager_1.ConfigManager.getConfig('application');
20
+ const rabbitmqCfg = ConfigManager_1.ConfigManager.getConfig('rabbitmq');
21
+ return DistributedEvents_1.DistributedEvents.open(rabbitmqCfg, appCfg.appName).then((events) => {
22
+ typedi_1.Container.set(DistributedEvents_1.DistributedEvents, events);
23
+ settings === null || settings === void 0 ? void 0 : settings.onShutdown(() => __awaiter(void 0, void 0, void 0, function* () { return events.close(); }));
24
+ return _1.EventsManager.start(events, option.eventsHandlers).then(() => {
25
+ Logger_1.Logger.getLogger('DistributedEventsLoader').info(`🔗RabbitMQ connected.`);
26
+ });
27
+ });
28
+ };
29
+ exports.distributedEventsLoader = distributedEventsLoader;
30
+ //# sourceMappingURL=DistributedEventsLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DistributedEventsLoader.js","sourceRoot":"","sources":["../../../src/libs/DistributedEventsLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAmC;AACnC,wBAAqD;AACrD,mDAAgD;AAChD,2DAAwE;AACxE,qCAAkC;AAQ3B,MAAM,uBAAuB,GAAG,CAAC,MAAqC,EAAE,EAAE,CAAC,CAAC,QAAiC,EAAE,EAAE;IACtH,MAAM,MAAM,GAAG,6BAAa,CAAC,SAAS,CAAoB,aAAa,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,6BAAa,CAAC,SAAS,CAAiB,UAAU,CAAC,CAAC;IACxE,OAAO,qCAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACzE,kBAAS,CAAC,GAAG,CAAC,qCAAiB,EAAE,MAAM,CAAC,CAAC;QACzC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,GAAS,EAAE,kDAAC,OAAA,MAAM,CAAC,KAAK,EAAE,CAAA,GAAA,CAAC,CAAC;QACjD,OAAO,gBAAa,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YAClE,eAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAVW,QAAA,uBAAuB,2BAUlC"}
@@ -0,0 +1,16 @@
1
+ import { DistributedEvents } from './DistributedEvents';
2
+ import { ClassType } from './types';
3
+ export declare function onEvent(event: string): (target: any, propertyKey: string) => void;
4
+ export interface Registry {
5
+ [event: string]: Array<DistributedEventListener>;
6
+ }
7
+ export declare type DistributedEventListener = {
8
+ clazz: ClassType;
9
+ method: string;
10
+ };
11
+ export declare class EventsManager {
12
+ static readonly registry: Registry;
13
+ private logger;
14
+ static addDistributedEventListener(event: string, listener: DistributedEventListener): void;
15
+ static start(de: DistributedEvents, listeners?: ClassType[]): Promise<void>;
16
+ }
@@ -0,0 +1,56 @@
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.EventsManager = exports.onEvent = void 0;
13
+ const typedi_1 = require("typedi");
14
+ const Logger_1 = require("./Logger");
15
+ function onEvent(event) {
16
+ return (target, propertyKey) => {
17
+ EventsManager.addDistributedEventListener(event, {
18
+ clazz: target.constructor,
19
+ method: propertyKey,
20
+ });
21
+ };
22
+ }
23
+ exports.onEvent = onEvent;
24
+ class EventsManager {
25
+ constructor() {
26
+ this.logger = Logger_1.Logger.getLogger(EventsManager);
27
+ }
28
+ static addDistributedEventListener(event, listener) {
29
+ if (EventsManager.registry[event] === undefined) {
30
+ EventsManager.registry[event] = [];
31
+ }
32
+ EventsManager.registry[event].push(listener);
33
+ }
34
+ static start(de, listeners = []) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ de.on('RemoteEvent', (event, data) => {
37
+ const regs = EventsManager.registry[event];
38
+ if (regs) {
39
+ return Promise.all(regs.map((reg) => {
40
+ const claz = listeners.find((lis) => lis === reg.clazz);
41
+ if (claz) {
42
+ const instance = typedi_1.Container.get(claz);
43
+ return instance[reg.method](data);
44
+ }
45
+ })).catch((e) => {
46
+ console.log(e);
47
+ });
48
+ }
49
+ });
50
+ yield de.sub(Object.keys(EventsManager.registry));
51
+ });
52
+ }
53
+ }
54
+ exports.EventsManager = EventsManager;
55
+ EventsManager.registry = {};
56
+ //# sourceMappingURL=EventsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventsManager.js","sourceRoot":"","sources":["../../../src/libs/EventsManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAmC;AAEnC,qCAAkC;AAGlC,SAAgB,OAAO,CAAC,KAAa;IACnC,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,EAAE;QAC1C,aAAa,CAAC,2BAA2B,CAAC,KAAK,EAAE;YAC/C,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAPD,0BAOC;AAWD,MAAa,aAAa;IAA1B;QAGU,WAAM,GAAG,eAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IA4BnD,CAAC;IA1BC,MAAM,CAAC,2BAA2B,CAAC,KAAa,EAAE,QAAkC;QAClF,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YAC/C,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACpC;QACD,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAO,KAAK,CAAC,EAAqB,EAAE,YAAyB,EAAE;;YACnE,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,IAAI,EAAE;oBACR,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACf,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;wBACxD,IAAI,IAAI,EAAE;4BACR,MAAM,QAAQ,GAAG,kBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;4BACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;yBACnC;oBACH,CAAC,CAAC,CACH,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;wBACZ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACjB,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,CAAC;KAAA;;AA9BH,sCA+BC;AA9BiB,sBAAQ,GAAa,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ /// <reference types="node" />
2
+ export declare class HealthCheckController {
3
+ private logger;
4
+ private redisClient;
5
+ healthCheck(showOs: string): Promise<{
6
+ healthy: any;
7
+ osInfo: {
8
+ hostname: string;
9
+ type: string;
10
+ platform: NodeJS.Platform;
11
+ arch: string;
12
+ release: string;
13
+ uptime: number;
14
+ loadavg: number[];
15
+ totalmem: number;
16
+ freemem: number;
17
+ cpus: string;
18
+ networks: string | undefined;
19
+ };
20
+ } | {
21
+ healthy: any;
22
+ osInfo?: undefined;
23
+ }>;
24
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ var __importDefault = (this && this.__importDefault) || function (mod) {
24
+ return (mod && mod.__esModule) ? mod : { "default": mod };
25
+ };
26
+ var HealthCheckController_1;
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.HealthCheckController = void 0;
29
+ const internal_ip_1 = __importDefault(require("internal-ip"));
30
+ const os_1 = __importDefault(require("os"));
31
+ const routing_controllers_1 = require("routing-controllers");
32
+ const typedi_1 = require("typedi");
33
+ const typeorm_1 = require("typeorm");
34
+ const _1 = require(".");
35
+ let HealthCheckController = HealthCheckController_1 = class HealthCheckController {
36
+ constructor() {
37
+ this.logger = _1.Logger.getLogger(HealthCheckController_1);
38
+ }
39
+ healthCheck(showOs) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const conn = (0, typeorm_1.getConnectionManager)().get();
42
+ const dbAlive = yield conn.query('select "true"');
43
+ const redisAlive = yield this.redisClient.redis.ping('true');
44
+ const healthy = dbAlive && redisAlive;
45
+ if (showOs) {
46
+ const osInfo = {
47
+ hostname: os_1.default.hostname(),
48
+ type: os_1.default.type(),
49
+ platform: os_1.default.platform(),
50
+ arch: os_1.default.arch(),
51
+ release: os_1.default.release(),
52
+ uptime: os_1.default.uptime(),
53
+ loadavg: os_1.default.loadavg(),
54
+ totalmem: os_1.default.totalmem(),
55
+ freemem: os_1.default.freemem(),
56
+ cpus: `${os_1.default.cpus()[0].model} x ${os_1.default.cpus().length}`,
57
+ networks: yield internal_ip_1.default.v4(),
58
+ };
59
+ return { healthy, osInfo };
60
+ }
61
+ return {
62
+ healthy,
63
+ };
64
+ });
65
+ }
66
+ };
67
+ __decorate([
68
+ (0, typedi_1.Inject)(() => _1.RedisClient),
69
+ __metadata("design:type", _1.RedisClient)
70
+ ], HealthCheckController.prototype, "redisClient", void 0);
71
+ __decorate([
72
+ (0, routing_controllers_1.Get)('/_healthcheck'),
73
+ __param(0, (0, routing_controllers_1.QueryParam)('os')),
74
+ __metadata("design:type", Function),
75
+ __metadata("design:paramtypes", [String]),
76
+ __metadata("design:returntype", Promise)
77
+ ], HealthCheckController.prototype, "healthCheck", null);
78
+ HealthCheckController = HealthCheckController_1 = __decorate([
79
+ (0, routing_controllers_1.JsonController)(),
80
+ (0, typedi_1.Service)()
81
+ ], HealthCheckController);
82
+ exports.HealthCheckController = HealthCheckController;
83
+ //# sourceMappingURL=HealthCheckController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthCheckController.js","sourceRoot":"","sources":["../../../src/libs/HealthCheckController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAqC;AACrC,4CAAoB;AACpB,6DAAsE;AACtE,mCAAyC;AACzC,qCAA+C;AAC/C,wBAAwC;AAIjC,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAA3B;QACG,WAAM,GAAG,SAAM,CAAC,SAAS,CAAC,uBAAqB,CAAC,CAAC;IAmC3D,CAAC;IA7BO,WAAW,CAAmB,MAAc;;YAChD,MAAM,IAAI,GAAG,IAAA,8BAAoB,GAAE,CAAC,GAAG,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAElD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAG7D,MAAM,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC;YAEtC,IAAI,MAAM,EAAE;gBACV,MAAM,MAAM,GAAG;oBACb,QAAQ,EAAE,YAAE,CAAC,QAAQ,EAAE;oBACvB,IAAI,EAAE,YAAE,CAAC,IAAI,EAAE;oBACf,QAAQ,EAAE,YAAE,CAAC,QAAQ,EAAE;oBACvB,IAAI,EAAE,YAAE,CAAC,IAAI,EAAE;oBACf,OAAO,EAAE,YAAE,CAAC,OAAO,EAAE;oBACrB,MAAM,EAAE,YAAE,CAAC,MAAM,EAAE;oBACnB,OAAO,EAAE,YAAE,CAAC,OAAO,EAAE;oBACrB,QAAQ,EAAE,YAAE,CAAC,QAAQ,EAAE;oBACvB,OAAO,EAAE,YAAE,CAAC,OAAO,EAAE;oBACrB,IAAI,EAAE,GAAG,YAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;oBACnD,QAAQ,EAAE,MAAM,qBAAU,CAAC,EAAE,EAAE;iBAChC,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAC5B;YACD,OAAO;gBACL,OAAO;aACR,CAAC;QACJ,CAAC;KAAA;CACF,CAAA;AAjCC;IAAC,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,cAAW,CAAC;8BACL,cAAW;0DAAC;AAG3B;IADL,IAAA,yBAAG,EAAC,eAAe,CAAC;IACF,WAAA,IAAA,gCAAU,EAAC,IAAI,CAAC,CAAA;;;;wDA4BlC;AAnCU,qBAAqB;IAFjC,IAAA,oCAAc,GAAE;IAChB,IAAA,gBAAO,GAAE;GACG,qBAAqB,CAoCjC;AApCY,sDAAqB"}
@@ -0,0 +1,8 @@
1
+ import { HttpMethodsRegistry } from './ResRegTypes';
2
+ export declare const httpMethodsRegistry: HttpMethodsRegistry;
3
+ export declare const Get: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
4
+ export declare const Post: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
5
+ export declare const Put: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
6
+ export declare const Delete: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
7
+ export declare const All: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
8
+ export declare const JsonController: (baseRoute?: string) => ClassDecorator;
@@ -0,0 +1,80 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.JsonController = exports.All = exports.Delete = exports.Put = exports.Post = exports.Get = exports.httpMethodsRegistry = void 0;
27
+ const rc = __importStar(require("routing-controllers"));
28
+ const typedi_1 = require("typedi");
29
+ const ConfigManager_1 = require("./ConfigManager");
30
+ const DEFAULT_KEY = '____';
31
+ exports.httpMethodsRegistry = {};
32
+ const tempRegistry = {
33
+ [DEFAULT_KEY]: {},
34
+ };
35
+ const HttpMethod = (mName, method, route, app, functionName) => {
36
+ const decorator = (target, propertyKey, descriptor) => {
37
+ const { appName } = ConfigManager_1.ConfigManager.getConfig('application');
38
+ app = app !== null && app !== void 0 ? app : '*';
39
+ const apiName = `${functionName ? '' : 'internal.'}${appName}.${target.constructor.name.replace('Controller', '')}.${propertyKey.toString()}`;
40
+ if (!tempRegistry[DEFAULT_KEY][route]) {
41
+ tempRegistry[DEFAULT_KEY][route] = [];
42
+ }
43
+ tempRegistry[DEFAULT_KEY][route].push({ app, functionName: functionName !== null && functionName !== void 0 ? functionName : 'internal', method: mName, _apiName: apiName });
44
+ method(route)(target, propertyKey, descriptor);
45
+ };
46
+ return decorator;
47
+ };
48
+ const Get = (route, app, functionName) => {
49
+ return HttpMethod('GET', rc.Get, route, app, functionName);
50
+ };
51
+ exports.Get = Get;
52
+ const Post = (route, app, functionName) => {
53
+ return HttpMethod('POST', rc.Post, route, app, functionName);
54
+ };
55
+ exports.Post = Post;
56
+ const Put = (route, app, functionName) => {
57
+ return HttpMethod('PUT', rc.Put, route, app, functionName);
58
+ };
59
+ exports.Put = Put;
60
+ const Delete = (route, app, functionName) => {
61
+ return HttpMethod('DELETE', rc.Delete, route, app, functionName);
62
+ };
63
+ exports.Delete = Delete;
64
+ const All = (route, app, functionName) => {
65
+ return HttpMethod('ALL', rc.All, route, app, functionName);
66
+ };
67
+ exports.All = All;
68
+ const JsonController = (baseRoute) => {
69
+ const decorator = (target) => {
70
+ if (Object.keys(tempRegistry[DEFAULT_KEY]).length > 0) {
71
+ exports.httpMethodsRegistry[baseRoute !== null && baseRoute !== void 0 ? baseRoute : ''] = Object.assign({}, exports.httpMethodsRegistry[baseRoute !== null && baseRoute !== void 0 ? baseRoute : ''], tempRegistry[DEFAULT_KEY]);
72
+ }
73
+ tempRegistry[DEFAULT_KEY] = {};
74
+ rc.JsonController(baseRoute)(target);
75
+ (0, typedi_1.Service)()(target);
76
+ };
77
+ return decorator;
78
+ };
79
+ exports.JsonController = JsonController;
80
+ //# sourceMappingURL=HttpMethods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpMethods.js","sourceRoot":"","sources":["../../../src/libs/HttpMethods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const id: (size?: number) => string;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.id = void 0;
4
+ const nanoid_1 = require("nanoid");
5
+ const id = (size = 10) => (0, nanoid_1.nanoid)(size);
6
+ exports.id = id;
7
+ //# sourceMappingURL=IdGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdGenerator.js","sourceRoot":"","sources":["../../../src/libs/IdGenerator.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEzB,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC;AAAjC,QAAA,EAAE,MAA+B"}
@@ -0,0 +1,6 @@
1
+ import { Context } from 'koa';
2
+ import { KoaMiddlewareInterface } from 'routing-controllers';
3
+ export declare class KoaControllerReturnHandler implements KoaMiddlewareInterface {
4
+ private logger;
5
+ use(ctx: Context, next: (err?: any) => Promise<any>): Promise<any>;
6
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var KoaControllerReturnHandler_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.KoaControllerReturnHandler = void 0;
11
+ const routing_controllers_1 = require("routing-controllers");
12
+ const typedi_1 = require("typedi");
13
+ const BizError_1 = require("./BizError");
14
+ const Logger_1 = require("./Logger");
15
+ const transformer = (errors) => {
16
+ const err = {};
17
+ errors.forEach((e) => {
18
+ if (e.constraints) {
19
+ err[e.property] = [];
20
+ Object.values(e.constraints)
21
+ .map((str) => {
22
+ try {
23
+ return JSON.parse(str);
24
+ }
25
+ catch (e) {
26
+ return str;
27
+ }
28
+ })
29
+ .forEach((constr) => {
30
+ if (constr.param) {
31
+ err[e.property].push([constr.key, constr.param]);
32
+ }
33
+ else {
34
+ err[e.property].push([constr.key]);
35
+ }
36
+ });
37
+ }
38
+ });
39
+ return err;
40
+ };
41
+ let KoaControllerReturnHandler = KoaControllerReturnHandler_1 = class KoaControllerReturnHandler {
42
+ constructor() {
43
+ this.logger = Logger_1.Logger.getLogger(KoaControllerReturnHandler_1);
44
+ }
45
+ use(ctx, next) {
46
+ return next()
47
+ .then(() => {
48
+ if (ctx.response.body === null) {
49
+ throw new routing_controllers_1.NotFoundError();
50
+ }
51
+ })
52
+ .catch((error) => {
53
+ var _a;
54
+ if (typeof error === 'string') {
55
+ ctx.response.status = 500;
56
+ ctx.response.body = new BizError_1.BizError(error);
57
+ }
58
+ else if (error.isError && error.code) {
59
+ ctx.response.status = error.code;
60
+ ctx.response.body = error;
61
+ }
62
+ else if (error.name === 'BadRequestError' && error.errors && error.errors.length > 0) {
63
+ ctx.response.status = 400;
64
+ ctx.response.body = new BizError_1.BizError('error:validationError', transformer(error.errors));
65
+ }
66
+ else if (error.name === 'NotFoundError') {
67
+ ctx.response.status = 404;
68
+ ctx.response.body = error.message;
69
+ }
70
+ else {
71
+ ctx.response.status = (_a = error.httpCode) !== null && _a !== void 0 ? _a : 500;
72
+ ctx.response.body = error.message;
73
+ this.logger.error(error);
74
+ }
75
+ });
76
+ }
77
+ };
78
+ KoaControllerReturnHandler = KoaControllerReturnHandler_1 = __decorate([
79
+ (0, typedi_1.Service)(),
80
+ (0, routing_controllers_1.Middleware)({ type: 'before' })
81
+ ], KoaControllerReturnHandler);
82
+ exports.KoaControllerReturnHandler = KoaControllerReturnHandler;
83
+ //# sourceMappingURL=KoaControllerReturnHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KoaControllerReturnHandler.js","sourceRoot":"","sources":["../../../src/libs/KoaControllerReturnHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="koa-bodyparser" />
2
+ /// <reference types="koa__multer" />
3
+ import { default as Application, default as Koa } from 'koa';
4
+ import { MicroframeworkSettings } from 'microframework';
5
+ import 'reflect-metadata';
6
+ import { AuthorizationChecker } from 'routing-controllers/types/AuthorizationChecker';
7
+ import { CurrentUserChecker } from 'routing-controllers/types/CurrentUserChecker';
8
+ import { ClassType } from '..';
9
+ export interface KoaLoaderOption {
10
+ restfulControllers?: ClassType[];
11
+ wsControllers?: ClassType[];
12
+ authorizationChecker?: AuthorizationChecker;
13
+ currentUserChecker?: CurrentUserChecker;
14
+ use?: Application.Middleware[];
15
+ noListening?: boolean;
16
+ }
17
+ export declare const KoaHolder: {
18
+ koa?: Koa;
19
+ };
20
+ export declare const koaLoader: (option: KoaLoaderOption) => (options?: MicroframeworkSettings) => Promise<unknown> | undefined;