eh-commons 0.0.1-testing.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 (208) hide show
  1. package/.eslintrc.js +25 -0
  2. package/.prettierrc +4 -0
  3. package/README.md +0 -0
  4. package/devops.md +15 -0
  5. package/dist/clients/logger.client.d.ts +10 -0
  6. package/dist/clients/logger.client.js +42 -0
  7. package/dist/clients/logger.client.js.map +1 -0
  8. package/dist/clients/session.client.d.ts +10 -0
  9. package/dist/clients/session.client.js +37 -0
  10. package/dist/clients/session.client.js.map +1 -0
  11. package/dist/constraints/is-map-of-strings.constraint.d.ts +5 -0
  12. package/dist/constraints/is-map-of-strings.constraint.js +34 -0
  13. package/dist/constraints/is-map-of-strings.constraint.js.map +1 -0
  14. package/dist/constraints/is-route.constraint.d.ts +5 -0
  15. package/dist/constraints/is-route.constraint.js +24 -0
  16. package/dist/constraints/is-route.constraint.js.map +1 -0
  17. package/dist/decorators/is-map-of-strings.decorator.d.ts +1 -0
  18. package/dist/decorators/is-map-of-strings.decorator.js +14 -0
  19. package/dist/decorators/is-map-of-strings.decorator.js.map +1 -0
  20. package/dist/decorators/is-route.decorator.d.ts +1 -0
  21. package/dist/decorators/is-route.decorator.js +12 -0
  22. package/dist/decorators/is-route.decorator.js.map +1 -0
  23. package/dist/exceptions/custom.exception.d.ts +10 -0
  24. package/dist/exceptions/custom.exception.js +18 -0
  25. package/dist/exceptions/custom.exception.js.map +1 -0
  26. package/dist/factories/exception.factory.d.ts +4 -0
  27. package/dist/factories/exception.factory.js +15 -0
  28. package/dist/factories/exception.factory.js.map +1 -0
  29. package/dist/filters/base-exception.filter.d.ts +6 -0
  30. package/dist/filters/base-exception.filter.js +113 -0
  31. package/dist/filters/base-exception.filter.js.map +1 -0
  32. package/dist/functions/escape-regex.function.d.ts +1 -0
  33. package/dist/functions/escape-regex.function.js +8 -0
  34. package/dist/functions/escape-regex.function.js.map +1 -0
  35. package/dist/functions/generate-uuid.function.d.ts +1 -0
  36. package/dist/functions/generate-uuid.function.js +12 -0
  37. package/dist/functions/generate-uuid.function.js.map +1 -0
  38. package/dist/functions/json-size.function.d.ts +1 -0
  39. package/dist/functions/json-size.function.js +10 -0
  40. package/dist/functions/json-size.function.js.map +1 -0
  41. package/dist/functions/random-range.function.d.ts +1 -0
  42. package/dist/functions/random-range.function.js +11 -0
  43. package/dist/functions/random-range.function.js.map +1 -0
  44. package/dist/functions/transliterate-geo-to-latin.d.ts +1 -0
  45. package/dist/functions/transliterate-geo-to-latin.js +46 -0
  46. package/dist/functions/transliterate-geo-to-latin.js.map +1 -0
  47. package/dist/index.d.ts +38 -0
  48. package/dist/index.js +79 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/models/dtos/record.dto.d.ts +5 -0
  51. package/dist/models/dtos/record.dto.js +28 -0
  52. package/dist/models/dtos/record.dto.js.map +1 -0
  53. package/dist/models/dtos/state-params.dto.d.ts +5 -0
  54. package/dist/models/dtos/state-params.dto.js +26 -0
  55. package/dist/models/dtos/state-params.dto.js.map +1 -0
  56. package/dist/models/embedded/address.embedded.d.ts +39 -0
  57. package/dist/models/embedded/address.embedded.js +34 -0
  58. package/dist/models/embedded/address.embedded.js.map +1 -0
  59. package/dist/models/embedded/contact.embedded.d.ts +39 -0
  60. package/dist/models/embedded/contact.embedded.js +38 -0
  61. package/dist/models/embedded/contact.embedded.js.map +1 -0
  62. package/dist/models/embedded/geo-location.embedded.d.ts +38 -0
  63. package/dist/models/embedded/geo-location.embedded.js +33 -0
  64. package/dist/models/embedded/geo-location.embedded.js.map +1 -0
  65. package/dist/models/embedded/i18n.embedded.d.ts +38 -0
  66. package/dist/models/embedded/i18n.embedded.js +33 -0
  67. package/dist/models/embedded/i18n.embedded.js.map +1 -0
  68. package/dist/models/embedded/person.embedded.d.ts +38 -0
  69. package/dist/models/embedded/person.embedded.js +33 -0
  70. package/dist/models/embedded/person.embedded.js.map +1 -0
  71. package/dist/models/embedded/record.embedded.d.ts +41 -0
  72. package/dist/models/embedded/record.embedded.js +47 -0
  73. package/dist/models/embedded/record.embedded.js.map +1 -0
  74. package/dist/models/enums/contact-type.enum.d.ts +4 -0
  75. package/dist/models/enums/contact-type.enum.js +9 -0
  76. package/dist/models/enums/contact-type.enum.js.map +1 -0
  77. package/dist/models/enums/env.enum.d.ts +5 -0
  78. package/dist/models/enums/env.enum.js +10 -0
  79. package/dist/models/enums/env.enum.js.map +1 -0
  80. package/dist/models/enums/fail-keyword.enum.d.ts +5 -0
  81. package/dist/models/enums/fail-keyword.enum.js +10 -0
  82. package/dist/models/enums/fail-keyword.enum.js.map +1 -0
  83. package/dist/models/enums/http-method.enum.d.ts +7 -0
  84. package/dist/models/enums/http-method.enum.js +12 -0
  85. package/dist/models/enums/http-method.enum.js.map +1 -0
  86. package/dist/models/enums/permission-include-strategy.enum.d.ts +5 -0
  87. package/dist/models/enums/permission-include-strategy.enum.js +10 -0
  88. package/dist/models/enums/permission-include-strategy.enum.js.map +1 -0
  89. package/dist/models/enums/record-state.enum.d.ts +5 -0
  90. package/dist/models/enums/record-state.enum.js +10 -0
  91. package/dist/models/enums/record-state.enum.js.map +1 -0
  92. package/dist/models/interfaces/address.interface.d.ts +6 -0
  93. package/dist/models/interfaces/address.interface.js +3 -0
  94. package/dist/models/interfaces/address.interface.js.map +1 -0
  95. package/dist/models/interfaces/contact.interface.d.ts +6 -0
  96. package/dist/models/interfaces/contact.interface.js +3 -0
  97. package/dist/models/interfaces/contact.interface.js.map +1 -0
  98. package/dist/models/interfaces/geo-location.interface.d.ts +5 -0
  99. package/dist/models/interfaces/geo-location.interface.js +3 -0
  100. package/dist/models/interfaces/geo-location.interface.js.map +1 -0
  101. package/dist/models/interfaces/i18n.interface.d.ts +5 -0
  102. package/dist/models/interfaces/i18n.interface.js +3 -0
  103. package/dist/models/interfaces/i18n.interface.js.map +1 -0
  104. package/dist/models/interfaces/person.interface.d.ts +5 -0
  105. package/dist/models/interfaces/person.interface.js +3 -0
  106. package/dist/models/interfaces/person.interface.js.map +1 -0
  107. package/dist/models/interfaces/record.interface.d.ts +8 -0
  108. package/dist/models/interfaces/record.interface.js +3 -0
  109. package/dist/models/interfaces/record.interface.js.map +1 -0
  110. package/dist/models/interfaces/session/session-data.interface.d.ts +11 -0
  111. package/dist/models/interfaces/session/session-data.interface.js +3 -0
  112. package/dist/models/interfaces/session/session-data.interface.js.map +1 -0
  113. package/dist/models/interfaces/session/session.interface.d.ts +8 -0
  114. package/dist/models/interfaces/session/session.interface.js +3 -0
  115. package/dist/models/interfaces/session/session.interface.js.map +1 -0
  116. package/dist/models/wrappers/client-permissions.wrapper.d.ts +4 -0
  117. package/dist/models/wrappers/client-permissions.wrapper.js +7 -0
  118. package/dist/models/wrappers/client-permissions.wrapper.js.map +1 -0
  119. package/dist/models/wrappers/permission-guard-config.wrapper.d.ts +6 -0
  120. package/dist/models/wrappers/permission-guard-config.wrapper.js +10 -0
  121. package/dist/models/wrappers/permission-guard-config.wrapper.js.map +1 -0
  122. package/dist/models/wrappers/rest-wrapper.class.d.ts +58 -0
  123. package/dist/models/wrappers/rest-wrapper.class.js +162 -0
  124. package/dist/models/wrappers/rest-wrapper.class.js.map +1 -0
  125. package/dist/modules/cache/cache.module.d.ts +2 -0
  126. package/dist/modules/cache/cache.module.js +25 -0
  127. package/dist/modules/cache/cache.module.js.map +1 -0
  128. package/dist/modules/cache/guards/permission.guard.d.ts +14 -0
  129. package/dist/modules/cache/guards/permission.guard.js +101 -0
  130. package/dist/modules/cache/guards/permission.guard.js.map +1 -0
  131. package/dist/modules/cache/reflector/permission.reflector.d.ts +2 -0
  132. package/dist/modules/cache/reflector/permission.reflector.js +6 -0
  133. package/dist/modules/cache/reflector/permission.reflector.js.map +1 -0
  134. package/dist/modules/cache/services/redis.service.d.ts +11 -0
  135. package/dist/modules/cache/services/redis.service.js +70 -0
  136. package/dist/modules/cache/services/redis.service.js.map +1 -0
  137. package/dist/modules/cache/services/session.service.d.ts +6 -0
  138. package/dist/modules/cache/services/session.service.js +27 -0
  139. package/dist/modules/cache/services/session.service.js.map +1 -0
  140. package/dist/modules/log/log.module.d.ts +2 -0
  141. package/dist/modules/log/log.module.js +23 -0
  142. package/dist/modules/log/log.module.js.map +1 -0
  143. package/dist/modules/log/services/log.service.d.ts +6 -0
  144. package/dist/modules/log/services/log.service.js +32 -0
  145. package/dist/modules/log/services/log.service.js.map +1 -0
  146. package/dist/pipes/validate-mongo-id.pipe.d.ts +4 -0
  147. package/dist/pipes/validate-mongo-id.pipe.js +28 -0
  148. package/dist/pipes/validate-mongo-id.pipe.js.map +1 -0
  149. package/dist/tsconfig.tsbuildinfo +1 -0
  150. package/dist/utils/config-util.class.d.ts +5 -0
  151. package/dist/utils/config-util.class.js +18 -0
  152. package/dist/utils/config-util.class.js.map +1 -0
  153. package/dist/utils/console-logger.class.d.ts +9 -0
  154. package/dist/utils/console-logger.class.js +39 -0
  155. package/dist/utils/console-logger.class.js.map +1 -0
  156. package/package.json +35 -0
  157. package/src/clients/logger.client.ts +57 -0
  158. package/src/clients/session.client.ts +42 -0
  159. package/src/constraints/is-map-of-strings.constraint.ts +26 -0
  160. package/src/constraints/is-route.constraint.ts +14 -0
  161. package/src/decorators/is-map-of-strings.decorator.ts +10 -0
  162. package/src/decorators/is-route.decorator.ts +8 -0
  163. package/src/exceptions/custom.exception.ts +16 -0
  164. package/src/factories/exception.factory.ts +14 -0
  165. package/src/filters/base-exception.filter.ts +192 -0
  166. package/src/functions/escape-regex.function.ts +5 -0
  167. package/src/functions/generate-uuid.function.ts +7 -0
  168. package/src/functions/json-size.function.ts +9 -0
  169. package/src/functions/random-range.function.ts +6 -0
  170. package/src/functions/transliterate-geo-to-latin.ts +42 -0
  171. package/src/index.ts +96 -0
  172. package/src/models/dtos/record.dto.ts +12 -0
  173. package/src/models/dtos/state-params.dto.ts +10 -0
  174. package/src/models/embedded/address.embedded.ts +17 -0
  175. package/src/models/embedded/contact.embedded.ts +22 -0
  176. package/src/models/embedded/geo-location.embedded.ts +17 -0
  177. package/src/models/embedded/i18n.embedded.ts +16 -0
  178. package/src/models/embedded/person.embedded.ts +16 -0
  179. package/src/models/embedded/record.embedded.ts +30 -0
  180. package/src/models/enums/contact-type.enum.ts +4 -0
  181. package/src/models/enums/env.enum.ts +5 -0
  182. package/src/models/enums/fail-keyword.enum.ts +6 -0
  183. package/src/models/enums/http-method.enum.ts +7 -0
  184. package/src/models/enums/permission-include-strategy.enum.ts +5 -0
  185. package/src/models/enums/record-state.enum.ts +5 -0
  186. package/src/models/interfaces/address.interface.ts +7 -0
  187. package/src/models/interfaces/contact.interface.ts +7 -0
  188. package/src/models/interfaces/geo-location.interface.ts +5 -0
  189. package/src/models/interfaces/i18n.interface.ts +5 -0
  190. package/src/models/interfaces/person.interface.ts +5 -0
  191. package/src/models/interfaces/record.interface.ts +9 -0
  192. package/src/models/interfaces/session/session-data.interface.ts +11 -0
  193. package/src/models/interfaces/session/session.interface.ts +9 -0
  194. package/src/models/wrappers/client-permissions.wrapper.ts +4 -0
  195. package/src/models/wrappers/permission-guard-config.wrapper.ts +7 -0
  196. package/src/models/wrappers/rest-wrapper.class.ts +172 -0
  197. package/src/modules/cache/cache.module.ts +12 -0
  198. package/src/modules/cache/guards/permission.guard.ts +166 -0
  199. package/src/modules/cache/reflector/permission.reflector.ts +4 -0
  200. package/src/modules/cache/services/redis.service.ts +37 -0
  201. package/src/modules/cache/services/session.service.ts +11 -0
  202. package/src/modules/log/log.module.ts +10 -0
  203. package/src/modules/log/services/log.service.ts +20 -0
  204. package/src/pipes/validate-mongo-id.pipe.ts +17 -0
  205. package/src/utils/config-util.class.ts +15 -0
  206. package/src/utils/console-logger.class.ts +42 -0
  207. package/tsconfig.build.json +9 -0
  208. package/tsconfig.json +26 -0
