@solidstarters/solid-core 1.2.201 → 1.2.203

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 (262) hide show
  1. package/dist/config/cache.options.d.ts +1 -1
  2. package/dist/config/cache.options.d.ts.map +1 -1
  3. package/dist/config/cache.options.js +2 -2
  4. package/dist/config/cache.options.js.map +1 -1
  5. package/dist/config/iam.config.d.ts +4 -0
  6. package/dist/config/iam.config.d.ts.map +1 -1
  7. package/dist/config/iam.config.js +2 -0
  8. package/dist/config/iam.config.js.map +1 -1
  9. package/dist/controllers/model-metadata.controller.d.ts +25 -0
  10. package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
  11. package/dist/controllers/model-metadata.controller.js +23 -0
  12. package/dist/controllers/model-metadata.controller.js.map +1 -1
  13. package/dist/controllers/setting.controller.d.ts +1 -2
  14. package/dist/controllers/setting.controller.d.ts.map +1 -1
  15. package/dist/controllers/setting.controller.js +21 -42
  16. package/dist/controllers/setting.controller.js.map +1 -1
  17. package/dist/decorators/sms-provider.decorator.d.ts +3 -0
  18. package/dist/decorators/sms-provider.decorator.d.ts.map +1 -0
  19. package/dist/decorators/sms-provider.decorator.js +11 -0
  20. package/dist/decorators/sms-provider.decorator.js.map +1 -0
  21. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  22. package/dist/dtos/create-role-metadata.dto.js +1 -0
  23. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  24. package/dist/dtos/navigation.dto.d.ts +6 -0
  25. package/dist/dtos/navigation.dto.d.ts.map +1 -0
  26. package/dist/dtos/navigation.dto.js +33 -0
  27. package/dist/dtos/navigation.dto.js.map +1 -0
  28. package/dist/dtos/sign-in.dto.js +3 -3
  29. package/dist/dtos/sign-in.dto.js.map +1 -1
  30. package/dist/entities/common.entity.js +5 -4
  31. package/dist/entities/common.entity.js.map +1 -1
  32. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  33. package/dist/entities/field-metadata.entity.js +2 -1
  34. package/dist/entities/field-metadata.entity.js.map +1 -1
  35. package/dist/entities/legacy-common.entity.d.ts.map +1 -1
  36. package/dist/entities/legacy-common.entity.js +5 -4
  37. package/dist/entities/legacy-common.entity.js.map +1 -1
  38. package/dist/entities/model-metadata.entity.d.ts.map +1 -1
  39. package/dist/entities/model-metadata.entity.js +5 -1
  40. package/dist/entities/model-metadata.entity.js.map +1 -1
  41. package/dist/factories/mail.factory.d.ts.map +1 -1
  42. package/dist/factories/mail.factory.js.map +1 -1
  43. package/dist/factories/sms.factory.d.ts +14 -0
  44. package/dist/factories/sms.factory.d.ts.map +1 -0
  45. package/dist/factories/sms.factory.js +53 -0
  46. package/dist/factories/sms.factory.js.map +1 -0
  47. package/dist/helpers/date.helper.d.ts.map +1 -1
  48. package/dist/helpers/date.helper.js +13 -4
  49. package/dist/helpers/date.helper.js.map +1 -1
  50. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts +3 -0
  51. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
  52. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +99 -0
  53. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
  54. package/dist/helpers/image-encoding.helper.d.ts +10 -0
  55. package/dist/helpers/image-encoding.helper.d.ts.map +1 -0
  56. package/dist/helpers/image-encoding.helper.js +44 -0
  57. package/dist/helpers/image-encoding.helper.js.map +1 -0
  58. package/dist/helpers/module.helper.d.ts.map +1 -1
  59. package/dist/helpers/module.helper.js +2 -0
  60. package/dist/helpers/module.helper.js.map +1 -1
  61. package/dist/helpers/solid-microservice-adapter.service.d.ts +31 -0
  62. package/dist/helpers/solid-microservice-adapter.service.d.ts.map +1 -0
  63. package/dist/helpers/solid-microservice-adapter.service.js +53 -0
  64. package/dist/helpers/solid-microservice-adapter.service.js.map +1 -0
  65. package/dist/helpers/solid-registry.d.ts +3 -0
  66. package/dist/helpers/solid-registry.d.ts.map +1 -1
  67. package/dist/helpers/solid-registry.js +7 -0
  68. package/dist/helpers/solid-registry.js.map +1 -1
  69. package/dist/index.d.ts +11 -6
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +11 -6
  72. package/dist/index.js.map +1 -1
  73. package/dist/jobs/database/{sms-publisher-database.service.d.ts → msg91-sms-publisher-database.service.d.ts} +2 -2
  74. package/dist/jobs/database/msg91-sms-publisher-database.service.d.ts.map +1 -0
  75. package/dist/jobs/database/{sms-publisher-database.service.js → msg91-sms-publisher-database.service.js} +8 -8
  76. package/dist/jobs/database/msg91-sms-publisher-database.service.js.map +1 -0
  77. package/dist/jobs/database/{sms-queue-database-options.d.ts → msg91-sms-queue-database-options.d.ts} +1 -1
  78. package/dist/jobs/database/msg91-sms-queue-database-options.d.ts.map +1 -0
  79. package/dist/jobs/database/{sms-queue-database-options.js → msg91-sms-queue-database-options.js} +1 -1
  80. package/dist/jobs/database/msg91-sms-queue-database-options.js.map +1 -0
  81. package/dist/jobs/database/{sms-subscriber-database.service.d.ts → msg91-sms-subscriber-database.service.d.ts} +5 -5
  82. package/dist/jobs/database/msg91-sms-subscriber-database.service.d.ts.map +1 -0
  83. package/dist/jobs/database/{sms-subscriber-database.service.js → msg91-sms-subscriber-database.service.js} +14 -12
  84. package/dist/jobs/database/msg91-sms-subscriber-database.service.js.map +1 -0
  85. package/dist/jobs/database/otp-subscriber-database.service.d.ts +4 -4
  86. package/dist/jobs/database/otp-subscriber-database.service.d.ts.map +1 -1
  87. package/dist/jobs/database/otp-subscriber-database.service.js +6 -4
  88. package/dist/jobs/database/otp-subscriber-database.service.js.map +1 -1
  89. package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts +3 -3
  90. package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts.map +1 -1
  91. package/dist/jobs/database/twilio-sms-subscriber-database.service.js +6 -4
  92. package/dist/jobs/database/twilio-sms-subscriber-database.service.js.map +1 -1
  93. package/dist/jobs/{sms-publisher.service.d.ts → msg91-otp-publisher.service.d.ts} +2 -2
  94. package/dist/jobs/msg91-otp-publisher.service.d.ts.map +1 -0
  95. package/dist/jobs/{sms-publisher.service.js → msg91-otp-publisher.service.js} +8 -8
  96. package/dist/jobs/msg91-otp-publisher.service.js.map +1 -0
  97. package/dist/jobs/{sms-queue-options.d.ts → msg91-otp-queue-options.d.ts} +1 -1
  98. package/dist/jobs/msg91-otp-queue-options.d.ts.map +1 -0
  99. package/dist/jobs/{otp-queue-options.js → msg91-otp-queue-options.js} +1 -1
  100. package/dist/jobs/msg91-otp-queue-options.js.map +1 -0
  101. package/dist/jobs/{sms-subscriber.service.d.ts → msg91-otp-subscriber.service.d.ts} +6 -6
  102. package/dist/jobs/msg91-otp-subscriber.service.d.ts.map +1 -0
  103. package/dist/jobs/{otp-subscriber.service.js → msg91-otp-subscriber.service.js} +14 -12
  104. package/dist/jobs/msg91-otp-subscriber.service.js.map +1 -0
  105. package/dist/jobs/{otp-publisher.service.d.ts → msg91-sms-publisher.service.d.ts} +2 -2
  106. package/dist/jobs/msg91-sms-publisher.service.d.ts.map +1 -0
  107. package/dist/jobs/{otp-publisher.service.js → msg91-sms-publisher.service.js} +8 -8
  108. package/dist/jobs/msg91-sms-publisher.service.js.map +1 -0
  109. package/dist/jobs/{otp-queue-options.d.ts → msg91-sms-queue-options.d.ts} +1 -1
  110. package/dist/jobs/msg91-sms-queue-options.d.ts.map +1 -0
  111. package/dist/jobs/{sms-queue-options.js → msg91-sms-queue-options.js} +1 -1
  112. package/dist/jobs/msg91-sms-queue-options.js.map +1 -0
  113. package/dist/jobs/{otp-subscriber.service.d.ts → msg91-sms-subscriber.service.d.ts} +7 -7
  114. package/dist/jobs/msg91-sms-subscriber.service.d.ts.map +1 -0
  115. package/dist/jobs/{sms-subscriber.service.js → msg91-sms-subscriber.service.js} +14 -12
  116. package/dist/jobs/msg91-sms-subscriber.service.js.map +1 -0
  117. package/dist/jobs/twilio-sms-subscriber.service.d.ts +3 -3
  118. package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +1 -1
  119. package/dist/jobs/twilio-sms-subscriber.service.js +6 -4
  120. package/dist/jobs/twilio-sms-subscriber.service.js.map +1 -1
  121. package/dist/mappers/list-of-values-mapper.d.ts.map +1 -1
  122. package/dist/mappers/list-of-values-mapper.js +1 -1
  123. package/dist/mappers/list-of-values-mapper.js.map +1 -1
  124. package/dist/repository/security-rule.repository.d.ts.map +1 -1
  125. package/dist/repository/security-rule.repository.js +7 -2
  126. package/dist/repository/security-rule.repository.js.map +1 -1
  127. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  128. package/dist/seeders/module-metadata-seeder.service.js +24 -2
  129. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  130. package/dist/seeders/seed-data/solid-core-metadata.json +71 -25
  131. package/dist/seeders/user-seeder.service.d.ts.map +1 -1
  132. package/dist/seeders/user-seeder.service.js +5 -4
  133. package/dist/seeders/user-seeder.service.js.map +1 -1
  134. package/dist/services/authentication.service.d.ts +6 -3
  135. package/dist/services/authentication.service.d.ts.map +1 -1
  136. package/dist/services/authentication.service.js +53 -18
  137. package/dist/services/authentication.service.js.map +1 -1
  138. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
  139. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
  140. package/dist/services/crud.service.d.ts +1 -2
  141. package/dist/services/crud.service.d.ts.map +1 -1
  142. package/dist/services/crud.service.js +6 -1
  143. package/dist/services/crud.service.js.map +1 -1
  144. package/dist/services/excel.service.d.ts +1 -0
  145. package/dist/services/excel.service.d.ts.map +1 -1
  146. package/dist/services/excel.service.js +4 -0
  147. package/dist/services/excel.service.js.map +1 -1
  148. package/dist/services/model-metadata.service.d.ts +28 -1
  149. package/dist/services/model-metadata.service.d.ts.map +1 -1
  150. package/dist/services/model-metadata.service.js +109 -2
  151. package/dist/services/model-metadata.service.js.map +1 -1
  152. package/dist/services/setting.service.d.ts.map +1 -1
  153. package/dist/services/setting.service.js +3 -45
  154. package/dist/services/setting.service.js.map +1 -1
  155. package/dist/services/sms/Msg91BaseSMSService.js +6 -6
  156. package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
  157. package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
  158. package/dist/services/sms/Msg91OTPService.js +3 -1
  159. package/dist/services/sms/Msg91OTPService.js.map +1 -1
  160. package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
  161. package/dist/services/sms/Msg91SMSService.js +3 -1
  162. package/dist/services/sms/Msg91SMSService.js.map +1 -1
  163. package/dist/services/sms/TwilioSMSService.d.ts.map +1 -1
  164. package/dist/services/sms/TwilioSMSService.js +2 -0
  165. package/dist/services/sms/TwilioSMSService.js.map +1 -1
  166. package/dist/services/solid-introspect.service.d.ts +1 -0
  167. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  168. package/dist/services/solid-introspect.service.js +14 -0
  169. package/dist/services/solid-introspect.service.js.map +1 -1
  170. package/dist/services/user.service.d.ts +8 -1
  171. package/dist/services/user.service.d.ts.map +1 -1
  172. package/dist/services/user.service.js +15 -4
  173. package/dist/services/user.service.js.map +1 -1
  174. package/dist/solid-core-cli.module.js +1 -1
  175. package/dist/solid-core-cli.module.js.map +1 -1
  176. package/dist/solid-core.module.d.ts.map +1 -1
  177. package/dist/solid-core.module.js +29 -13
  178. package/dist/solid-core.module.js.map +1 -1
  179. package/dist/subscribers/scheduled-job.subscriber.d.ts.map +1 -1
  180. package/dist/subscribers/scheduled-job.subscriber.js +1 -1
  181. package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
  182. package/dist/transformers/typeorm/local-date-time-transformer.d.ts +2 -2
  183. package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
  184. package/dist/transformers/typeorm/local-date-time-transformer.js +28 -6
  185. package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
  186. package/dist/tsconfig.tsbuildinfo +1 -1
  187. package/package.json +1 -1
  188. package/src/config/cache.options.ts +6 -3
  189. package/src/config/iam.config.ts +2 -1
  190. package/src/controllers/model-metadata.controller.ts +21 -1
  191. package/src/controllers/setting.controller.ts +32 -36
  192. package/src/decorators/sms-provider.decorator.ts +7 -0
  193. package/src/dtos/create-role-metadata.dto.ts +3 -0
  194. package/src/dtos/navigation.dto.ts +14 -0
  195. package/src/dtos/sign-in.dto.ts +3 -3
  196. package/src/entities/common.entity.ts +7 -7
  197. package/src/entities/field-metadata.entity.ts +1 -1
  198. package/src/entities/legacy-common.entity.ts +6 -5
  199. package/src/entities/model-metadata.entity.ts +1 -1
  200. package/src/factories/mail.factory.ts +0 -1
  201. package/src/factories/sms.factory.ts +43 -0
  202. package/src/helpers/date.helper.ts +38 -9
  203. package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +138 -4
  204. package/src/helpers/image-encoding.helper.ts +71 -0
  205. package/src/helpers/module.helper.ts +3 -0
  206. package/src/helpers/solid-microservice-adapter.service.ts +68 -0
  207. package/src/helpers/solid-registry.ts +9 -0
  208. package/src/index.ts +11 -6
  209. package/src/jobs/database/{sms-publisher-database.service.ts → msg91-sms-publisher-database.service.ts} +2 -2
  210. package/src/jobs/database/{sms-subscriber-database.service.ts → msg91-sms-subscriber-database.service.ts} +9 -4
  211. package/src/jobs/database/otp-subscriber-database.service.ts +8 -2
  212. package/src/jobs/database/twilio-sms-subscriber-database.service.ts +5 -2
  213. package/src/jobs/{otp-publisher.service.ts → msg91-otp-publisher.service.ts} +2 -2
  214. package/src/jobs/{otp-subscriber.service.ts → msg91-otp-subscriber.service.ts} +10 -4
  215. package/src/jobs/{sms-publisher.service.ts → msg91-sms-publisher.service.ts} +2 -2
  216. package/src/jobs/{sms-subscriber.service.ts → msg91-sms-subscriber.service.ts} +9 -4
  217. package/src/jobs/twilio-sms-subscriber.service.ts +6 -2
  218. package/src/mappers/list-of-values-mapper.ts +2 -1
  219. package/src/repository/security-rule.repository.ts +7 -2
  220. package/src/seeders/module-metadata-seeder.service.ts +33 -6
  221. package/src/seeders/seed-data/email-templates/email-on-signup.handlebars.html +155 -0
  222. package/src/seeders/seed-data/sms-templates/text-on-signup.handlebars.txt +10 -0
  223. package/src/seeders/seed-data/solid-core-metadata.json +72 -26
  224. package/src/seeders/user-seeder.service.ts +5 -4
  225. package/src/services/1.js +6 -0
  226. package/src/services/authentication.service.ts +80 -15
  227. package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +1 -2
  228. package/src/services/crud.service.ts +23 -19
  229. package/src/services/excel.service.ts +6 -0
  230. package/src/services/model-metadata.service.ts +151 -0
  231. package/src/services/setting.service.ts +12 -52
  232. package/src/services/sms/Msg91BaseSMSService.ts +6 -6
  233. package/src/services/sms/Msg91OTPService.ts +3 -2
  234. package/src/services/sms/Msg91SMSService.ts +3 -1
  235. package/src/services/sms/TwilioSMSService.ts +3 -3
  236. package/src/services/solid-introspect.service.ts +22 -0
  237. package/src/services/user.service.ts +19 -0
  238. package/src/solid-core-cli.module.ts +2 -2
  239. package/src/solid-core.module.ts +33 -13
  240. package/src/subscribers/scheduled-job.subscriber.ts +9 -2
  241. package/src/transformers/typeorm/local-date-time-transformer.ts +38 -13
  242. package/dist/jobs/database/sms-publisher-database.service.d.ts.map +0 -1
  243. package/dist/jobs/database/sms-publisher-database.service.js.map +0 -1
  244. package/dist/jobs/database/sms-queue-database-options.d.ts.map +0 -1
  245. package/dist/jobs/database/sms-queue-database-options.js.map +0 -1
  246. package/dist/jobs/database/sms-subscriber-database.service.d.ts.map +0 -1
  247. package/dist/jobs/database/sms-subscriber-database.service.js.map +0 -1
  248. package/dist/jobs/otp-publisher.service.d.ts.map +0 -1
  249. package/dist/jobs/otp-publisher.service.js.map +0 -1
  250. package/dist/jobs/otp-queue-options.d.ts.map +0 -1
  251. package/dist/jobs/otp-queue-options.js.map +0 -1
  252. package/dist/jobs/otp-subscriber.service.d.ts.map +0 -1
  253. package/dist/jobs/otp-subscriber.service.js.map +0 -1
  254. package/dist/jobs/sms-publisher.service.d.ts.map +0 -1
  255. package/dist/jobs/sms-publisher.service.js.map +0 -1
  256. package/dist/jobs/sms-queue-options.d.ts.map +0 -1
  257. package/dist/jobs/sms-queue-options.js.map +0 -1
  258. package/dist/jobs/sms-subscriber.service.d.ts.map +0 -1
  259. package/dist/jobs/sms-subscriber.service.js.map +0 -1
  260. /package/src/jobs/database/{sms-queue-database-options.ts → msg91-sms-queue-database-options.ts} +0 -0
  261. /package/src/jobs/{otp-queue-options.ts → msg91-otp-queue-options.ts} +0 -0
  262. /package/src/jobs/{sms-queue-options.ts → msg91-sms-queue-options.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"common.entity.js","sourceRoot":"","sources":["../../src/entities/common.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAAiI;AAEjI,yDAA0D;AAGnD,IAAe,YAAY,GAA3B,MAAe,YAAY;;;;CA+CjC,CAAA;AA/CqB,oCAAY;AAG9B;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gCAAsB,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;wCAClC;AAGV;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;+CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;+CAAC;AAIhB;IAFC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACxC,IAAA,eAAK,GAAE;8BACG,IAAI;+CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;;oDACpC;AAIvB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACnD,IAAI;iDAAC;AAIlB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;gDAC7C;AAInB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2DAC3C;AAc9B;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAChC;AAIlB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAChC;uBA9CA,YAAY;IADjC,IAAA,2BAAO,GAAE;GACY,YAAY,CA+CjC","sourcesContent":["import { Column, CreateDateColumn, DeleteDateColumn, Index, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from \"typeorm\";\nimport type { User } from \"./user.entity\";\nimport { Exclude, Expose, Type } from \"class-transformer\";\n\n@Exclude()\nexport abstract class CommonEntity {\n @Expose()\n @PrimaryGeneratedColumn({ type: 'integer' })\n id: number\n\n @CreateDateColumn({ name: \"created_at\" })\n createdAt: Date;\n\n @UpdateDateColumn({ name: \"updated_at\" })\n updatedAt: Date;\n\n @DeleteDateColumn({ name: \"deleted_at\" })\n @Index()\n deletedAt: Date;\n\n @Column({ name: \"deletedTracker\", default: \"not-deleted\" })\n deletedTracker: string;\n\n @Expose()\n @Column({ name: 'published_at', default: null, nullable: true })\n publishedAt: Date;\n\n @Expose()\n @Column({ type: \"varchar\", name: 'locale_name', default: null })\n localeName: string;\n\n @Expose()\n @Column({ type: \"int\", name: 'default_entity_locale_id', default: null })\n defaultEntityLocaleId: number;\n\n // @Expose()\n // @Type( () => require('./user.entity').User?.default ?? require('./user.entity').User )\n // @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n // createdBy: User;\n\n // @Expose()\n // @Type( () => require('./user.entity').User?.default ?? require('./user.entity').User )\n // @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n // updatedBy: User;\n\n @Expose()\n @Column({ name: `created_by_id`, nullable: true })\n createdBy: number;\n\n @Expose()\n @Column({ name: `updated_by_id`, nullable: true })\n updatedBy: number;\n}\n"]}
1
+ {"version":3,"file":"common.entity.js","sourceRoot":"","sources":["../../src/entities/common.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAAsH;AACtH,yDAAoD;AACpD,qGAAgG;AAGzF,IAAe,YAAY,GAA3B,MAAe,YAAY;;;;CA+CjC,CAAA;AA/CqB,oCAAY;AAG9B;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gCAAsB,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;wCAClC;AAGV;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,sDAAwB,EAAE,CAAC;8BACrE,IAAI;+CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,sDAAwB,EAAE,CAAC;8BACrE,IAAI;+CAAC;AAIhB;IAFC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,sDAAwB,EAAE,CAAC;IAC/E,IAAA,eAAK,GAAE;8BACG,IAAI;+CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;;oDACpC;AAIvB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sDAAwB,EAAE,CAAC;8BAC1F,IAAI;iDAAC;AAIlB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;gDAC7C;AAInB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2DAC3C;AAc9B;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAChC;AAIlB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAChC;uBA9CA,YAAY;IADjC,IAAA,2BAAO,GAAE;GACY,YAAY,CA+CjC","sourcesContent":["import { Column, CreateDateColumn, DeleteDateColumn, Index, PrimaryGeneratedColumn, UpdateDateColumn } from \"typeorm\";\nimport { Exclude, Expose } from \"class-transformer\";\nimport { LocalDateTimeTransformer } from \"src/transformers/typeorm/local-date-time-transformer\";\n\n@Exclude()\nexport abstract class CommonEntity {\n @Expose()\n @PrimaryGeneratedColumn({ type: 'integer' })\n id: number\n\n @CreateDateColumn({ name: \"created_at\", transformer: LocalDateTimeTransformer })\n createdAt: Date;\n\n @UpdateDateColumn({ name: \"updated_at\", transformer: LocalDateTimeTransformer })\n updatedAt: Date;\n\n @DeleteDateColumn({ name: \"deleted_at\", transformer: LocalDateTimeTransformer })\n @Index()\n deletedAt: Date;\n\n @Column({ name: \"deletedTracker\", default: \"not-deleted\" })\n deletedTracker: string;\n\n @Expose()\n @Column({ name: 'published_at', default: null, nullable: true, transformer: LocalDateTimeTransformer })\n publishedAt: Date;\n\n @Expose()\n @Column({ type: \"varchar\", name: 'locale_name', default: null })\n localeName: string;\n\n @Expose()\n @Column({ type: \"int\", name: 'default_entity_locale_id', default: null })\n defaultEntityLocaleId: number;\n\n // @Expose()\n // @Type( () => require('./user.entity').User?.default ?? require('./user.entity').User )\n // @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n // createdBy: User;\n\n // @Expose()\n // @Type( () => require('./user.entity').User?.default ?? require('./user.entity').User )\n // @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n // updatedBy: User;\n\n @Expose()\n @Column({ name: `created_by_id`, nullable: true })\n createdBy: number;\n\n @Expose()\n @Column({ name: `updated_by_id`, nullable: true })\n updatedBy: number;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"field-metadata.entity.d.ts","sourceRoot":"","sources":["../../src/entities/field-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,qBACa,aAAc,SAAQ,YAAY;IAI3C,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;IAIpB,IAAI,EAAE,MAAM,CAAC;IAGb,OAAO,EAAE,MAAM,CAAC;IAKhB,KAAK,EAAE,aAAa,CAAC;IAGrB,YAAY,EAAE,MAAM,CAAC;IAGrB,YAAY,EAAE,MAAM,CAAC;IAGrB,+BAA+B,EAAE,MAAM,CAAC;IAGxC,QAAQ,EAAE,OAAO,CAAC;IAGlB,MAAM,EAAE,OAAO,CAAC;IAGhB,OAAO,EAAE,OAAO,CAAC;IAGjB,cAAc,EAAE,MAAM,CAAC;IAGvB,WAAW,EAAE,MAAM,CAAC;IAGpB,KAAK,EAAE,OAAO,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IAGf,GAAG,EAAE,MAAM,CAAC;IAGZ,GAAG,EAAE,MAAM,CAAC;IAGZ,OAAO,EAAE,OAAO,CAAC;IAGjB,UAAU,EAAE,MAAM,EAAE,CAAC;IAGrB,cAAc,EAAE,MAAM,CAAC;IAIvB,oBAAoB,EAAE,4BAA4B,CAAC;IAMnD,YAAY,EAAE,MAAM,CAAC;IAGrB,2BAA2B,EAAE,MAAM,CAAC;IAGpC,qBAAqB,EAAE,OAAO,CAAC;IAG/B,eAAe,EAAE,MAAM,CAAC;IAGxB,uBAAuB,EAAE,MAAM,CAAC;IAIhC,wBAAwB,EAAE,MAAM,CAAC;IAGjC,yBAAyB,EAAE,OAAO,CAAC;IAMnC,wBAAwB,EAAE,MAAM,CAAC;IAGjC,wBAAwB,EAAE,MAAM,CAAC;IAGjC,4BAA4B,EAAE,MAAM,CAAC;IAGrC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAGhC,kBAAkB,EAAE,MAAM,CAAY;IAMtC,0BAA0B,EAAE,MAAM,CAAC;IAGnC,8BAA8B,EAAE,MAAM,CAAC;IAGvC,sBAAsB,EAAE,MAAM,CAAC;IAG/B,0BAA0B,EAAE,0BAA0B,EAAE,CAAC;IAGzD,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,OAAO,CAAC;IAGlB,kBAAkB,EAAE,OAAO,CAAC;IAG5B,UAAU,EAAE,MAAM,CAAC;IAGnB,yBAAyB,EAAE,MAAM,CAAC;IAGlC,SAAS,EAAE,OAAO,CAAC;IAGnB,qBAAqB,EAAE,MAAM,CAAC;IAG9B,mBAAmB,EAAE,OAAO,CAAC;IAG7B,aAAa,EAAE,OAAO,CAAC;IAGvB,YAAY,EAAE,OAAO,CAAC;CACzB"}
1
+ {"version":3,"file":"field-metadata.entity.d.ts","sourceRoot":"","sources":["../../src/entities/field-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,qBACa,aAAc,SAAQ,YAAY;IAI3C,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;IAIpB,IAAI,EAAE,MAAM,CAAC;IAGb,OAAO,EAAE,MAAM,CAAC;IAKhB,KAAK,EAAE,aAAa,CAAC;IAGrB,YAAY,EAAE,MAAM,CAAC;IAGrB,YAAY,EAAE,MAAM,CAAC;IAGrB,+BAA+B,EAAE,MAAM,CAAC;IAGxC,QAAQ,EAAE,OAAO,CAAC;IAGlB,MAAM,EAAE,OAAO,CAAC;IAGhB,OAAO,EAAE,OAAO,CAAC;IAGjB,cAAc,EAAE,MAAM,CAAC;IAGvB,WAAW,EAAE,MAAM,CAAC;IAGpB,KAAK,EAAE,OAAO,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IAGf,GAAG,EAAE,MAAM,CAAC;IAGZ,GAAG,EAAE,MAAM,CAAC;IAGZ,OAAO,EAAE,OAAO,CAAC;IAGjB,UAAU,EAAE,MAAM,EAAE,CAAC;IAGrB,cAAc,EAAE,MAAM,CAAC;IAIvB,oBAAoB,EAAE,4BAA4B,CAAC;IAMnD,YAAY,EAAE,MAAM,CAAC;IAGrB,2BAA2B,EAAE,MAAM,CAAC;IAGpC,qBAAqB,EAAE,OAAO,CAAC;IAG/B,eAAe,EAAE,MAAM,CAAC;IAGxB,uBAAuB,EAAE,MAAM,CAAC;IAIhC,wBAAwB,EAAE,MAAM,CAAC;IAGjC,yBAAyB,EAAE,OAAO,CAAC;IAMnC,wBAAwB,EAAE,MAAM,CAAC;IAGjC,wBAAwB,EAAE,MAAM,CAAC;IAGjC,4BAA4B,EAAE,MAAM,CAAC;IAGrC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAGhC,kBAAkB,EAAE,MAAM,CAAY;IAMtC,0BAA0B,EAAE,MAAM,CAAC;IAGnC,8BAA8B,EAAE,MAAM,CAAC;IAGvC,sBAAsB,EAAE,MAAM,CAAC;IAG/B,0BAA0B,EAAE,0BAA0B,EAAE,CAAC;IAGzD,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,OAAO,CAAC;IAGlB,kBAAkB,EAAE,OAAO,CAAC;IAG5B,UAAU,EAAE,MAAM,CAAC;IAGnB,yBAAyB,EAAE,MAAM,CAAC;IAGlC,SAAS,EAAE,OAAO,CAAC;IAGnB,qBAAqB,EAAE,MAAM,CAAC;IAG9B,mBAAmB,EAAE,OAAO,CAAS;IAGrC,aAAa,EAAE,OAAO,CAAC;IAGvB,YAAY,EAAE,OAAO,CAAC;CACzB"}
@@ -20,9 +20,10 @@ let FieldMetadata = class FieldMetadata extends common_entity_1.CommonEntity {
20
20
  constructor() {
21
21
  super(...arguments);
22
22
  this.selectionValueType = 'string';
23
+ this.enableAuditTracking = false;
23
24
  }
24
25
  static _OPENAPI_METADATA_FACTORY() {
25
- return { name: { required: true, type: () => String }, displayName: { required: true, type: () => String }, description: { required: true, type: () => String }, type: { required: true, type: () => String }, ormType: { required: true, type: () => String }, model: { required: true, type: () => require("./model-metadata.entity").ModelMetadata }, defaultValue: { required: true, type: () => String }, regexPattern: { required: true, type: () => String }, regexPatternNotMatchingErrorMsg: { required: true, type: () => String }, required: { required: true, type: () => Boolean }, unique: { required: true, type: () => Boolean }, encrypt: { required: true, type: () => Boolean }, encryptionType: { required: true, type: () => String }, decryptWhen: { required: true, type: () => String }, index: { required: true, type: () => Boolean }, length: { required: true, type: () => Number }, max: { required: true, type: () => Number }, min: { required: true, type: () => Number }, private: { required: true, type: () => Boolean }, mediaTypes: { required: true, type: () => [String] }, mediaMaxSizeKb: { required: true, type: () => Number }, mediaStorageProvider: { required: true, type: () => require("./media-storage-provider-metadata.entity").MediaStorageProviderMetadata }, relationType: { required: true, type: () => String }, relationCoModelSingularName: { required: true, type: () => String }, relationCreateInverse: { required: true, type: () => Boolean }, relationCascade: { required: true, type: () => String }, relationModelModuleName: { required: true, type: () => String }, relationCoModelFieldName: { required: true, type: () => String }, isRelationManyToManyOwner: { required: true, type: () => Boolean }, relationFieldFixedFilter: { required: true, type: () => String }, selectionDynamicProvider: { required: true, type: () => String }, selectionDynamicProviderCtxt: { required: true, type: () => String }, selectionStaticValues: { required: true, type: () => [String] }, selectionValueType: { required: true, type: () => String, default: "string" }, computedFieldValueProvider: { required: true, type: () => String }, computedFieldValueProviderCtxt: { required: true, type: () => String }, computedFieldValueType: { required: true, type: () => String }, computedFieldTriggerConfig: { required: true, type: () => [require("../dtos/create-field-metadata.dto").ComputedFieldTriggerConfig] }, uuid: { required: true, type: () => String }, isSystem: { required: true, type: () => Boolean }, isMarkedForRemoval: { required: true, type: () => Boolean }, columnName: { required: true, type: () => String }, relationCoModelColumnName: { required: true, type: () => String }, isUserKey: { required: true, type: () => Boolean }, relationJoinTableName: { required: true, type: () => String }, enableAuditTracking: { required: true, type: () => Boolean }, isMultiSelect: { required: true, type: () => Boolean }, isPrimaryKey: { required: true, type: () => Boolean } };
26
+ return { name: { required: true, type: () => String }, displayName: { required: true, type: () => String }, description: { required: true, type: () => String }, type: { required: true, type: () => String }, ormType: { required: true, type: () => String }, model: { required: true, type: () => require("./model-metadata.entity").ModelMetadata }, defaultValue: { required: true, type: () => String }, regexPattern: { required: true, type: () => String }, regexPatternNotMatchingErrorMsg: { required: true, type: () => String }, required: { required: true, type: () => Boolean }, unique: { required: true, type: () => Boolean }, encrypt: { required: true, type: () => Boolean }, encryptionType: { required: true, type: () => String }, decryptWhen: { required: true, type: () => String }, index: { required: true, type: () => Boolean }, length: { required: true, type: () => Number }, max: { required: true, type: () => Number }, min: { required: true, type: () => Number }, private: { required: true, type: () => Boolean }, mediaTypes: { required: true, type: () => [String] }, mediaMaxSizeKb: { required: true, type: () => Number }, mediaStorageProvider: { required: true, type: () => require("./media-storage-provider-metadata.entity").MediaStorageProviderMetadata }, relationType: { required: true, type: () => String }, relationCoModelSingularName: { required: true, type: () => String }, relationCreateInverse: { required: true, type: () => Boolean }, relationCascade: { required: true, type: () => String }, relationModelModuleName: { required: true, type: () => String }, relationCoModelFieldName: { required: true, type: () => String }, isRelationManyToManyOwner: { required: true, type: () => Boolean }, relationFieldFixedFilter: { required: true, type: () => String }, selectionDynamicProvider: { required: true, type: () => String }, selectionDynamicProviderCtxt: { required: true, type: () => String }, selectionStaticValues: { required: true, type: () => [String] }, selectionValueType: { required: true, type: () => String, default: "string" }, computedFieldValueProvider: { required: true, type: () => String }, computedFieldValueProviderCtxt: { required: true, type: () => String }, computedFieldValueType: { required: true, type: () => String }, computedFieldTriggerConfig: { required: true, type: () => [require("../dtos/create-field-metadata.dto").ComputedFieldTriggerConfig] }, uuid: { required: true, type: () => String }, isSystem: { required: true, type: () => Boolean }, isMarkedForRemoval: { required: true, type: () => Boolean }, columnName: { required: true, type: () => String }, relationCoModelColumnName: { required: true, type: () => String }, isUserKey: { required: true, type: () => Boolean }, relationJoinTableName: { required: true, type: () => String }, enableAuditTracking: { required: true, type: () => Boolean, default: false }, isMultiSelect: { required: true, type: () => Boolean }, isPrimaryKey: { required: true, type: () => Boolean } };
26
27
  }
27
28
  };
28
29
  exports.FieldMetadata = FieldMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"field-metadata.entity.js","sourceRoot":"","sources":["../../src/entities/field-metadata.entity.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputedFieldTriggerConfig } from \"src/dtos/create-field-metadata.dto\";\nimport { CommonEntity } from \"src/entities/common.entity\";\nimport { Column, Entity, Index, JoinColumn, ManyToOne } from \"typeorm\";\nimport { MediaStorageProviderMetadata } from \"./media-storage-provider-metadata.entity\";\nimport { ModelMetadata } from \"./model-metadata.entity\";\nimport { ERROR_MESSAGES } from \"src/constants/error-messages\";\n\n@Entity(\"ss_field_metadata\")\nexport class FieldMetadata extends CommonEntity {\n\n // @Index({ unique: true })\n @Column({ name: \"name\" })\n name: string;\n\n @Column({ name: \"display_name\" })\n displayName: string;\n\n @Column({ name: \"description\", nullable: true, length: 1024 })\n description: string;\n\n /** int, char etc... */\n @Column({ name: 'type' })\n type: string;\n\n @Column({ name: 'orm_type', nullable: true })\n ormType: string;\n\n @Index()\n @ManyToOne(() => ModelMetadata, (model) => model.fields, { onDelete: 'CASCADE' })\n @JoinColumn({ name: 'model_id', referencedColumnName: 'id' })\n model: ModelMetadata;\n\n @Column({ name: 'default_value', nullable: true })\n defaultValue: string;\n\n @Column({ name: 'regex_pattern', nullable: true })\n regexPattern: string;\n\n @Column({ name: 'regex_pattern_not_matching_error_msg', type: 'text', nullable: true, default: ERROR_MESSAGES.DEFAULT_REGEX_PATTERN_NOT_MATCHING_ERROR_MSG })\n regexPatternNotMatchingErrorMsg: string;\n\n @Column({ name: \"required\", default: false })\n required: boolean;\n\n @Column({ name: \"unique\", default: false })\n unique: boolean;\n\n @Column({ name: \"encrypt\", default: false })\n encrypt: boolean;\n\n @Column({ name: 'encryption_type', nullable: true })\n encryptionType: string;\n\n @Column({ name: 'decrypt_when', nullable: true })\n decryptWhen: string;\n\n @Column({ name: \"index\", default: false })\n index: boolean;\n\n @Column({ name: 'length', nullable: true })\n length: number;\n\n @Column({ name: 'max', nullable: true })\n max: number;\n\n @Column({ name: 'min', nullable: true })\n min: number;\n\n @Column({ name: \"private\", default: false })\n private: boolean;\n\n @Column({ name: 'media_types', nullable: true, type: \"simple-json\" })\n mediaTypes: string[];\n\n @Column({ name: 'media_max_size_kb', nullable: true })\n mediaMaxSizeKb: number;\n\n @ManyToOne(() => MediaStorageProviderMetadata, { onDelete: 'SET NULL' })\n @JoinColumn({ name: 'media_storage_provider_id' })\n mediaStorageProvider: MediaStorageProviderMetadata;\n\n // @Column({ name: 'media_embedded', default: true })\n // mediaEmbedded: boolean;\n\n @Column({ name: 'relation_type', nullable: true })\n relationType: string;\n\n @Column({ name: 'relation_model_singular_name', nullable: true })\n relationCoModelSingularName: string;\n\n @Column({ name: \"relation_create_inverse\", default: false })\n relationCreateInverse: boolean;\n\n @Column({ name: \"relation_cascade\", nullable: true })\n relationCascade: string;\n\n @Column({ name: 'relation_model_module_name', nullable: true })\n relationModelModuleName: string;\n\n // This field will be used to set the inverse field name in the related model e.g required for many to many relation\n @Column({ name: 'relation_model_field_name', nullable: true })\n relationCoModelFieldName: string;\n\n @Column({ name: 'is_relation_many_to_many_owner', nullable: true })\n isRelationManyToManyOwner: boolean;\n\n // We can store a filter json like this {\"fieldName\": ${someVarWhichWillComeFromParentModel... or can be hard coded...}}\n // {\"type\": \"INDUSTRY\"} .... Eg. static fixedFilter \n // {\"country_id\", \"${country}\"} ... Eg. dynamic fixedFilter \n @Column({ name: 'relation_field_fixed_filter', nullable: true })\n relationFieldFixedFilter: string;\n\n @Column({ name: 'selection_dynamic_provider', nullable: true })\n selectionDynamicProvider: string;\n\n @Column({ name: 'selection_dynamic_provider_ctxt', nullable: true })\n selectionDynamicProviderCtxt: string;\n\n @Column({ name: 'selection_static_values', nullable: true, type: 'simple-array' })\n selectionStaticValues: string[];\n\n @Column({ name: 'selection_value_type', nullable: true, type: 'text' }) // text type cannot have a default value\n selectionValueType: string = 'string';\n\n // @Column({ name: \"computed\", default: false })\n // computed: boolean;\n\n @Column({ name: 'computed_field_value_provider', nullable: true })\n computedFieldValueProvider: string;\n\n @Column({ name: 'computed_field_value_provider_ctxt', nullable: true })\n computedFieldValueProviderCtxt: string;\n\n @Column({ name: 'computed_field_value_type', nullable: true })\n computedFieldValueType: string;\n\n @Column({ name: 'computed_field_trigger_config', nullable: true, type: 'simple-json' })\n computedFieldTriggerConfig: ComputedFieldTriggerConfig[];\n\n @Column({ name: 'uuid', nullable: true })\n uuid: string;\n\n @Column({ default: false })\n isSystem: boolean;\n\n @Column({ default: false })\n isMarkedForRemoval: boolean;\n\n @Column({ name: 'column_name', nullable: true })\n columnName: string;\n\n @Column({ name: 'relation_co_model_column_name', nullable: true })\n relationCoModelColumnName: string;\n\n @Column({ name: \"is_user_key\", default: false })\n isUserKey: boolean;\n\n @Column({ name: 'relation_join_table_name', nullable: true })\n relationJoinTableName: string;\n\n @Column({ name: 'enable_audit_tracking', default: false })\n enableAuditTracking: boolean;\n\n @Column({ name: \"is_multiSelect\", default: false })\n isMultiSelect: boolean;\n\n @Column({ name: \"is_primary_key\", default: false })\n isPrimaryKey: boolean;\n}"]}
1
+ {"version":3,"file":"field-metadata.entity.js","sourceRoot":"","sources":["../../src/entities/field-metadata.entity.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputedFieldTriggerConfig } from \"src/dtos/create-field-metadata.dto\";\nimport { CommonEntity } from \"src/entities/common.entity\";\nimport { Column, Entity, Index, JoinColumn, ManyToOne } from \"typeorm\";\nimport { MediaStorageProviderMetadata } from \"./media-storage-provider-metadata.entity\";\nimport { ModelMetadata } from \"./model-metadata.entity\";\nimport { ERROR_MESSAGES } from \"src/constants/error-messages\";\n\n@Entity(\"ss_field_metadata\")\nexport class FieldMetadata extends CommonEntity {\n\n // @Index({ unique: true })\n @Column({ name: \"name\" })\n name: string;\n\n @Column({ name: \"display_name\" })\n displayName: string;\n\n @Column({ name: \"description\", nullable: true, length: 1024 })\n description: string;\n\n /** int, char etc... */\n @Column({ name: 'type' })\n type: string;\n\n @Column({ name: 'orm_type', nullable: true })\n ormType: string;\n\n @Index()\n @ManyToOne(() => ModelMetadata, (model) => model.fields, { onDelete: 'CASCADE' })\n @JoinColumn({ name: 'model_id', referencedColumnName: 'id' })\n model: ModelMetadata;\n\n @Column({ name: 'default_value', nullable: true })\n defaultValue: string;\n\n @Column({ name: 'regex_pattern', nullable: true })\n regexPattern: string;\n\n @Column({ name: 'regex_pattern_not_matching_error_msg', type: 'text', nullable: true, default: ERROR_MESSAGES.DEFAULT_REGEX_PATTERN_NOT_MATCHING_ERROR_MSG })\n regexPatternNotMatchingErrorMsg: string;\n\n @Column({ name: \"required\", default: false })\n required: boolean;\n\n @Column({ name: \"unique\", default: false })\n unique: boolean;\n\n @Column({ name: \"encrypt\", default: false })\n encrypt: boolean;\n\n @Column({ name: 'encryption_type', nullable: true })\n encryptionType: string;\n\n @Column({ name: 'decrypt_when', nullable: true })\n decryptWhen: string;\n\n @Column({ name: \"index\", default: false })\n index: boolean;\n\n @Column({ name: 'length', nullable: true })\n length: number;\n\n @Column({ name: 'max', nullable: true })\n max: number;\n\n @Column({ name: 'min', nullable: true })\n min: number;\n\n @Column({ name: \"private\", default: false })\n private: boolean;\n\n @Column({ name: 'media_types', nullable: true, type: \"simple-json\" })\n mediaTypes: string[];\n\n @Column({ name: 'media_max_size_kb', nullable: true })\n mediaMaxSizeKb: number;\n\n @ManyToOne(() => MediaStorageProviderMetadata, { onDelete: 'SET NULL' })\n @JoinColumn({ name: 'media_storage_provider_id' })\n mediaStorageProvider: MediaStorageProviderMetadata;\n\n // @Column({ name: 'media_embedded', default: true })\n // mediaEmbedded: boolean;\n\n @Column({ name: 'relation_type', nullable: true })\n relationType: string;\n\n @Column({ name: 'relation_model_singular_name', nullable: true })\n relationCoModelSingularName: string;\n\n @Column({ name: \"relation_create_inverse\", default: false })\n relationCreateInverse: boolean;\n\n @Column({ name: \"relation_cascade\", nullable: true })\n relationCascade: string;\n\n @Column({ name: 'relation_model_module_name', nullable: true })\n relationModelModuleName: string;\n\n // This field will be used to set the inverse field name in the related model e.g required for many to many relation\n @Column({ name: 'relation_model_field_name', nullable: true })\n relationCoModelFieldName: string;\n\n @Column({ name: 'is_relation_many_to_many_owner', nullable: true })\n isRelationManyToManyOwner: boolean;\n\n // We can store a filter json like this {\"fieldName\": ${someVarWhichWillComeFromParentModel... or can be hard coded...}}\n // {\"type\": \"INDUSTRY\"} .... Eg. static fixedFilter \n // {\"country_id\", \"${country}\"} ... Eg. dynamic fixedFilter \n @Column({ name: 'relation_field_fixed_filter', nullable: true })\n relationFieldFixedFilter: string;\n\n @Column({ name: 'selection_dynamic_provider', nullable: true })\n selectionDynamicProvider: string;\n\n @Column({ name: 'selection_dynamic_provider_ctxt', nullable: true })\n selectionDynamicProviderCtxt: string;\n\n @Column({ name: 'selection_static_values', nullable: true, type: 'simple-array' })\n selectionStaticValues: string[];\n\n @Column({ name: 'selection_value_type', nullable: true, type: 'text' }) // text type cannot have a default value\n selectionValueType: string = 'string';\n\n // @Column({ name: \"computed\", default: false })\n // computed: boolean;\n\n @Column({ name: 'computed_field_value_provider', nullable: true })\n computedFieldValueProvider: string;\n\n @Column({ name: 'computed_field_value_provider_ctxt', nullable: true })\n computedFieldValueProviderCtxt: string;\n\n @Column({ name: 'computed_field_value_type', nullable: true })\n computedFieldValueType: string;\n\n @Column({ name: 'computed_field_trigger_config', nullable: true, type: 'simple-json' })\n computedFieldTriggerConfig: ComputedFieldTriggerConfig[];\n\n @Column({ name: 'uuid', nullable: true })\n uuid: string;\n\n @Column({ default: false })\n isSystem: boolean;\n\n @Column({ default: false })\n isMarkedForRemoval: boolean;\n\n @Column({ name: 'column_name', nullable: true })\n columnName: string;\n\n @Column({ name: 'relation_co_model_column_name', nullable: true })\n relationCoModelColumnName: string;\n\n @Column({ name: \"is_user_key\", default: false })\n isUserKey: boolean;\n\n @Column({ name: 'relation_join_table_name', nullable: true })\n relationJoinTableName: string;\n\n @Column({ name: 'enable_audit_tracking', default: false })\n enableAuditTracking: boolean = false;\n\n @Column({ name: \"is_multiSelect\", default: false })\n isMultiSelect: boolean;\n\n @Column({ name: \"is_primary_key\", default: false })\n isPrimaryKey: boolean;\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-common.entity.d.ts","sourceRoot":"","sources":["../../src/entities/legacy-common.entity.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,8BACsB,kBAAkB;IAOpC,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAIhB,SAAS,EAAE,IAAI,CAAC;IAGhB,cAAc,EAAE,MAAM,CAAC;IAIvB,WAAW,EAAE,IAAI,CAAC;IAIlB,UAAU,EAAE,MAAM,CAAC;IAInB,qBAAqB,EAAE,MAAM,CAAC;IAgB9B,SAAS,EAAE,MAAM,CAAC;IAIlB,SAAS,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"legacy-common.entity.d.ts","sourceRoot":"","sources":["../../src/entities/legacy-common.entity.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,8BACsB,kBAAkB;IAOpC,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAIhB,SAAS,EAAE,IAAI,CAAC;IAGhB,cAAc,EAAE,MAAM,CAAC;IAIvB,WAAW,EAAE,IAAI,CAAC;IAIlB,UAAU,EAAE,MAAM,CAAC;IAInB,qBAAqB,EAAE,MAAM,CAAC;IAgB9B,SAAS,EAAE,MAAM,CAAC;IAIlB,SAAS,EAAE,MAAM,CAAC;CACrB"}
@@ -13,6 +13,7 @@ exports.LegacyCommonEntity = exports.LEGACY_TABLE_FIELDS_PREFIX = void 0;
13
13
  const openapi = require("@nestjs/swagger");
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  const typeorm_1 = require("typeorm");
16
+ const local_date_time_transformer_1 = require("../transformers/typeorm/local-date-time-transformer");
16
17
  exports.LEGACY_TABLE_FIELDS_PREFIX = 'ss';
17
18
  let LegacyCommonEntity = class LegacyCommonEntity {
18
19
  static _OPENAPI_METADATA_FACTORY() {
@@ -21,15 +22,15 @@ let LegacyCommonEntity = class LegacyCommonEntity {
21
22
  };
22
23
  exports.LegacyCommonEntity = LegacyCommonEntity;
23
24
  __decorate([
24
- (0, typeorm_1.CreateDateColumn)({ name: `${exports.LEGACY_TABLE_FIELDS_PREFIX}_created_at` }),
25
+ (0, typeorm_1.CreateDateColumn)({ name: `${exports.LEGACY_TABLE_FIELDS_PREFIX}_created_at`, transformer: local_date_time_transformer_1.LocalDateTimeTransformer }),
25
26
  __metadata("design:type", Date)
26
27
  ], LegacyCommonEntity.prototype, "createdAt", void 0);
27
28
  __decorate([
28
- (0, typeorm_1.UpdateDateColumn)({ name: `${exports.LEGACY_TABLE_FIELDS_PREFIX}_updated_at` }),
29
+ (0, typeorm_1.UpdateDateColumn)({ name: `${exports.LEGACY_TABLE_FIELDS_PREFIX}_updated_at`, transformer: local_date_time_transformer_1.LocalDateTimeTransformer }),
29
30
  __metadata("design:type", Date)
30
31
  ], LegacyCommonEntity.prototype, "updatedAt", void 0);
31
32
  __decorate([
32
- (0, typeorm_1.DeleteDateColumn)({ name: `${exports.LEGACY_TABLE_FIELDS_PREFIX}_deleted_at` }),
33
+ (0, typeorm_1.DeleteDateColumn)({ name: `${exports.LEGACY_TABLE_FIELDS_PREFIX}_deleted_at`, transformer: local_date_time_transformer_1.LocalDateTimeTransformer }),
33
34
  (0, typeorm_1.Index)(),
34
35
  __metadata("design:type", Date)
35
36
  ], LegacyCommonEntity.prototype, "deletedAt", void 0);
@@ -39,7 +40,7 @@ __decorate([
39
40
  ], LegacyCommonEntity.prototype, "deletedTracker", void 0);
40
41
  __decorate([
41
42
  (0, class_transformer_1.Expose)(),
42
- (0, typeorm_1.Column)({ name: `${exports.LEGACY_TABLE_FIELDS_PREFIX}_published_at`, default: null, nullable: true }),
43
+ (0, typeorm_1.Column)({ name: `${exports.LEGACY_TABLE_FIELDS_PREFIX}_published_at`, default: null, nullable: true, transformer: local_date_time_transformer_1.LocalDateTimeTransformer }),
43
44
  __metadata("design:type", Date)
44
45
  ], LegacyCommonEntity.prototype, "publishedAt", void 0);
45
46
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-common.entity.js","sourceRoot":"","sources":["../../src/entities/legacy-common.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,yDAA0D;AAC1D,qCAAqH;AAGxG,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAGxC,IAAe,kBAAkB,GAAjC,MAAe,kBAAkB;;;;CAkDvC,CAAA;AAlDqB,gDAAkB;AAOpC;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,aAAa,EAAE,CAAC;8BAC5D,IAAI;qDAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,aAAa,EAAE,CAAC;8BAC5D,IAAI;qDAAC;AAIhB;IAFC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,aAAa,EAAE,CAAC;IACtE,IAAA,eAAK,GAAE;8BACG,IAAI;qDAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;;0DACnE;AAIvB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;8BAChF,IAAI;uDAAC;AAIlB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,kCAA0B,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;sDAC3E;AAInB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,kCAA0B,2BAA2B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;iEACzE;AAgB9B;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDAC9D;AAIlB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDAC9D;6BAjDA,kBAAkB;IADvC,IAAA,2BAAO,GAAE;GACY,kBAAkB,CAkDvC","sourcesContent":["import { Exclude, Expose, Type } from \"class-transformer\";\nimport { Column, CreateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne, UpdateDateColumn } from \"typeorm\";\nimport type { User } from \"./user.entity\";\n\nexport const LEGACY_TABLE_FIELDS_PREFIX = 'ss';\n\n@Exclude()\nexport abstract class LegacyCommonEntity {\n // @Expose()\n // @Column({ type: 'integer', name: `${LEGACY_TABLE_FIELDS_PREFIX}_id`, unique: true })\n // @Generated(\"increment\")\n // id: number\n\n @CreateDateColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_created_at` })\n createdAt: Date;\n\n @UpdateDateColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_updated_at` })\n updatedAt: Date;\n\n @DeleteDateColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_deleted_at` })\n @Index()\n deletedAt: Date;\n\n @Column({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_deleted_tracker`, default: \"not-deleted\" })\n deletedTracker: string;\n\n @Expose()\n @Column({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_published_at`, default: null ,nullable: true})\n publishedAt: Date;\n\n @Expose()\n @Column({ type: \"varchar\", name: `${LEGACY_TABLE_FIELDS_PREFIX}_locale_name`, default: null })\n localeName: string;\n\n @Expose()\n @Column({ type: \"int\", name: `${LEGACY_TABLE_FIELDS_PREFIX}_default_entity_locale_id`, default: null })\n defaultEntityLocaleId: number;\n\n // @Expose()\n // @Type( () => require('./user.entity').User?.default ?? require('./user.entity').User )\n // @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n // @JoinColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_created_by_id` })\n // createdBy: User;\n\n // @Expose()\n // @Type( () => require('./user.entity').User?.default ?? require('./user.entity').User )\n // @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n // @JoinColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_updated_by_id` })\n // updatedBy: User; \n\n @Expose()\n @Column({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_created_by_id`, nullable: true })\n createdBy: number;\n \n @Expose()\n @Column({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_updated_by_id`, nullable: true })\n updatedBy: number;\n}\n"]}
1
+ {"version":3,"file":"legacy-common.entity.js","sourceRoot":"","sources":["../../src/entities/legacy-common.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,yDAA0D;AAC1D,qCAAqH;AAErH,qGAAgG;AAEnF,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAGxC,IAAe,kBAAkB,GAAjC,MAAe,kBAAkB;;;;CAkDvC,CAAA;AAlDqB,gDAAkB;AAOpC;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,aAAa,EAAE,WAAW,EAAE,sDAAwB,EAAE,CAAC;8BACnG,IAAI;qDAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,aAAa,EAAE,WAAW,EAAE,sDAAwB,EAAE,CAAC;8BACnG,IAAI;qDAAC;AAIhB;IAFC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,aAAa,EAAE,WAAW,EAAE,sDAAwB,EAAE,CAAC;IAC7G,IAAA,eAAK,GAAE;8BACG,IAAI;qDAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;;0DACnE;AAIvB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sDAAwB,EAAE,CAAC;8BACxH,IAAI;uDAAC;AAIlB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,kCAA0B,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;sDAC3E;AAInB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,kCAA0B,2BAA2B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;iEACzE;AAgB9B;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDAC9D;AAIlB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,GAAG,kCAA0B,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDAC9D;6BAjDA,kBAAkB;IADvC,IAAA,2BAAO,GAAE;GACY,kBAAkB,CAkDvC","sourcesContent":["import { Exclude, Expose, Type } from \"class-transformer\";\nimport { Column, CreateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne, UpdateDateColumn } from \"typeorm\";\nimport type { User } from \"./user.entity\";\nimport { LocalDateTimeTransformer } from \"src/transformers/typeorm/local-date-time-transformer\";\n\nexport const LEGACY_TABLE_FIELDS_PREFIX = 'ss';\n\n@Exclude()\nexport abstract class LegacyCommonEntity {\n // @Expose()\n // @Column({ type: 'integer', name: `${LEGACY_TABLE_FIELDS_PREFIX}_id`, unique: true })\n // @Generated(\"increment\")\n // id: number\n\n @CreateDateColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_created_at`, transformer: LocalDateTimeTransformer })\n createdAt: Date;\n\n @UpdateDateColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_updated_at`, transformer: LocalDateTimeTransformer })\n updatedAt: Date;\n\n @DeleteDateColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_deleted_at`, transformer: LocalDateTimeTransformer })\n @Index()\n deletedAt: Date;\n\n @Column({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_deleted_tracker`, default: \"not-deleted\" })\n deletedTracker: string;\n\n @Expose()\n @Column({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_published_at`, default: null, nullable: true, transformer: LocalDateTimeTransformer })\n publishedAt: Date;\n\n @Expose()\n @Column({ type: \"varchar\", name: `${LEGACY_TABLE_FIELDS_PREFIX}_locale_name`, default: null })\n localeName: string;\n\n @Expose()\n @Column({ type: \"int\", name: `${LEGACY_TABLE_FIELDS_PREFIX}_default_entity_locale_id`, default: null })\n defaultEntityLocaleId: number;\n\n // @Expose()\n // @Type( () => require('./user.entity').User?.default ?? require('./user.entity').User )\n // @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n // @JoinColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_created_by_id` })\n // createdBy: User;\n\n // @Expose()\n // @Type( () => require('./user.entity').User?.default ?? require('./user.entity').User )\n // @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n // @JoinColumn({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_updated_by_id` })\n // updatedBy: User; \n\n @Expose()\n @Column({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_created_by_id`, nullable: true })\n createdBy: number;\n\n @Expose()\n @Column({ name: `${LEGACY_TABLE_FIELDS_PREFIX}_updated_by_id`, nullable: true })\n updatedBy: number;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"model-metadata.entity.d.ts","sourceRoot":"","sources":["../../src/entities/model-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,qBACa,aAAc,SAAQ,YAAY;IAG3C,YAAY,EAAE,MAAM,CAAC;IAIrB,SAAS,EAAE,MAAM,CAAC;IAIlB,UAAU,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAE,MAAM,CAAC;IAInB,cAAc,EAAE,MAAM,CAAC;IAGvB,gBAAgB,EAAE,OAAO,CAAC;IAG1B,mBAAmB,EAAE,OAAO,CAAC;IAG7B,oBAAoB,EAAE,OAAO,CAAC;IAG9B,oBAAoB,EAAE,OAAO,CAAC;IAG9B,MAAM,EAAE,aAAa,EAAE,CAAC;IAKxB,MAAM,EAAE,cAAc,CAAC;IAOvB,YAAY,EAAE,aAAa,CAAC;IAG5B,QAAQ,EAAE,OAAO,CAAC;IAGlB,OAAO,EAAE,OAAO,CAAC;IAGjB,WAAW,EAAE,aAAa,CAAC;IAG3B,aAAa,EAAE,OAAO,CAAC;IAGvB,mBAAmB,EAAE,OAAO,CAAC;CAEhC"}
1
+ {"version":3,"file":"model-metadata.entity.d.ts","sourceRoot":"","sources":["../../src/entities/model-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,qBACa,aAAc,SAAQ,YAAY;IAG3C,YAAY,EAAE,MAAM,CAAC;IAIrB,SAAS,EAAE,MAAM,CAAC;IAIlB,UAAU,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAE,MAAM,CAAC;IAInB,cAAc,EAAE,MAAM,CAAC;IAGvB,gBAAgB,EAAE,OAAO,CAAC;IAG1B,mBAAmB,EAAE,OAAO,CAAS;IAGrC,oBAAoB,EAAE,OAAO,CAAC;IAG9B,oBAAoB,EAAE,OAAO,CAAC;IAG9B,MAAM,EAAE,aAAa,EAAE,CAAC;IAKxB,MAAM,EAAE,cAAc,CAAC;IAOvB,YAAY,EAAE,aAAa,CAAC;IAG5B,QAAQ,EAAE,OAAO,CAAC;IAGlB,OAAO,EAAE,OAAO,CAAC;IAGjB,WAAW,EAAE,aAAa,CAAC;IAG3B,aAAa,EAAE,OAAO,CAAC;IAGvB,mBAAmB,EAAE,OAAO,CAAC;CAEhC"}
@@ -16,8 +16,12 @@ const typeorm_1 = require("typeorm");
16
16
  const field_metadata_entity_1 = require("./field-metadata.entity");
17
17
  const module_metadata_entity_1 = require("./module-metadata.entity");
18
18
  let ModelMetadata = class ModelMetadata extends common_entity_1.CommonEntity {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.enableAuditTracking = false;
22
+ }
19
23
  static _OPENAPI_METADATA_FACTORY() {
20
- return { singularName: { required: true, type: () => String }, tableName: { required: true, type: () => String }, pluralName: { required: true, type: () => String }, displayName: { required: true, type: () => String }, description: { required: true, type: () => String }, dataSource: { required: true, type: () => String }, dataSourceType: { required: true, type: () => String }, enableSoftDelete: { required: true, type: () => Boolean }, enableAuditTracking: { required: true, type: () => Boolean }, internationalisation: { required: true, type: () => Boolean }, draftPublishWorkflow: { required: true, type: () => Boolean }, fields: { required: true, type: () => [require("./field-metadata.entity").FieldMetadata] }, module: { required: true, type: () => require("./module-metadata.entity").ModuleMetadata }, userKeyField: { required: true, type: () => require("./field-metadata.entity").FieldMetadata }, isSystem: { required: true, type: () => Boolean }, isChild: { required: true, type: () => Boolean }, parentModel: { required: true, type: () => require("./model-metadata.entity").ModelMetadata }, isLegacyTable: { required: true, type: () => Boolean }, isLegacyTableWithId: { required: true, type: () => Boolean } };
24
+ return { singularName: { required: true, type: () => String }, tableName: { required: true, type: () => String }, pluralName: { required: true, type: () => String }, displayName: { required: true, type: () => String }, description: { required: true, type: () => String }, dataSource: { required: true, type: () => String }, dataSourceType: { required: true, type: () => String }, enableSoftDelete: { required: true, type: () => Boolean }, enableAuditTracking: { required: true, type: () => Boolean, default: false }, internationalisation: { required: true, type: () => Boolean }, draftPublishWorkflow: { required: true, type: () => Boolean }, fields: { required: true, type: () => [require("./field-metadata.entity").FieldMetadata] }, module: { required: true, type: () => require("./module-metadata.entity").ModuleMetadata }, userKeyField: { required: true, type: () => require("./field-metadata.entity").FieldMetadata }, isSystem: { required: true, type: () => Boolean }, isChild: { required: true, type: () => Boolean }, parentModel: { required: true, type: () => require("./model-metadata.entity").ModelMetadata }, isLegacyTable: { required: true, type: () => Boolean }, isLegacyTableWithId: { required: true, type: () => Boolean } };
21
25
  }
22
26
  };
23
27
  exports.ModelMetadata = ModelMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"model-metadata.entity.js","sourceRoot":"","sources":["../../src/entities/model-metadata.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAA0D;AAC1D,qCAAkF;AAClF,mEAAwD;AACxD,qEAA0D;AAGnD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,4BAAY;;;;CAoE9C,CAAA;AApEY,sCAAa;AAGtB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;mDACb;AAIrB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC7B;AAIlB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;iDACb;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;kDACb;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDAC5B;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;iDACb;AAInB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;;qDACd;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;uDAC7B;AAG1B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;0DAC7B;AAG7B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;2DAC3B;AAG9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;2DAC3B;AAG9B;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;;6CAC/B;AAKxB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,uCAAc,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACzD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;8BACtD,uCAAc;6CAAC;AAOvB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,CAAC;8BACrB,qCAAa;mDAAC;AAG5B;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;+CACT;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;8CACV;AAGjB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;8BACtB,aAAa;kDAAC;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;oDACJ;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;0DACE;wBAlEpB,aAAa;IADzB,IAAA,gBAAM,EAAC,mBAAmB,CAAC;GACf,aAAa,CAoEzB","sourcesContent":["import { CommonEntity } from \"src/entities/common.entity\";\nimport { Column, Entity, Index, JoinColumn, ManyToOne, OneToMany } from \"typeorm\";\nimport { FieldMetadata } from \"./field-metadata.entity\";\nimport { ModuleMetadata } from \"./module-metadata.entity\";\n\n@Entity(\"ss_model_metadata\")\nexport class ModelMetadata extends CommonEntity {\n @Index({ unique: true })\n @Column({ name: \"singular_name\" })\n singularName: string;\n\n @Index({ unique: true })\n @Column({ name: \"table_name\", nullable: true })\n tableName: string;\n\n @Index({ unique: true })\n @Column({ name: \"plural_name\" })\n pluralName: string;\n\n @Column({ name: \"display_name\" })\n displayName: string;\n\n @Column({ name: \"description\", nullable: true })\n description: string;\n\n @Column({ name: \"data_source\" })\n dataSource: string;\n\n /** mongo | postgres | mssql | mysql | oracle | mariadb */\n @Column({ name: \"data_source_type\" })\n dataSourceType: string;\n\n @Column({ name: \"enable_soft_delete\", default: false })\n enableSoftDelete: boolean;\n\n @Column({ name: \"enable_audit_tracking\", default: false })\n enableAuditTracking: boolean;\n\n @Column({ name: \"internationalisation\", default: false })\n internationalisation: boolean;\n\n @Column({ name: \"draftPublishWorkflow\", default: false })\n draftPublishWorkflow: boolean;\n\n @OneToMany(() => FieldMetadata, (field) => field.model)\n fields: FieldMetadata[];\n\n @Index()\n @ManyToOne(() => ModuleMetadata, { onDelete: 'SET NULL' })\n @JoinColumn({ name: 'module_id', referencedColumnName: 'id' })\n module: ModuleMetadata;\n\n // ExternalId\n // 1. Single field. \n // 2. Composite field. \n // 3. Auto generated human readable sequence. \n @ManyToOne(() => FieldMetadata, {})\n userKeyField: FieldMetadata;\n\n @Column({ default: false })\n isSystem: boolean;\n\n @Column({ default: false })\n isChild: boolean;\n\n @ManyToOne(() => ModelMetadata, {})\n parentModel: ModelMetadata;\n\n @Column({ default: false })\n isLegacyTable: boolean;\n\n @Column({ default: false })\n isLegacyTableWithId: boolean;\n\n}\n"]}
1
+ {"version":3,"file":"model-metadata.entity.js","sourceRoot":"","sources":["../../src/entities/model-metadata.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAA0D;AAC1D,qCAAkF;AAClF,mEAAwD;AACxD,qEAA0D;AAGnD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,4BAAY;IAAxC;;QA8BH,wBAAmB,GAAY,KAAK,CAAC;KAsCxC;;ogBAtCkC,KAAK;;CAsCvC,CAAA;AApEY,sCAAa;AAGtB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;mDACb;AAIrB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC7B;AAIlB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;iDACb;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;kDACb;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDAC5B;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;iDACb;AAInB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;;qDACd;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;uDAC7B;AAG1B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;0DACrB;AAGrC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;2DAC3B;AAG9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;2DAC3B;AAG9B;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;;6CAC/B;AAKxB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,uCAAc,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACzD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;8BACtD,uCAAc;6CAAC;AAOvB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,CAAC;8BACrB,qCAAa;mDAAC;AAG5B;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;+CACT;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;8CACV;AAGjB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;8BACtB,aAAa;kDAAC;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;oDACJ;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;0DACE;wBAlEpB,aAAa;IADzB,IAAA,gBAAM,EAAC,mBAAmB,CAAC;GACf,aAAa,CAoEzB","sourcesContent":["import { CommonEntity } from \"src/entities/common.entity\";\nimport { Column, Entity, Index, JoinColumn, ManyToOne, OneToMany } from \"typeorm\";\nimport { FieldMetadata } from \"./field-metadata.entity\";\nimport { ModuleMetadata } from \"./module-metadata.entity\";\n\n@Entity(\"ss_model_metadata\")\nexport class ModelMetadata extends CommonEntity {\n @Index({ unique: true })\n @Column({ name: \"singular_name\" })\n singularName: string;\n\n @Index({ unique: true })\n @Column({ name: \"table_name\", nullable: true })\n tableName: string;\n\n @Index({ unique: true })\n @Column({ name: \"plural_name\" })\n pluralName: string;\n\n @Column({ name: \"display_name\" })\n displayName: string;\n\n @Column({ name: \"description\", nullable: true })\n description: string;\n\n @Column({ name: \"data_source\" })\n dataSource: string;\n\n /** mongo | postgres | mssql | mysql | oracle | mariadb */\n @Column({ name: \"data_source_type\" })\n dataSourceType: string;\n\n @Column({ name: \"enable_soft_delete\", default: false })\n enableSoftDelete: boolean;\n\n @Column({ name: \"enable_audit_tracking\", default: false })\n enableAuditTracking: boolean = false;\n\n @Column({ name: \"internationalisation\", default: false })\n internationalisation: boolean;\n\n @Column({ name: \"draftPublishWorkflow\", default: false })\n draftPublishWorkflow: boolean;\n\n @OneToMany(() => FieldMetadata, (field) => field.model)\n fields: FieldMetadata[];\n\n @Index()\n @ManyToOne(() => ModuleMetadata, { onDelete: 'SET NULL' })\n @JoinColumn({ name: 'module_id', referencedColumnName: 'id' })\n module: ModuleMetadata;\n\n // ExternalId\n // 1. Single field. \n // 2. Composite field. \n // 3. Auto generated human readable sequence. \n @ManyToOne(() => FieldMetadata, {})\n userKeyField: FieldMetadata;\n\n @Column({ default: false })\n isSystem: boolean;\n\n @Column({ default: false })\n isChild: boolean;\n\n @ManyToOne(() => ModelMetadata, {})\n parentModel: ModelMetadata;\n\n @Column({ default: false })\n isLegacyTable: boolean;\n\n @Column({ default: false })\n isLegacyTableWithId: boolean;\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mail.factory.d.ts","sourceRoot":"","sources":["../../src/factories/mail.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAOvC,qBACa,WAAW;IAGhB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IALxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAEvC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAE5B,mBAAmB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC;IAIzE,cAAc,IAAI,KAAK;CAc1B"}
1
+ {"version":3,"file":"mail.factory.d.ts","sourceRoot":"","sources":["../../src/factories/mail.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAOvC,qBACa,WAAW;IAGhB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IALxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAEvC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAE5B,mBAAmB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC;IAGzE,cAAc,IAAI,KAAK;CAc1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"mail.factory.js","sourceRoot":"","sources":["../../src/factories/mail.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAA4D;AAE5D,uCAAyC;AACzC,4EAAoD;AACpD,8DAA2D;AAG3D,SAAS,IAAI,CAAC,CAAU;IACpB,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACnC,CAAC;AAIM,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEpB,YACqB,SAAoB,EACpB,aAA4B,EAE7C,mBAAqE;QAHpD,cAAS,GAAT,SAAS,CAAW;QACpB,kBAAa,GAAb,aAAa,CAAe;QAE5B,wBAAmB,GAAnB,mBAAmB,CAAiC;QALxD,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAMxD,CAAC;IAGL,cAAc;QACV,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QAE5D,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAExB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAE9F,OAAO,mBAAmB,CAAC,QAAiB,CAAC;IACjD,CAAC;CAEJ,CAAA;AAxBY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAMJ,WAAA,IAAA,eAAM,EAAC,uBAAY,CAAC,GAAG,CAAC,CAAA;qCAFG,gBAAS;QACL,8BAAa;GAJxC,WAAW,CAwBvB","sourcesContent":["import { Inject, Injectable, Logger } from \"@nestjs/common\";\nimport { ConfigType } from \"@nestjs/config\";\nimport { ModuleRef } from \"@nestjs/core\";\nimport commonConfig from \"src/config/common.config\";\nimport { SolidRegistry } from \"src/helpers/solid-registry\";\nimport { IMail } from \"src/interfaces\";\n\nfunction norm(s?: string) {\n return s?.trim().toLowerCase();\n}\n\n// This factory will be use to return a mail service instance, using the configured environment variables\n@Injectable()\nexport class MailFactory {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n private readonly moduleRef: ModuleRef, // Use the module ref to dynamically resolve the mail service\n private readonly solidRegistry: SolidRegistry,\n @Inject(commonConfig.KEY)\n private readonly commonConfiguration: ConfigType<typeof commonConfig>,\n ) { }\n\n\n getMailService(): IMail {\n const mailServiceName = this.commonConfiguration.emailProvider;\n const mailProviders = this.solidRegistry.getMailProviders();\n // Return the instance which matches the mailServiceName\n if (!mailProviders.length) {\n // throw new Error(\"No mail providers are registered.\");\n this.logger.error(\"No mail providers are registered.\");\n }\n\n const mailServiceProvider = mailProviders.find(provider => provider.name === mailServiceName);\n\n return mailServiceProvider.instance as IMail;\n }\n\n}"]}
1
+ {"version":3,"file":"mail.factory.js","sourceRoot":"","sources":["../../src/factories/mail.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAA4D;AAE5D,uCAAyC;AACzC,4EAAoD;AACpD,8DAA2D;AAG3D,SAAS,IAAI,CAAC,CAAU;IACpB,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACnC,CAAC;AAIM,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEpB,YACqB,SAAoB,EACpB,aAA4B,EAE7C,mBAAqE;QAHpD,cAAS,GAAT,SAAS,CAAW;QACpB,kBAAa,GAAb,aAAa,CAAe;QAE5B,wBAAmB,GAAnB,mBAAmB,CAAiC;QALxD,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAMxD,CAAC;IAEL,cAAc;QACV,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QAE5D,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAExB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAE9F,OAAO,mBAAmB,CAAC,QAAiB,CAAC;IACjD,CAAC;CAEJ,CAAA;AAvBY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAMJ,WAAA,IAAA,eAAM,EAAC,uBAAY,CAAC,GAAG,CAAC,CAAA;qCAFG,gBAAS;QACL,8BAAa;GAJxC,WAAW,CAuBvB","sourcesContent":["import { Inject, Injectable, Logger } from \"@nestjs/common\";\nimport { ConfigType } from \"@nestjs/config\";\nimport { ModuleRef } from \"@nestjs/core\";\nimport commonConfig from \"src/config/common.config\";\nimport { SolidRegistry } from \"src/helpers/solid-registry\";\nimport { IMail } from \"src/interfaces\";\n\nfunction norm(s?: string) {\n return s?.trim().toLowerCase();\n}\n\n// This factory will be use to return a mail service instance, using the configured environment variables\n@Injectable()\nexport class MailFactory {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n private readonly moduleRef: ModuleRef, // Use the module ref to dynamically resolve the mail service\n private readonly solidRegistry: SolidRegistry,\n @Inject(commonConfig.KEY)\n private readonly commonConfiguration: ConfigType<typeof commonConfig>,\n ) { }\n\n getMailService(): IMail {\n const mailServiceName = this.commonConfiguration.emailProvider;\n const mailProviders = this.solidRegistry.getMailProviders();\n // Return the instance which matches the mailServiceName\n if (!mailProviders.length) {\n // throw new Error(\"No mail providers are registered.\");\n this.logger.error(\"No mail providers are registered.\");\n }\n\n const mailServiceProvider = mailProviders.find(provider => provider.name === mailServiceName);\n\n return mailServiceProvider.instance as IMail;\n }\n\n}"]}
@@ -0,0 +1,14 @@
1
+ import { ConfigType } from "@nestjs/config";
2
+ import { ModuleRef } from "@nestjs/core";
3
+ import commonConfig from "src/config/common.config";
4
+ import { SolidRegistry } from "src/helpers/solid-registry";
5
+ import { ISMS } from "src/interfaces";
6
+ export declare class SmsFactory {
7
+ private readonly moduleRef;
8
+ private readonly solidRegistry;
9
+ private readonly commonConfiguration;
10
+ private readonly logger;
11
+ constructor(moduleRef: ModuleRef, solidRegistry: SolidRegistry, commonConfiguration: ConfigType<typeof commonConfig>);
12
+ getSmsService(name?: string): ISMS;
13
+ }
14
+ //# sourceMappingURL=sms.factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms.factory.d.ts","sourceRoot":"","sources":["../../src/factories/sms.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAOtC,qBACa,UAAU;IAIf,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IANxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAGvC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAE5B,mBAAmB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC;IAGzE,aAAa,CAAC,IAAI,GAAE,MAAa,GAAG,IAAI;CAmB3C"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.SmsFactory = void 0;
19
+ const common_1 = require("@nestjs/common");
20
+ const core_1 = require("@nestjs/core");
21
+ const common_config_1 = __importDefault(require("../config/common.config"));
22
+ const solid_registry_1 = require("../helpers/solid-registry");
23
+ function norm(s) {
24
+ return s?.trim().toLowerCase();
25
+ }
26
+ let SmsFactory = class SmsFactory {
27
+ constructor(moduleRef, solidRegistry, commonConfiguration) {
28
+ this.moduleRef = moduleRef;
29
+ this.solidRegistry = solidRegistry;
30
+ this.commonConfiguration = commonConfiguration;
31
+ this.logger = new common_1.Logger(this.constructor.name);
32
+ }
33
+ getSmsService(name = null) {
34
+ const smsServiceName = name || this.commonConfiguration.smsProvider;
35
+ if (!smsServiceName) {
36
+ throw new Error("Unable to resolve sms provider");
37
+ }
38
+ const smsProviders = this.solidRegistry.getSmsProviders();
39
+ if (!smsProviders.length) {
40
+ this.logger.error("No sms providers are registered.");
41
+ }
42
+ const smsServiceProvider = smsProviders.find(provider => provider.name === smsServiceName);
43
+ return smsServiceProvider.instance;
44
+ }
45
+ };
46
+ exports.SmsFactory = SmsFactory;
47
+ exports.SmsFactory = SmsFactory = __decorate([
48
+ (0, common_1.Injectable)(),
49
+ __param(2, (0, common_1.Inject)(common_config_1.default.KEY)),
50
+ __metadata("design:paramtypes", [core_1.ModuleRef,
51
+ solid_registry_1.SolidRegistry, void 0])
52
+ ], SmsFactory);
53
+ //# sourceMappingURL=sms.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms.factory.js","sourceRoot":"","sources":["../../src/factories/sms.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAA4D;AAE5D,uCAAyC;AACzC,4EAAoD;AACpD,8DAA2D;AAG3D,SAAS,IAAI,CAAC,CAAU;IACpB,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACnC,CAAC;AAIM,IAAM,UAAU,GAAhB,MAAM,UAAU;IAGnB,YACqB,SAAoB,EACpB,aAA4B,EAE7C,mBAAqE;QAHpD,cAAS,GAAT,SAAS,CAAW;QACpB,kBAAa,GAAb,aAAa,CAAe;QAE5B,wBAAmB,GAAnB,mBAAmB,CAAiC;QANxD,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAOxD,CAAC;IAEL,aAAa,CAAC,OAAe,IAAI;QAE7B,MAAM,cAAc,GAAG,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;QACpE,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACrD,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAG1D,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAEvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAE3F,OAAO,kBAAkB,CAAC,QAAgB,CAAC;IAC/C,CAAC;CAEJ,CAAA;AA7BY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;IAOJ,WAAA,IAAA,eAAM,EAAC,uBAAY,CAAC,GAAG,CAAC,CAAA;qCAFG,gBAAS;QACL,8BAAa;GALxC,UAAU,CA6BtB","sourcesContent":["import { Inject, Injectable, Logger } from \"@nestjs/common\";\nimport { ConfigType } from \"@nestjs/config\";\nimport { ModuleRef } from \"@nestjs/core\";\nimport commonConfig from \"src/config/common.config\";\nimport { SolidRegistry } from \"src/helpers/solid-registry\";\nimport { ISMS } from \"src/interfaces\";\n\nfunction norm(s?: string) {\n return s?.trim().toLowerCase();\n}\n\n// This factory will be use to return a mail service instance, using the configured environment variables\n@Injectable()\nexport class SmsFactory {\n private readonly logger = new Logger(this.constructor.name);\n\n constructor(\n private readonly moduleRef: ModuleRef,\n private readonly solidRegistry: SolidRegistry,\n @Inject(commonConfig.KEY)\n private readonly commonConfiguration: ConfigType<typeof commonConfig>,\n ) { }\n\n getSmsService(name: string = null): ISMS {\n // This is the default provider\n const smsServiceName = name || this.commonConfiguration.smsProvider;\n if (!smsServiceName) {\n throw new Error(\"Unable to resolve sms provider\")\n }\n const smsProviders = this.solidRegistry.getSmsProviders();\n\n // Return the instance which matches the smsServicename\n if (!smsProviders.length) {\n // throw new Error(\"No mail providers are registered.\");\n this.logger.error(\"No sms providers are registered.\");\n }\n\n const smsServiceProvider = smsProviders.find(provider => provider.name === smsServiceName);\n\n return smsServiceProvider.instance as ISMS;\n }\n\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"date.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/date.helper.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CA4BzD"}
1
+ {"version":3,"file":"date.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/date.helper.ts"],"names":[],"mappings":"AAKA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAyDzD"}
@@ -18,7 +18,8 @@ function parseFlexibleDate(value) {
18
18
  const d = new Date(excelEpoch.getTime() + value * 86400000);
19
19
  return isNaN(d.getTime()) ? null : d;
20
20
  }
21
- const str = value.toString().trim();
21
+ let str = value.toString().trim();
22
+ str = str.replace(/\s*\(.*\)$/, '');
22
23
  const formats = [
23
24
  'DD-MM-YYYY',
24
25
  'YYYY-MM-DD',
@@ -26,15 +27,23 @@ function parseFlexibleDate(value) {
26
27
  'MM/DD/YYYY',
27
28
  'D-M-YYYY',
28
29
  'YYYY/MM/DD',
30
+ 'ddd MMM D YYYY HH:mm:ss [GMT]ZZ',
31
+ 'ddd MMM DD YYYY HH:mm:ss [GMT]ZZ',
32
+ 'ddd MMM D YYYY HH:mm:ss [GMT]Z',
33
+ 'ddd MMM DD YYYY HH:mm:ss [GMT]Z',
29
34
  'YYYY-MM-DD HH:mm:ss',
30
35
  'YYYY-MM-DDTHH:mm:ss',
31
36
  'YYYY-MM-DDTHH:mm:ss.SSS',
32
37
  'YYYY-MM-DDTHH:mm:ssZ',
33
38
  ];
34
39
  const parsed = (0, dayjs_1.default)(str, formats, true);
35
- if (!parsed.isValid()) {
36
- return null;
40
+ if (parsed.isValid()) {
41
+ return parsed.toDate();
42
+ }
43
+ const native = new Date(str);
44
+ if (!isNaN(native.getTime())) {
45
+ return native;
37
46
  }
38
- return parsed.toDate();
47
+ return null;
39
48
  }
40
49
  //# sourceMappingURL=date.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date.helper.js","sourceRoot":"","sources":["../../src/helpers/date.helper.ts"],"names":[],"mappings":";;;;;AAIA,8CA4BC;AAhCD,kDAA0B;AAC1B,uFAA+D;AAC/D,eAAK,CAAC,MAAM,CAAC,2BAAiB,CAAC,CAAC;AAEhC,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG;QACd,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,YAAY;QACZ,qBAAqB;QACrB,qBAAqB;QACrB,yBAAyB;QACzB,sBAAsB;KACvB,CAAC;IACF,MAAM,MAAM,GAAG,IAAA,eAAK,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;AACzB,CAAC","sourcesContent":["import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\n\nexport function parseFlexibleDate(value: any): Date | null {\n if (!value) return null;\n if (value instanceof Date && !isNaN(value.getTime())) {\n return value;\n }\n if (typeof value === 'number') {\n const excelEpoch = new Date(Date.UTC(1899, 11, 30));\n const d = new Date(excelEpoch.getTime() + value * 86400000);\n return isNaN(d.getTime()) ? null : d;\n }\n const str = value.toString().trim();\n const formats = [\n 'DD-MM-YYYY',\n 'YYYY-MM-DD',\n 'DD/MM/YYYY',\n 'MM/DD/YYYY',\n 'D-M-YYYY',\n 'YYYY/MM/DD',\n 'YYYY-MM-DD HH:mm:ss',\n 'YYYY-MM-DDTHH:mm:ss', // ISO without Z\n 'YYYY-MM-DDTHH:mm:ss.SSS', // ISO with millis\n 'YYYY-MM-DDTHH:mm:ssZ', // ISO with timezone\n ];\n const parsed = dayjs(str, formats, true); // true = strict parsing\n if (!parsed.isValid()) {\n return null;\n }\n return parsed.toDate();\n}\n\n"]}
1
+ {"version":3,"file":"date.helper.js","sourceRoot":"","sources":["../../src/helpers/date.helper.ts"],"names":[],"mappings":";;;;;AAKA,8CAyDC;AA9DD,kDAA0B;AAC1B,uFAA+D;AAE/D,eAAK,CAAC,MAAM,CAAC,2BAAiB,CAAC,CAAC;AAEhC,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAGxB,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAGlC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAG;QAEd,YAAY;QAGZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,YAAY;QAIZ,iCAAiC;QACjC,kCAAkC;QAClC,gCAAgC;QAChC,iCAAiC;QAGjC,qBAAqB;QACrB,qBAAqB;QACrB,yBAAyB;QACzB,sBAAsB;KACvB,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,eAAK,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAGD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\ndayjs.extend(customParseFormat);\n\nexport function parseFlexibleDate(value: any): Date | null {\n if (!value) return null;\n\n // Already a valid Date (ExcelJS often gives this)\n if (value instanceof Date && !isNaN(value.getTime())) {\n return value;\n }\n\n // Excel serial number\n if (typeof value === 'number') {\n const excelEpoch = new Date(Date.UTC(1899, 11, 30));\n const d = new Date(excelEpoch.getTime() + value * 86400000);\n return isNaN(d.getTime()) ? null : d;\n }\n\n let str = value.toString().trim();\n\n // STRIP \"(British Summer Time)\" or any \"(...)\" suffix\n str = str.replace(/\\s*\\(.*\\)$/, '');\n\n const formats = [\n // strict business formats\n 'DD-MM-YYYY',\n\n // common alternates\n 'YYYY-MM-DD',\n 'DD/MM/YYYY',\n 'MM/DD/YYYY',\n 'D-M-YYYY',\n 'YYYY/MM/DD',\n\n // JS Date.toString() (without timezone name)\n // (handle single-digit day + different offset shapes)\n 'ddd MMM D YYYY HH:mm:ss [GMT]ZZ', // GMT+0100\n 'ddd MMM DD YYYY HH:mm:ss [GMT]ZZ',\n 'ddd MMM D YYYY HH:mm:ss [GMT]Z', // GMT+01:00\n 'ddd MMM DD YYYY HH:mm:ss [GMT]Z',\n\n // ISO variants\n 'YYYY-MM-DD HH:mm:ss',\n 'YYYY-MM-DDTHH:mm:ss',\n 'YYYY-MM-DDTHH:mm:ss.SSS',\n 'YYYY-MM-DDTHH:mm:ssZ',\n ];\n\n const parsed = dayjs(str, formats, true); // strict\n if (parsed.isValid()) {\n return parsed.toDate();\n }\n\n // Fallback: native Date can parse this JS format very reliably\n const native = new Date(str);\n if (!isNaN(native.getTime())) {\n return native;\n }\n\n return null;\n}"]}
@@ -7,10 +7,13 @@ export interface MediaFieldOptions {
7
7
  type: SolidMediaType;
8
8
  required: boolean | undefined | null;
9
9
  fieldName: string | undefined | null;
10
+ mediaMaxSizeKb: number | undefined | null;
11
+ mediaTypes: string[];
10
12
  }
11
13
  export declare class MediaFieldCrudManager implements FieldCrudManager {
12
14
  private readonly options;
13
15
  constructor(options: MediaFieldOptions);
16
+ private resolveMediaType;
14
17
  validate(dto: any, files: Array<Express.Multer.File>): ValidationError[];
15
18
  private applyValidations;
16
19
  private validateMediaSingle;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnE,oBAAY,cAAc;IACtB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CACxC;AAED,qBAAa,qBAAsB,YAAW,gBAAgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,iBAAiB;IAGvD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE;IAMvE,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,qBAAqB;IAW7B,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CAKpC"}
1
+ {"version":3,"file":"MediaFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnE,oBAAY,cAAc;IACtB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAkFD,qBAAa,qBAAsB,YAAW,gBAAgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,iBAAiB;IAGvD,OAAO,CAAC,gBAAgB;IAoBxB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE;IAMxE,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAiD3B,OAAO,CAAC,qBAAqB;IAW7B,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CAKpC"}
@@ -6,10 +6,82 @@ var SolidMediaType;
6
6
  SolidMediaType["mediaSingle"] = "mediaSingle";
7
7
  SolidMediaType["mediaMultiple"] = "mediaMultiple";
8
8
  })(SolidMediaType || (exports.SolidMediaType = SolidMediaType = {}));
9
+ const MIME_TO_MEDIA_TYPE = {
10
+ 'image/png': 'image',
11
+ 'image/jpeg': 'image',
12
+ 'image/jpg': 'image',
13
+ 'image/webp': 'image',
14
+ 'image/gif': 'image',
15
+ 'image/bmp': 'image',
16
+ 'image/tiff': 'image',
17
+ 'image/svg+xml': 'image',
18
+ 'image/heic': 'image',
19
+ 'image/heif': 'image',
20
+ 'audio/mpeg': 'audio',
21
+ 'audio/mp3': 'audio',
22
+ 'audio/wav': 'audio',
23
+ 'audio/x-wav': 'audio',
24
+ 'audio/webm': 'audio',
25
+ 'audio/ogg': 'audio',
26
+ 'audio/aac': 'audio',
27
+ 'audio/mp4': 'audio',
28
+ 'audio/x-m4a': 'audio',
29
+ 'audio/flac': 'audio',
30
+ 'video/mp4': 'video',
31
+ 'video/mpeg': 'video',
32
+ 'video/webm': 'video',
33
+ 'video/ogg': 'video',
34
+ 'video/quicktime': 'video',
35
+ 'video/x-msvideo': 'video',
36
+ 'video/x-matroska': 'video',
37
+ 'video/3gpp': 'video',
38
+ 'video/3gpp2': 'video',
39
+ 'application/pdf': 'file',
40
+ 'text/plain': 'file',
41
+ 'text/markdown': 'file',
42
+ 'application/json': 'file',
43
+ 'text/csv': 'file',
44
+ 'application/msword': 'file',
45
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'file',
46
+ 'application/vnd.ms-excel': 'file',
47
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'file',
48
+ 'application/vnd.ms-powerpoint': 'file',
49
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation': 'file',
50
+ 'application/zip': 'file',
51
+ 'application/x-zip-compressed': 'file',
52
+ 'application/x-rar-compressed': 'file',
53
+ 'application/x-7z-compressed': 'file',
54
+ 'application/octet-stream': 'file',
55
+ };
56
+ const EXT_TO_MEDIA_TYPE = {
57
+ png: 'image', jpg: 'image', jpeg: 'image', webp: 'image', gif: 'image', bmp: 'image', tiff: 'image', svg: 'image', heic: 'image', heif: 'image',
58
+ mp3: 'audio', wav: 'audio', ogg: 'audio', aac: 'audio', m4a: 'audio', flac: 'audio',
59
+ mp4: 'video', mov: 'video', avi: 'video', mkv: 'video', mpeg: 'video', mpg: 'video', '3gp': 'video', '3g2': 'video',
60
+ pdf: 'file', txt: 'file', md: 'file', csv: 'file', json: 'file',
61
+ doc: 'file', docx: 'file', xls: 'file', xlsx: 'file', ppt: 'file', pptx: 'file',
62
+ zip: 'file', rar: 'file', '7z': 'file',
63
+ };
9
64
  class MediaFieldCrudManager {
10
65
  constructor(options) {
11
66
  this.options = options;
12
67
  }
68
+ resolveMediaType(mimetype, filename) {
69
+ const mt = (mimetype || '').toLowerCase().trim();
70
+ if (mt && MIME_TO_MEDIA_TYPE[mt]) {
71
+ return MIME_TO_MEDIA_TYPE[mt];
72
+ }
73
+ if (mt.startsWith('image/'))
74
+ return 'image';
75
+ if (mt.startsWith('audio/'))
76
+ return 'audio';
77
+ if (mt.startsWith('video/'))
78
+ return 'video';
79
+ const ext = (filename || '').split('.').pop()?.toLowerCase();
80
+ if (ext && EXT_TO_MEDIA_TYPE[ext]) {
81
+ return EXT_TO_MEDIA_TYPE[ext];
82
+ }
83
+ return null;
84
+ }
13
85
  validate(dto, files) {
14
86
  const isValidateForUpdate = dto.id !== undefined;
15
87
  const fieldFiles = files.filter(file => file.fieldname === this.options.fieldName);
@@ -39,6 +111,33 @@ class MediaFieldCrudManager {
39
111
  error: `${this.options.fieldName} must be a single file`
40
112
  });
41
113
  }
114
+ if (this.options.mediaMaxSizeKb) {
115
+ for (let i = 0; i < fieldFiles.length; i++) {
116
+ const fieldFile = fieldFiles[i];
117
+ const fieldFileSizeInBytes = Math.ceil(fieldFile.size / 1024);
118
+ if (fieldFileSizeInBytes > this.options.mediaMaxSizeKb) {
119
+ errors.push({
120
+ field: this.options.fieldName,
121
+ error: `${this.options.fieldName} with size ${fieldFileSizeInBytes} KB exceeds max size limit of ${this.options.mediaMaxSizeKb} KB`
122
+ });
123
+ }
124
+ }
125
+ }
126
+ if (this.options.mediaTypes && this.options.mediaTypes.length > 0) {
127
+ const allowedFileTypes = this.options.mediaTypes;
128
+ for (let i = 0; i < fieldFiles.length; i++) {
129
+ const fieldFile = fieldFiles[i];
130
+ const resolvedType = this.resolveMediaType(fieldFile.mimetype, fieldFile.originalname ?? fieldFile.filename ?? '');
131
+ if (!resolvedType || !allowedFileTypes.includes(resolvedType)) {
132
+ errors.push({
133
+ field: this.options.fieldName,
134
+ error: `${this.options.fieldName} file type not allowed. ` +
135
+ `Allowed: ${allowedFileTypes.join(', ')}. ` +
136
+ `Received mimetype: ${fieldFile.mimetype}${resolvedType ? ` (mapped to ${resolvedType})` : ''}`
137
+ });
138
+ }
139
+ }
140
+ }
42
141
  return errors;
43
142
  }
44
143
  validateMediaMultiple(fieldFiles, isValidateForUpdate) {
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFieldCrudManager.js","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":";;;AAEA,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;AACnC,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAQD,MAAa,qBAAqB;IAE9B,YAA6B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IACvD,CAAC;IAED,QAAQ,CAAC,GAAQ,EAAE,KAAgC;QAC/C,MAAM,mBAAmB,GAAG,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC;QACjD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAClE,CAAC;IAEO,gBAAgB,CAAC,UAAqC,EAAE,mBAA4B;QACxF,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,cAAc,CAAC,WAAW;gBAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;YACrE,KAAK,cAAc,CAAC,aAAa;gBAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;YACvE;gBACI,OAAO,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,UAAqC,EAAE,mBAA4B;QAC3F,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC7B,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,cAAc;aACjD,CAAC,CAAC;QACP,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC7B,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,wBAAwB;aAC3D,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,qBAAqB,CAAC,UAAqC,EAAE,mBAA4B;QAC7F,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC7B,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,cAAc;aACjD,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,GAAQ;QACvB,OAAO,GAAG,CAAC;IACf,CAAC;CAGJ;AAvDD,sDAuDC","sourcesContent":["import { FieldCrudManager, ValidationError } from \"src/interfaces\";\n\nexport enum SolidMediaType {\n mediaSingle = 'mediaSingle',\n mediaMultiple = 'mediaMultiple'\n}\n\nexport interface MediaFieldOptions {\n type: SolidMediaType;\n required: boolean | undefined | null;\n fieldName: string | undefined | null;\n}\n\nexport class MediaFieldCrudManager implements FieldCrudManager {\n\n constructor(private readonly options: MediaFieldOptions) {\n }\n\n validate(dto: any, files:Array<Express.Multer.File>): ValidationError[] {\n const isValidateForUpdate = dto.id !== undefined; //FIXME: This is a hack, since we are using PUT for update. Once we support PATCH, this will be removed\n const fieldFiles = files.filter(file => file.fieldname === this.options.fieldName);\n return this.applyValidations(fieldFiles, isValidateForUpdate);\n }\n\n private applyValidations(fieldFiles:Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n switch (this.options.type) {\n case SolidMediaType.mediaSingle:\n return this.validateMediaSingle(fieldFiles, isValidateForUpdate);\n case SolidMediaType.mediaMultiple:\n return this.validateMediaMultiple(fieldFiles, isValidateForUpdate);\n default:\n return [];\n }\n }\n\n private validateMediaSingle(fieldFiles:Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n const errors: ValidationError[] = [];\n if (!isValidateForUpdate && this.options.required && fieldFiles.length === 0) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} is required`\n });\n }\n if (fieldFiles.length > 1) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} must be a single file`\n });\n }\n return errors;\n }\n\n private validateMediaMultiple(fieldFiles:Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] { \n const errors: ValidationError[] = [];\n if (!isValidateForUpdate && this.options.required && fieldFiles.length === 0) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} is required`\n });\n }\n return errors;\n }\n\n transformForCreate(dto: any): any {\n return dto;\n }\n\n // Validation to be applied\n}\n"]}
1
+ {"version":3,"file":"MediaFieldCrudManager.js","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldCrudManager, ValidationError } from \"src/interfaces\";\n\nexport enum SolidMediaType {\n mediaSingle = 'mediaSingle',\n mediaMultiple = 'mediaMultiple'\n}\n\nexport interface MediaFieldOptions {\n type: SolidMediaType;\n required: boolean | undefined | null;\n fieldName: string | undefined | null;\n mediaMaxSizeKb: number | undefined | null;\n mediaTypes: string[];\n}\n\ntype MediaType = 'image' | 'audio' | 'video' | 'file';\n\nconst MIME_TO_MEDIA_TYPE: Record<string, MediaType> = {\n // Images\n 'image/png': 'image',\n 'image/jpeg': 'image',\n 'image/jpg': 'image',\n 'image/webp': 'image',\n 'image/gif': 'image',\n 'image/bmp': 'image',\n 'image/tiff': 'image',\n 'image/svg+xml': 'image',\n 'image/heic': 'image',\n 'image/heif': 'image',\n\n // Audio\n 'audio/mpeg': 'audio', // mp3\n 'audio/mp3': 'audio',\n 'audio/wav': 'audio',\n 'audio/x-wav': 'audio',\n 'audio/webm': 'audio',\n 'audio/ogg': 'audio',\n 'audio/aac': 'audio',\n 'audio/mp4': 'audio', // m4a often shows as audio/mp4\n 'audio/x-m4a': 'audio',\n 'audio/flac': 'audio',\n\n // Video\n 'video/mp4': 'video',\n 'video/mpeg': 'video',\n 'video/webm': 'video',\n 'video/ogg': 'video',\n 'video/quicktime': 'video', // mov\n 'video/x-msvideo': 'video', // avi\n 'video/x-matroska': 'video',// mkv\n 'video/3gpp': 'video',\n 'video/3gpp2': 'video',\n\n // Documents / files (treat as \"file\")\n 'application/pdf': 'file',\n 'text/plain': 'file',\n 'text/markdown': 'file',\n 'application/json': 'file',\n 'text/csv': 'file',\n\n // Office\n 'application/msword': 'file', // doc\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'file', // docx\n 'application/vnd.ms-excel': 'file', // xls\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'file', // xlsx\n 'application/vnd.ms-powerpoint': 'file', // ppt\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': 'file', // pptx,\n\n // Archives (optional)\n 'application/zip': 'file',\n 'application/x-zip-compressed': 'file',\n 'application/x-rar-compressed': 'file',\n 'application/x-7z-compressed': 'file',\n\n // Common binary fallback category\n 'application/octet-stream': 'file',\n};\n\nconst EXT_TO_MEDIA_TYPE: Record<string, MediaType> = {\n // Images\n png: 'image', jpg: 'image', jpeg: 'image', webp: 'image', gif: 'image', bmp: 'image', tiff: 'image', svg: 'image', heic: 'image', heif: 'image',\n\n // Audio\n mp3: 'audio', wav: 'audio', ogg: 'audio', aac: 'audio', m4a: 'audio', flac: 'audio',\n\n // Video\n mp4: 'video', mov: 'video', avi: 'video', mkv: 'video', mpeg: 'video', mpg: 'video', '3gp': 'video', '3g2': 'video',\n\n // Files\n pdf: 'file', txt: 'file', md: 'file', csv: 'file', json: 'file',\n doc: 'file', docx: 'file', xls: 'file', xlsx: 'file', ppt: 'file', pptx: 'file',\n zip: 'file', rar: 'file', '7z': 'file',\n};\n\n\nexport class MediaFieldCrudManager implements FieldCrudManager {\n\n constructor(private readonly options: MediaFieldOptions) {\n }\n\n private resolveMediaType(mimetype?: string, filename?: string): MediaType | null {\n const mt = (mimetype || '').toLowerCase().trim();\n if (mt && MIME_TO_MEDIA_TYPE[mt]) {\n return MIME_TO_MEDIA_TYPE[mt];\n }\n\n // Some libs may send \"image/*\" etc. Treat broad families safely.\n if (mt.startsWith('image/')) return 'image';\n if (mt.startsWith('audio/')) return 'audio';\n if (mt.startsWith('video/')) return 'video';\n\n // Fallback to extension if provided\n const ext = (filename || '').split('.').pop()?.toLowerCase();\n if (ext && EXT_TO_MEDIA_TYPE[ext]) {\n return EXT_TO_MEDIA_TYPE[ext];\n }\n\n return null;\n }\n\n validate(dto: any, files: Array<Express.Multer.File>): ValidationError[] {\n const isValidateForUpdate = dto.id !== undefined; //FIXME: This is a hack, since we are using PUT for update. Once we support PATCH, this will be removed\n const fieldFiles = files.filter(file => file.fieldname === this.options.fieldName);\n return this.applyValidations(fieldFiles, isValidateForUpdate);\n }\n\n private applyValidations(fieldFiles: Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n switch (this.options.type) {\n case SolidMediaType.mediaSingle:\n return this.validateMediaSingle(fieldFiles, isValidateForUpdate);\n case SolidMediaType.mediaMultiple:\n return this.validateMediaMultiple(fieldFiles, isValidateForUpdate);\n default:\n return [];\n }\n }\n\n private validateMediaSingle(fieldFiles: Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n const errors: ValidationError[] = [];\n if (!isValidateForUpdate && this.options.required && fieldFiles.length === 0) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} is required`\n });\n }\n if (fieldFiles.length > 1) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} must be a single file`\n });\n }\n // validate size\n if (this.options.mediaMaxSizeKb) {\n for (let i = 0; i < fieldFiles.length; i++) {\n const fieldFile = fieldFiles[i];\n const fieldFileSizeInBytes = Math.ceil(fieldFile.size / 1024);\n if (fieldFileSizeInBytes > this.options.mediaMaxSizeKb) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} with size ${fieldFileSizeInBytes} KB exceeds max size limit of ${this.options.mediaMaxSizeKb} KB`\n });\n }\n }\n }\n // validate type\n if (this.options.mediaTypes && this.options.mediaTypes.length > 0) {\n const allowedFileTypes = this.options.mediaTypes as MediaType[];\n\n for (let i = 0; i < fieldFiles.length; i++) {\n const fieldFile = fieldFiles[i];\n\n const resolvedType = this.resolveMediaType(fieldFile.mimetype, fieldFile.originalname ?? fieldFile.filename ?? '');\n if (!resolvedType || !allowedFileTypes.includes(resolvedType)) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} file type not allowed. ` +\n `Allowed: ${allowedFileTypes.join(', ')}. ` +\n `Received mimetype: ${fieldFile.mimetype}${resolvedType ? ` (mapped to ${resolvedType})` : ''}`\n });\n }\n }\n }\n\n return errors;\n }\n\n private validateMediaMultiple(fieldFiles: Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n const errors: ValidationError[] = [];\n if (!isValidateForUpdate && this.options.required && fieldFiles.length === 0) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} is required`\n });\n }\n return errors;\n }\n\n transformForCreate(dto: any): any {\n return dto;\n }\n\n // Validation to be applied\n}\n"]}
@@ -0,0 +1,10 @@
1
+ export interface ImageToBase64Result {
2
+ base64: string;
3
+ mediaType: string;
4
+ }
5
+ export declare class ImageEncodingService {
6
+ private readonly logger;
7
+ imageUrlToBase64(url: string, mimeTypeOverride?: string, maxSizeBytes?: number): Promise<ImageToBase64Result>;
8
+ imageUrlToDataUrl(url: string, mimeTypeOverride?: string, maxSizeBytes?: number): Promise<string>;
9
+ }
10
+ //# sourceMappingURL=image-encoding.helper.d.ts.map