@nest-omni/core 3.1.1-9 → 3.1.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 (306) hide show
  1. package/.hygen/new/crud/controller.ejs.t +82 -0
  2. package/.hygen/new/crud/create.dto.ejs.t +12 -0
  3. package/.hygen/new/crud/entity.ejs.t +26 -0
  4. package/.hygen/new/crud/get.dto.ejs.t +19 -0
  5. package/.hygen/new/crud/index-dto.ejs.t +29 -0
  6. package/.hygen/new/crud/index-response.dto.ejs.t +18 -0
  7. package/.hygen/new/crud/module.ejs.t +32 -0
  8. package/.hygen/new/crud/prompt.js +89 -0
  9. package/.hygen/new/crud/service.ejs.t +76 -0
  10. package/.hygen/new/crud/update.dto.ejs.t +11 -0
  11. package/.hygen/new/module/controller.ejs.t +93 -0
  12. package/.hygen/new/module/create-command.ejs.t +90 -0
  13. package/.hygen/new/module/create.dto.ejs.t +11 -0
  14. package/.hygen/new/module/dto.ejs.t +24 -0
  15. package/.hygen/new/module/entity.ejs.t +33 -0
  16. package/.hygen/new/module/get-query.ejs.t +57 -0
  17. package/.hygen/new/module/module.ejs.t +44 -0
  18. package/.hygen/new/module/not-found.exception.ejs.t +18 -0
  19. package/.hygen/new/module/page-options.dto.ejs.t +12 -0
  20. package/.hygen/new/module/prompt.js +104 -0
  21. package/.hygen/new/module/repository.ejs.t +16 -0
  22. package/.hygen/new/module/service.ejs.t +139 -0
  23. package/.hygen/new/module/translation-dto.ejs.t +27 -0
  24. package/.hygen/new/module/translation-entity.ejs.t +40 -0
  25. package/.hygen/new/module/translation-repository.ejs.t +16 -0
  26. package/.hygen/new/module/update.dto.ejs.t +10 -0
  27. package/.hygen.js +116 -0
  28. package/cache/cache-metrics.service.d.ts +83 -0
  29. package/cache/cache-metrics.service.js +298 -0
  30. package/cache/cache-serialization.service.d.ts +22 -0
  31. package/cache/cache-serialization.service.js +122 -0
  32. package/cache/cache.constants.d.ts +2 -0
  33. package/cache/cache.constants.js +5 -0
  34. package/cache/cache.health.d.ts +35 -0
  35. package/cache/cache.health.js +193 -0
  36. package/cache/cache.module.d.ts +26 -0
  37. package/cache/cache.module.js +155 -0
  38. package/cache/cache.service.d.ts +37 -0
  39. package/cache/cache.service.js +308 -0
  40. package/cache/cache.warmup.service.d.ts +34 -0
  41. package/cache/cache.warmup.service.js +199 -0
  42. package/cache/decorators/cache-evict.decorator.d.ts +2 -0
  43. package/cache/decorators/cache-evict.decorator.js +72 -0
  44. package/cache/decorators/cache-put.decorator.d.ts +2 -0
  45. package/cache/decorators/cache-put.decorator.js +48 -0
  46. package/cache/decorators/cacheable.decorator.d.ts +4 -0
  47. package/cache/decorators/cacheable.decorator.js +68 -0
  48. package/cache/decorators/index.d.ts +3 -0
  49. package/cache/decorators/index.js +11 -0
  50. package/cache/dependencies/callback.dependency.d.ts +11 -0
  51. package/cache/dependencies/callback.dependency.js +92 -0
  52. package/cache/dependencies/chain.dependency.d.ts +20 -0
  53. package/cache/dependencies/chain.dependency.js +113 -0
  54. package/cache/dependencies/db.dependency.d.ts +15 -0
  55. package/cache/dependencies/db.dependency.js +71 -0
  56. package/cache/dependencies/file.dependency.d.ts +17 -0
  57. package/cache/dependencies/file.dependency.js +63 -0
  58. package/cache/dependencies/index.d.ts +6 -0
  59. package/cache/dependencies/index.js +22 -0
  60. package/cache/dependencies/tag.dependency.d.ts +16 -0
  61. package/cache/dependencies/tag.dependency.js +75 -0
  62. package/cache/dependencies/time.dependency.d.ts +19 -0
  63. package/cache/dependencies/time.dependency.js +71 -0
  64. package/cache/examples/basic-usage.d.ts +58 -0
  65. package/cache/examples/basic-usage.js +379 -0
  66. package/cache/index.d.ts +15 -0
  67. package/cache/index.js +44 -0
  68. package/cache/interfaces/cache-dependency.interface.d.ts +11 -0
  69. package/cache/interfaces/cache-dependency.interface.js +2 -0
  70. package/cache/interfaces/cache-options.interface.d.ts +32 -0
  71. package/cache/interfaces/cache-options.interface.js +9 -0
  72. package/cache/interfaces/cache-provider.interface.d.ts +28 -0
  73. package/cache/interfaces/cache-provider.interface.js +2 -0
  74. package/cache/interfaces/index.d.ts +3 -0
  75. package/cache/interfaces/index.js +19 -0
  76. package/cache/providers/base-cache.provider.d.ts +16 -0
  77. package/cache/providers/base-cache.provider.js +32 -0
  78. package/cache/providers/cls-cache.provider.d.ts +16 -0
  79. package/cache/providers/cls-cache.provider.js +140 -0
  80. package/cache/providers/index.d.ts +4 -0
  81. package/cache/providers/index.js +23 -0
  82. package/cache/providers/memory-cache.provider.d.ts +26 -0
  83. package/cache/providers/memory-cache.provider.js +171 -0
  84. package/cache/providers/redis-cache.provider.d.ts +23 -0
  85. package/cache/providers/redis-cache.provider.js +215 -0
  86. package/cache/utils/dependency-manager.util.d.ts +15 -0
  87. package/cache/utils/dependency-manager.util.js +141 -0
  88. package/cache/utils/index.d.ts +2 -0
  89. package/cache/utils/index.js +18 -0
  90. package/cache/utils/key-generator.util.d.ts +13 -0
  91. package/cache/utils/key-generator.util.js +74 -0
  92. package/common/abstract.entity.d.ts +20 -0
  93. package/common/abstract.entity.js +81 -0
  94. package/common/boilerplate.polyfill.d.ts +50 -0
  95. package/common/boilerplate.polyfill.js +152 -0
  96. package/common/dto/abstract.dto.d.ts +13 -0
  97. package/common/dto/abstract.dto.js +59 -0
  98. package/common/dto/bulk-id.dto.d.ts +3 -0
  99. package/common/dto/bulk-id.dto.js +27 -0
  100. package/common/dto/create-translation.dto.d.ts +5 -0
  101. package/common/dto/create-translation.dto.js +25 -0
  102. package/common/dto/dto-container.d.ts +9 -0
  103. package/common/dto/dto-container.js +59 -0
  104. package/common/dto/dto-decorators.d.ts +18 -0
  105. package/common/dto/dto-decorators.js +59 -0
  106. package/common/dto/dto-extensions.d.ts +12 -0
  107. package/common/dto/dto-extensions.js +63 -0
  108. package/common/dto/dto-service-accessor.d.ts +7 -0
  109. package/common/dto/dto-service-accessor.js +49 -0
  110. package/common/dto/dto-transformer.d.ts +11 -0
  111. package/common/dto/dto-transformer.js +49 -0
  112. package/common/dto/index.d.ts +12 -0
  113. package/common/dto/index.js +28 -0
  114. package/common/dto/page-meta.dto.d.ts +15 -0
  115. package/common/dto/page-meta.dto.js +48 -0
  116. package/common/dto/page-options.dto.d.ts +5 -0
  117. package/common/dto/page-options.dto.js +40 -0
  118. package/common/dto/page.dto.d.ts +11 -0
  119. package/common/dto/page.dto.js +53 -0
  120. package/common/examples/paginate-and-map.example.d.ts +14 -0
  121. package/common/examples/paginate-and-map.example.js +158 -0
  122. package/common/index.d.ts +6 -0
  123. package/common/index.js +22 -0
  124. package/common/snake-naming.strategy.d.ts +11 -0
  125. package/common/snake-naming.strategy.js +37 -0
  126. package/common/types.d.ts +9 -0
  127. package/common/types.js +2 -0
  128. package/common/utils.d.ts +3 -0
  129. package/common/utils.js +24 -0
  130. package/constants/index.d.ts +2 -0
  131. package/constants/index.js +18 -0
  132. package/constants/language-code.d.ts +5 -0
  133. package/constants/language-code.js +9 -0
  134. package/constants/order.d.ts +4 -0
  135. package/constants/order.js +8 -0
  136. package/decorators/api-page-ok-response.decorator.d.ts +5 -0
  137. package/decorators/api-page-ok-response.decorator.js +24 -0
  138. package/decorators/auth-user.decorator.d.ts +1 -0
  139. package/decorators/auth-user.decorator.js +14 -0
  140. package/decorators/controller.decorator.d.ts +1 -0
  141. package/decorators/controller.decorator.js +10 -0
  142. package/decorators/examples/validation-decorators.example.d.ts +69 -0
  143. package/decorators/examples/validation-decorators.example.js +331 -0
  144. package/decorators/field.decorators.d.ts +79 -0
  145. package/decorators/field.decorators.js +499 -0
  146. package/decorators/http.decorators.d.ts +3 -0
  147. package/decorators/http.decorators.js +7 -0
  148. package/decorators/index.d.ts +12 -0
  149. package/decorators/index.js +28 -0
  150. package/decorators/operation.decorator.d.ts +1 -0
  151. package/decorators/operation.decorator.js +6 -0
  152. package/decorators/property.decorators.d.ts +15 -0
  153. package/decorators/property.decorators.js +31 -0
  154. package/decorators/public-route.decorator.d.ts +3 -0
  155. package/decorators/public-route.decorator.js +7 -0
  156. package/decorators/swagger.schema.d.ts +5 -0
  157. package/decorators/swagger.schema.js +78 -0
  158. package/decorators/timestamp-column.decorator.d.ts +1 -0
  159. package/decorators/timestamp-column.decorator.js +27 -0
  160. package/decorators/transform.decorators.d.ts +8 -0
  161. package/decorators/transform.decorators.js +100 -0
  162. package/decorators/translate.decorator.d.ts +5 -0
  163. package/decorators/translate.decorator.js +17 -0
  164. package/decorators/use-dto.decorator.d.ts +4 -0
  165. package/decorators/use-dto.decorator.js +8 -0
  166. package/decorators/user-check.decorator.d.ts +6 -0
  167. package/decorators/user-check.decorator.js +21 -0
  168. package/decorators/user.decorator.d.ts +12 -0
  169. package/decorators/user.decorator.js +44 -0
  170. package/decorators/user_auth.decorator.d.ts +1 -0
  171. package/decorators/user_auth.decorator.js +15 -0
  172. package/decorators/validator.decorators.d.ts +18 -0
  173. package/decorators/validator.decorators.js +193 -0
  174. package/exceptions/file-not-image.exception.d.ts +4 -0
  175. package/exceptions/file-not-image.exception.js +10 -0
  176. package/exceptions/index.d.ts +2 -0
  177. package/exceptions/index.js +18 -0
  178. package/exceptions/page-type.exception.d.ts +4 -0
  179. package/exceptions/page-type.exception.js +10 -0
  180. package/exceptions/user-not-found.exception.d.ts +4 -0
  181. package/exceptions/user-not-found.exception.js +10 -0
  182. package/filters/bad-request.filter.d.ts +5 -0
  183. package/filters/bad-request.filter.js +71 -0
  184. package/filters/constraint-errors.d.ts +1 -0
  185. package/filters/constraint-errors.js +6 -0
  186. package/filters/index.d.ts +3 -0
  187. package/filters/index.js +19 -0
  188. package/filters/query-failed.filter.d.ts +10 -0
  189. package/filters/query-failed.filter.js +42 -0
  190. package/health-checker/health-checker.controller.d.ts +13 -0
  191. package/health-checker/health-checker.controller.js +69 -0
  192. package/health-checker/health-checker.module.d.ts +2 -0
  193. package/health-checker/health-checker.module.js +24 -0
  194. package/health-checker/index.d.ts +2 -0
  195. package/health-checker/index.js +18 -0
  196. package/helpers/common.helper.d.ts +3 -0
  197. package/helpers/common.helper.js +36 -0
  198. package/helpers/date.helper.d.ts +10 -0
  199. package/helpers/date.helper.js +57 -0
  200. package/helpers/index.d.ts +2 -0
  201. package/helpers/index.js +18 -0
  202. package/i18n/en_US/validation.json +44 -0
  203. package/i18n/zh_CN/validation.json +44 -0
  204. package/index.d.ts +18 -0
  205. package/index.js +3 -0
  206. package/interceptors/index.d.ts +2 -0
  207. package/interceptors/index.js +18 -0
  208. package/interceptors/language-interceptor.service.d.ts +6 -0
  209. package/interceptors/language-interceptor.service.js +29 -0
  210. package/interceptors/translation-interceptor.service.d.ts +5 -0
  211. package/interceptors/translation-interceptor.service.js +34 -0
  212. package/interfaces/IApiFile.d.ts +4 -0
  213. package/interfaces/IApiFile.js +2 -0
  214. package/interfaces/IFile.d.ts +8 -0
  215. package/interfaces/IFile.js +2 -0
  216. package/interfaces/ITranslationDecoratorInterface.d.ts +3 -0
  217. package/interfaces/ITranslationDecoratorInterface.js +2 -0
  218. package/interfaces/index.d.ts +3 -0
  219. package/interfaces/index.js +19 -0
  220. package/interfaces/response.d.ts +25 -0
  221. package/interfaces/response.js +2 -0
  222. package/middlewares/index.d.ts +4 -0
  223. package/middlewares/index.js +20 -0
  224. package/middlewares/omni-auth.middleware.d.ts +1 -0
  225. package/middlewares/omni-auth.middleware.js +13 -0
  226. package/middlewares/powerby.middleware.d.ts +1 -0
  227. package/middlewares/powerby.middleware.js +10 -0
  228. package/middlewares/request-id.middleware.d.ts +7 -0
  229. package/middlewares/request-id.middleware.js +22 -0
  230. package/middlewares/xml.middleware.d.ts +4 -0
  231. package/middlewares/xml.middleware.js +24 -0
  232. package/package.json +41 -116
  233. package/providers/context.provider.d.ts +34 -0
  234. package/providers/context.provider.js +80 -0
  235. package/providers/generator.provider.d.ts +9 -0
  236. package/providers/generator.provider.js +50 -0
  237. package/providers/index.d.ts +2 -0
  238. package/providers/index.js +18 -0
  239. package/redis-lock/examples/lock-strategy.examples.d.ts +73 -0
  240. package/redis-lock/examples/lock-strategy.examples.js +387 -0
  241. package/redis-lock/index.d.ts +4 -0
  242. package/redis-lock/index.js +16 -0
  243. package/redis-lock/redis-lock.decorator.d.ts +12 -0
  244. package/redis-lock/redis-lock.decorator.js +125 -0
  245. package/redis-lock/redis-lock.module.d.ts +23 -0
  246. package/redis-lock/redis-lock.module.js +117 -0
  247. package/redis-lock/redis-lock.service.d.ts +66 -0
  248. package/redis-lock/redis-lock.service.js +413 -0
  249. package/setup/bootstrap.setup.d.ts +2 -0
  250. package/setup/bootstrap.setup.js +184 -0
  251. package/setup/index.d.ts +4 -0
  252. package/setup/index.js +20 -0
  253. package/setup/mode.setup.d.ts +12 -0
  254. package/setup/mode.setup.js +60 -0
  255. package/setup/schedule.decorator.d.ts +23 -0
  256. package/setup/schedule.decorator.js +233 -0
  257. package/setup/worker.decorator.d.ts +14 -0
  258. package/setup/worker.decorator.js +130 -0
  259. package/shared/index.d.ts +2 -0
  260. package/shared/index.js +18 -0
  261. package/shared/serviceRegistryModule.d.ts +2 -0
  262. package/shared/serviceRegistryModule.js +170 -0
  263. package/shared/services/api-config.service.d.ts +54 -0
  264. package/shared/services/api-config.service.js +287 -0
  265. package/shared/services/generator.service.d.ts +4 -0
  266. package/shared/services/generator.service.js +23 -0
  267. package/shared/services/index.d.ts +4 -0
  268. package/shared/services/index.js +20 -0
  269. package/shared/services/translation.service.d.ts +9 -0
  270. package/shared/services/translation.service.js +70 -0
  271. package/shared/services/validator.service.d.ts +3 -0
  272. package/shared/services/validator.service.js +20 -0
  273. package/validator-json/decorators.d.ts +6 -0
  274. package/validator-json/decorators.js +22 -0
  275. package/validator-json/default.d.ts +6 -0
  276. package/validator-json/default.js +138 -0
  277. package/validator-json/defaultConverters.d.ts +8 -0
  278. package/validator-json/defaultConverters.js +376 -0
  279. package/validator-json/index.d.ts +4 -0
  280. package/validator-json/index.js +20 -0
  281. package/validator-json/options.d.ts +11 -0
  282. package/validator-json/options.js +10 -0
  283. package/validators/file-mimetype.validator.d.ts +13 -0
  284. package/validators/file-mimetype.validator.js +21 -0
  285. package/validators/index.d.ts +6 -0
  286. package/validators/index.js +22 -0
  287. package/validators/is-exists.validator.d.ts +18 -0
  288. package/validators/is-exists.validator.js +60 -0
  289. package/validators/is-unique.validator.d.ts +17 -0
  290. package/validators/is-unique.validator.js +91 -0
  291. package/validators/phone-country-code.validator.d.ts +2 -0
  292. package/validators/phone-country-code.validator.js +29 -0
  293. package/validators/same-as.validator.d.ts +2 -0
  294. package/validators/same-as.validator.js +24 -0
  295. package/validators/skip-empty.validator.d.ts +1 -0
  296. package/validators/skip-empty.validator.js +17 -0
  297. package/vault/index.d.ts +4 -0
  298. package/vault/index.js +20 -0
  299. package/vault/interfaces/vault-options.interface.d.ts +22 -0
  300. package/vault/interfaces/vault-options.interface.js +2 -0
  301. package/vault/vault-config.loader.d.ts +13 -0
  302. package/vault/vault-config.loader.js +246 -0
  303. package/vault/vault-config.service.d.ts +18 -0
  304. package/vault/vault-config.service.js +174 -0
  305. package/vault/vault.module.d.ts +2 -0
  306. package/vault/vault.module.js +21 -0