package/.eslintrc.js ADDED
@@ -0,0 +1,25 @@
1
+ module.exports = {
2
+ parser: '@typescript-eslint/parser',
3
+ parserOptions: {
4
+ project: 'tsconfig.json',
5
+ tsconfigRootDir: __dirname,
6
+ sourceType: 'module',
7
+ },
8
+ plugins: ['@typescript-eslint/eslint-plugin'],
9
+ extends: [
10
+ 'plugin:@typescript-eslint/recommended',
11
+ 'plugin:prettier/recommended',
12
+ ],
13
+ root: true,
14
+ env: {
15
+ node: true,
16
+ jest: true,
17
+ },
18
+ ignorePatterns: ['.eslintrc.js'],
19
+ rules: {
20
+ '@typescript-eslint/interface-name-prefix': 'off',
21
+ '@typescript-eslint/explicit-function-return-type': 'off',
22
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
23
+ '@typescript-eslint/no-explicit-any': 'off',
24
+ },
25
+ };
package/.prettierrc ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "singleQuote": true,
3
+ "trailingComma": "all"
4
+ }
package/README.md ADDED
File without changes
package/devops.md ADDED
@@ -0,0 +1,15 @@
1
+ # Build Time
2
+
3
+ ## Image
4
+ * node:22.2.0
5
+
6
+ ## Environment Variables
7
+ * NODE_ENV: testing
8
+ * ETC: etc…
9
+
10
+ ## Perquisite Commands
11
+ * npm install -g @nestjs/cli
12
+ * etc…
13
+
14
+ ## Build Command
15
+ * npm run build:main
@@ -0,0 +1,10 @@
1
+ export declare class LoggerClient {
2
+ private kafka;
3
+ private kafkaTopic;
4
+ private producer;
5
+ constructor(kafkaBrokers: string[], kafkaClientId: string, kafkaLogTopic: string);
6
+ private connectProducer;
7
+ private disconnectProducer;
8
+ private sendLog;
9
+ private send;
10
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoggerClient = void 0;
4
+ const kafkajs_1 = require("kafkajs");
5
+ const rxjs_1 = require("rxjs");
6
+ class LoggerClient {
7
+ constructor(kafkaBrokers, kafkaClientId, kafkaLogTopic) {
8
+ this.kafkaTopic = kafkaLogTopic;
9
+ this.kafka = new kafkajs_1.Kafka({ brokers: kafkaBrokers, clientId: kafkaClientId });
10
+ this.producer = this.kafka.producer();
11
+ }
12
+ connectProducer() {
13
+ return (0, rxjs_1.from)(this.producer.connect());
14
+ }
15
+ disconnectProducer() {
16
+ return (0, rxjs_1.from)(this.producer.disconnect());
17
+ }
18
+ sendLog(log, key) {
19
+ let messageString = JSON.stringify(log);
20
+ return this.connectProducer().pipe((0, rxjs_1.mergeMap)(() => {
21
+ return this.send(messageString, key).pipe((0, rxjs_1.map)((recordMetadata) => {
22
+ this.disconnectProducer().subscribe();
23
+ return recordMetadata;
24
+ }));
25
+ }), (0, rxjs_1.catchError)((err) => {
26
+ return (0, rxjs_1.of)(err);
27
+ }));
28
+ }
29
+ send(messageString, key) {
30
+ return (0, rxjs_1.from)(this.producer.send({
31
+ topic: this.kafkaTopic,
32
+ messages: [
33
+ {
34
+ key,
35
+ value: messageString,
36
+ },
37
+ ],
38
+ }));
39
+ }
40
+ }
41
+ exports.LoggerClient = LoggerClient;
42
+ //# sourceMappingURL=logger.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.client.js","sourceRoot":"","sources":["../../src/clients/logger.client.ts"],"names":[],"mappings":";;;AAAA,qCAAyE;AACzE,+BAAuE;AAEvE,MAAa,YAAY;IAIvB,YACE,YAAsB,EACtB,aAAqB,EACrB,aAAqB;QAErB,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,eAAK,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;IAEO,eAAe;QACrB,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IACO,kBAAkB;QACxB,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IACO,OAAO,CAAC,GAAQ,EAAE,GAAY;QACpC,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAChC,IAAA,eAAQ,EAAC,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,CACvC,IAAA,UAAG,EAAC,CAAC,cAAc,EAAE,EAAE;gBACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,EAAE,CAAC;gBACtC,OAAO,cAAc,CAAC;YACxB,CAAC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,EACF,IAAA,iBAAU,EAAC,CAAC,GAAG,EAAE,EAAE;YACjB,OAAO,IAAA,SAAE,EAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,IAAI,CACV,aAAqB,EACrB,GAAY;QAEZ,OAAO,IAAA,WAAI,EACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,QAAQ,EAAE;gBACR;oBACE,GAAG;oBACH,KAAK,EAAE,aAAa;iBACrB;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AArDD,oCAqDC"}
@@ -0,0 +1,10 @@
1
+ import * as IORedis from 'ioredis';
2
+ export declare class SessionClient {
3
+ private redisClient;
4
+ constructor(client: IORedis.Redis);
5
+ get(key: string): Promise<string>;
6
+ set(key: string, value: string): Promise<string>;
7
+ delete(key: string): Promise<number>;
8
+ private parseUser;
9
+ private parse;
10
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionClient = void 0;
4
+ class SessionClient {
5
+ constructor(client) {
6
+ this.redisClient = client;
7
+ }
8
+ get(key) {
9
+ return this.redisClient.get(key);
10
+ }
11
+ set(key, value) {
12
+ return this.redisClient.set(key, value);
13
+ }
14
+ delete(key) {
15
+ return this.redisClient.del(key);
16
+ }
17
+ parseUser(jsonString) {
18
+ try {
19
+ const parsedUser = JSON.parse(jsonString);
20
+ return parsedUser;
21
+ }
22
+ catch (error) {
23
+ return null;
24
+ }
25
+ }
26
+ parse(jsonString) {
27
+ try {
28
+ const result = JSON.parse(jsonString);
29
+ return result;
30
+ }
31
+ catch (error) {
32
+ return null;
33
+ }
34
+ }
35
+ }
36
+ exports.SessionClient = SessionClient;
37
+ //# sourceMappingURL=session.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.client.js","sourceRoot":"","sources":["../../src/clients/session.client.ts"],"names":[],"mappings":";;;AAIA,MAAa,aAAa;IAGxB,YAAY,MAAqB;QAC/B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAEM,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAa;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEO,SAAS,CAAC,UAAkB;QAClC,IAAI,CAAC;YACH,MAAM,UAAU,GAAqB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5D,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAI,UAAkB;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CAEF;AArCD,sCAqCC"}
@@ -0,0 +1,5 @@
1
+ import { ValidationArguments, ValidatorConstraintInterface } from 'class-validator';
2
+ export declare class IsMapOfStringsConstraint implements ValidatorConstraintInterface {
3
+ validate(value: any, args: ValidationArguments): boolean;
4
+ defaultMessage(args: ValidationArguments): string;
5
+ }
@@ -0,0 +1,34 @@
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.IsMapOfStringsConstraint = void 0;
10
+ const class_validator_1 = require("class-validator");
11
+ let IsMapOfStringsConstraint = class IsMapOfStringsConstraint {
12
+ validate(value, args) {
13
+ if (!value || typeof value !== 'object') {
14
+ return false;
15
+ }
16
+ if (!Object.keys(value).length) {
17
+ return false;
18
+ }
19
+ for (let key in value) {
20
+ if (typeof value[key] !== 'string') {
21
+ return false;
22
+ }
23
+ }
24
+ return true;
25
+ }
26
+ defaultMessage(args) {
27
+ return `${args.property} must be a map object with string values.`;
28
+ }
29
+ };
30
+ exports.IsMapOfStringsConstraint = IsMapOfStringsConstraint;
31
+ exports.IsMapOfStringsConstraint = IsMapOfStringsConstraint = __decorate([
32
+ (0, class_validator_1.ValidatorConstraint)({ name: 'IsMapOfStrings', async: false })
33
+ ], IsMapOfStringsConstraint);
34
+ //# sourceMappingURL=is-map-of-strings.constraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-map-of-strings.constraint.js","sourceRoot":"","sources":["../../src/constraints/is-map-of-strings.constraint.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qDAAyG;AAGlG,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,QAAQ,CAAC,KAAU,EAAE,IAAyB;QAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,IAAyB;QACtC,OAAO,GAAG,IAAI,CAAC,QAAQ,2CAA2C,CAAC;IACrE,CAAC;CACF,CAAA;AAtBY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GACjD,wBAAwB,CAsBpC"}
@@ -0,0 +1,5 @@
1
+ import { ValidationArguments, ValidatorConstraintInterface } from 'class-validator';
2
+ export declare class IsRouteConstraint implements ValidatorConstraintInterface {
3
+ validate(value: any, args: ValidationArguments): boolean;
4
+ defaultMessage(args: ValidationArguments): string;
5
+ }
@@ -0,0 +1,24 @@
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.IsRouteConstraint = void 0;
10
+ const class_validator_1 = require("class-validator");
11
+ let IsRouteConstraint = class IsRouteConstraint {
12
+ validate(value, args) {
13
+ const routePattern = /^\/[\w-\/]+(\?.+)?$/;
14
+ return typeof value === 'string' && routePattern.test(value);
15
+ }
16
+ defaultMessage(args) {
17
+ return `${args.property} must be a valid route string.`;
18
+ }
19
+ };
20
+ exports.IsRouteConstraint = IsRouteConstraint;
21
+ exports.IsRouteConstraint = IsRouteConstraint = __decorate([
22
+ (0, class_validator_1.ValidatorConstraint)({ name: 'IsRoute', async: false })
23
+ ], IsRouteConstraint);
24
+ //# sourceMappingURL=is-route.constraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-route.constraint.js","sourceRoot":"","sources":["../../src/constraints/is-route.constraint.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qDAAyG;AAGlG,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,QAAQ,CAAC,KAAU,EAAE,IAAyB;QAE5C,MAAM,YAAY,GAAG,qBAAqB,CAAC;QAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc,CAAC,IAAyB;QACtC,OAAO,GAAG,IAAI,CAAC,QAAQ,gCAAgC,CAAC;IAC1D,CAAC;CACF,CAAA;AAVY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GAC1C,iBAAiB,CAU7B"}
@@ -0,0 +1 @@
1
+ export declare function IsMapOfStrings(): (object: Record<string, any>, propertyName: string) => void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsMapOfStrings = void 0;
4
+ const class_validator_1 = require("class-validator");
5
+ const is_map_of_strings_constraint_1 = require("../constraints/is-map-of-strings.constraint");
6
+ function IsMapOfStrings() {
7
+ return function (object, propertyName) {
8
+ (0, class_validator_1.Validate)(is_map_of_strings_constraint_1.IsMapOfStringsConstraint, {
9
+ message: `${propertyName} must be a map object with string values.`,
10
+ })(object, propertyName);
11
+ };
12
+ }
13
+ exports.IsMapOfStrings = IsMapOfStrings;
14
+ //# sourceMappingURL=is-map-of-strings.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-map-of-strings.decorator.js","sourceRoot":"","sources":["../../src/decorators/is-map-of-strings.decorator.ts"],"names":[],"mappings":";;;AAAA,qDAA2C;AAC3C,8FAAuF;AAEvF,SAAgB,cAAc;IAC5B,OAAO,UAAU,MAA2B,EAAE,YAAoB;QAChE,IAAA,0BAAQ,EAAC,uDAAwB,EAAE;YACjC,OAAO,EAAE,GAAG,YAAY,2CAA2C;SACpE,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC;AAND,wCAMC"}
@@ -0,0 +1 @@
1
+ export declare function IsRoute(): (object: Record<string, any>, propertyName: string) => void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsRoute = void 0;
4
+ const class_validator_1 = require("class-validator");
5
+ const is_route_constraint_1 = require("../constraints/is-route.constraint");
6
+ function IsRoute() {
7
+ return function (object, propertyName) {
8
+ (0, class_validator_1.Validate)(is_route_constraint_1.IsRouteConstraint, { message: `${propertyName} must be a valid route string.` })(object, propertyName);
9
+ };
10
+ }
11
+ exports.IsRoute = IsRoute;
12
+ //# sourceMappingURL=is-route.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-route.decorator.js","sourceRoot":"","sources":["../../src/decorators/is-route.decorator.ts"],"names":[],"mappings":";;;AAAA,qDAA2C;AAC3C,4EAAuE;AAEvE,SAAgB,OAAO;IACrB,OAAO,UAAU,MAA2B,EAAE,YAAoB;QAChE,IAAA,0BAAQ,EAAC,uCAAiB,EAAE,EAAE,OAAO,EAAE,GAAG,YAAY,gCAAgC,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClH,CAAC,CAAC;AACJ,CAAC;AAJD,0BAIC"}
@@ -0,0 +1,10 @@
1
+ import { HttpException, HttpStatus } from '@nestjs/common';
2
+ import { Response } from 'express';
3
+ import { RESTError } from '../models/wrappers/rest-wrapper.class';
4
+ declare class HandledException extends HttpException {
5
+ private readonly _errors;
6
+ private readonly _statusCode?;
7
+ constructor(_errors: RESTError[], _statusCode?: HttpStatus);
8
+ send(response: Response): void;
9
+ }
10
+ export { HandledException };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandledException = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const rest_wrapper_class_1 = require("../models/wrappers/rest-wrapper.class");
6
+ class HandledException extends common_1.HttpException {
7
+ constructor(_errors, _statusCode) {
8
+ super({ errors: _errors }, _statusCode || common_1.HttpStatus.BAD_REQUEST);
9
+ this._errors = _errors;
10
+ this._statusCode = _statusCode;
11
+ }
12
+ send(response) {
13
+ const responseBody = rest_wrapper_class_1.RESTResponseBody.fail(this._errors, this._statusCode || common_1.HttpStatus.BAD_REQUEST);
14
+ response.status(this._statusCode).json(responseBody);
15
+ }
16
+ }
17
+ exports.HandledException = HandledException;
18
+ //# sourceMappingURL=custom.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.exception.js","sourceRoot":"","sources":["../../src/exceptions/custom.exception.ts"],"names":[],"mappings":";;;AAAA,2CAA2D;AAE3D,8EAAoF;AAEpF,MAAM,gBAAiB,SAAQ,sBAAa;IAC1C,YAA6B,OAAoB,EAAmB,WAAwB;QAC1F,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,WAAW,IAAI,mBAAU,CAAC,WAAW,CAAC,CAAC;QADvC,YAAO,GAAP,OAAO,CAAa;QAAmB,gBAAW,GAAX,WAAW,CAAa;IAE5F,CAAC;IAEM,IAAI,CAAC,QAAkB;QAC5B,MAAM,YAAY,GAAG,qCAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,IAAI,mBAAU,CAAC,WAAW,CAAC,CAAC;QACrG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;CACF;AAEQ,4CAAgB"}
@@ -0,0 +1,4 @@
1
+ import { ValidationError } from 'class-validator';
2
+ import { HandledException } from '../exceptions/custom.exception';
3
+ declare function validationExceptionFactory(_errors: ValidationError[]): HandledException;
4
+ export { validationExceptionFactory };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validationExceptionFactory = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const custom_exception_1 = require("../exceptions/custom.exception");
6
+ const rest_wrapper_class_1 = require("../models/wrappers/rest-wrapper.class");
7
+ function validationExceptionFactory(_errors) {
8
+ const error = new rest_wrapper_class_1.RESTError('DATA_VALIDATION');
9
+ _errors.forEach((i) => {
10
+ error.validation = i;
11
+ });
12
+ return new custom_exception_1.HandledException([error], common_1.HttpStatus.UNPROCESSABLE_ENTITY);
13
+ }
14
+ exports.validationExceptionFactory = validationExceptionFactory;
15
+ //# sourceMappingURL=exception.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception.factory.js","sourceRoot":"","sources":["../../src/factories/exception.factory.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAE5C,qEAAkE;AAClE,8EAAkE;AAElE,SAAS,0BAA0B,CAAC,OAA0B;IAC5D,MAAM,KAAK,GAAG,IAAI,8BAAS,CAAC,iBAAiB,CAAC,CAAC;IAC/C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;QACzB,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,mCAAgB,CAAC,CAAC,KAAK,CAAC,EAAE,mBAAU,CAAC,oBAAoB,CAAC,CAAC;AACxE,CAAC;AAEQ,gEAA0B"}
@@ -0,0 +1,6 @@
1
+ import { ArgumentsHost, ExceptionFilter } from '@nestjs/common';
2
+ export declare class BaseExceptionsFilter implements ExceptionFilter {
3
+ private _debug;
4
+ constructor(debug: boolean);
5
+ catch(exception: any, host: ArgumentsHost): void;
6
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseExceptionsFilter = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const custom_exception_1 = require("../exceptions/custom.exception");
6
+ const rest_wrapper_class_1 = require("../models/wrappers/rest-wrapper.class");
7
+ class BaseExceptionsFilter {
8
+ constructor(debug) {
9
+ this._debug = false;
10
+ this._debug = debug;
11
+ }
12
+ catch(exception, host) {
13
+ const context = host.switchToHttp();
14
+ const response = context.getResponse();
15
+ if (this._debug) {
16
+ console.log('BaseExceptionsFilter - name:', exception.constructor.name);
17
+ }
18
+ let handledException = null;
19
+ try {
20
+ switch (exception.constructor.name) {
21
+ case 'HandledException':
22
+ handledException = exception;
23
+ break;
24
+ case 'RESTError':
25
+ handledException = new custom_exception_1.HandledException(exception, exception.statusCode || common_1.HttpStatus.BAD_REQUEST);
26
+ break;
27
+ case 'BadRequestException':
28
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('BadRequestException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
29
+ break;
30
+ case 'UnauthorizedException':
31
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('UnauthorizedException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
32
+ break;
33
+ case 'NotFoundException':
34
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('METHOD_NOT_FOUND', exception.message)], common_1.HttpStatus.METHOD_NOT_ALLOWED);
35
+ break;
36
+ case 'ForbiddenException':
37
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('INVALID_API_TOKEN', 'invalid X-API-TOKEN received in headers')], common_1.HttpStatus.FORBIDDEN);
38
+ break;
39
+ case 'NotAcceptableException':
40
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('NotAcceptableException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
41
+ break;
42
+ case 'RequestTimeoutException':
43
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('RequestTimeoutException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
44
+ break;
45
+ case 'ConflictException':
46
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('ConflictException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
47
+ break;
48
+ case 'GoneException':
49
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('GoneException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
50
+ break;
51
+ case 'HttpVersionNotSupportedException':
52
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('HttpVersionNotSupportedException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
53
+ break;
54
+ case 'PayloadTooLargeException':
55
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('PayloadTooLargeException', exception.constructor.name)], common_1.HttpStatus.PAYLOAD_TOO_LARGE);
56
+ break;
57
+ case 'UnsupportedMediaTypeException':
58
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('UnsupportedMediaTypeException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
59
+ break;
60
+ case 'UnprocessableEntityException':
61
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('UnprocessableEntityException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
62
+ break;
63
+ case 'InternalServerErrorException':
64
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('InternalServerErrorException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
65
+ break;
66
+ case 'NotImplementedException':
67
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('NotImplementedException', exception.constructor.name)], common_1.HttpStatus.NOT_IMPLEMENTED);
68
+ break;
69
+ case 'ImATeapotException':
70
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('ImATeapotException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
71
+ break;
72
+ case 'MethodNotAllowedException':
73
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('MethodNotAllowedException', exception.constructor.name)], common_1.HttpStatus.METHOD_NOT_ALLOWED);
74
+ break;
75
+ case 'BadGatewayException':
76
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('BadGatewayException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
77
+ break;
78
+ case 'ServiceUnavailableException':
79
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('ServiceUnavailableException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
80
+ break;
81
+ case 'GatewayTimeoutException':
82
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('GatewayTimeoutException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
83
+ break;
84
+ case 'PreconditionFailedException':
85
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('PreconditionFailedException', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
86
+ break;
87
+ case 'TypeError':
88
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('TYPE_ERROR', exception.message)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
89
+ break;
90
+ case 'MongoError':
91
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('MONGO_ERROR', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
92
+ break;
93
+ case 'CastError':
94
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('CAST_ERROR', exception.message)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
95
+ break;
96
+ case 'ValidationError':
97
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('VALIDATION_ERROR', exception.message)], common_1.HttpStatus.UNPROCESSABLE_ENTITY);
98
+ break;
99
+ case 'MongoServerError':
100
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('MONGO_SERVER_ERROR', exception.message)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
101
+ break;
102
+ default:
103
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('UNKNOWN_EXCEPTION', exception.constructor.name)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
104
+ }
105
+ }
106
+ catch (ex) {
107
+ handledException = new custom_exception_1.HandledException([new rest_wrapper_class_1.RESTError('FILTER_EXCEPTION', ex)], common_1.HttpStatus.INTERNAL_SERVER_ERROR);
108
+ }
109
+ handledException.send(response);
110
+ }
111
+ }
112
+ exports.BaseExceptionsFilter = BaseExceptionsFilter;
113
+ //# sourceMappingURL=base-exception.filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-exception.filter.js","sourceRoot":"","sources":["../../src/filters/base-exception.filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function escapeRegex(text: string): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.escapeRegex = void 0;
4
+ function escapeRegex(text) {
5
+ return text.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d');
6
+ }
7
+ exports.escapeRegex = escapeRegex;
8
+ //# sourceMappingURL=escape-regex.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escape-regex.function.js","sourceRoot":"","sources":["../../src/functions/escape-regex.function.ts"],"names":[],"mappings":";;;AAAA,SAAgB,WAAW,CAAC,IAAY;IAGtC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAJD,kCAIC"}
@@ -0,0 +1 @@
1
+ export declare function generateUUID(): string;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateUUID = void 0;
4
+ function generateUUID() {
5
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
6
+ const r = (Math.random() * 16) | 0;
7
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
8
+ return v.toString(16);
9
+ });
10
+ }
11
+ exports.generateUUID = generateUUID;
12
+ //# sourceMappingURL=generate-uuid.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-uuid.function.js","sourceRoot":"","sources":["../../src/functions/generate-uuid.function.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY;IACxB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AANH,oCAMG"}
@@ -0,0 +1 @@
1
+ export declare function sizeOfJson(object: any): number;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sizeOfJson = void 0;
4
+ function sizeOfJson(object) {
5
+ const jsonString = JSON.stringify(object);
6
+ const bytes = new TextEncoder().encode(jsonString).length;
7
+ return bytes;
8
+ }
9
+ exports.sizeOfJson = sizeOfJson;
10
+ //# sourceMappingURL=json-size.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-size.function.js","sourceRoot":"","sources":["../../src/functions/json-size.function.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,MAAW;IAEpC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAG1C,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAE1D,OAAO,KAAK,CAAC;AACf,CAAC;AARD,gCAQC"}
@@ -0,0 +1 @@
1
+ export declare function getRandomNumberFromRange(min: number, max: number): number;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRandomNumberFromRange = void 0;
4
+ function getRandomNumberFromRange(min, max) {
5
+ if (min >= max) {
6
+ throw new Error("The minimum value must be less than the maximum value");
7
+ }
8
+ return Math.floor(Math.random() * (max - min + 1)) + min;
9
+ }
10
+ exports.getRandomNumberFromRange = getRandomNumberFromRange;
11
+ //# sourceMappingURL=random-range.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random-range.function.js","sourceRoot":"","sources":["../../src/functions/random-range.function.ts"],"names":[],"mappings":";;;AAAA,SAAgB,wBAAwB,CAAC,GAAW,EAAE,GAAW;IAC7D,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7D,CAAC;AALD,4DAKC"}
@@ -0,0 +1 @@
1
+ export declare function translitGeorgiaToLatin(georgianText: string): string;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.translitGeorgiaToLatin = void 0;
4
+ function translitGeorgiaToLatin(georgianText) {
5
+ const georgianChars = {
6
+ ა: 'a',
7
+ ბ: 'b',
8
+ გ: 'g',
9
+ დ: 'd',
10
+ ე: 'e',
11
+ ვ: 'v',
12
+ ზ: 'z',
13
+ თ: 't',
14
+ ი: 'i',
15
+ კ: 'k',
16
+ ლ: 'l',
17
+ მ: 'm',
18
+ ნ: 'n',
19
+ ო: 'o',
20
+ პ: 'p',
21
+ ჟ: 'zh',
22
+ რ: 'r',
23
+ ს: 's',
24
+ ტ: 't',
25
+ უ: 'u',
26
+ ფ: 'p',
27
+ ქ: 'q',
28
+ ღ: 'gh',
29
+ ყ: 'q',
30
+ შ: 'sh',
31
+ ჩ: 'ch',
32
+ ც: 'ts',
33
+ ძ: 'dz',
34
+ წ: 'ts',
35
+ ჭ: 'ch',
36
+ ხ: 'kh',
37
+ ჯ: 'j',
38
+ ჰ: 'h',
39
+ };
40
+ return georgianText
41
+ .split('')
42
+ .map((char) => georgianChars[char] || char)
43
+ .join('');
44
+ }
45
+ exports.translitGeorgiaToLatin = translitGeorgiaToLatin;
46
+ //# sourceMappingURL=transliterate-geo-to-latin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transliterate-geo-to-latin.js","sourceRoot":"","sources":["../../src/functions/transliterate-geo-to-latin.ts"],"names":[],"mappings":";;;AAAA,SAAgB,sBAAsB,CAAC,YAAoB;IACzD,MAAM,aAAa,GAA8B;QAC/C,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;KACP,CAAC;IAEF,OAAO,YAAY;SAChB,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;SAC1C,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAzCD,wDAyCC"}