@elsikora/nestjs-crud-config 1.0.0

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 (231) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +633 -0
  3. package/dist/cjs/external/tslib/tslib.es6.js +43 -0
  4. package/dist/cjs/external/tslib/tslib.es6.js.map +1 -0
  5. package/dist/cjs/index.d.ts +13 -0
  6. package/dist/cjs/index.js +52 -0
  7. package/dist/cjs/index.js.map +1 -0
  8. package/dist/cjs/modules/config/config.module.d.ts +13 -0
  9. package/dist/cjs/modules/config/config.module.js +230 -0
  10. package/dist/cjs/modules/config/config.module.js.map +1 -0
  11. package/dist/cjs/modules/config/config.service.d.ts +50 -0
  12. package/dist/cjs/modules/config/config.service.js +355 -0
  13. package/dist/cjs/modules/config/config.service.js.map +1 -0
  14. package/dist/cjs/modules/config/data/controller.d.ts +10 -0
  15. package/dist/cjs/modules/config/data/controller.js +76 -0
  16. package/dist/cjs/modules/config/data/controller.js.map +1 -0
  17. package/dist/cjs/modules/config/data/entity/entity.d.ts +20 -0
  18. package/dist/cjs/modules/config/data/entity/entity.js +158 -0
  19. package/dist/cjs/modules/config/data/entity/entity.js.map +1 -0
  20. package/dist/cjs/modules/config/data/entity/index.d.ts +1 -0
  21. package/dist/cjs/modules/config/data/event/before-insert.event.d.ts +20 -0
  22. package/dist/cjs/modules/config/data/event/before-insert.event.js +23 -0
  23. package/dist/cjs/modules/config/data/event/before-insert.event.js.map +1 -0
  24. package/dist/cjs/modules/config/data/event/index.d.ts +1 -0
  25. package/dist/cjs/modules/config/data/index.d.ts +6 -0
  26. package/dist/cjs/modules/config/data/interface/index.d.ts +1 -0
  27. package/dist/cjs/modules/config/data/interface/interface.d.ts +12 -0
  28. package/dist/cjs/modules/config/data/listener/before-insert.listener.d.ts +19 -0
  29. package/dist/cjs/modules/config/data/listener/before-insert.listener.js +59 -0
  30. package/dist/cjs/modules/config/data/listener/before-insert.listener.js.map +1 -0
  31. package/dist/cjs/modules/config/data/listener/index.d.ts +1 -0
  32. package/dist/cjs/modules/config/data/subscriber/before-insert.subscriber.d.ts +26 -0
  33. package/dist/cjs/modules/config/data/subscriber/before-insert.subscriber.js +74 -0
  34. package/dist/cjs/modules/config/data/subscriber/before-insert.subscriber.js.map +1 -0
  35. package/dist/cjs/modules/config/data/subscriber/index.d.ts +1 -0
  36. package/dist/cjs/modules/config/index.d.ts +9 -0
  37. package/dist/cjs/modules/config/interface/delete-options.interface.d.ts +22 -0
  38. package/dist/cjs/modules/config/interface/get-list-options.interface.d.ts +22 -0
  39. package/dist/cjs/modules/config/interface/get-options.interface.d.ts +30 -0
  40. package/dist/cjs/modules/config/interface/index.d.ts +4 -0
  41. package/dist/cjs/modules/config/interface/set-options.interface.d.ts +34 -0
  42. package/dist/cjs/modules/config/section/controller.d.ts +10 -0
  43. package/dist/cjs/modules/config/section/controller.js +46 -0
  44. package/dist/cjs/modules/config/section/controller.js.map +1 -0
  45. package/dist/cjs/modules/config/section/entity/entity.d.ts +14 -0
  46. package/dist/cjs/modules/config/section/entity/entity.js +96 -0
  47. package/dist/cjs/modules/config/section/entity/entity.js.map +1 -0
  48. package/dist/cjs/modules/config/section/entity/index.d.ts +1 -0
  49. package/dist/cjs/modules/config/section/index.d.ts +2 -0
  50. package/dist/cjs/modules/config/section/interface/index.d.ts +1 -0
  51. package/dist/cjs/modules/config/section/interface/interface.d.ts +7 -0
  52. package/dist/cjs/modules/config/type/index.d.ts +2 -0
  53. package/dist/cjs/modules/config/type/item.type.d.ts +1 -0
  54. package/dist/cjs/modules/config/type/type.d.ts +2 -0
  55. package/dist/cjs/package.json +8 -0
  56. package/dist/cjs/shared/constant/api-property.constant.d.ts +4 -0
  57. package/dist/cjs/shared/constant/api-property.constant.js +11 -0
  58. package/dist/cjs/shared/constant/api-property.constant.js.map +1 -0
  59. package/dist/cjs/shared/constant/config/data.constant.d.ts +7 -0
  60. package/dist/cjs/shared/constant/config/data.constant.js +17 -0
  61. package/dist/cjs/shared/constant/config/data.constant.js.map +1 -0
  62. package/dist/cjs/shared/constant/config/index.d.ts +2 -0
  63. package/dist/cjs/shared/constant/config/section.constant.d.ts +5 -0
  64. package/dist/cjs/shared/constant/config/section.constant.js +13 -0
  65. package/dist/cjs/shared/constant/config/section.constant.js.map +1 -0
  66. package/dist/cjs/shared/constant/crypto.constant.d.ts +7 -0
  67. package/dist/cjs/shared/constant/crypto.constant.js +17 -0
  68. package/dist/cjs/shared/constant/crypto.constant.js.map +1 -0
  69. package/dist/cjs/shared/constant/index.d.ts +4 -0
  70. package/dist/cjs/shared/constant/token.constant.d.ts +8 -0
  71. package/dist/cjs/shared/constant/token.constant.js +20 -0
  72. package/dist/cjs/shared/constant/token.constant.js.map +1 -0
  73. package/dist/cjs/shared/enum/environment.enum.d.ts +16 -0
  74. package/dist/cjs/shared/enum/environment.enum.js +20 -0
  75. package/dist/cjs/shared/enum/environment.enum.js.map +1 -0
  76. package/dist/cjs/shared/enum/index.d.ts +6 -0
  77. package/dist/cjs/shared/enum/instance-name.enum.d.ts +7 -0
  78. package/dist/cjs/shared/enum/instance-name.enum.js +11 -0
  79. package/dist/cjs/shared/enum/instance-name.enum.js.map +1 -0
  80. package/dist/cjs/shared/enum/service.enum.d.ts +220 -0
  81. package/dist/cjs/shared/enum/service.enum.js +224 -0
  82. package/dist/cjs/shared/enum/service.enum.js.map +1 -0
  83. package/dist/cjs/shared/index.d.ts +5 -0
  84. package/dist/cjs/shared/interface/config/async-module-properties.interface.d.ts +16 -0
  85. package/dist/cjs/shared/interface/config/cache-options.interface.d.ts +17 -0
  86. package/dist/cjs/shared/interface/config/config-data-entity-options.interface.d.ts +25 -0
  87. package/dist/cjs/shared/interface/config/controller-options.interface.d.ts +28 -0
  88. package/dist/cjs/shared/interface/config/encryption-options.interface.d.ts +13 -0
  89. package/dist/cjs/shared/interface/config/entity/data-options.interface.d.ts +25 -0
  90. package/dist/cjs/shared/interface/config/entity/index.d.ts +3 -0
  91. package/dist/cjs/shared/interface/config/entity/options.interface.d.ts +18 -0
  92. package/dist/cjs/shared/interface/config/entity/section-options.interface.d.ts +17 -0
  93. package/dist/cjs/shared/interface/config/index.d.ts +7 -0
  94. package/dist/cjs/shared/interface/config/options.interface.d.ts +37 -0
  95. package/dist/cjs/shared/interface/config/properties-factory.interface.d.ts +11 -0
  96. package/dist/cjs/shared/interface/index.d.ts +2 -0
  97. package/dist/cjs/shared/interface/utility/create-dynamic-entity/index.d.ts +2 -0
  98. package/dist/cjs/shared/interface/utility/create-dynamic-entity/options.interface.d.ts +15 -0
  99. package/dist/cjs/shared/interface/utility/create-dynamic-entity/relation-options.interface.d.ts +9 -0
  100. package/dist/cjs/shared/interface/utility/index.d.ts +1 -0
  101. package/dist/cjs/shared/type/dynamic-entity.type.d.ts +1 -0
  102. package/dist/cjs/shared/type/index.d.ts +1 -0
  103. package/dist/cjs/shared/utility/create-dynamic/entity.utility.d.ts +9 -0
  104. package/dist/cjs/shared/utility/create-dynamic/entity.utility.js +67 -0
  105. package/dist/cjs/shared/utility/create-dynamic/entity.utility.js.map +1 -0
  106. package/dist/cjs/shared/utility/create-dynamic/index.d.ts +2 -0
  107. package/dist/cjs/shared/utility/create-dynamic/service.utility.d.ts +9 -0
  108. package/dist/cjs/shared/utility/create-dynamic/service.utility.js +34 -0
  109. package/dist/cjs/shared/utility/create-dynamic/service.utility.js.map +1 -0
  110. package/dist/cjs/shared/utility/create-dynamic-entity.utility.d.ts +9 -0
  111. package/dist/cjs/shared/utility/create-dynamic-entity.utility.js +67 -0
  112. package/dist/cjs/shared/utility/create-dynamic-entity.utility.js.map +1 -0
  113. package/dist/cjs/shared/utility/crypto.utility.d.ts +27 -0
  114. package/dist/cjs/shared/utility/crypto.utility.js +72 -0
  115. package/dist/cjs/shared/utility/crypto.utility.js.map +1 -0
  116. package/dist/cjs/shared/utility/index.d.ts +3 -0
  117. package/dist/esm/external/tslib/tslib.es6.js +39 -0
  118. package/dist/esm/external/tslib/tslib.es6.js.map +1 -0
  119. package/dist/esm/index.d.ts +13 -0
  120. package/dist/esm/index.js +15 -0
  121. package/dist/esm/index.js.map +1 -0
  122. package/dist/esm/modules/config/config.module.d.ts +13 -0
  123. package/dist/esm/modules/config/config.module.js +230 -0
  124. package/dist/esm/modules/config/config.module.js.map +1 -0
  125. package/dist/esm/modules/config/config.service.d.ts +50 -0
  126. package/dist/esm/modules/config/config.service.js +355 -0
  127. package/dist/esm/modules/config/config.service.js.map +1 -0
  128. package/dist/esm/modules/config/data/controller.d.ts +10 -0
  129. package/dist/esm/modules/config/data/controller.js +74 -0
  130. package/dist/esm/modules/config/data/controller.js.map +1 -0
  131. package/dist/esm/modules/config/data/entity/entity.d.ts +20 -0
  132. package/dist/esm/modules/config/data/entity/entity.js +156 -0
  133. package/dist/esm/modules/config/data/entity/entity.js.map +1 -0
  134. package/dist/esm/modules/config/data/entity/index.d.ts +1 -0
  135. package/dist/esm/modules/config/data/event/before-insert.event.d.ts +20 -0
  136. package/dist/esm/modules/config/data/event/before-insert.event.js +21 -0
  137. package/dist/esm/modules/config/data/event/before-insert.event.js.map +1 -0
  138. package/dist/esm/modules/config/data/event/index.d.ts +1 -0
  139. package/dist/esm/modules/config/data/index.d.ts +6 -0
  140. package/dist/esm/modules/config/data/interface/index.d.ts +1 -0
  141. package/dist/esm/modules/config/data/interface/interface.d.ts +12 -0
  142. package/dist/esm/modules/config/data/listener/before-insert.listener.d.ts +19 -0
  143. package/dist/esm/modules/config/data/listener/before-insert.listener.js +59 -0
  144. package/dist/esm/modules/config/data/listener/before-insert.listener.js.map +1 -0
  145. package/dist/esm/modules/config/data/listener/index.d.ts +1 -0
  146. package/dist/esm/modules/config/data/subscriber/before-insert.subscriber.d.ts +26 -0
  147. package/dist/esm/modules/config/data/subscriber/before-insert.subscriber.js +74 -0
  148. package/dist/esm/modules/config/data/subscriber/before-insert.subscriber.js.map +1 -0
  149. package/dist/esm/modules/config/data/subscriber/index.d.ts +1 -0
  150. package/dist/esm/modules/config/index.d.ts +9 -0
  151. package/dist/esm/modules/config/interface/delete-options.interface.d.ts +22 -0
  152. package/dist/esm/modules/config/interface/get-list-options.interface.d.ts +22 -0
  153. package/dist/esm/modules/config/interface/get-options.interface.d.ts +30 -0
  154. package/dist/esm/modules/config/interface/index.d.ts +4 -0
  155. package/dist/esm/modules/config/interface/set-options.interface.d.ts +34 -0
  156. package/dist/esm/modules/config/section/controller.d.ts +10 -0
  157. package/dist/esm/modules/config/section/controller.js +44 -0
  158. package/dist/esm/modules/config/section/controller.js.map +1 -0
  159. package/dist/esm/modules/config/section/entity/entity.d.ts +14 -0
  160. package/dist/esm/modules/config/section/entity/entity.js +94 -0
  161. package/dist/esm/modules/config/section/entity/entity.js.map +1 -0
  162. package/dist/esm/modules/config/section/entity/index.d.ts +1 -0
  163. package/dist/esm/modules/config/section/index.d.ts +2 -0
  164. package/dist/esm/modules/config/section/interface/index.d.ts +1 -0
  165. package/dist/esm/modules/config/section/interface/interface.d.ts +7 -0
  166. package/dist/esm/modules/config/type/index.d.ts +2 -0
  167. package/dist/esm/modules/config/type/item.type.d.ts +1 -0
  168. package/dist/esm/modules/config/type/type.d.ts +2 -0
  169. package/dist/esm/package.json +8 -0
  170. package/dist/esm/shared/constant/api-property.constant.d.ts +4 -0
  171. package/dist/esm/shared/constant/api-property.constant.js +9 -0
  172. package/dist/esm/shared/constant/api-property.constant.js.map +1 -0
  173. package/dist/esm/shared/constant/config/data.constant.d.ts +7 -0
  174. package/dist/esm/shared/constant/config/data.constant.js +15 -0
  175. package/dist/esm/shared/constant/config/data.constant.js.map +1 -0
  176. package/dist/esm/shared/constant/config/index.d.ts +2 -0
  177. package/dist/esm/shared/constant/config/section.constant.d.ts +5 -0
  178. package/dist/esm/shared/constant/config/section.constant.js +11 -0
  179. package/dist/esm/shared/constant/config/section.constant.js.map +1 -0
  180. package/dist/esm/shared/constant/crypto.constant.d.ts +7 -0
  181. package/dist/esm/shared/constant/crypto.constant.js +15 -0
  182. package/dist/esm/shared/constant/crypto.constant.js.map +1 -0
  183. package/dist/esm/shared/constant/index.d.ts +4 -0
  184. package/dist/esm/shared/constant/token.constant.d.ts +8 -0
  185. package/dist/esm/shared/constant/token.constant.js +18 -0
  186. package/dist/esm/shared/constant/token.constant.js.map +1 -0
  187. package/dist/esm/shared/enum/environment.enum.d.ts +16 -0
  188. package/dist/esm/shared/enum/environment.enum.js +20 -0
  189. package/dist/esm/shared/enum/environment.enum.js.map +1 -0
  190. package/dist/esm/shared/enum/index.d.ts +6 -0
  191. package/dist/esm/shared/enum/instance-name.enum.d.ts +7 -0
  192. package/dist/esm/shared/enum/instance-name.enum.js +11 -0
  193. package/dist/esm/shared/enum/instance-name.enum.js.map +1 -0
  194. package/dist/esm/shared/enum/service.enum.d.ts +220 -0
  195. package/dist/esm/shared/enum/service.enum.js +224 -0
  196. package/dist/esm/shared/enum/service.enum.js.map +1 -0
  197. package/dist/esm/shared/index.d.ts +5 -0
  198. package/dist/esm/shared/interface/config/async-module-properties.interface.d.ts +16 -0
  199. package/dist/esm/shared/interface/config/cache-options.interface.d.ts +17 -0
  200. package/dist/esm/shared/interface/config/config-data-entity-options.interface.d.ts +25 -0
  201. package/dist/esm/shared/interface/config/controller-options.interface.d.ts +28 -0
  202. package/dist/esm/shared/interface/config/encryption-options.interface.d.ts +13 -0
  203. package/dist/esm/shared/interface/config/entity/data-options.interface.d.ts +25 -0
  204. package/dist/esm/shared/interface/config/entity/index.d.ts +3 -0
  205. package/dist/esm/shared/interface/config/entity/options.interface.d.ts +18 -0
  206. package/dist/esm/shared/interface/config/entity/section-options.interface.d.ts +17 -0
  207. package/dist/esm/shared/interface/config/index.d.ts +7 -0
  208. package/dist/esm/shared/interface/config/options.interface.d.ts +37 -0
  209. package/dist/esm/shared/interface/config/properties-factory.interface.d.ts +11 -0
  210. package/dist/esm/shared/interface/index.d.ts +2 -0
  211. package/dist/esm/shared/interface/utility/create-dynamic-entity/index.d.ts +2 -0
  212. package/dist/esm/shared/interface/utility/create-dynamic-entity/options.interface.d.ts +15 -0
  213. package/dist/esm/shared/interface/utility/create-dynamic-entity/relation-options.interface.d.ts +9 -0
  214. package/dist/esm/shared/interface/utility/index.d.ts +1 -0
  215. package/dist/esm/shared/type/dynamic-entity.type.d.ts +1 -0
  216. package/dist/esm/shared/type/index.d.ts +1 -0
  217. package/dist/esm/shared/utility/create-dynamic/entity.utility.d.ts +9 -0
  218. package/dist/esm/shared/utility/create-dynamic/entity.utility.js +65 -0
  219. package/dist/esm/shared/utility/create-dynamic/entity.utility.js.map +1 -0
  220. package/dist/esm/shared/utility/create-dynamic/index.d.ts +2 -0
  221. package/dist/esm/shared/utility/create-dynamic/service.utility.d.ts +9 -0
  222. package/dist/esm/shared/utility/create-dynamic/service.utility.js +32 -0
  223. package/dist/esm/shared/utility/create-dynamic/service.utility.js.map +1 -0
  224. package/dist/esm/shared/utility/create-dynamic-entity.utility.d.ts +9 -0
  225. package/dist/esm/shared/utility/create-dynamic-entity.utility.js +65 -0
  226. package/dist/esm/shared/utility/create-dynamic-entity.utility.js.map +1 -0
  227. package/dist/esm/shared/utility/crypto.utility.d.ts +27 -0
  228. package/dist/esm/shared/utility/crypto.utility.js +72 -0
  229. package/dist/esm/shared/utility/crypto.utility.js.map +1 -0
  230. package/dist/esm/shared/utility/index.d.ts +3 -0
  231. package/package.json +115 -0