@@ -0,0 +1,141 @@
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.DependencyManager = void 0;
13
+ class DependencyManager {
14
+ static wrapWithDependencies(value, dependencies) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const wrapped = {
17
+ value,
18
+ cachedAt: Date.now(),
19
+ };
20
+ if (dependencies && dependencies.length > 0) {
21
+ wrapped.dependencies = yield this.captureDependencies(dependencies);
22
+ }
23
+ return wrapped;
24
+ });
25
+ }
26
+ static captureDependencies(dependencies) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ const results = [];
29
+ for (const dep of dependencies) {
30
+ try {
31
+ const data = yield dep.getData();
32
+ results.push({
33
+ key: dep.getKey(),
34
+ data,
35
+ timestamp: Date.now(),
36
+ });
37
+ }
38
+ catch (error) {
39
+ results.push({
40
+ key: dep.getKey(),
41
+ data: {
42
+ error: error instanceof Error ? error.message : String(error),
43
+ },
44
+ timestamp: Date.now(),
45
+ });
46
+ }
47
+ }
48
+ return results;
49
+ });
50
+ }
51
+ static areDependenciesChanged(dependencies, cachedDependencies) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ if (!dependencies || dependencies.length === 0) {
54
+ return false;
55
+ }
56
+ if (!cachedDependencies || cachedDependencies.length === 0) {
57
+ return true;
58
+ }
59
+ if (dependencies.length !== cachedDependencies.length) {
60
+ return true;
61
+ }
62
+ for (let i = 0; i < dependencies.length; i++) {
63
+ const dep = dependencies[i];
64
+ const cached = cachedDependencies[i];
65
+ if (dep.getKey() !== cached.key) {
66
+ return true;
67
+ }
68
+ try {
69
+ const changed = yield dep.isChanged(cached.data);
70
+ if (changed) {
71
+ return true;
72
+ }
73
+ }
74
+ catch (_a) {
75
+ return true;
76
+ }
77
+ }
78
+ return false;
79
+ });
80
+ }
81
+ static unwrapAndValidate(wrapped, dependencies) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ if (!wrapped) {
84
+ return null;
85
+ }
86
+ if (!dependencies || dependencies.length === 0) {
87
+ return wrapped.value;
88
+ }
89
+ const changed = yield this.areDependenciesChanged(dependencies, wrapped.dependencies);
90
+ if (changed) {
91
+ return null;
92
+ }
93
+ return wrapped.value;
94
+ });
95
+ }
96
+ static getChangedDependencies(dependencies, cachedDependencies) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ if (!dependencies || dependencies.length === 0) {
99
+ return [];
100
+ }
101
+ if (!cachedDependencies || cachedDependencies.length === 0) {
102
+ return dependencies.map((dep) => dep.getKey());
103
+ }
104
+ const changed = [];
105
+ for (let i = 0; i < dependencies.length; i++) {
106
+ const dep = dependencies[i];
107
+ const cached = cachedDependencies[i];
108
+ if (!cached) {
109
+ changed.push(dep.getKey());
110
+ continue;
111
+ }
112
+ try {
113
+ if (dep.getKey() !== cached.key || (yield dep.isChanged(cached.data))) {
114
+ changed.push(dep.getKey());
115
+ }
116
+ }
117
+ catch (_a) {
118
+ changed.push(dep.getKey());
119
+ }
120
+ }
121
+ return changed;
122
+ });
123
+ }
124
+ static serializeDependencies(dependencies) {
125
+ try {
126
+ return JSON.stringify(dependencies);
127
+ }
128
+ catch (_a) {
129
+ return '[]';
130
+ }
131
+ }
132
+ static deserializeDependencies(serialized) {
133
+ try {
134
+ return JSON.parse(serialized);
135
+ }
136
+ catch (_a) {
137
+ return [];
138
+ }
139
+ }
140
+ }
141
+ exports.DependencyManager = DependencyManager;
@@ -0,0 +1,2 @@
1
+ export * from './dependency-manager.util';
2
+ export * from './key-generator.util';
@@ -0,0 +1,18 @@
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("./dependency-manager.util"), exports);
18
+ __exportStar(require("./key-generator.util"), exports);
@@ -0,0 +1,13 @@
1
+ import type { CacheKeyOptions } from '../interfaces';
2
+ export declare class KeyGenerator {
3
+ static generate(options: CacheKeyOptions, args: any[]): string;
4
+ static generateFromArgs(args: any[]): string;
5
+ static normalize(key: string, maxLength?: number): string;
6
+ static addNamespace(key: string, namespace?: string): string;
7
+ static hashCode(str: string): string;
8
+ static parsePattern(pattern: string): {
9
+ prefix: string;
10
+ suffix: string;
11
+ hasWildcard: boolean;
12
+ };
13
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyGenerator = void 0;
4
+ class KeyGenerator {
5
+ static generate(options, args) {
6
+ let key;
7
+ if (typeof options.key === 'function') {
8
+ key = options.key(...args);
9
+ }
10
+ else if (typeof options.key === 'string') {
11
+ key = options.key;
12
+ }
13
+ else if (options.includeAllArgs) {
14
+ key = this.generateFromArgs(args);
15
+ }
16
+ else {
17
+ key = args.length > 0 ? String(args[0]) : 'default';
18
+ }
19
+ if (options.prefix) {
20
+ key = `${options.prefix}${key}`;
21
+ }
22
+ return key;
23
+ }
24
+ static generateFromArgs(args) {
25
+ if (args.length === 0) {
26
+ return 'default';
27
+ }
28
+ try {
29
+ return JSON.stringify(args);
30
+ }
31
+ catch (_a) {
32
+ return args.map((arg) => String(arg)).join(':');
33
+ }
34
+ }
35
+ static normalize(key, maxLength = 250) {
36
+ let normalized = key.replace(/[\s\n\r\t]/g, '_');
37
+ if (normalized.length > maxLength) {
38
+ const hash = this.hashCode(normalized);
39
+ normalized = normalized.substring(0, maxLength - 10) + '_' + hash;
40
+ }
41
+ return normalized;
42
+ }
43
+ static addNamespace(key, namespace) {
44
+ if (!namespace) {
45
+ return key;
46
+ }
47
+ return `${namespace}:${key}`;
48
+ }
49
+ static hashCode(str) {
50
+ let hash = 0;
51
+ for (let i = 0; i < str.length; i++) {
52
+ const char = str.charCodeAt(i);
53
+ hash = (hash << 5) - hash + char;
54
+ hash = hash & hash;
55
+ }
56
+ return Math.abs(hash).toString(36);
57
+ }
58
+ static parsePattern(pattern) {
59
+ const wildcardIndex = pattern.indexOf('*');
60
+ if (wildcardIndex === -1) {
61
+ return {
62
+ prefix: pattern,
63
+ suffix: '',
64
+ hasWildcard: false,
65
+ };
66
+ }
67
+ return {
68
+ prefix: pattern.substring(0, wildcardIndex),
69
+ suffix: pattern.substring(wildcardIndex + 1),
70
+ hasWildcard: true,
71
+ };
72
+ }
73
+ }
74
+ exports.KeyGenerator = KeyGenerator;
@@ -0,0 +1,20 @@
1
+ import type { AbstractDto, AbstractTranslationDto } from './dto/abstract.dto';
2
+ import { LanguageCode } from '../constants';
3
+ export declare abstract class AbstractDtoEntity<DTO, O = never> {
4
+ translations?: AbstractTranslationEntity[];
5
+ toDto(options?: O): DTO;
6
+ }
7
+ export declare abstract class AbstractBaseEntity<DTO, O> extends AbstractDtoEntity<DTO, O> {
8
+ createdAt: Date;
9
+ updatedAt: Date;
10
+ }
11
+ export declare class AbstractEntity<DTO extends AbstractDto = AbstractDto, O = never> extends AbstractBaseEntity<DTO, O> {
12
+ id: number;
13
+ }
14
+ export declare class AbstractTranslationEntity<DTO extends AbstractTranslationDto = AbstractTranslationDto, O = never> extends AbstractEntity<DTO, O> {
15
+ languageCode: LanguageCode;
16
+ }
17
+ export declare class AbstractUuidPrimaryEntity<DTO extends AbstractDto = AbstractDto, O = never> extends AbstractBaseEntity<DTO, O> {
18
+ id: string;
19
+ generateId(): void;
20
+ }
@@ -0,0 +1,81 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AbstractUuidPrimaryEntity = exports.AbstractTranslationEntity = exports.AbstractEntity = exports.AbstractBaseEntity = exports.AbstractDtoEntity = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const decorators_1 = require("../decorators");
15
+ const constants_1 = require("../constants");
16
+ const uuid_1 = require("uuid");
17
+ class AbstractDtoEntity {
18
+ toDto(options) {
19
+ const dtoClass = Object.getPrototypeOf(this).dtoClass;
20
+ if (!dtoClass) {
21
+ throw new Error(`You need to use @UseDto on class (${this.constructor.name}) be able to call toDto function`);
22
+ }
23
+ return new dtoClass(this, options);
24
+ }
25
+ }
26
+ exports.AbstractDtoEntity = AbstractDtoEntity;
27
+ class AbstractBaseEntity extends AbstractDtoEntity {
28
+ }
29
+ exports.AbstractBaseEntity = AbstractBaseEntity;
30
+ __decorate([
31
+ (0, typeorm_1.CreateDateColumn)({
32
+ type: 'timestamp',
33
+ }),
34
+ __metadata("design:type", Date)
35
+ ], AbstractBaseEntity.prototype, "createdAt", void 0);
36
+ __decorate([
37
+ (0, typeorm_1.UpdateDateColumn)({
38
+ type: 'timestamp',
39
+ }),
40
+ __metadata("design:type", Date)
41
+ ], AbstractBaseEntity.prototype, "updatedAt", void 0);
42
+ class AbstractEntity extends AbstractBaseEntity {
43
+ }
44
+ exports.AbstractEntity = AbstractEntity;
45
+ __decorate([
46
+ (0, typeorm_1.PrimaryGeneratedColumn)('increment'),
47
+ (0, decorators_1.NumberFieldOptional)({ swagger: false }),
48
+ __metadata("design:type", Number)
49
+ ], AbstractEntity.prototype, "id", void 0);
50
+ class AbstractTranslationEntity extends AbstractEntity {
51
+ }
52
+ exports.AbstractTranslationEntity = AbstractTranslationEntity;
53
+ __decorate([
54
+ (0, typeorm_1.Column)({ type: 'enum', enum: constants_1.LanguageCode }),
55
+ __metadata("design:type", String)
56
+ ], AbstractTranslationEntity.prototype, "languageCode", void 0);
57
+ class AbstractUuidPrimaryEntity extends AbstractBaseEntity {
58
+ generateId() {
59
+ var _a;
60
+ if (!this.id || ((_a = this.id) === null || _a === void 0 ? void 0 : _a.length) < 2) {
61
+ this.id = (0, uuid_1.v4)();
62
+ }
63
+ }
64
+ }
65
+ exports.AbstractUuidPrimaryEntity = AbstractUuidPrimaryEntity;
66
+ __decorate([
67
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
68
+ (0, decorators_1.StringFieldOptional)({
69
+ maxLength: 36,
70
+ minLength: 2,
71
+ example: '23247899-c237-4ab1-9639-3322029d2e1c',
72
+ swagger: false,
73
+ }),
74
+ __metadata("design:type", String)
75
+ ], AbstractUuidPrimaryEntity.prototype, "id", void 0);
76
+ __decorate([
77
+ (0, typeorm_1.BeforeInsert)(),
78
+ __metadata("design:type", Function),
79
+ __metadata("design:paramtypes", []),
80
+ __metadata("design:returntype", void 0)
81
+ ], AbstractUuidPrimaryEntity.prototype, "generateId", null);
@@ -0,0 +1,50 @@
1
+ import 'source-map-support/register';
2
+ import type { ObjectLiteral } from 'typeorm';
3
+ import type { AbstractEntity } from './abstract.entity';
4
+ import type { AbstractDto } from './dto/abstract.dto';
5
+ import type { CreateTranslationDto } from './dto/create-translation.dto';
6
+ import { PageDto } from './dto/page.dto';
7
+ import { PageMetaDto } from './dto/page-meta.dto';
8
+ import type { PageOptionsDto } from './dto/page-options.dto';
9
+ import type { LanguageCode } from '../constants/language-code';
10
+ import type { KeyOfType } from './types';
11
+ declare global {
12
+ interface Array<T> {
13
+ toDtos<Dto extends AbstractDto>(this: T[], options?: unknown): Dto[];
14
+ getByLanguage(this: CreateTranslationDto[], languageCode: LanguageCode): string;
15
+ toPageDto<Dto extends AbstractDto>(this: T[], pageMetaDto: PageMetaDto, options?: unknown): PageDto<Dto>;
16
+ }
17
+ }
18
+ declare module 'typeorm' {
19
+ interface SelectQueryBuilder<Entity> {
20
+ searchByString(q: string, columnNames: string[], options?: {
21
+ formStart: boolean;
22
+ }): this;
23
+ withTenant(tenantId?: string | number, tenantFieldName?: string): this;
24
+ paginate(this: SelectQueryBuilder<Entity>, pageOptionsDto: PageOptionsDto, options?: Partial<{
25
+ takeAll: boolean;
26
+ skipCount: boolean;
27
+ }>): Promise<[Entity[], PageMetaDto]>;
28
+ paginateAndMap<Dto extends AbstractDto, DtoOptions = unknown>(this: SelectQueryBuilder<Entity>, pageOptionsDto: PageOptionsDto, options?: Partial<{
29
+ dtoOptions: DtoOptions;
30
+ skipCount: boolean;
31
+ takeAll: boolean;
32
+ transform: (items: Entity[]) => Entity[] | Promise<Entity[]>;
33
+ }>): Promise<PageDto<Dto>>;
34
+ leftJoinAndSelect<AliasEntity extends AbstractEntity, A extends string>(this: SelectQueryBuilder<Entity>, property: `${A}.${Exclude<KeyOfType<AliasEntity, AbstractEntity>, symbol>}`, alias: string, condition?: string, parameters?: ObjectLiteral): this;
35
+ leftJoin<AliasEntity extends AbstractEntity, A extends string>(this: SelectQueryBuilder<Entity>, property: `${A}.${Exclude<KeyOfType<AliasEntity, AbstractEntity>, symbol>}`, alias: string, condition?: string, parameters?: ObjectLiteral): this;
36
+ innerJoinAndSelect<AliasEntity extends AbstractEntity, A extends string>(this: SelectQueryBuilder<Entity>, property: `${A}.${Exclude<KeyOfType<AliasEntity, AbstractEntity>, symbol>}`, alias: string, condition?: string, parameters?: ObjectLiteral): this;
37
+ innerJoin<AliasEntity extends AbstractEntity, A extends string>(this: SelectQueryBuilder<Entity>, property: `${A}.${Exclude<KeyOfType<AliasEntity, AbstractEntity>, symbol>}`, alias: string, condition?: string, parameters?: ObjectLiteral): this;
38
+ iterate(this: SelectQueryBuilder<Entity>, options?: {
39
+ batchSize?: number;
40
+ }): AsyncIterableIterator<Entity[]>;
41
+ eachBatch(this: SelectQueryBuilder<Entity>, callback: (item: Entity) => Promise<void> | void, options?: {
42
+ batchSize?: number;
43
+ mode?: 'single';
44
+ }): Promise<void>;
45
+ eachBatch(this: SelectQueryBuilder<Entity>, callback: (items: Entity[]) => Promise<void> | void, options?: {
46
+ batchSize?: number;
47
+ mode?: 'batch';
48
+ }): Promise<void>;
49
+ }
50
+ }
@@ -0,0 +1,152 @@
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 __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
12
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
13
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
14
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
15
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
16
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
17
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
18
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
19
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
20
+ function fulfill(value) { resume("next", value); }
21
+ function reject(value) { resume("throw", value); }
22
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ require("source-map-support/register");
26
+ const lodash_1 = require("lodash");
27
+ const typeorm_1 = require("typeorm");
28
+ const page_dto_1 = require("./dto/page.dto");
29
+ const page_meta_dto_1 = require("./dto/page-meta.dto");
30
+ const providers_1 = require("../providers");
31
+ Array.prototype.toDtos = function (options) {
32
+ return (0, lodash_1.compact)((0, lodash_1.map)(this, (item) => {
33
+ if (item && typeof item.toDto === 'function') {
34
+ return item.toDto(options);
35
+ }
36
+ return undefined;
37
+ }));
38
+ };
39
+ Array.prototype.getByLanguage = function (languageCode) {
40
+ return this.find((translation) => languageCode === translation.languageCode)
41
+ .text;
42
+ };
43
+ Array.prototype.toPageDto = function (pageMetaDto, options) {
44
+ return new page_dto_1.PageDto(this.toDtos(options), pageMetaDto);
45
+ };
46
+ typeorm_1.SelectQueryBuilder.prototype.searchByString = function (q, columnNames, options) {
47
+ if (!q) {
48
+ return this;
49
+ }
50
+ this.andWhere(new typeorm_1.Brackets((qb) => {
51
+ for (const item of columnNames) {
52
+ qb.orWhere(`${item} ILIKE :q`);
53
+ }
54
+ }));
55
+ if (options === null || options === void 0 ? void 0 : options.formStart) {
56
+ this.setParameter('q', `${q}%`);
57
+ }
58
+ else {
59
+ this.setParameter('q', `%${q}%`);
60
+ }
61
+ return this;
62
+ };
63
+ typeorm_1.SelectQueryBuilder.prototype.paginate = function (pageOptionsDto, options) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ if (!(options === null || options === void 0 ? void 0 : options.takeAll)) {
66
+ this.skip(pageOptionsDto.skip).take(pageOptionsDto.pageSize);
67
+ }
68
+ const entities = yield this.getMany();
69
+ let itemCount = -1;
70
+ if (!(options === null || options === void 0 ? void 0 : options.skipCount)) {
71
+ itemCount = yield this.getCount();
72
+ }
73
+ const pageMetaDto = new page_meta_dto_1.PageMetaDto({
74
+ itemCount,
75
+ pageOptionsDto,
76
+ });
77
+ return [entities, pageMetaDto];
78
+ });
79
+ };
80
+ typeorm_1.SelectQueryBuilder.prototype.paginateAndMap = function (pageOptionsDto, options) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ const [entities, pageMetaDto] = yield this.paginate(pageOptionsDto, {
83
+ skipCount: options === null || options === void 0 ? void 0 : options.skipCount,
84
+ takeAll: options === null || options === void 0 ? void 0 : options.takeAll,
85
+ });
86
+ let transformedEntities = entities;
87
+ if (options === null || options === void 0 ? void 0 : options.transform) {
88
+ transformedEntities = yield options.transform(entities);
89
+ }
90
+ return transformedEntities.toPageDto(pageMetaDto, options === null || options === void 0 ? void 0 : options.dtoOptions);
91
+ });
92
+ };
93
+ typeorm_1.SelectQueryBuilder.prototype.withTenant = function (tenantId, tenantFieldName = 'tenantId') {
94
+ var _a;
95
+ if (!tenantId) {
96
+ tenantId = providers_1.ContextProvider.getTenantId();
97
+ }
98
+ if (this.expressionMap.mainAlias.hasMetadata) {
99
+ const entityMetadata = this.expressionMap.mainAlias.metadata;
100
+ const columnName = (_a = entityMetadata.columns.find((column) => column.propertyName === tenantFieldName)) === null || _a === void 0 ? void 0 : _a.databaseName;
101
+ if (columnName) {
102
+ return this.andWhere(`${this.alias}.${columnName} = :tenantId`, {
103
+ tenantId,
104
+ });
105
+ }
106
+ }
107
+ return this;
108
+ };
109
+ typeorm_1.SelectQueryBuilder.prototype.iterate = function (options) {
110
+ return __asyncGenerator(this, arguments, function* () {
111
+ const batchSize = (options === null || options === void 0 ? void 0 : options.batchSize) || 100;
112
+ let offset = 0;
113
+ let hasMore = true;
114
+ while (hasMore) {
115
+ const batch = yield __await(this.clone().skip(offset).take(batchSize).getMany());
116
+ if (batch.length > 0) {
117
+ yield yield __await(batch);
118
+ offset += batchSize;
119
+ hasMore = batch.length === batchSize;
120
+ }
121
+ else {
122
+ hasMore = false;
123
+ }
124
+ }
125
+ });
126
+ };
127
+ typeorm_1.SelectQueryBuilder.prototype.eachBatch = function (callback, options) {
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ const batchSize = (options === null || options === void 0 ? void 0 : options.batchSize) || 100;
130
+ const mode = (options === null || options === void 0 ? void 0 : options.mode) || 'batch';
131
+ let offset = 0;
132
+ let hasMore = true;
133
+ while (hasMore) {
134
+ const batch = yield this.clone().skip(offset).take(batchSize).getMany();
135
+ if (batch.length > 0) {
136
+ if (mode === 'single') {
137
+ for (const item of batch) {
138
+ yield callback(item);
139
+ }
140
+ }
141
+ else {
142
+ yield callback(batch);
143
+ }
144
+ offset += batchSize;
145
+ hasMore = batch.length === batchSize;
146
+ }
147
+ else {
148
+ hasMore = false;
149
+ }
150
+ }
151
+ });
152
+ };
@@ -0,0 +1,13 @@
1
+ import { AbstractEntity, AbstractUuidPrimaryEntity } from '../abstract.entity';
2
+ export declare class AbstractDto {
3
+ id: number | string;
4
+ createdAt: Date;
5
+ updatedAt: Date;
6
+ translations?: AbstractTranslationDto[];
7
+ constructor(entity: AbstractEntity | AbstractUuidPrimaryEntity, options?: {
8
+ excludeFields?: boolean;
9
+ });
10
+ }
11
+ export declare class AbstractTranslationDto extends AbstractDto {
12
+ constructor(entity: AbstractEntity | AbstractUuidPrimaryEntity);
13
+ }
@@ -0,0 +1,59 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AbstractTranslationDto = exports.AbstractDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const decorators_1 = require("../../decorators");
15
+ const providers_1 = require("../../providers");
16
+ class AbstractDto {
17
+ constructor(entity, options) {
18
+ var _a;
19
+ if (!(options === null || options === void 0 ? void 0 : options.excludeFields)) {
20
+ this.id = entity.id;
21
+ this.createdAt = entity.createdAt;
22
+ this.updatedAt = entity.updatedAt;
23
+ }
24
+ const languageCode = providers_1.ContextProvider.getLanguage();
25
+ if (languageCode && entity.translations) {
26
+ const translationEntity = entity.translations.find((titleTranslation) => titleTranslation.languageCode === languageCode);
27
+ const fields = {};
28
+ for (const key of Object.keys(translationEntity)) {
29
+ const metadata = Reflect.getMetadata(decorators_1.DYNAMIC_TRANSLATION_DECORATOR_KEY, this, key);
30
+ if (metadata) {
31
+ fields[key] = translationEntity[key];
32
+ }
33
+ }
34
+ Object.assign(this, fields);
35
+ }
36
+ else {
37
+ this.translations = (_a = entity.translations) === null || _a === void 0 ? void 0 : _a.toDtos();
38
+ }
39
+ }
40
+ }
41
+ exports.AbstractDto = AbstractDto;
42
+ __decorate([
43
+ (0, swagger_1.ApiProperty)(),
44
+ __metadata("design:type", Object)
45
+ ], AbstractDto.prototype, "id", void 0);
46
+ __decorate([
47
+ (0, swagger_1.ApiProperty)(),
48
+ __metadata("design:type", Date)
49
+ ], AbstractDto.prototype, "createdAt", void 0);
50
+ __decorate([
51
+ (0, swagger_1.ApiProperty)(),
52
+ __metadata("design:type", Date)
53
+ ], AbstractDto.prototype, "updatedAt", void 0);
54
+ class AbstractTranslationDto extends AbstractDto {
55
+ constructor(entity) {
56
+ super(entity, { excludeFields: true });
57
+ }
58
+ }
59
+ exports.AbstractTranslationDto = AbstractTranslationDto;
@@ -0,0 +1,3 @@
1
+ export declare class BulkIdDto {
2
+ id: number[] | string[];
3
+ }
@@ -0,0 +1,27 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BulkIdDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ class BulkIdDto {
16
+ }
17
+ exports.BulkIdDto = BulkIdDto;
18
+ __decorate([
19
+ (0, swagger_1.ApiProperty)({
20
+ type: 'string',
21
+ description: 'ID',
22
+ isArray: true,
23
+ required: true,
24
+ }),
25
+ (0, class_validator_1.IsArray)(),
26
+ __metadata("design:type", Array)
27
+ ], BulkIdDto.prototype, "id", void 0);
@@ -0,0 +1,5 @@
1
+ import { LanguageCode } from '../../constants';
2
+ export declare class CreateTranslationDto {
3
+ languageCode: LanguageCode;
4
+ text: string;
5
+ }