@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 @@
1
+ {"version":3,"file":"entity.js","sources":["../../../../../../../src/modules/config/data/entity/entity.ts"],"sourcesContent":[null],"names":["createDynamicEntityClass","CreateDateColumn","ApiPropertyDescribe","EApiPropertyDateType","EApiPropertyDateIdentifier","EApiPropertyDescribeType","EApiPropertyStringType","API_PROPERTY_CONSTANT","UpdateDateColumn"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { createConfigDataEntity } from './entity';
@@ -0,0 +1,20 @@
1
+ import type { IConfigData } from '../index';
2
+ import type { EntityManager } from "typeorm/entity-manager/EntityManager";
3
+ /**
4
+ * Event class for ConfigData beforeInsert event
5
+ */
6
+ export declare class ConfigDataEventBeforeInsert {
7
+ /**
8
+ * Any additional context data for event handlers
9
+ */
10
+ context?: Record<string, unknown>;
11
+ /**
12
+ * EntityManager instance from the event
13
+ */
14
+ eventManager: EntityManager;
15
+ /**
16
+ * The dynamic entity instance
17
+ * Note: This will be a dynamically generated entity at runtime
18
+ */
19
+ item: IConfigData;
20
+ }
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Event class for ConfigData beforeInsert event
5
+ */
6
+ class ConfigDataEventBeforeInsert {
7
+ /**
8
+ * Any additional context data for event handlers
9
+ */
10
+ context;
11
+ /**
12
+ * EntityManager instance from the event
13
+ */
14
+ eventManager;
15
+ /**
16
+ * The dynamic entity instance
17
+ * Note: This will be a dynamically generated entity at runtime
18
+ */
19
+ item;
20
+ }
21
+
22
+ exports.ConfigDataEventBeforeInsert = ConfigDataEventBeforeInsert;
23
+ //# sourceMappingURL=before-insert.event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-insert.event.js","sources":["../../../../../../../src/modules/config/data/event/before-insert.event.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;AAEG;MACU,2BAA2B,CAAA;AACvC;;AAEG;AACH,IAAA,OAAO;AAEP;;AAEG;AACH,IAAA,YAAY;AAEZ;;;AAGG;AACH,IAAA,IAAI;AACJ;;;;"}
@@ -0,0 +1 @@
1
+ export { ConfigDataEventBeforeInsert } from './before-insert.event';
@@ -0,0 +1,6 @@
1
+ export * from './controller';
2
+ export * from './entity/index';
3
+ export * from './event/index';
4
+ export type * from './interface/index';
5
+ export * from './listener/index';
6
+ export * from './subscriber/index';
@@ -0,0 +1 @@
1
+ export type { IConfigData } from './interface';
@@ -0,0 +1,12 @@
1
+ import type { IConfigSection } from '../../section/index';
2
+ export interface IConfigData {
3
+ createdAt: Date;
4
+ description: string;
5
+ environment: string;
6
+ id: string;
7
+ isEncrypted: boolean;
8
+ name: string;
9
+ section: IConfigSection | Partial<IConfigSection>;
10
+ updatedAt: Date;
11
+ value: string;
12
+ }
@@ -0,0 +1,19 @@
1
+ import { ApiServiceBase } from "@elsikora/nestjs-crud-automator";
2
+ import { IConfigData } from '../index';
3
+ import { ConfigDataEventBeforeInsert } from '../event/index';
4
+ /**
5
+ * Event listener for ConfigData beforeInsert events
6
+ */
7
+ export declare class ConfigDataBeforeInsertListener {
8
+ private readonly service;
9
+ constructor(service: ApiServiceBase<IConfigData>);
10
+ /**
11
+ * Handle configdataevents.beforeInsert event
12
+ * @param {ConfigDataEventBeforeInsert} payload Event payload
13
+ * @returns {Promise<{ error?: unknown; isSuccess: boolean }>} Object indicating success or failure
14
+ */
15
+ handleBeforeInsert(payload: ConfigDataEventBeforeInsert): Promise<{
16
+ error?: unknown;
17
+ isSuccess: boolean;
18
+ }>;
19
+ }
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('../../../../external/tslib/tslib.es6.js');
4
+ var nestjsCrudAutomator = require('@elsikora/nestjs-crud-automator');
5
+ var beforeInsert_event = require('../event/before-insert.event.js');
6
+ var common = require('@nestjs/common');
7
+ var eventEmitter = require('@nestjs/event-emitter');
8
+ var token_constant = require('../../../../shared/constant/token.constant.js');
9
+
10
+ /**
11
+ * Event listener for ConfigData beforeInsert events
12
+ */
13
+ exports.ConfigDataBeforeInsertListener = class ConfigDataBeforeInsertListener {
14
+ service;
15
+ constructor(service) {
16
+ this.service = service;
17
+ }
18
+ /**
19
+ * Handle configdataevents.beforeInsert event
20
+ * @param {ConfigDataEventBeforeInsert} payload Event payload
21
+ * @returns {Promise<{ error?: unknown; isSuccess: boolean }>} Object indicating success or failure
22
+ */
23
+ async handleBeforeInsert(payload) {
24
+ try {
25
+ // Access the entity from the payload
26
+ const entity = payload.item;
27
+ const entityManager = payload.eventManager;
28
+ const existingConfigData = await this.service.get({
29
+ where: {
30
+ environment: entity.environment,
31
+ name: entity.name,
32
+ },
33
+ }, entityManager);
34
+ if (existingConfigData) {
35
+ throw new common.ConflictException("ConfigData with this environment and name already exists");
36
+ }
37
+ // Return success if no duplicate found
38
+ return { isSuccess: true };
39
+ }
40
+ catch (error) {
41
+ if (error instanceof common.NotFoundException) {
42
+ return { isSuccess: true };
43
+ }
44
+ return { error, isSuccess: false };
45
+ }
46
+ }
47
+ };
48
+ tslib_es6.__decorate([
49
+ eventEmitter.OnEvent("config-data.beforeInsert"),
50
+ tslib_es6.__metadata("design:type", Function),
51
+ tslib_es6.__metadata("design:paramtypes", [beforeInsert_event.ConfigDataEventBeforeInsert]),
52
+ tslib_es6.__metadata("design:returntype", Promise)
53
+ ], exports.ConfigDataBeforeInsertListener.prototype, "handleBeforeInsert", null);
54
+ exports.ConfigDataBeforeInsertListener = tslib_es6.__decorate([
55
+ common.Injectable(),
56
+ tslib_es6.__param(0, common.Inject(token_constant.TOKEN_CONSTANT.CONFIG_DATA_SERVICE)),
57
+ tslib_es6.__metadata("design:paramtypes", [nestjsCrudAutomator.ApiServiceBase])
58
+ ], exports.ConfigDataBeforeInsertListener);
59
+ //# sourceMappingURL=before-insert.listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-insert.listener.js","sources":["../../../../../../../src/modules/config/data/listener/before-insert.listener.ts"],"sourcesContent":[null],"names":["ConfigDataBeforeInsertListener","ConflictException","NotFoundException","__decorate","OnEvent","ConfigDataEventBeforeInsert","Injectable","__param","Inject","TOKEN_CONSTANT","ApiServiceBase"],"mappings":";;;;;;;;;AAQA;;AAEG;AAEUA,sCAA8B,GAApC,MAAM,8BAA8B,CAAA;AAEoB,IAAA,OAAA;AAD9D,IAAA,WAAA,CAC8D,OAAoC,EAAA;QAApC,IAAA,CAAA,OAAO,GAAP,OAAO;IAClE;AAEH;;;;AAIG;AAEG,IAAN,MAAM,kBAAkB,CACvB,OAAoC,EAAA;AAEpC,QAAA,IAAI;;AAEH,YAAA,MAAM,MAAM,GAAgB,OAAO,CAAC,IAAI;AACxC,YAAA,MAAM,aAAa,GAAkB,OAAO,CAAC,YAAY;YAEzD,MAAM,kBAAkB,GAAuB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CACpE;AACC,gBAAA,KAAK,EAAE;oBACN,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,iBAAA;aACD,EACD,aAAa,CACb;YAED,IAAI,kBAAkB,EAAE;AACvB,gBAAA,MAAM,IAAIC,wBAAiB,CAAC,0DAA0D,CAAC;YACxF;;AAGA,YAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;QAC3B;QAAE,OAAO,KAAK,EAAE;AACf,YAAA,IAAI,KAAK,YAAYC,wBAAiB,EAAE;AACvC,gBAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B;AAEA,YAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QACnC;IACD;;AA/BMC,oBAAA,CAAA;IADLC,oBAAO,CAAC,0BAA0B,CAAC;;+CAE1BC,8CAA2B,CAAA,CAAA;;AA8BpC,CAAA,EAAAL,sCAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;AA1CWA,sCAA8B,GAAAG,oBAAA,CAAA;AAD1C,IAAAG,iBAAU,EAAE;AAGV,IAAAC,iBAAA,CAAA,CAAA,EAAAC,aAAM,CAACC,6BAAc,CAAC,mBAAmB,CAAC,CAAA;+CAA2BC,kCAAc,CAAA;AAFzE,CAAA,EAAAV,sCAA8B,CA2C1C;;"}
@@ -0,0 +1 @@
1
+ export { ConfigDataBeforeInsertListener } from './before-insert.listener';
@@ -0,0 +1,26 @@
1
+ import type { IConfigData } from '../index';
2
+ import type { TDynamicEntity } from '../../../../shared/type/index';
3
+ import type { EntitySubscriberInterface, InsertEvent } from "typeorm";
4
+ import { EventEmitter2 } from "@nestjs/event-emitter";
5
+ import { DataSource } from "typeorm";
6
+ /**
7
+ * TypeORM subscriber for ConfigData beforeInsert event
8
+ * Note: Works with dynamically generated entities
9
+ */
10
+ export declare class ConfigDataBeforeInsertSubscriber implements EntitySubscriberInterface<IConfigData> {
11
+ private readonly eventEmitter;
12
+ readonly connection: DataSource;
13
+ private readonly entityClass;
14
+ constructor(eventEmitter: EventEmitter2, connection: DataSource, entityClass: TDynamicEntity);
15
+ /**
16
+ * Handle the beforeInsert event
17
+ * @param {InsertEvent<IConfigData>} event - The TypeORM insert event
18
+ * @returns {Promise<boolean>} Promise resolving to boolean indicating success
19
+ */
20
+ beforeInsert(event: InsertEvent<IConfigData>): Promise<boolean>;
21
+ /**
22
+ * Specify which entity this subscriber listens to
23
+ * @returns {TDynamicEntity} The ConfigData entity class
24
+ */
25
+ listenTo(): TDynamicEntity;
26
+ }
@@ -0,0 +1,74 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('../../../../external/tslib/tslib.es6.js');
4
+ var nestjsCrudAutomator = require('@elsikora/nestjs-crud-automator');
5
+ var beforeInsert_event = require('../event/before-insert.event.js');
6
+ var common = require('@nestjs/common');
7
+ var eventEmitter = require('@nestjs/event-emitter');
8
+ var token_constant = require('../../../../shared/constant/token.constant.js');
9
+ var typeorm = require('typeorm');
10
+
11
+ /**
12
+ * TypeORM subscriber for ConfigData beforeInsert event
13
+ * Note: Works with dynamically generated entities
14
+ */
15
+ exports.ConfigDataBeforeInsertSubscriber = class ConfigDataBeforeInsertSubscriber {
16
+ eventEmitter;
17
+ connection;
18
+ entityClass;
19
+ constructor(eventEmitter, connection, entityClass) {
20
+ this.eventEmitter = eventEmitter;
21
+ this.connection = connection;
22
+ this.entityClass = entityClass;
23
+ // Register this subscriber with the DataSource
24
+ connection.subscribers.push(this);
25
+ }
26
+ /**
27
+ * Handle the beforeInsert event
28
+ * @param {InsertEvent<IConfigData>} event - The TypeORM insert event
29
+ * @returns {Promise<boolean>} Promise resolving to boolean indicating success
30
+ */
31
+ beforeInsert(event) {
32
+ // Only process if this is our ConfigData entity
33
+ if (event.entity.constructor !== this.entityClass) {
34
+ return Promise.resolve(true);
35
+ }
36
+ const item = event.entity;
37
+ const payload = new beforeInsert_event.ConfigDataEventBeforeInsert();
38
+ payload.item = item;
39
+ payload.eventManager = event.manager;
40
+ return this.eventEmitter
41
+ .emitAsync("config-data.beforeInsert", payload)
42
+ .then((result) => {
43
+ if (result.every((item) => item.isSuccess)) {
44
+ return true;
45
+ }
46
+ else {
47
+ const error = result.find((item) => !item.isSuccess)?.error;
48
+ if (error instanceof common.HttpException) {
49
+ throw error;
50
+ }
51
+ // @ts-ignore - EErrorStringAction import issue with yalc package
52
+ throw new common.InternalServerErrorException(nestjsCrudAutomator.ErrorString({ entity: { name: "ConfigData" }, type: nestjsCrudAutomator.EErrorStringAction.CREATING_ERROR }));
53
+ }
54
+ })
55
+ .catch((error) => {
56
+ throw error;
57
+ });
58
+ }
59
+ /**
60
+ * Specify which entity this subscriber listens to
61
+ * @returns {TDynamicEntity} The ConfigData entity class
62
+ */
63
+ listenTo() {
64
+ return this.entityClass;
65
+ }
66
+ };
67
+ exports.ConfigDataBeforeInsertSubscriber = tslib_es6.__decorate([
68
+ typeorm.EventSubscriber(),
69
+ tslib_es6.__param(1, common.Inject(typeorm.DataSource)),
70
+ tslib_es6.__param(2, common.Inject(token_constant.TOKEN_CONSTANT.CONFIG_DATA_ENTITY)),
71
+ tslib_es6.__metadata("design:paramtypes", [eventEmitter.EventEmitter2,
72
+ typeorm.DataSource, Object])
73
+ ], exports.ConfigDataBeforeInsertSubscriber);
74
+ //# sourceMappingURL=before-insert.subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-insert.subscriber.js","sources":["../../../../../../../src/modules/config/data/subscriber/before-insert.subscriber.ts"],"sourcesContent":[null],"names":["ConfigDataBeforeInsertSubscriber","ConfigDataEventBeforeInsert","HttpException","InternalServerErrorException","ErrorString","EErrorStringAction","__decorate","EventSubscriber","__param","Inject","DataSource","TOKEN_CONSTANT","EventEmitter2"],"mappings":";;;;;;;;;;AAYA;;;AAGG;AAEUA,wCAAgC,GAAtC,MAAM,gCAAgC,CAAA;AAE1B,IAAA,YAAA;AACY,IAAA,UAAA;AAC+B,IAAA,WAAA;AAH7D,IAAA,WAAA,CACkB,YAA2B,EACf,UAAsB,EACS,WAA2B,EAAA;QAFtE,IAAA,CAAA,YAAY,GAAZ,YAAY;QACA,IAAA,CAAA,UAAU,GAAV,UAAU;QACqB,IAAA,CAAA,WAAW,GAAX,WAAW;;AAGvE,QAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC;AAEA;;;;AAIG;AACH,IAAA,YAAY,CAAC,KAA+B,EAAA;;QAE3C,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE;AAClD,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7B;AAEA,QAAA,MAAM,IAAI,GAAgB,KAAK,CAAC,MAAM;AAEtC,QAAA,MAAM,OAAO,GAAgC,IAAIC,8CAA2B,EAAE;AAC9E,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI;AACnB,QAAA,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO;QAEpC,OAAO,IAAI,CAAC;AACV,aAAA,SAAS,CAAC,0BAA0B,EAAE,OAAO;AAC7C,aAAA,IAAI,CAAC,CAAC,MAAsD,KAAI;AAChE,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAA6C,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;AACpF,gBAAA,OAAO,IAAI;YACZ;iBAAO;AACN,gBAAA,MAAM,KAAK,GAAY,MAAM,CAAC,IAAI,CACjC,CAAC,IAA6C,KAAK,CAAC,IAAI,CAAC,SAAS,CAClE,EAAE,KAAK;AAER,gBAAA,IAAI,KAAK,YAAYC,oBAAa,EAAE;AACnC,oBAAA,MAAM,KAAK;gBACZ;;gBAGA,MAAM,IAAIC,mCAA4B,CACrCC,+BAAW,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,EAAEC,sCAAkB,CAAC,cAAc,EAAE,CAAC,CACxF;YACF;AACD,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,KAAc,KAAI;AACzB,YAAA,MAAM,KAAK;AACZ,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACH,QAAQ,GAAA;QACP,OAAO,IAAI,CAAC,WAAW;IACxB;;AA1DYL,wCAAgC,GAAAM,oBAAA,CAAA;AAD5C,IAAAC,uBAAe,EAAE;AAIf,IAAAC,iBAAA,CAAA,CAAA,EAAAC,aAAM,CAACC,kBAAU,CAAC,CAAA;AAClB,IAAAF,iBAAA,CAAA,CAAA,EAAAC,aAAM,CAACE,6BAAc,CAAC,kBAAkB,CAAC,CAAA;+CAFXC,0BAAa;QACHF,kBAAU,EAAA,MAAA,CAAA;AAHxC,CAAA,EAAAV,wCAAgC,CA2D5C;;"}
@@ -0,0 +1 @@
1
+ export { ConfigDataBeforeInsertSubscriber } from './before-insert.subscriber';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CRUD Configuration Module for NestJS.
3
+ * Exports the module, service, and related interfaces.
4
+ */
5
+ export { CrudConfigModule } from './config.module';
6
+ export { CrudConfigService } from './config.service';
7
+ export { type IConfigGetOptions, type IConfigSetOptions } from './interface/index';
8
+ export type * from './interface/index';
9
+ export type * from './type/index';
@@ -0,0 +1,22 @@
1
+ import type { EntityManager } from "typeorm/entity-manager/EntityManager";
2
+ /**
3
+ * Context options for configuration retrieval
4
+ */
5
+ export interface IConfigDeleteOptions {
6
+ /**
7
+ * The environment for the configuration, if not specified, the global-configured environment will be used
8
+ */
9
+ environment?: string;
10
+ /**
11
+ * Entity manager for database operations
12
+ */
13
+ eventManager?: EntityManager;
14
+ /**
15
+ * The name of the configuration
16
+ */
17
+ name: string;
18
+ /**
19
+ * The section for the configuration
20
+ */
21
+ section: string;
22
+ }
@@ -0,0 +1,22 @@
1
+ import type { EntityManager } from "typeorm/entity-manager/EntityManager";
2
+ /**
3
+ * Context options for configuration retrieval
4
+ */
5
+ export interface IConfigGetListOptions {
6
+ /**
7
+ * The environment for the configuration, if not specified, the global-configured environment will be used
8
+ */
9
+ environment?: string;
10
+ /**
11
+ * Entity manager for database operations
12
+ */
13
+ eventManager?: EntityManager;
14
+ /**
15
+ * The section for the configuration
16
+ */
17
+ section: string;
18
+ /**
19
+ * Whether or not the configuration should be cached
20
+ */
21
+ useCache?: boolean;
22
+ }
@@ -0,0 +1,30 @@
1
+ import type { EntityManager } from "typeorm/entity-manager/EntityManager";
2
+ /**
3
+ * Context options for configuration retrieval
4
+ */
5
+ export interface IConfigGetOptions {
6
+ /**
7
+ * The environment for the configuration, if not specified, the global-configured environment will be used
8
+ */
9
+ environment?: string;
10
+ /**
11
+ * Entity manager for database operations
12
+ */
13
+ eventManager?: EntityManager;
14
+ /**
15
+ * The name of the configuration
16
+ */
17
+ name: string;
18
+ /**
19
+ * The section for the configuration
20
+ */
21
+ section: string;
22
+ /**
23
+ * Whether or not the section info should be loaded
24
+ */
25
+ shouldLoadSectionInfo?: boolean;
26
+ /**
27
+ * Whether or not the configuration should be cached
28
+ */
29
+ useCache?: boolean;
30
+ }
@@ -0,0 +1,4 @@
1
+ export { type IConfigDeleteOptions } from './delete-options.interface';
2
+ export { type IConfigGetListOptions } from './get-list-options.interface';
3
+ export { type IConfigGetOptions } from './get-options.interface';
4
+ export { type IConfigSetOptions } from './set-options.interface';
@@ -0,0 +1,34 @@
1
+ import type { EntityManager } from "typeorm/entity-manager/EntityManager";
2
+ /**
3
+ * Context options for configuration setting
4
+ */
5
+ export interface IConfigSetOptions {
6
+ /**
7
+ * Description for the configuration
8
+ */
9
+ description?: string;
10
+ /**
11
+ * The environment for the configuration
12
+ */
13
+ environment?: string;
14
+ /**
15
+ * Entity manager for database operations
16
+ */
17
+ eventManager?: EntityManager;
18
+ /**
19
+ * The name of the configuration
20
+ */
21
+ name: string;
22
+ /**
23
+ * Path components for hierarchical configuration
24
+ */
25
+ path?: Array<string>;
26
+ /**
27
+ * The section for the configuration
28
+ */
29
+ section: string;
30
+ /**
31
+ * The value for the configuration
32
+ */
33
+ value: string;
34
+ }
@@ -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 ConfigSection 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 createDynamicSectionController(entity: TDynamicEntity, options?: IConfigControllerOptions): Type;
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('../../../external/tslib/tslib.es6.js');
4
+ var nestjsCrudAutomator = require('@elsikora/nestjs-crud-automator');
5
+ var common = require('@nestjs/common');
6
+ var token_constant = require('../../../shared/constant/token.constant.js');
7
+
8
+ /**
9
+ * Factory to create dynamic ConfigSection controller with the correct entity
10
+ * @param {TDynamicEntity} entity The entity type to create controller for
11
+ * @param {IConfigControllerOptions} [options] Controller configuration options
12
+ * @returns {Type} The dynamic controller class
13
+ */
14
+ function createDynamicSectionController(entity, options) {
15
+ const defaultConfig = {
16
+ entity,
17
+ name: "ConfigSection",
18
+ path: "config/section",
19
+ routes: {
20
+ [nestjsCrudAutomator.EApiRouteType.CREATE]: { isEnabled: true },
21
+ [nestjsCrudAutomator.EApiRouteType.DELETE]: { isEnabled: true },
22
+ [nestjsCrudAutomator.EApiRouteType.GET]: { isEnabled: true },
23
+ [nestjsCrudAutomator.EApiRouteType.GET_LIST]: { isEnabled: true },
24
+ [nestjsCrudAutomator.EApiRouteType.UPDATE]: { isEnabled: true },
25
+ },
26
+ };
27
+ const config = {
28
+ ...defaultConfig,
29
+ ...options?.properties,
30
+ };
31
+ let DynamicConfigSectionController = class DynamicConfigSectionController {
32
+ service;
33
+ constructor(service) {
34
+ this.service = service;
35
+ }
36
+ };
37
+ DynamicConfigSectionController = tslib_es6.__decorate([
38
+ nestjsCrudAutomator.ApiController(config),
39
+ tslib_es6.__param(0, common.Inject(token_constant.TOKEN_CONSTANT.CONFIG_SECTION_SERVICE)),
40
+ tslib_es6.__metadata("design:paramtypes", [nestjsCrudAutomator.ApiServiceBase])
41
+ ], DynamicConfigSectionController);
42
+ return DynamicConfigSectionController;
43
+ }
44
+
45
+ exports.createDynamicSectionController = createDynamicSectionController;
46
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sources":["../../../../../../src/modules/config/section/controller.ts"],"sourcesContent":[null],"names":["EApiRouteType","__decorate","ApiController","__param","Inject","TOKEN_CONSTANT","ApiServiceBase"],"mappings":";;;;;;;AAaA;;;;;AAKG;AACG,SAAU,8BAA8B,CAC7C,MAAsB,EACtB,OAAkC,EAAA;AAElC,IAAA,MAAM,aAAa,GAA4C;QAC9D,MAAM;AACN,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,MAAM,EAAE;YACP,CAACA,iCAAa,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3C,CAACA,iCAAa,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3C,CAACA,iCAAa,CAAC,GAAG,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;YACxC,CAACA,iCAAa,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;YAC7C,CAACA,iCAAa,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AAC3C,SAAA;KACD;AAED,IAAA,MAAM,MAAM,GAA4C;AACvD,QAAA,GAAG,aAAa;QAChB,GAAG,OAAO,EAAE,UAAU;KACtB;IAED,IACM,8BAA8B,GADpC,MACM,8BAA8B,CAAA;AAGlB,QAAA,OAAA;AAFjB,QAAA,WAAA,CAEiB,OAAsC,EAAA;YAAtC,IAAA,CAAA,OAAO,GAAP,OAAO;QACrB;KACH;IALK,8BAA8B,GAAAC,oBAAA,CAAA;QADnCC,iCAAa,CAAC,MAAM,CAAC;AAGnB,QAAAC,iBAAA,CAAA,CAAA,EAAAC,aAAM,CAACC,6BAAc,CAAC,sBAAsB,CAAC,CAAA;mDACrBC,kCAAc,CAAA;AAHnC,KAAA,EAAA,8BAA8B,CAKnC;AAED,IAAA,OAAO,8BAA8B;AACtC;;;;"}
@@ -0,0 +1,14 @@
1
+ import type { TDynamicEntity } from '../../../../shared/type/index';
2
+ /**
3
+ * Creates a dynamic ConfigSection entity with TypeORM decorators
4
+ * @param {object} options - Configuration options for the entity
5
+ * @param {number} options.maxDescriptionLength - Maximum length for description field
6
+ * @param {number} options.maxNameLength - Maximum length for name field
7
+ * @param {string} options.tableName - Name of the database table
8
+ * @returns {TDynamicEntity} Dynamically created ConfigSection entity class
9
+ */
10
+ export declare function createConfigSectionEntity(options: {
11
+ maxDescriptionLength: number;
12
+ maxNameLength: number;
13
+ tableName: string;
14
+ }): TDynamicEntity;
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ var nestjsCrudAutomator = require('@elsikora/nestjs-crud-automator');
4
+ var apiProperty_constant = require('../../../../shared/constant/api-property.constant.js');
5
+ var entity_utility = require('../../../../shared/utility/create-dynamic/entity.utility.js');
6
+ require('../../../../external/tslib/tslib.es6.js');
7
+ require('@nestjs/common');
8
+ require('@nestjs/typeorm');
9
+ var typeorm = require('typeorm');
10
+ require('../../../../shared/utility/crypto.utility.js');
11
+
12
+ /**
13
+ * Creates a dynamic ConfigSection entity with TypeORM decorators
14
+ * @param {object} options - Configuration options for the entity
15
+ * @param {number} options.maxDescriptionLength - Maximum length for description field
16
+ * @param {number} options.maxNameLength - Maximum length for name field
17
+ * @param {string} options.tableName - Name of the database table
18
+ * @returns {TDynamicEntity} Dynamically created ConfigSection entity class
19
+ */
20
+ function createConfigSectionEntity(options) {
21
+ return entity_utility.createDynamicEntityClass({
22
+ columns: {
23
+ createdAt: {
24
+ default: () => "CURRENT_TIMESTAMP",
25
+ nullable: false,
26
+ type: "timestamp",
27
+ },
28
+ description: {
29
+ length: options.maxDescriptionLength,
30
+ nullable: true,
31
+ type: "varchar",
32
+ },
33
+ name: {
34
+ length: options.maxNameLength,
35
+ nullable: false,
36
+ type: "varchar",
37
+ },
38
+ updatedAt: {
39
+ default: () => "CURRENT_TIMESTAMP",
40
+ nullable: false,
41
+ type: "timestamp",
42
+ },
43
+ },
44
+ decorators: {
45
+ createdAt: [
46
+ typeorm.CreateDateColumn(),
47
+ nestjsCrudAutomator.ApiPropertyDescribe({
48
+ format: nestjsCrudAutomator.EApiPropertyDateType.DATE_TIME,
49
+ identifier: nestjsCrudAutomator.EApiPropertyDateIdentifier.CREATED_AT,
50
+ type: nestjsCrudAutomator.EApiPropertyDescribeType.DATE,
51
+ }),
52
+ ],
53
+ description: [
54
+ nestjsCrudAutomator.ApiPropertyDescribe({
55
+ description: "name",
56
+ exampleValue: "Section",
57
+ format: nestjsCrudAutomator.EApiPropertyStringType.STRING,
58
+ isNullable: true,
59
+ maxLength: options.maxDescriptionLength,
60
+ minLength: apiProperty_constant.API_PROPERTY_CONSTANT.MIN_NAME_LENGTH,
61
+ pattern: `/.{1,${options.maxDescriptionLength}}/`,
62
+ type: nestjsCrudAutomator.EApiPropertyDescribeType.STRING,
63
+ }),
64
+ ],
65
+ id: [
66
+ nestjsCrudAutomator.ApiPropertyDescribe({
67
+ type: nestjsCrudAutomator.EApiPropertyDescribeType.UUID,
68
+ }),
69
+ ],
70
+ name: [
71
+ nestjsCrudAutomator.ApiPropertyDescribe({
72
+ description: "name",
73
+ exampleValue: "section",
74
+ format: nestjsCrudAutomator.EApiPropertyStringType.STRING,
75
+ maxLength: options.maxNameLength,
76
+ minLength: apiProperty_constant.API_PROPERTY_CONSTANT.MIN_NAME_LENGTH,
77
+ pattern: `/^[a-z0-9-]{1,${options.maxNameLength}}/`,
78
+ type: nestjsCrudAutomator.EApiPropertyDescribeType.STRING,
79
+ }),
80
+ ],
81
+ updatedAt: [
82
+ typeorm.UpdateDateColumn(),
83
+ nestjsCrudAutomator.ApiPropertyDescribe({
84
+ format: nestjsCrudAutomator.EApiPropertyDateType.DATE_TIME,
85
+ identifier: nestjsCrudAutomator.EApiPropertyDateIdentifier.UPDATED_AT,
86
+ type: nestjsCrudAutomator.EApiPropertyDescribeType.DATE,
87
+ }),
88
+ ],
89
+ },
90
+ name: "ConfigSection",
91
+ tableName: options.tableName,
92
+ });
93
+ }
94
+
95
+ exports.createConfigSectionEntity = createConfigSectionEntity;
96
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sources":["../../../../../../../src/modules/config/section/entity/entity.ts"],"sourcesContent":[null],"names":["createDynamicEntityClass","CreateDateColumn","ApiPropertyDescribe","EApiPropertyDateType","EApiPropertyDateIdentifier","EApiPropertyDescribeType","EApiPropertyStringType","API_PROPERTY_CONSTANT","UpdateDateColumn"],"mappings":";;;;;;;;;;;AAcA;;;;;;;AAOG;AACG,SAAU,yBAAyB,CAAC,OAIzC,EAAA;AACA,IAAA,OAAOA,uCAAwB,CAAC;AAC/B,QAAA,OAAO,EAAE;AACR,YAAA,SAAS,EAAE;AACV,gBAAA,OAAO,EAAE,MAAM,mBAAmB;AAClC,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,IAAI,EAAE,WAAW;AACjB,aAAA;AACD,YAAA,WAAW,EAAE;gBACZ,MAAM,EAAE,OAAO,CAAC,oBAAoB;AACpC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,IAAI,EAAE,SAAS;AACf,aAAA;AACD,YAAA,IAAI,EAAE;gBACL,MAAM,EAAE,OAAO,CAAC,aAAa;AAC7B,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,aAAA;AACD,YAAA,SAAS,EAAE;AACV,gBAAA,OAAO,EAAE,MAAM,mBAAmB;AAClC,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,IAAI,EAAE,WAAW;AACjB,aAAA;AACD,SAAA;AACD,QAAA,UAAU,EAAE;AACX,YAAA,SAAS,EAAE;AACV,gBAAAC,wBAAgB,EAAE;AAClB,gBAAAC,uCAAmB,CAAC;oBACnB,MAAM,EAAEC,wCAAoB,CAAC,SAAS;oBACtC,UAAU,EAAEC,8CAA0B,CAAC,UAAU;oBACjD,IAAI,EAAEC,4CAAwB,CAAC,IAAI;iBACnC,CAAsB;AACvB,aAAA;AACD,YAAA,WAAW,EAAE;AACZ,gBAAAH,uCAAmB,CAAC;AACnB,oBAAA,WAAW,EAAE,MAAM;AACnB,oBAAA,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAEI,0CAAsB,CAAC,MAAM;AACrC,oBAAA,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,OAAO,CAAC,oBAAoB;oBACvC,SAAS,EAAEC,0CAAqB,CAAC,eAAe;AAChD,oBAAA,OAAO,EAAE,CAAA,KAAA,EAAQ,OAAO,CAAC,oBAAoB,CAAA,EAAA,CAAI;oBACjD,IAAI,EAAEF,4CAAwB,CAAC,MAAM;iBACrC,CAAsB;AACvB,aAAA;AACD,YAAA,EAAE,EAAE;AACH,gBAAAH,uCAAmB,CAAC;oBACnB,IAAI,EAAEG,4CAAwB,CAAC,IAAI;iBACnC,CAAsB;AACvB,aAAA;AACD,YAAA,IAAI,EAAE;AACL,gBAAAH,uCAAmB,CAAC;AACnB,oBAAA,WAAW,EAAE,MAAM;AACnB,oBAAA,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAEI,0CAAsB,CAAC,MAAM;oBACrC,SAAS,EAAE,OAAO,CAAC,aAAa;oBAChC,SAAS,EAAEC,0CAAqB,CAAC,eAAe;AAChD,oBAAA,OAAO,EAAE,CAAA,cAAA,EAAiB,OAAO,CAAC,aAAa,CAAA,EAAA,CAAI;oBACnD,IAAI,EAAEF,4CAAwB,CAAC,MAAM;iBACrC,CAAsB;AACvB,aAAA;AACD,YAAA,SAAS,EAAE;AACV,gBAAAG,wBAAgB,EAAE;AAClB,gBAAAN,uCAAmB,CAAC;oBACnB,MAAM,EAAEC,wCAAoB,CAAC,SAAS;oBACtC,UAAU,EAAEC,8CAA0B,CAAC,UAAU;oBACjD,IAAI,EAAEC,4CAAwB,CAAC,IAAI;iBACnC,CAAsB;AACvB,aAAA;AACD,SAAA;AACD,QAAA,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,OAAO,CAAC,SAAS;AAC5B,KAAA,CAAC;AACH;;;;"}
@@ -0,0 +1 @@
1
+ export { createConfigSectionEntity } from './entity';
@@ -0,0 +1,2 @@
1
+ export * from './entity/index';
2
+ export type * from './interface/index';
@@ -0,0 +1 @@
1
+ export type { IConfigSection } from './interface';
@@ -0,0 +1,7 @@
1
+ export interface IConfigSection {
2
+ createdAt: Date;
3
+ description: string;
4
+ id: string;
5
+ name: string;
6
+ updatedAt: Date;
7
+ }
@@ -0,0 +1,2 @@
1
+ export { type TConfigItem } from './item.type';
2
+ export { type TConfig } from './type';
@@ -0,0 +1 @@
1
+ export type TConfigItem = Record<string, string>;
@@ -0,0 +1,2 @@
1
+ import type { TConfigItem } from './item.type';
2
+ export type TConfig = Record<string, TConfigItem>;
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "commonjs",
3
+ "dependencies": {
4
+ "@elsikora/nestjs-crud-automator": "^1.10.3",
5
+ "@nestjs/cache-manager": "^3.0.1",
6
+ "@nestjs/event-emitter": "^3.0.1"
7
+ }
8
+ }