@@ -0,0 +1,50 @@
1
+ import type { IConfigData } from './data/index';
2
+ import type { IConfigSection } from './section/index';
3
+ import type { IConfigOptions } from '../../shared/interface/config/index';
4
+ import { ApiServiceBase } from "@elsikora/nestjs-crud-automator";
5
+ import { Cache } from "@nestjs/cache-manager";
6
+ import { CryptoUtility } from '../../shared/utility/index';
7
+ import { DataSource } from "typeorm";
8
+ import { IConfigDeleteOptions, IConfigGetListOptions, IConfigGetOptions, IConfigSetOptions } from './interface/index';
9
+ /**
10
+ * Service for managing configuration data with caching support
11
+ * Provides methods to retrieve configuration values with optional decryption
12
+ */
13
+ export declare class CrudConfigService {
14
+ private readonly sectionService;
15
+ private readonly dataService;
16
+ private readonly cacheManager;
17
+ private readonly options?;
18
+ private readonly dataSource?;
19
+ private readonly cryptoUtility?;
20
+ private readonly LOGGER;
21
+ constructor(sectionService: ApiServiceBase<IConfigSection>, dataService: ApiServiceBase<IConfigData>, cacheManager: Cache, options?: IConfigOptions | undefined, dataSource?: DataSource | undefined, cryptoUtility?: CryptoUtility | undefined);
22
+ /**
23
+ * Deletes a configuration value
24
+ * @param {IConfigDeleteOptions} options Configuration options to identify the value to delete
25
+ * @returns {Promise<void>} Promise resolving when the configuration is deleted
26
+ */
27
+ delete(options: IConfigDeleteOptions): Promise<void>;
28
+ /**
29
+ * Retrieves configuration data based on the provided options
30
+ * @param {IConfigGetOptions} options Configuration retrieval options
31
+ * @returns {Promise<IConfigData>} Promise resolving to the configuration data
32
+ */
33
+ get(options: IConfigGetOptions): Promise<IConfigData>;
34
+ /**
35
+ * Lists all configuration values in a section.
36
+ * Supports caching and running within a TypeORM transaction.
37
+ * @param {IConfigGetListOptions} options Options for listing configurations.
38
+ * @returns {Promise<Array<IConfigData>>} Promise resolving to an array of configuration data.
39
+ */
40
+ getList(options: IConfigGetListOptions): Promise<Array<IConfigData>>;
41
+ /**
42
+ * Sets a configuration value with optional encryption.
43
+ * The specified section must already exist.
44
+ * If a configuration with the same name and environment already exists, it will be updated. Otherwise, a new one will be created.
45
+ * @param {IConfigSetOptions} options Configuration set options
46
+ * @returns {Promise<IConfigData>} Promise resolving to the saved configuration data
47
+ */
48
+ set(options: IConfigSetOptions): Promise<IConfigData>;
49
+ private getOrCreateSection;
50
+ }
@@ -0,0 +1,355 @@
1
+ import { __decorate, __param, __metadata } from '../../external/tslib/tslib.es6.js';
2
+ import { ApiServiceBase, ErrorString, EErrorStringAction } from '@elsikora/nestjs-crud-automator';
3
+ import { CACHE_MANAGER, Cache } from '@nestjs/cache-manager';
4
+ import { Injectable, Inject, Optional, Logger, HttpException, InternalServerErrorException, NotFoundException } from '@nestjs/common';
5
+ import { TOKEN_CONSTANT } from '../../shared/constant/token.constant.js';
6
+ import { DataSource } from 'typeorm';
7
+ import '@nestjs/typeorm';
8
+ import { CryptoUtility } from '../../shared/utility/crypto.utility.js';
9
+
10
+ var CrudConfigService_1;
11
+ /**
12
+ * Service for managing configuration data with caching support
13
+ * Provides methods to retrieve configuration values with optional decryption
14
+ */
15
+ let CrudConfigService = CrudConfigService_1 = class CrudConfigService {
16
+ sectionService;
17
+ dataService;
18
+ cacheManager;
19
+ options;
20
+ dataSource;
21
+ cryptoUtility;
22
+ LOGGER = new Logger(CrudConfigService_1.name);
23
+ constructor(sectionService, dataService, cacheManager, options, dataSource, cryptoUtility) {
24
+ this.sectionService = sectionService;
25
+ this.dataService = dataService;
26
+ this.cacheManager = cacheManager;
27
+ this.options = options;
28
+ this.dataSource = dataSource;
29
+ this.cryptoUtility = cryptoUtility;
30
+ }
31
+ /**
32
+ * Deletes a configuration value
33
+ * @param {IConfigDeleteOptions} options Configuration options to identify the value to delete
34
+ * @returns {Promise<void>} Promise resolving when the configuration is deleted
35
+ */
36
+ async delete(options) {
37
+ if (this.options?.isVerbose) {
38
+ this.LOGGER.verbose(`Entering delete method with options: ${JSON.stringify(options)}`);
39
+ }
40
+ const { environment, eventManager, name, section: sectionName } = options;
41
+ const finalEnvironment = environment ?? this.options?.environment ?? "default";
42
+ try {
43
+ const section = await this.sectionService.get({ where: { name: sectionName } }, eventManager);
44
+ const data = await this.dataService.get({
45
+ where: {
46
+ environment: finalEnvironment,
47
+ name,
48
+ section: { id: section.id },
49
+ },
50
+ }, eventManager);
51
+ await this.dataService.delete({ id: data.id }, eventManager);
52
+ if (this.options?.cacheOptions?.isEnabled && this.cacheManager) {
53
+ const cacheKey = `config:${sectionName}:${name}:${finalEnvironment}`;
54
+ const listCacheKey = `config:list:${sectionName}:${finalEnvironment}`;
55
+ await Promise.all([this.cacheManager.del(cacheKey), this.cacheManager.del(listCacheKey)]);
56
+ }
57
+ }
58
+ catch (error) {
59
+ if (this.options?.isVerbose) {
60
+ this.LOGGER.error(`Error in delete method: ${error.message}`);
61
+ }
62
+ if (error instanceof HttpException) {
63
+ throw error;
64
+ }
65
+ throw new InternalServerErrorException(ErrorString({ entity: { name: "ConfigData" }, type: EErrorStringAction.DELETING_ERROR }));
66
+ }
67
+ }
68
+ /**
69
+ * Retrieves configuration data based on the provided options
70
+ * @param {IConfigGetOptions} options Configuration retrieval options
71
+ * @returns {Promise<IConfigData>} Promise resolving to the configuration data
72
+ */
73
+ async get(options) {
74
+ if (this.options?.isVerbose) {
75
+ this.LOGGER.verbose(`Entering get method with options: ${JSON.stringify(options)}`);
76
+ }
77
+ const { environment, eventManager, name, section, shouldLoadSectionInfo, useCache, } = options;
78
+ const finalEnvironment = environment ?? this.options?.environment ?? "default";
79
+ const cacheKey = `config:${section}:${name}:${finalEnvironment}`;
80
+ try {
81
+ // Check cache first if enabled
82
+ if (useCache && this.options?.cacheOptions?.isEnabled && this.cacheManager) {
83
+ const cachedData = await this.cacheManager.get(cacheKey);
84
+ if (cachedData) {
85
+ if (this.options?.isVerbose) {
86
+ this.LOGGER.verbose(`Returning cached config data for ${name}`);
87
+ }
88
+ return cachedData;
89
+ }
90
+ }
91
+ // Fetch section
92
+ if (this.options?.isVerbose) {
93
+ this.LOGGER.verbose(`Fetching section: ${section}`);
94
+ }
95
+ const sectionData = await this.sectionService.get({ where: { name: section } }, eventManager);
96
+ if (this.options?.isVerbose) {
97
+ this.LOGGER.verbose(`Fetching config data for name: ${name}, environment: ${finalEnvironment}`);
98
+ }
99
+ const data = await this.dataService.get({
100
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
101
+ relations: { section: shouldLoadSectionInfo },
102
+ where: { environment: finalEnvironment, name, section: { id: sectionData.id } },
103
+ }, eventManager);
104
+ if (data.isEncrypted) {
105
+ if (!this.options?.encryptionOptions?.encryptionKey) {
106
+ throw new InternalServerErrorException(ErrorString({ entity: { name: "ConfigData" }, type: EErrorStringAction.KEY_NOT_FOUND }));
107
+ }
108
+ if (!this.cryptoUtility) {
109
+ throw new InternalServerErrorException("CryptoUtility not available");
110
+ }
111
+ try {
112
+ data.value = this.cryptoUtility.decrypt(data.value, this.options.encryptionOptions.encryptionKey);
113
+ if (this.options?.isVerbose) {
114
+ this.LOGGER.verbose(`Decrypted value for ${name}`);
115
+ }
116
+ }
117
+ catch (error) {
118
+ if (this.options?.isVerbose) {
119
+ this.LOGGER.error(`Decryption error for ${name}: ${error.message}`);
120
+ }
121
+ throw new InternalServerErrorException(ErrorString({ entity: { name: "ConfigData" }, type: EErrorStringAction.DECRYPTION_ERROR }));
122
+ }
123
+ }
124
+ if (useCache && this.options?.cacheOptions?.isEnabled && this.cacheManager) {
125
+ const ttl = this.options.cacheOptions.maxCacheTTL;
126
+ await this.cacheManager.set(cacheKey, data, ttl);
127
+ }
128
+ if (this.options?.isVerbose) {
129
+ this.LOGGER.verbose(`Returning config data for ${name}`);
130
+ }
131
+ return data;
132
+ }
133
+ catch (error) {
134
+ if (this.options?.isVerbose) {
135
+ this.LOGGER.error(`Error in get method: ${error.message}`);
136
+ }
137
+ if (error instanceof HttpException) {
138
+ throw error;
139
+ }
140
+ throw new InternalServerErrorException(ErrorString({ entity: { name: "ConfigData" }, type: EErrorStringAction.FETCHING_ERROR }));
141
+ }
142
+ }
143
+ /**
144
+ * Lists all configuration values in a section.
145
+ * Supports caching and running within a TypeORM transaction.
146
+ * @param {IConfigGetListOptions} options Options for listing configurations.
147
+ * @returns {Promise<Array<IConfigData>>} Promise resolving to an array of configuration data.
148
+ */
149
+ async getList(options) {
150
+ if (this.options?.isVerbose) {
151
+ this.LOGGER.verbose(`Entering getList method with options: ${JSON.stringify(options)}`);
152
+ }
153
+ const { environment, eventManager, section: sectionName, useCache, } = options;
154
+ const finalEnvironment = environment ?? this.options?.environment ?? "default";
155
+ const cacheKey = `config:list:${sectionName}:${finalEnvironment}`;
156
+ try {
157
+ // Check cache first if enabled
158
+ if (useCache && this.options?.cacheOptions?.isEnabled && this.cacheManager) {
159
+ const cachedItems = await this.cacheManager.get(cacheKey);
160
+ if (cachedItems) {
161
+ if (this.options?.isVerbose) {
162
+ this.LOGGER.verbose(`Returning cached config list for ${sectionName}`);
163
+ }
164
+ return cachedItems;
165
+ }
166
+ }
167
+ if (this.options?.isVerbose) {
168
+ this.LOGGER.verbose(`Fetching section: ${sectionName}`);
169
+ }
170
+ const section = await this.sectionService.get({ where: { name: sectionName } }, eventManager);
171
+ if (this.options?.isVerbose) {
172
+ this.LOGGER.verbose(`Fetching config list for section: ${sectionName}, environment: ${finalEnvironment}`);
173
+ }
174
+ const result = await this.dataService.getList({ where: { environment: finalEnvironment, section: { id: section.id } } }, eventManager);
175
+ if (useCache && this.options?.cacheOptions?.isEnabled && this.cacheManager) {
176
+ const ttl = this.options?.cacheOptions?.maxCacheTTL;
177
+ await this.cacheManager.set(cacheKey, result.items, ttl);
178
+ }
179
+ if (this.options?.isVerbose) {
180
+ this.LOGGER.verbose(`Returning ${result.items.length} config items`);
181
+ }
182
+ return result.items;
183
+ }
184
+ catch (error) {
185
+ if (this.options?.isVerbose) {
186
+ this.LOGGER.error(`Error in getList method: ${error.message}`);
187
+ }
188
+ if (error instanceof HttpException) {
189
+ throw error;
190
+ }
191
+ throw new InternalServerErrorException(ErrorString({ entity: { name: "ConfigData" }, type: EErrorStringAction.FETCHING_LIST_ERROR }));
192
+ }
193
+ }
194
+ /**
195
+ * Sets a configuration value with optional encryption.
196
+ * The specified section must already exist.
197
+ * If a configuration with the same name and environment already exists, it will be updated. Otherwise, a new one will be created.
198
+ * @param {IConfigSetOptions} options Configuration set options
199
+ * @returns {Promise<IConfigData>} Promise resolving to the saved configuration data
200
+ */
201
+ async set(options) {
202
+ if (this.options?.isVerbose) {
203
+ const maskedOptions = {
204
+ ...options,
205
+ value: "***",
206
+ };
207
+ this.LOGGER.verbose(`Entering set method with options: ${JSON.stringify(maskedOptions)}`);
208
+ }
209
+ const { description, environment, eventManager, name, section: sectionName, value, } = options;
210
+ const finalEnvironment = environment ?? this.options?.environment ?? "default";
211
+ const shouldApplyEncryption = this.options?.encryptionOptions?.isEnabled ?? false;
212
+ let finalValue = value;
213
+ let isEncrypted = false;
214
+ if (shouldApplyEncryption) {
215
+ if (!this.options?.encryptionOptions?.encryptionKey) {
216
+ throw new InternalServerErrorException(ErrorString({ entity: { name: "ConfigData" }, type: EErrorStringAction.KEY_NOT_FOUND }));
217
+ }
218
+ if (!this.cryptoUtility) {
219
+ throw new InternalServerErrorException("CryptoUtility not available");
220
+ }
221
+ try {
222
+ finalValue = this.cryptoUtility.encrypt(value, this.options.encryptionOptions.encryptionKey);
223
+ isEncrypted = true;
224
+ if (this.options?.isVerbose) {
225
+ this.LOGGER.verbose(`Encrypted value for ${name}`);
226
+ }
227
+ }
228
+ catch (error) {
229
+ if (this.options?.isVerbose) {
230
+ this.LOGGER.error(`Encryption error for ${name}: ${error.message}`);
231
+ }
232
+ throw new InternalServerErrorException(ErrorString({ entity: { name: "ConfigData" }, type: EErrorStringAction.ENCRYPTION_ERROR }));
233
+ }
234
+ }
235
+ let queryRunner;
236
+ let useTransaction = false;
237
+ let localEventManager = eventManager;
238
+ try {
239
+ useTransaction = !eventManager;
240
+ if (useTransaction) {
241
+ if (!this.dataSource) {
242
+ throw new InternalServerErrorException("DataSource not available for transaction");
243
+ }
244
+ queryRunner = this.dataSource.createQueryRunner();
245
+ await queryRunner.connect();
246
+ await queryRunner.startTransaction();
247
+ localEventManager = queryRunner.manager;
248
+ }
249
+ if (this.options?.isVerbose) {
250
+ this.LOGGER.verbose(`Fetching or creating section: ${sectionName}`);
251
+ }
252
+ const section = await this.getOrCreateSection(sectionName, localEventManager);
253
+ if (this.options?.isVerbose) {
254
+ this.LOGGER.verbose(`Preparing config data for ${name}`);
255
+ }
256
+ const configData = {
257
+ description: description ?? undefined,
258
+ environment: finalEnvironment,
259
+ isEncrypted,
260
+ name,
261
+ section: { id: section.id },
262
+ value: finalValue,
263
+ };
264
+ let result;
265
+ try {
266
+ if (this.options?.isVerbose) {
267
+ this.LOGGER.verbose(`Checking for existing config: ${name}`);
268
+ }
269
+ const existingData = await this.dataService.get({ where: { environment: finalEnvironment, name, section: { id: section.id } } }, localEventManager);
270
+ if (this.options?.isVerbose) {
271
+ this.LOGGER.verbose(`Updating existing config: ${name}`);
272
+ }
273
+ result = await this.dataService.update({ id: existingData.id }, configData, localEventManager);
274
+ }
275
+ catch (error) {
276
+ if (error instanceof NotFoundException) {
277
+ if (this.options?.isVerbose) {
278
+ this.LOGGER.verbose(`Config ${name} not found, creating new one`);
279
+ }
280
+ result = await this.dataService.create(configData, localEventManager);
281
+ }
282
+ else {
283
+ if (this.options?.isVerbose) {
284
+ const errorMessage = error instanceof Error ? error.message : String(error);
285
+ this.LOGGER.error(`Error updating config: ${errorMessage}`);
286
+ }
287
+ throw error;
288
+ }
289
+ }
290
+ if (this.options?.cacheOptions?.isEnabled && this.cacheManager) {
291
+ const cacheKey = `config:${sectionName}:${name}:${finalEnvironment}`;
292
+ const listCacheKey = `config:list:${sectionName}:${finalEnvironment}`;
293
+ await Promise.all([this.cacheManager.del(cacheKey), this.cacheManager.del(listCacheKey)]);
294
+ }
295
+ if (useTransaction && queryRunner) {
296
+ await queryRunner.commitTransaction();
297
+ await queryRunner.release();
298
+ }
299
+ if (this.options?.isVerbose) {
300
+ this.LOGGER.verbose(`Set method completed successfully for ${name}`);
301
+ }
302
+ return result;
303
+ }
304
+ catch (error) {
305
+ if (useTransaction && queryRunner) {
306
+ await queryRunner.rollbackTransaction();
307
+ await queryRunner.release();
308
+ }
309
+ if (this.options?.isVerbose) {
310
+ const errorMessage = error instanceof Error ? error.message : String(error);
311
+ this.LOGGER.error(`Error in set method: ${errorMessage}`);
312
+ }
313
+ if (error instanceof HttpException) {
314
+ throw error;
315
+ }
316
+ throw new InternalServerErrorException(ErrorString({ entity: { name: "ConfigData" }, type: EErrorStringAction.CREATING_ERROR }));
317
+ }
318
+ }
319
+ async getOrCreateSection(sectionName, eventManager) {
320
+ try {
321
+ return await this.sectionService.get({ where: { name: sectionName } }, eventManager);
322
+ }
323
+ catch (error) {
324
+ if (error instanceof NotFoundException && this.options?.shouldAutoCreateSections) {
325
+ if (this.options?.isVerbose) {
326
+ this.LOGGER.verbose(`Section ${sectionName} not found, creating new one`);
327
+ }
328
+ return await this.sectionService.create({ name: sectionName }, eventManager);
329
+ }
330
+ else {
331
+ if (this.options?.isVerbose) {
332
+ const errorMessage = error instanceof Error ? error.message : String(error);
333
+ this.LOGGER.error(`Error fetching section: ${errorMessage}`);
334
+ }
335
+ throw error;
336
+ }
337
+ }
338
+ }
339
+ };
340
+ CrudConfigService = CrudConfigService_1 = __decorate([
341
+ Injectable(),
342
+ __param(0, Inject(TOKEN_CONSTANT.CONFIG_SECTION_SERVICE)),
343
+ __param(1, Inject(TOKEN_CONSTANT.CONFIG_DATA_SERVICE)),
344
+ __param(2, Optional()),
345
+ __param(2, Inject(CACHE_MANAGER)),
346
+ __param(3, Optional()),
347
+ __param(3, Inject(TOKEN_CONSTANT.CONFIG_OPTIONS)),
348
+ __metadata("design:paramtypes", [ApiServiceBase,
349
+ ApiServiceBase,
350
+ Cache, Object, DataSource,
351
+ CryptoUtility])
352
+ ], CrudConfigService);
353
+
354
+ export { CrudConfigService };
355
+ //# sourceMappingURL=config.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.service.js","sources":["../../../../../src/modules/config/config.service.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Type } from "@nestjs/common/interfaces";
2
+ import { IConfigControllerOptions } from '../../../shared/interface/config/index';
3
+ import { TDynamicEntity } from '../../../shared/type/index';
4
+ /**
5
+ * Factory to create dynamic ConfigData controller with the correct entity
6
+ * @param {TDynamicEntity} entity The entity type to create controller for
7
+ * @param {IConfigControllerOptions} [options] Controller configuration options
8
+ * @returns {Type} The dynamic controller class
9
+ */
10
+ export declare function createDynamicDataController(entity: TDynamicEntity, options?: IConfigControllerOptions): Type;
@@ -0,0 +1,74 @@
1
+ import { __decorate, __param, __metadata } from '../../../external/tslib/tslib.es6.js';
2
+ import { EApiRouteType, EApiControllerLoadRelationsStrategy, ApiController, ApiServiceBase } from '@elsikora/nestjs-crud-automator';
3
+ import { Inject } from '@nestjs/common';
4
+ import { TOKEN_CONSTANT } from '../../../shared/constant/token.constant.js';
5
+
6
+ /**
7
+ * Factory to create dynamic ConfigData controller with the correct entity
8
+ * @param {TDynamicEntity} entity The entity type to create controller for
9
+ * @param {IConfigControllerOptions} [options] Controller configuration options
10
+ * @returns {Type} The dynamic controller class
11
+ */
12
+ function createDynamicDataController(entity, options) {
13
+ const defaultConfig = {
14
+ entity,
15
+ name: "ConfigData",
16
+ path: "config/data",
17
+ routes: {
18
+ [EApiRouteType.CREATE]: {
19
+ isEnabled: true,
20
+ request: {
21
+ relations: {
22
+ relationsLoadStrategy: EApiControllerLoadRelationsStrategy.MANUAL,
23
+ relationsServices: {
24
+ section: "sectionService",
25
+ },
26
+ relationsToLoad: ["section"],
27
+ servicesLoadStrategy: EApiControllerLoadRelationsStrategy.MANUAL,
28
+ shouldLoadRelations: true,
29
+ },
30
+ },
31
+ },
32
+ [EApiRouteType.DELETE]: { isEnabled: true },
33
+ [EApiRouteType.GET]: { isEnabled: true },
34
+ [EApiRouteType.GET_LIST]: { isEnabled: true },
35
+ [EApiRouteType.UPDATE]: {
36
+ isEnabled: true,
37
+ request: {
38
+ relations: {
39
+ relationsLoadStrategy: EApiControllerLoadRelationsStrategy.MANUAL,
40
+ relationsServices: {
41
+ section: "sectionService",
42
+ },
43
+ relationsToLoad: ["section"],
44
+ servicesLoadStrategy: EApiControllerLoadRelationsStrategy.MANUAL,
45
+ shouldLoadRelations: true,
46
+ },
47
+ },
48
+ },
49
+ },
50
+ };
51
+ const config = {
52
+ ...defaultConfig,
53
+ ...options?.properties,
54
+ };
55
+ let DynamicConfigDataController = class DynamicConfigDataController {
56
+ service;
57
+ sectionService;
58
+ constructor(service, sectionService) {
59
+ this.service = service;
60
+ this.sectionService = sectionService;
61
+ }
62
+ };
63
+ DynamicConfigDataController = __decorate([
64
+ ApiController(config),
65
+ __param(0, Inject(TOKEN_CONSTANT.CONFIG_DATA_SERVICE)),
66
+ __param(1, Inject(TOKEN_CONSTANT.CONFIG_SECTION_SERVICE)),
67
+ __metadata("design:paramtypes", [ApiServiceBase,
68
+ ApiServiceBase])
69
+ ], DynamicConfigDataController);
70
+ return DynamicConfigDataController;
71
+ }
72
+
73
+ export { createDynamicDataController };
74
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sources":["../../../../../../src/modules/config/data/controller.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAcA;;;;;AAKG;AACG,SAAU,2BAA2B,CAC1C,MAAsB,EACtB,OAAkC,EAAA;AAElC,IAAA,MAAM,aAAa,GAA4C;QAC9D,MAAM;AACN,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,MAAM,EAAE;AACP,YAAA,CAAC,aAAa,CAAC,MAAM,GAAG;AACvB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,OAAO,EAAE;AACR,oBAAA,SAAS,EAAE;wBACV,qBAAqB,EAAE,mCAAmC,CAAC,MAAM;AACjE,wBAAA,iBAAiB,EAAE;AAClB,4BAAA,OAAO,EAAE,gBAAgB;AACzB,yBAAA;wBACD,eAAe,EAAE,CAAC,SAAgC,CAAC;wBACnD,oBAAoB,EAAE,mCAAmC,CAAC,MAAM;AAChE,wBAAA,mBAAmB,EAAE,IAAI;AACzB,qBAAA;AACD,iBAAA;AACD,aAAA;YACD,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3C,CAAC,aAAa,CAAC,GAAG,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;YACxC,CAAC,aAAa,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AAC7C,YAAA,CAAC,aAAa,CAAC,MAAM,GAAG;AACvB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,OAAO,EAAE;AACR,oBAAA,SAAS,EAAE;wBACV,qBAAqB,EAAE,mCAAmC,CAAC,MAAM;AACjE,wBAAA,iBAAiB,EAAE;AAClB,4BAAA,OAAO,EAAE,gBAAgB;AACzB,yBAAA;wBACD,eAAe,EAAE,CAAC,SAAgC,CAAC;wBACnD,oBAAoB,EAAE,mCAAmC,CAAC,MAAM;AAChE,wBAAA,mBAAmB,EAAE,IAAI;AACzB,qBAAA;AACD,iBAAA;AACD,aAAA;AACD,SAAA;KACD;AAED,IAAA,MAAM,MAAM,GAA4C;AACvD,QAAA,GAAG,aAAa;QAChB,GAAG,OAAO,EAAE,UAAU;KACtB;IAED,IACM,2BAA2B,GADjC,MACM,2BAA2B,CAAA;AAGf,QAAA,OAAA;AAEA,QAAA,cAAA;QAJjB,WAAA,CAEiB,OAAsC,EAEtC,cAA6C,EAAA;YAF7C,IAAA,CAAA,OAAO,GAAP,OAAO;YAEP,IAAA,CAAA,cAAc,GAAd,cAAc;QAC5B;KACH;IAPK,2BAA2B,GAAA,UAAA,CAAA;QADhC,aAAa,CAAC,MAAM,CAAC;AAGnB,QAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;AAE1C,QAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAA;yCADrB,cAAc;YAEP,cAAc,CAAA;AAL1C,KAAA,EAAA,2BAA2B,CAOhC;AAED,IAAA,OAAO,2BAA2B;AACnC;;;;"}
@@ -0,0 +1,20 @@
1
+ import type { TDynamicEntity } from '../../../../shared/type/index';
2
+ /**
3
+ * Creates a dynamic ConfigData entity with TypeORM decorators
4
+ * @param {object} options - Configuration options for the entity
5
+ * @param {TDynamicEntity} options.configSectionEntity - The ConfigSection entity to create relation with
6
+ * @param {number} options.maxDescriptionLength - Maximum length for description field
7
+ * @param {number} options.maxEnvironmentLength - Maximum length for environment field
8
+ * @param {number} options.maxNameLength - Maximum length for name field
9
+ * @param {number} options.maxValueLength - Maximum length for value field
10
+ * @param {string} options.tableName - Name of the database table
11
+ * @returns {TDynamicEntity} Dynamically created ConfigData entity class
12
+ */
13
+ export declare function createConfigDataEntity(options: {
14
+ configSectionEntity: TDynamicEntity;
15
+ maxDescriptionLength: number;
16
+ maxEnvironmentLength: number;
17
+ maxNameLength: number;
18
+ maxValueLength: number;
19
+ tableName: string;
20
+ }): TDynamicEntity;