zibri 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (859) hide show
  1. package/dist/cjs/application-options.model.d.ts +2 -2
  2. package/dist/cjs/application-options.model.d.ts.map +1 -1
  3. package/dist/cjs/application.d.ts.map +1 -1
  4. package/dist/cjs/application.js +8 -3
  5. package/dist/cjs/application.js.map +1 -1
  6. package/dist/cjs/assets/asset.service.d.ts.map +1 -1
  7. package/dist/cjs/assets/asset.service.js +3 -1
  8. package/dist/cjs/assets/asset.service.js.map +1 -1
  9. package/dist/cjs/auth/2fa/methods/otp/otp-credentials.model.d.ts +1 -1
  10. package/dist/cjs/auth/2fa/methods/otp/otp-credentials.model.d.ts.map +1 -1
  11. package/dist/cjs/auth/2fa/methods/otp/otp-credentials.model.js.map +1 -1
  12. package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.js +1 -1
  13. package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.js.map +1 -1
  14. package/dist/cjs/auth/encryption/encryption-key.model.d.ts +5 -1
  15. package/dist/cjs/auth/encryption/encryption-key.model.d.ts.map +1 -1
  16. package/dist/cjs/auth/encryption/encryption-key.model.js +9 -1
  17. package/dist/cjs/auth/encryption/encryption-key.model.js.map +1 -1
  18. package/dist/cjs/auth/strategies/cookie/cookie-auth.auth-strategy.d.ts.map +1 -1
  19. package/dist/cjs/auth/strategies/cookie/cookie-auth.auth-strategy.js.map +1 -1
  20. package/dist/cjs/auth/strategies/cookie/cookie-auth.controller.js +1 -1
  21. package/dist/cjs/auth/strategies/cookie/cookie-auth.controller.js.map +1 -1
  22. package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.js +1 -1
  23. package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.js.map +1 -1
  24. package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.d.ts +5 -1
  25. package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.d.ts.map +1 -1
  26. package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.js +9 -1
  27. package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.js.map +1 -1
  28. package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.d.ts.map +1 -1
  29. package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js +3 -2
  30. package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
  31. package/dist/cjs/backup/backup-resource-entity.model.d.ts +6 -2
  32. package/dist/cjs/backup/backup-resource-entity.model.d.ts.map +1 -1
  33. package/dist/cjs/backup/backup-resource-entity.model.js +9 -1
  34. package/dist/cjs/backup/backup-resource-entity.model.js.map +1 -1
  35. package/dist/cjs/backup/backup.service.js +2 -2
  36. package/dist/cjs/backup/backup.service.js.map +1 -1
  37. package/dist/cjs/caching/cache/base-cache.model.js.map +1 -1
  38. package/dist/cjs/caching/cache/multi-tier.cache.js.map +1 -1
  39. package/dist/cjs/caching/cache/read-aside/read-aside.cache.js.map +1 -1
  40. package/dist/cjs/caching/cache/read-aside/write-around-read-aside.cache.js.map +1 -1
  41. package/dist/cjs/caching/cache/read-aside/write-behind-read-aside.cache.js.map +1 -1
  42. package/dist/cjs/caching/cache/read-aside/write-invalidate-read-aside-args-only.cache.js.map +1 -1
  43. package/dist/cjs/caching/cache/read-aside/write-invalidate-read-aside-with-result.cache.js.map +1 -1
  44. package/dist/cjs/caching/cache/read-aside/write-through-read-aside.cache.js.map +1 -1
  45. package/dist/cjs/caching/cache/read-through/read-through.cache.js.map +1 -1
  46. package/dist/cjs/caching/cache/read-through/write-around-read-through.cache.js.map +1 -1
  47. package/dist/cjs/caching/cache/read-through/write-behind-read-through.cache.js.map +1 -1
  48. package/dist/cjs/caching/cache/read-through/write-invalidate-read-through-args-only.cache.js.map +1 -1
  49. package/dist/cjs/caching/cache/read-through/write-invalidate-read-through-with-result.cache.js.map +1 -1
  50. package/dist/cjs/caching/cache/read-through/write-through-read-through.cache.js.map +1 -1
  51. package/dist/cjs/change-sets/change-set-repository.d.ts +5 -3
  52. package/dist/cjs/change-sets/change-set-repository.d.ts.map +1 -1
  53. package/dist/cjs/change-sets/change-set-repository.js +16 -16
  54. package/dist/cjs/change-sets/change-set-repository.js.map +1 -1
  55. package/dist/cjs/change-sets/models/change-set-entity.model.d.ts +2 -2
  56. package/dist/cjs/change-sets/models/change-set-entity.model.d.ts.map +1 -1
  57. package/dist/cjs/change-sets/models/change-set-entity.model.js +29 -1
  58. package/dist/cjs/change-sets/models/change-set-entity.model.js.map +1 -1
  59. package/dist/cjs/change-sets/models/change-set.model.d.ts +1 -1
  60. package/dist/cjs/change-sets/models/change-set.model.d.ts.map +1 -1
  61. package/dist/cjs/change-sets/models/change-set.model.js +2 -2
  62. package/dist/cjs/change-sets/models/change-set.model.js.map +1 -1
  63. package/dist/cjs/change-sets/models/change.model.d.ts +7 -3
  64. package/dist/cjs/change-sets/models/change.model.d.ts.map +1 -1
  65. package/dist/cjs/change-sets/models/change.model.js +9 -1
  66. package/dist/cjs/change-sets/models/change.model.js.map +1 -1
  67. package/dist/cjs/change-sets/models/soft-delete-entity.model.d.ts +2 -2
  68. package/dist/cjs/change-sets/models/soft-delete-entity.model.d.ts.map +1 -1
  69. package/dist/cjs/change-sets/models/soft-delete-entity.model.js +26 -0
  70. package/dist/cjs/change-sets/models/soft-delete-entity.model.js.map +1 -1
  71. package/dist/cjs/change-sets/soft-delete-repository.d.ts +6 -5
  72. package/dist/cjs/change-sets/soft-delete-repository.d.ts.map +1 -1
  73. package/dist/cjs/change-sets/soft-delete-repository.js +22 -6
  74. package/dist/cjs/change-sets/soft-delete-repository.js.map +1 -1
  75. package/dist/cjs/context/als.utilities.d.ts +3 -3
  76. package/dist/cjs/context/als.utilities.d.ts.map +1 -1
  77. package/dist/cjs/context/als.utilities.js.map +1 -1
  78. package/dist/cjs/context/cache/cache.context.d.ts +27 -0
  79. package/dist/cjs/context/cache/cache.context.d.ts.map +1 -0
  80. package/dist/cjs/context/cache/cache.context.js +61 -0
  81. package/dist/cjs/context/cache/cache.context.js.map +1 -0
  82. package/dist/cjs/context/request/request-context-token.model.js +1 -1
  83. package/dist/cjs/context/request/request-context-token.model.js.map +1 -1
  84. package/dist/cjs/cron/cron-job-entity.model.d.ts +2 -2
  85. package/dist/cjs/cron/cron-job-entity.model.d.ts.map +1 -1
  86. package/dist/cjs/cron/cron-job-entity.model.js.map +1 -1
  87. package/dist/cjs/data-source/data-sources/data-source-initialization.error.d.ts +7 -0
  88. package/dist/cjs/data-source/data-sources/data-source-initialization.error.d.ts.map +1 -0
  89. package/dist/cjs/data-source/data-sources/data-source-initialization.error.js +14 -0
  90. package/dist/cjs/data-source/data-sources/data-source-initialization.error.js.map +1 -0
  91. package/dist/cjs/data-source/data-sources/data-source.interface.d.ts +9 -1
  92. package/dist/cjs/data-source/data-sources/data-source.interface.d.ts.map +1 -1
  93. package/dist/cjs/data-source/data-sources/data-source.interface.js.map +1 -1
  94. package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.d.ts +45 -0
  95. package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.d.ts.map +1 -0
  96. package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.js +298 -0
  97. package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.js.map +1 -0
  98. package/dist/cjs/data-source/data-sources/sql-data-source.interface.d.ts +32 -0
  99. package/dist/cjs/data-source/data-sources/sql-data-source.interface.d.ts.map +1 -0
  100. package/dist/cjs/{entity/models/one-to-one-property-metadata.model.js → data-source/data-sources/sql-data-source.interface.js} +1 -1
  101. package/dist/cjs/data-source/data-sources/sql-data-source.interface.js.map +1 -0
  102. package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.d.ts +156 -0
  103. package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.d.ts.map +1 -0
  104. package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.js +378 -0
  105. package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.js.map +1 -0
  106. package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.d.ts +26 -0
  107. package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.d.ts.map +1 -0
  108. package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js +373 -0
  109. package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js.map +1 -0
  110. package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.d.ts +74 -0
  111. package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.d.ts.map +1 -0
  112. package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.js +250 -0
  113. package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.js.map +1 -0
  114. package/dist/cjs/data-source/migration/migration-entity.model.d.ts +2 -2
  115. package/dist/cjs/data-source/migration/migration-entity.model.d.ts.map +1 -1
  116. package/dist/cjs/data-source/migration/migration-entity.model.js.map +1 -1
  117. package/dist/cjs/data-source/migration/migration.model.d.ts +2 -2
  118. package/dist/cjs/data-source/migration/migration.model.d.ts.map +1 -1
  119. package/dist/cjs/data-source/models/options/count-options.model.d.ts +2 -7
  120. package/dist/cjs/data-source/models/options/count-options.model.d.ts.map +1 -1
  121. package/dist/cjs/data-source/models/options/delete-all-options.model.d.ts +2 -4
  122. package/dist/cjs/data-source/models/options/delete-all-options.model.d.ts.map +1 -1
  123. package/dist/cjs/data-source/models/options/find-all-options.model.d.ts +2 -2
  124. package/dist/cjs/data-source/models/options/find-all-options.model.d.ts.map +1 -1
  125. package/dist/cjs/data-source/models/options/find-by-id-options.model.d.ts +1 -6
  126. package/dist/cjs/data-source/models/options/find-by-id-options.model.d.ts.map +1 -1
  127. package/dist/cjs/data-source/models/options/find-one-options.model.d.ts +2 -11
  128. package/dist/cjs/data-source/models/options/find-one-options.model.d.ts.map +1 -1
  129. package/dist/cjs/data-source/models/options/update-all-options.model.d.ts +1 -7
  130. package/dist/cjs/data-source/models/options/update-all-options.model.d.ts.map +1 -1
  131. package/dist/cjs/data-source/models/options/update-by-id-options.model.d.ts +1 -7
  132. package/dist/cjs/data-source/models/options/update-by-id-options.model.d.ts.map +1 -1
  133. package/dist/cjs/data-source/models/where/array-where-filter.model.d.ts +142 -3
  134. package/dist/cjs/data-source/models/where/array-where-filter.model.d.ts.map +1 -1
  135. package/dist/cjs/data-source/models/where/base-where-filter.model.d.ts +18 -1
  136. package/dist/cjs/data-source/models/where/base-where-filter.model.d.ts.map +1 -1
  137. package/dist/cjs/data-source/models/where/boolean-where-filter.model.d.ts +4 -2
  138. package/dist/cjs/data-source/models/where/boolean-where-filter.model.d.ts.map +1 -1
  139. package/dist/cjs/data-source/models/where/date-where-filter.model.d.ts +16 -15
  140. package/dist/cjs/data-source/models/where/date-where-filter.model.d.ts.map +1 -1
  141. package/dist/cjs/data-source/models/where/number-where-filter.model.d.ts +8 -15
  142. package/dist/cjs/data-source/models/where/number-where-filter.model.d.ts.map +1 -1
  143. package/dist/cjs/data-source/models/where/object-where-filter.model.d.ts +52 -7
  144. package/dist/cjs/data-source/models/where/object-where-filter.model.d.ts.map +1 -1
  145. package/dist/cjs/data-source/models/where/string-where-filter.model.d.ts +25 -15
  146. package/dist/cjs/data-source/models/where/string-where-filter.model.d.ts.map +1 -1
  147. package/dist/cjs/data-source/models/where/where-filter-keys.model.d.ts +46 -0
  148. package/dist/cjs/data-source/models/where/where-filter-keys.model.d.ts.map +1 -0
  149. package/dist/cjs/data-source/models/where/where-filter-keys.model.js +39 -0
  150. package/dist/cjs/data-source/models/where/where-filter-keys.model.js.map +1 -0
  151. package/dist/cjs/data-source/models/where/where-filter.model.d.ts +2 -2
  152. package/dist/cjs/data-source/models/where/where-filter.model.d.ts.map +1 -1
  153. package/dist/cjs/data-source/query-failed.error.js +27 -1
  154. package/dist/cjs/data-source/query-failed.error.js.map +1 -1
  155. package/dist/cjs/data-source/repository.d.ts +8 -3
  156. package/dist/cjs/data-source/repository.d.ts.map +1 -1
  157. package/dist/cjs/data-source/repository.js +42 -16
  158. package/dist/cjs/data-source/repository.js.map +1 -1
  159. package/dist/cjs/di/decorators/inject-repository.decorator.d.ts +2 -2
  160. package/dist/cjs/di/decorators/inject-repository.decorator.d.ts.map +1 -1
  161. package/dist/cjs/di/decorators/inject-repository.decorator.js.map +1 -1
  162. package/dist/cjs/di/default/zibri-di-providers.default.d.ts.map +1 -1
  163. package/dist/cjs/di/default/zibri-di-providers.default.js +4 -0
  164. package/dist/cjs/di/default/zibri-di-providers.default.js.map +1 -1
  165. package/dist/cjs/di/default/zibri-di-tokens.default.d.ts +5 -2
  166. package/dist/cjs/di/default/zibri-di-tokens.default.d.ts.map +1 -1
  167. package/dist/cjs/di/default/zibri-di-tokens.default.js +2 -0
  168. package/dist/cjs/di/default/zibri-di-tokens.default.js.map +1 -1
  169. package/dist/cjs/email/email.service.d.ts +3 -3
  170. package/dist/cjs/email/email.service.d.ts.map +1 -1
  171. package/dist/cjs/email/email.service.js +8 -10
  172. package/dist/cjs/email/email.service.js.map +1 -1
  173. package/dist/cjs/email/models/email.model.d.ts +4 -4
  174. package/dist/cjs/email/models/email.model.d.ts.map +1 -1
  175. package/dist/cjs/email/models/email.model.js +5 -5
  176. package/dist/cjs/email/models/email.model.js.map +1 -1
  177. package/dist/cjs/entity/decorators/entity.decorator.d.ts +28 -1
  178. package/dist/cjs/entity/decorators/entity.decorator.d.ts.map +1 -1
  179. package/dist/cjs/entity/decorators/entity.decorator.js +6 -3
  180. package/dist/cjs/entity/decorators/entity.decorator.js.map +1 -1
  181. package/dist/cjs/entity/decorators/property.decorator.d.ts +5 -8
  182. package/dist/cjs/entity/decorators/property.decorator.d.ts.map +1 -1
  183. package/dist/cjs/entity/decorators/property.decorator.js +34 -20
  184. package/dist/cjs/entity/decorators/property.decorator.js.map +1 -1
  185. package/dist/cjs/entity/entity-metadata-missing.error.d.ts +9 -0
  186. package/dist/cjs/entity/entity-metadata-missing.error.d.ts.map +1 -0
  187. package/dist/cjs/entity/entity-metadata-missing.error.js +17 -0
  188. package/dist/cjs/entity/entity-metadata-missing.error.js.map +1 -0
  189. package/dist/cjs/entity/generation/generate-entity-file.function.js +1 -1
  190. package/dist/cjs/entity/generation/generate-entity-file.function.js.map +1 -1
  191. package/dist/cjs/entity/models/base-relation-metadata.model.d.ts +1 -1
  192. package/dist/cjs/entity/models/belongs-to-one-property-metadata.model.d.ts +28 -0
  193. package/dist/cjs/entity/models/belongs-to-one-property-metadata.model.d.ts.map +1 -0
  194. package/dist/cjs/entity/models/belongs-to-one-property-metadata.model.js +3 -0
  195. package/dist/cjs/entity/models/belongs-to-one-property-metadata.model.js.map +1 -0
  196. package/dist/cjs/entity/models/has-one-property-metadata.model.d.ts +18 -0
  197. package/dist/cjs/entity/models/has-one-property-metadata.model.d.ts.map +1 -0
  198. package/dist/{esm/entity/models/one-to-one-property-metadata.model.js → cjs/entity/models/has-one-property-metadata.model.js} +1 -1
  199. package/dist/cjs/entity/models/has-one-property-metadata.model.js.map +1 -0
  200. package/dist/cjs/entity/models/many-to-many-property-metadata.model.d.ts +3 -3
  201. package/dist/cjs/entity/models/many-to-many-property-metadata.model.d.ts.map +1 -1
  202. package/dist/cjs/entity/models/many-to-one-property-metadata.model.d.ts +11 -1
  203. package/dist/cjs/entity/models/many-to-one-property-metadata.model.d.ts.map +1 -1
  204. package/dist/cjs/entity/models/relation.enum.d.ts +2 -1
  205. package/dist/cjs/entity/models/relation.enum.d.ts.map +1 -1
  206. package/dist/cjs/entity/models/relation.enum.js +2 -1
  207. package/dist/cjs/entity/models/relation.enum.js.map +1 -1
  208. package/dist/cjs/entity/partial-class.model.js +1 -1
  209. package/dist/cjs/entity/partial-class.model.js.map +1 -1
  210. package/dist/cjs/event/event-cleanup.cron-job.d.ts.map +1 -1
  211. package/dist/cjs/event/event-cleanup.cron-job.js +4 -6
  212. package/dist/cjs/event/event-cleanup.cron-job.js.map +1 -1
  213. package/dist/cjs/event/event-subscriber-run.model.d.ts +7 -9
  214. package/dist/cjs/event/event-subscriber-run.model.d.ts.map +1 -1
  215. package/dist/cjs/event/event-subscriber-run.model.js +11 -18
  216. package/dist/cjs/event/event-subscriber-run.model.js.map +1 -1
  217. package/dist/cjs/event/event.model.js +1 -1
  218. package/dist/cjs/event/event.model.js.map +1 -1
  219. package/dist/cjs/event/event.service.d.ts.map +1 -1
  220. package/dist/cjs/event/event.service.js +6 -3
  221. package/dist/cjs/event/event.service.js.map +1 -1
  222. package/dist/cjs/global/global-registry.d.ts +2 -2
  223. package/dist/cjs/global/global-registry.d.ts.map +1 -1
  224. package/dist/cjs/global/model-registry/default-descriptor.d.ts.map +1 -1
  225. package/dist/cjs/global/model-registry/default-descriptor.js +2 -1
  226. package/dist/cjs/global/model-registry/default-descriptor.js.map +1 -1
  227. package/dist/cjs/global/model-registry/encryption-descriptor.d.ts.map +1 -1
  228. package/dist/cjs/global/model-registry/encryption-descriptor.js +2 -1
  229. package/dist/cjs/global/model-registry/encryption-descriptor.js.map +1 -1
  230. package/dist/cjs/global/model-registry/exclude-descriptor.d.ts.map +1 -1
  231. package/dist/cjs/global/model-registry/exclude-descriptor.js +2 -1
  232. package/dist/cjs/global/model-registry/exclude-descriptor.js.map +1 -1
  233. package/dist/cjs/global/model-registry/hash-descriptor.d.ts.map +1 -1
  234. package/dist/cjs/global/model-registry/hash-descriptor.js +2 -1
  235. package/dist/cjs/global/model-registry/hash-descriptor.js.map +1 -1
  236. package/dist/cjs/http/http-request.model.d.ts +2 -2
  237. package/dist/cjs/http/http-request.model.d.ts.map +1 -1
  238. package/dist/cjs/http/known-header.enum.d.ts +1 -0
  239. package/dist/cjs/http/known-header.enum.d.ts.map +1 -1
  240. package/dist/cjs/http/known-header.enum.js +1 -0
  241. package/dist/cjs/http/known-header.enum.js.map +1 -1
  242. package/dist/cjs/http-client/http-client.d.ts.map +1 -1
  243. package/dist/cjs/http-client/http-client.js.map +1 -1
  244. package/dist/cjs/index.d.ts +19 -6
  245. package/dist/cjs/index.d.ts.map +1 -1
  246. package/dist/cjs/index.js +20 -6
  247. package/dist/cjs/index.js.map +1 -1
  248. package/dist/cjs/localization/formatting/format-price.function.d.ts.map +1 -1
  249. package/dist/cjs/localization/formatting/format-price.function.js.map +1 -1
  250. package/dist/cjs/logging/log-context.model.d.ts +7 -32
  251. package/dist/cjs/logging/log-context.model.d.ts.map +1 -1
  252. package/dist/cjs/logging/log-context.model.js +9 -55
  253. package/dist/cjs/logging/log-context.model.js.map +1 -1
  254. package/dist/cjs/logging/logger.js +1 -1
  255. package/dist/cjs/logging/logger.js.map +1 -1
  256. package/dist/cjs/multithreading/models/thread-job-entity.model.d.ts +5 -5
  257. package/dist/cjs/multithreading/models/thread-job-entity.model.d.ts.map +1 -1
  258. package/dist/cjs/multithreading/models/thread-job-entity.model.js +4 -4
  259. package/dist/cjs/multithreading/models/thread-job-entity.model.js.map +1 -1
  260. package/dist/cjs/multithreading/services/thread-job.d.ts +4 -4
  261. package/dist/cjs/multithreading/services/thread-job.d.ts.map +1 -1
  262. package/dist/cjs/multithreading/services/thread-job.js.map +1 -1
  263. package/dist/cjs/open-api/open-api-service.interface.d.ts +2 -1
  264. package/dist/cjs/open-api/open-api-service.interface.d.ts.map +1 -1
  265. package/dist/cjs/open-api/open-api.service.d.ts +5 -2
  266. package/dist/cjs/open-api/open-api.service.d.ts.map +1 -1
  267. package/dist/cjs/open-api/open-api.service.js +276 -150
  268. package/dist/cjs/open-api/open-api.service.js.map +1 -1
  269. package/dist/cjs/parsing/form-data/form-data.body-parser.d.ts.map +1 -1
  270. package/dist/cjs/parsing/form-data/form-data.body-parser.js +2 -1
  271. package/dist/cjs/parsing/form-data/form-data.body-parser.js.map +1 -1
  272. package/dist/cjs/parsing/functions/parse-boolean.function.d.ts.map +1 -1
  273. package/dist/cjs/parsing/functions/parse-boolean.function.js.map +1 -1
  274. package/dist/cjs/parsing/functions/parse-object.function.d.ts.map +1 -1
  275. package/dist/cjs/parsing/functions/parse-object.function.js +2 -1
  276. package/dist/cjs/parsing/functions/parse-object.function.js.map +1 -1
  277. package/dist/cjs/parsing/html/csp-options.model.d.ts +1 -1
  278. package/dist/cjs/parsing/html/csp-options.model.d.ts.map +1 -1
  279. package/dist/cjs/parsing/html/csp-options.model.js.map +1 -1
  280. package/dist/cjs/parsing/parser.d.ts.map +1 -1
  281. package/dist/cjs/parsing/parser.js +5 -4
  282. package/dist/cjs/parsing/parser.js.map +1 -1
  283. package/dist/cjs/plugin/invoicing/models/invoice-address.model.d.ts +2 -2
  284. package/dist/cjs/plugin/invoicing/models/invoice-address.model.d.ts.map +1 -1
  285. package/dist/cjs/plugin/invoicing/models/invoice-address.model.js +2 -2
  286. package/dist/cjs/plugin/invoicing/models/invoice-address.model.js.map +1 -1
  287. package/dist/cjs/plugin/invoicing/models/vat.model.d.ts +1 -1
  288. package/dist/cjs/plugin/invoicing/models/vat.model.d.ts.map +1 -1
  289. package/dist/cjs/plugin/invoicing/models/vat.model.js +1 -1
  290. package/dist/cjs/plugin/invoicing/models/vat.model.js.map +1 -1
  291. package/dist/cjs/plugin/mailing-list/mailing-list.controller.js +1 -1
  292. package/dist/cjs/plugin/mailing-list/mailing-list.controller.js.map +1 -1
  293. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.d.ts +1 -1
  294. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.d.ts.map +1 -1
  295. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.js +1 -1
  296. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.js.map +1 -1
  297. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts +1 -1
  298. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts.map +1 -1
  299. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js +1 -1
  300. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +1 -1
  301. package/dist/cjs/plugin/payment/models/payment.model.d.ts +2 -2
  302. package/dist/cjs/plugin/payment/models/payment.model.d.ts.map +1 -1
  303. package/dist/cjs/plugin/payment/models/payment.model.js +1 -1
  304. package/dist/cjs/plugin/payment/models/payment.model.js.map +1 -1
  305. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.d.ts +17 -17
  306. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.d.ts.map +1 -1
  307. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.js +17 -17
  308. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.js.map +1 -1
  309. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js +1 -1
  310. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js.map +1 -1
  311. package/dist/cjs/preact/preact.utilities.js +1 -1
  312. package/dist/cjs/preact/preact.utilities.js.map +1 -1
  313. package/dist/cjs/preact/validate-email-templates.function.js +1 -1
  314. package/dist/cjs/preact/validate-email-templates.function.js.map +1 -1
  315. package/dist/cjs/rate-limiting/rate-limiter.d.ts +10 -5
  316. package/dist/cjs/rate-limiting/rate-limiter.d.ts.map +1 -1
  317. package/dist/cjs/rate-limiting/rate-limiter.js +22 -12
  318. package/dist/cjs/rate-limiting/rate-limiter.js.map +1 -1
  319. package/dist/cjs/routing/controller-route-configuration.model.d.ts +5 -0
  320. package/dist/cjs/routing/controller-route-configuration.model.d.ts.map +1 -1
  321. package/dist/cjs/routing/decorators/body.decorator.js +2 -1
  322. package/dist/cjs/routing/decorators/body.decorator.js.map +1 -1
  323. package/dist/cjs/routing/decorators/controller.decorator.d.ts +5 -0
  324. package/dist/cjs/routing/decorators/controller.decorator.d.ts.map +1 -1
  325. package/dist/cjs/routing/decorators/controller.decorator.js +3 -2
  326. package/dist/cjs/routing/decorators/controller.decorator.js.map +1 -1
  327. package/dist/cjs/routing/decorators/create-http-decorator.function.d.ts +2 -1
  328. package/dist/cjs/routing/decorators/create-http-decorator.function.d.ts.map +1 -1
  329. package/dist/cjs/routing/decorators/create-http-decorator.function.js +2 -2
  330. package/dist/cjs/routing/decorators/create-http-decorator.function.js.map +1 -1
  331. package/dist/cjs/routing/decorators/delete.decorator.d.ts +3 -1
  332. package/dist/cjs/routing/decorators/delete.decorator.d.ts.map +1 -1
  333. package/dist/cjs/routing/decorators/delete.decorator.js +3 -2
  334. package/dist/cjs/routing/decorators/delete.decorator.js.map +1 -1
  335. package/dist/cjs/routing/decorators/get.decorator.d.ts +3 -1
  336. package/dist/cjs/routing/decorators/get.decorator.d.ts.map +1 -1
  337. package/dist/cjs/routing/decorators/get.decorator.js +3 -2
  338. package/dist/cjs/routing/decorators/get.decorator.js.map +1 -1
  339. package/dist/cjs/routing/decorators/http-decorator-option-input.model.d.ts +11 -0
  340. package/dist/cjs/routing/decorators/http-decorator-option-input.model.d.ts.map +1 -0
  341. package/dist/cjs/routing/decorators/http-decorator-option-input.model.js +3 -0
  342. package/dist/cjs/routing/decorators/http-decorator-option-input.model.js.map +1 -0
  343. package/dist/cjs/routing/decorators/patch.decorator.d.ts +3 -1
  344. package/dist/cjs/routing/decorators/patch.decorator.d.ts.map +1 -1
  345. package/dist/cjs/routing/decorators/patch.decorator.js +3 -2
  346. package/dist/cjs/routing/decorators/patch.decorator.js.map +1 -1
  347. package/dist/cjs/routing/decorators/post.decorator.d.ts +3 -1
  348. package/dist/cjs/routing/decorators/post.decorator.d.ts.map +1 -1
  349. package/dist/cjs/routing/decorators/post.decorator.js +3 -2
  350. package/dist/cjs/routing/decorators/post.decorator.js.map +1 -1
  351. package/dist/cjs/routing/resolve-route-params.function.js +2 -1
  352. package/dist/cjs/routing/resolve-route-params.function.js.map +1 -1
  353. package/dist/cjs/routing/route-configuration.model.d.ts +11 -1
  354. package/dist/cjs/routing/route-configuration.model.d.ts.map +1 -1
  355. package/dist/cjs/routing/router.d.ts +6 -2
  356. package/dist/cjs/routing/router.d.ts.map +1 -1
  357. package/dist/cjs/routing/router.js +191 -70
  358. package/dist/cjs/routing/router.js.map +1 -1
  359. package/dist/cjs/utilities/fs.utilities.d.ts +1 -1
  360. package/dist/cjs/utilities/fs.utilities.js +1 -1
  361. package/dist/cjs/utilities/metadata-injection-keys.enum.d.ts +1 -0
  362. package/dist/cjs/utilities/metadata-injection-keys.enum.d.ts.map +1 -1
  363. package/dist/cjs/utilities/metadata-injection-keys.enum.js +1 -0
  364. package/dist/cjs/utilities/metadata-injection-keys.enum.js.map +1 -1
  365. package/dist/cjs/utilities/sem-ver.utilities.d.ts +46 -0
  366. package/dist/cjs/utilities/sem-ver.utilities.d.ts.map +1 -0
  367. package/dist/cjs/utilities/sem-ver.utilities.js +204 -0
  368. package/dist/cjs/utilities/sem-ver.utilities.js.map +1 -0
  369. package/dist/cjs/utilities/typeorm.utilities.d.ts +39 -0
  370. package/dist/cjs/utilities/typeorm.utilities.d.ts.map +1 -0
  371. package/dist/cjs/utilities/typeorm.utilities.js +47 -0
  372. package/dist/cjs/utilities/typeorm.utilities.js.map +1 -0
  373. package/dist/cjs/utilities/uuid.utilities.js +2 -2
  374. package/dist/cjs/utilities/uuid.utilities.js.map +1 -1
  375. package/dist/cjs/validation/validation-problem.model.d.ts.map +1 -1
  376. package/dist/cjs/validation/validation-problem.model.js +4 -7
  377. package/dist/cjs/validation/validation-problem.model.js.map +1 -1
  378. package/dist/cjs/validation/validation.service.d.ts.map +1 -1
  379. package/dist/cjs/validation/validation.service.js +6 -4
  380. package/dist/cjs/validation/validation.service.js.map +1 -1
  381. package/dist/cjs/versioning/route-with-version-data.model.d.ts +15 -0
  382. package/dist/cjs/versioning/route-with-version-data.model.d.ts.map +1 -0
  383. package/dist/cjs/versioning/route-with-version-data.model.js +3 -0
  384. package/dist/cjs/versioning/route-with-version-data.model.js.map +1 -0
  385. package/dist/cjs/versioning/supported-versions-options.model.d.ts +17 -0
  386. package/dist/cjs/versioning/supported-versions-options.model.d.ts.map +1 -0
  387. package/dist/cjs/versioning/supported-versions-options.model.js +3 -0
  388. package/dist/cjs/versioning/supported-versions-options.model.js.map +1 -0
  389. package/dist/cjs/versioning/version.model.d.ts +29 -0
  390. package/dist/cjs/versioning/version.model.d.ts.map +1 -0
  391. package/dist/cjs/{types/version.type.js → versioning/version.model.js} +1 -1
  392. package/dist/cjs/versioning/version.model.js.map +1 -0
  393. package/dist/cjs/versioning/versioning-service.interface.d.ts +31 -0
  394. package/dist/cjs/versioning/versioning-service.interface.d.ts.map +1 -0
  395. package/dist/cjs/versioning/versioning-service.interface.js +3 -0
  396. package/dist/cjs/versioning/versioning-service.interface.js.map +1 -0
  397. package/dist/cjs/versioning/versioning.service.d.ts +41 -0
  398. package/dist/cjs/versioning/versioning.service.d.ts.map +1 -0
  399. package/dist/cjs/versioning/versioning.service.js +366 -0
  400. package/dist/cjs/versioning/versioning.service.js.map +1 -0
  401. package/dist/cjs/websocket/decorators/websocket-controller.decorator.d.ts +10 -0
  402. package/dist/cjs/websocket/decorators/websocket-controller.decorator.d.ts.map +1 -1
  403. package/dist/cjs/websocket/decorators/websocket-controller.decorator.js +2 -2
  404. package/dist/cjs/websocket/decorators/websocket-controller.decorator.js.map +1 -1
  405. package/dist/cjs/websocket/decorators/websocket-route.decorator.d.ts +13 -1
  406. package/dist/cjs/websocket/decorators/websocket-route.decorator.d.ts.map +1 -1
  407. package/dist/cjs/websocket/decorators/websocket-route.decorator.js +3 -2
  408. package/dist/cjs/websocket/decorators/websocket-route.decorator.js.map +1 -1
  409. package/dist/cjs/websocket/models/connection/base-websocket-connection.model.d.ts +5 -0
  410. package/dist/cjs/websocket/models/connection/base-websocket-connection.model.d.ts.map +1 -1
  411. package/dist/cjs/websocket/models/connection/socket-io-websocket-connection.model.d.ts +3 -1
  412. package/dist/cjs/websocket/models/connection/socket-io-websocket-connection.model.d.ts.map +1 -1
  413. package/dist/cjs/websocket/models/connection/socket-io-websocket-connection.model.js +3 -1
  414. package/dist/cjs/websocket/models/connection/socket-io-websocket-connection.model.js.map +1 -1
  415. package/dist/cjs/websocket/models/websocket-controller-route-configuration.model.d.ts +6 -0
  416. package/dist/cjs/websocket/models/websocket-controller-route-configuration.model.d.ts.map +1 -1
  417. package/dist/cjs/websocket/models/websocket-message.model.d.ts +2 -2
  418. package/dist/cjs/websocket/models/websocket-message.model.d.ts.map +1 -1
  419. package/dist/cjs/websocket/models/websocket-message.model.js +1 -1
  420. package/dist/cjs/websocket/models/websocket-message.model.js.map +1 -1
  421. package/dist/cjs/websocket/models/websocket-request.model.d.ts +6 -12
  422. package/dist/cjs/websocket/models/websocket-request.model.d.ts.map +1 -1
  423. package/dist/cjs/websocket/models/websocket-request.model.js +1 -1
  424. package/dist/cjs/websocket/models/websocket-request.model.js.map +1 -1
  425. package/dist/cjs/websocket/services/websocket.service.d.ts +6 -4
  426. package/dist/cjs/websocket/services/websocket.service.d.ts.map +1 -1
  427. package/dist/cjs/websocket/services/websocket.service.js +122 -35
  428. package/dist/cjs/websocket/services/websocket.service.js.map +1 -1
  429. package/dist/esm/application.js +8 -3
  430. package/dist/esm/application.js.map +1 -1
  431. package/dist/esm/assets/asset.service.js +3 -1
  432. package/dist/esm/assets/asset.service.js.map +1 -1
  433. package/dist/esm/auth/2fa/methods/otp/otp-credentials.model.js.map +1 -1
  434. package/dist/esm/auth/2fa/methods/otp/otp.two-factor-method.js +1 -1
  435. package/dist/esm/auth/2fa/methods/otp/otp.two-factor-method.js.map +1 -1
  436. package/dist/esm/auth/encryption/encryption-key.model.js +9 -1
  437. package/dist/esm/auth/encryption/encryption-key.model.js.map +1 -1
  438. package/dist/esm/auth/strategies/cookie/cookie-auth.auth-strategy.js.map +1 -1
  439. package/dist/esm/auth/strategies/cookie/cookie-auth.controller.js +1 -1
  440. package/dist/esm/auth/strategies/cookie/cookie-auth.controller.js.map +1 -1
  441. package/dist/esm/auth/strategies/jwt/jwt-auth.controller.js +1 -1
  442. package/dist/esm/auth/strategies/jwt/jwt-auth.controller.js.map +1 -1
  443. package/dist/esm/auth/strategies/jwt/jwt-credentials.model.js +9 -1
  444. package/dist/esm/auth/strategies/jwt/jwt-credentials.model.js.map +1 -1
  445. package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js +3 -2
  446. package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
  447. package/dist/esm/backup/backup-resource-entity.model.js +9 -1
  448. package/dist/esm/backup/backup-resource-entity.model.js.map +1 -1
  449. package/dist/esm/backup/backup.service.js +2 -2
  450. package/dist/esm/backup/backup.service.js.map +1 -1
  451. package/dist/esm/caching/cache/base-cache.model.js.map +1 -1
  452. package/dist/esm/caching/cache/multi-tier.cache.js.map +1 -1
  453. package/dist/esm/caching/cache/read-aside/read-aside.cache.js.map +1 -1
  454. package/dist/esm/caching/cache/read-aside/write-around-read-aside.cache.js.map +1 -1
  455. package/dist/esm/caching/cache/read-aside/write-behind-read-aside.cache.js.map +1 -1
  456. package/dist/esm/caching/cache/read-aside/write-invalidate-read-aside-args-only.cache.js.map +1 -1
  457. package/dist/esm/caching/cache/read-aside/write-invalidate-read-aside-with-result.cache.js.map +1 -1
  458. package/dist/esm/caching/cache/read-aside/write-through-read-aside.cache.js.map +1 -1
  459. package/dist/esm/caching/cache/read-through/read-through.cache.js.map +1 -1
  460. package/dist/esm/caching/cache/read-through/write-around-read-through.cache.js.map +1 -1
  461. package/dist/esm/caching/cache/read-through/write-behind-read-through.cache.js.map +1 -1
  462. package/dist/esm/caching/cache/read-through/write-invalidate-read-through-args-only.cache.js.map +1 -1
  463. package/dist/esm/caching/cache/read-through/write-invalidate-read-through-with-result.cache.js.map +1 -1
  464. package/dist/esm/caching/cache/read-through/write-through-read-through.cache.js.map +1 -1
  465. package/dist/esm/change-sets/change-set-repository.js +16 -16
  466. package/dist/esm/change-sets/change-set-repository.js.map +1 -1
  467. package/dist/esm/change-sets/models/change-set-entity.model.js +29 -1
  468. package/dist/esm/change-sets/models/change-set-entity.model.js.map +1 -1
  469. package/dist/esm/change-sets/models/change-set.model.js +2 -2
  470. package/dist/esm/change-sets/models/change-set.model.js.map +1 -1
  471. package/dist/esm/change-sets/models/change.model.js +9 -1
  472. package/dist/esm/change-sets/models/change.model.js.map +1 -1
  473. package/dist/esm/change-sets/models/soft-delete-entity.model.js +26 -0
  474. package/dist/esm/change-sets/models/soft-delete-entity.model.js.map +1 -1
  475. package/dist/esm/change-sets/soft-delete-repository.js +22 -6
  476. package/dist/esm/change-sets/soft-delete-repository.js.map +1 -1
  477. package/dist/esm/context/als.utilities.js.map +1 -1
  478. package/dist/esm/context/cache/cache.context.js +61 -0
  479. package/dist/esm/context/cache/cache.context.js.map +1 -0
  480. package/dist/esm/context/request/request-context-token.model.js +1 -1
  481. package/dist/esm/context/request/request-context-token.model.js.map +1 -1
  482. package/dist/esm/cron/cron-job-entity.model.js.map +1 -1
  483. package/dist/esm/data-source/data-sources/data-source-initialization.error.js +14 -0
  484. package/dist/esm/data-source/data-sources/data-source-initialization.error.js.map +1 -0
  485. package/dist/esm/data-source/data-sources/data-source.interface.js.map +1 -1
  486. package/dist/esm/data-source/data-sources/postgres-typeorm-data-source.model.js +298 -0
  487. package/dist/esm/data-source/data-sources/postgres-typeorm-data-source.model.js.map +1 -0
  488. package/dist/esm/data-source/data-sources/sql-data-source.interface.js +3 -0
  489. package/dist/esm/data-source/data-sources/sql-data-source.interface.js.map +1 -0
  490. package/dist/esm/data-source/data-sources/typeorm-base-data-source.model.js +378 -0
  491. package/dist/esm/data-source/data-sources/typeorm-base-data-source.model.js.map +1 -0
  492. package/dist/esm/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js +373 -0
  493. package/dist/esm/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js.map +1 -0
  494. package/dist/esm/data-source/data-sources/where-converter/typeorm-where-filter.converter.js +250 -0
  495. package/dist/esm/data-source/data-sources/where-converter/typeorm-where-filter.converter.js.map +1 -0
  496. package/dist/esm/data-source/migration/migration-entity.model.js.map +1 -1
  497. package/dist/esm/data-source/models/where/where-filter-keys.model.js +39 -0
  498. package/dist/esm/data-source/models/where/where-filter-keys.model.js.map +1 -0
  499. package/dist/esm/data-source/query-failed.error.js +27 -1
  500. package/dist/esm/data-source/query-failed.error.js.map +1 -1
  501. package/dist/esm/data-source/repository.js +42 -16
  502. package/dist/esm/data-source/repository.js.map +1 -1
  503. package/dist/esm/di/decorators/inject-repository.decorator.js.map +1 -1
  504. package/dist/esm/di/default/zibri-di-providers.default.js +4 -0
  505. package/dist/esm/di/default/zibri-di-providers.default.js.map +1 -1
  506. package/dist/esm/di/default/zibri-di-tokens.default.js +2 -0
  507. package/dist/esm/di/default/zibri-di-tokens.default.js.map +1 -1
  508. package/dist/esm/email/email.service.js +8 -10
  509. package/dist/esm/email/email.service.js.map +1 -1
  510. package/dist/esm/email/models/email.model.js +5 -5
  511. package/dist/esm/email/models/email.model.js.map +1 -1
  512. package/dist/esm/entity/decorators/entity.decorator.js +6 -3
  513. package/dist/esm/entity/decorators/entity.decorator.js.map +1 -1
  514. package/dist/esm/entity/decorators/property.decorator.js +34 -20
  515. package/dist/esm/entity/decorators/property.decorator.js.map +1 -1
  516. package/dist/esm/entity/entity-metadata-missing.error.js +17 -0
  517. package/dist/esm/entity/entity-metadata-missing.error.js.map +1 -0
  518. package/dist/esm/entity/generation/generate-entity-file.function.js +1 -1
  519. package/dist/esm/entity/generation/generate-entity-file.function.js.map +1 -1
  520. package/dist/esm/entity/models/belongs-to-one-property-metadata.model.js +3 -0
  521. package/dist/esm/entity/models/belongs-to-one-property-metadata.model.js.map +1 -0
  522. package/dist/esm/entity/models/has-one-property-metadata.model.js +3 -0
  523. package/dist/esm/entity/models/has-one-property-metadata.model.js.map +1 -0
  524. package/dist/esm/entity/models/relation.enum.js +2 -1
  525. package/dist/esm/entity/models/relation.enum.js.map +1 -1
  526. package/dist/esm/entity/partial-class.model.js +1 -1
  527. package/dist/esm/entity/partial-class.model.js.map +1 -1
  528. package/dist/esm/event/event-cleanup.cron-job.js +4 -6
  529. package/dist/esm/event/event-cleanup.cron-job.js.map +1 -1
  530. package/dist/esm/event/event-subscriber-run.model.js +11 -18
  531. package/dist/esm/event/event-subscriber-run.model.js.map +1 -1
  532. package/dist/esm/event/event.model.js +1 -1
  533. package/dist/esm/event/event.model.js.map +1 -1
  534. package/dist/esm/event/event.service.js +6 -3
  535. package/dist/esm/event/event.service.js.map +1 -1
  536. package/dist/esm/global/model-registry/default-descriptor.js +2 -1
  537. package/dist/esm/global/model-registry/default-descriptor.js.map +1 -1
  538. package/dist/esm/global/model-registry/encryption-descriptor.js +2 -1
  539. package/dist/esm/global/model-registry/encryption-descriptor.js.map +1 -1
  540. package/dist/esm/global/model-registry/exclude-descriptor.js +2 -1
  541. package/dist/esm/global/model-registry/exclude-descriptor.js.map +1 -1
  542. package/dist/esm/global/model-registry/hash-descriptor.js +2 -1
  543. package/dist/esm/global/model-registry/hash-descriptor.js.map +1 -1
  544. package/dist/esm/http/known-header.enum.js +1 -0
  545. package/dist/esm/http/known-header.enum.js.map +1 -1
  546. package/dist/esm/http-client/http-client.js.map +1 -1
  547. package/dist/esm/index.js +20 -6
  548. package/dist/esm/index.js.map +1 -1
  549. package/dist/esm/localization/formatting/format-price.function.js.map +1 -1
  550. package/dist/esm/logging/log-context.model.js +9 -55
  551. package/dist/esm/logging/log-context.model.js.map +1 -1
  552. package/dist/esm/logging/logger.js +1 -1
  553. package/dist/esm/logging/logger.js.map +1 -1
  554. package/dist/esm/multithreading/models/thread-job-entity.model.js +4 -4
  555. package/dist/esm/multithreading/models/thread-job-entity.model.js.map +1 -1
  556. package/dist/esm/multithreading/services/thread-job.js.map +1 -1
  557. package/dist/esm/open-api/open-api.service.js +276 -150
  558. package/dist/esm/open-api/open-api.service.js.map +1 -1
  559. package/dist/esm/parsing/form-data/form-data.body-parser.js +2 -1
  560. package/dist/esm/parsing/form-data/form-data.body-parser.js.map +1 -1
  561. package/dist/esm/parsing/functions/parse-boolean.function.js.map +1 -1
  562. package/dist/esm/parsing/functions/parse-object.function.js +2 -1
  563. package/dist/esm/parsing/functions/parse-object.function.js.map +1 -1
  564. package/dist/esm/parsing/html/csp-options.model.js.map +1 -1
  565. package/dist/esm/parsing/parser.js +5 -4
  566. package/dist/esm/parsing/parser.js.map +1 -1
  567. package/dist/esm/plugin/invoicing/models/invoice-address.model.js +2 -2
  568. package/dist/esm/plugin/invoicing/models/invoice-address.model.js.map +1 -1
  569. package/dist/esm/plugin/invoicing/models/vat.model.js +1 -1
  570. package/dist/esm/plugin/invoicing/models/vat.model.js.map +1 -1
  571. package/dist/esm/plugin/mailing-list/mailing-list.controller.js +1 -1
  572. package/dist/esm/plugin/mailing-list/mailing-list.controller.js.map +1 -1
  573. package/dist/esm/plugin/mailing-list/models/mailing-list-subscriber.model.js +1 -1
  574. package/dist/esm/plugin/mailing-list/models/mailing-list-subscriber.model.js.map +1 -1
  575. package/dist/esm/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js +1 -1
  576. package/dist/esm/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +1 -1
  577. package/dist/esm/plugin/payment/models/payment.model.js +1 -1
  578. package/dist/esm/plugin/payment/models/payment.model.js.map +1 -1
  579. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal-client.js +17 -17
  580. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal-client.js.map +1 -1
  581. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js +1 -1
  582. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js.map +1 -1
  583. package/dist/esm/preact/preact.utilities.js +1 -1
  584. package/dist/esm/preact/preact.utilities.js.map +1 -1
  585. package/dist/esm/preact/validate-email-templates.function.js +1 -1
  586. package/dist/esm/preact/validate-email-templates.function.js.map +1 -1
  587. package/dist/esm/rate-limiting/rate-limiter.js +22 -12
  588. package/dist/esm/rate-limiting/rate-limiter.js.map +1 -1
  589. package/dist/esm/routing/decorators/body.decorator.js +2 -1
  590. package/dist/esm/routing/decorators/body.decorator.js.map +1 -1
  591. package/dist/esm/routing/decorators/controller.decorator.js +3 -2
  592. package/dist/esm/routing/decorators/controller.decorator.js.map +1 -1
  593. package/dist/esm/routing/decorators/create-http-decorator.function.js +2 -2
  594. package/dist/esm/routing/decorators/create-http-decorator.function.js.map +1 -1
  595. package/dist/esm/routing/decorators/delete.decorator.js +3 -2
  596. package/dist/esm/routing/decorators/delete.decorator.js.map +1 -1
  597. package/dist/esm/routing/decorators/get.decorator.js +3 -2
  598. package/dist/esm/routing/decorators/get.decorator.js.map +1 -1
  599. package/dist/esm/routing/decorators/http-decorator-option-input.model.js +3 -0
  600. package/dist/esm/routing/decorators/http-decorator-option-input.model.js.map +1 -0
  601. package/dist/esm/routing/decorators/patch.decorator.js +3 -2
  602. package/dist/esm/routing/decorators/patch.decorator.js.map +1 -1
  603. package/dist/esm/routing/decorators/post.decorator.js +3 -2
  604. package/dist/esm/routing/decorators/post.decorator.js.map +1 -1
  605. package/dist/esm/routing/resolve-route-params.function.js +2 -1
  606. package/dist/esm/routing/resolve-route-params.function.js.map +1 -1
  607. package/dist/esm/routing/router.js +191 -70
  608. package/dist/esm/routing/router.js.map +1 -1
  609. package/dist/esm/utilities/fs.utilities.js +1 -1
  610. package/dist/esm/utilities/metadata-injection-keys.enum.js +1 -0
  611. package/dist/esm/utilities/metadata-injection-keys.enum.js.map +1 -1
  612. package/dist/esm/utilities/sem-ver.utilities.js +204 -0
  613. package/dist/esm/utilities/sem-ver.utilities.js.map +1 -0
  614. package/dist/esm/utilities/typeorm.utilities.js +47 -0
  615. package/dist/esm/utilities/typeorm.utilities.js.map +1 -0
  616. package/dist/esm/utilities/uuid.utilities.js +2 -2
  617. package/dist/esm/utilities/uuid.utilities.js.map +1 -1
  618. package/dist/esm/validation/validation-problem.model.js +4 -7
  619. package/dist/esm/validation/validation-problem.model.js.map +1 -1
  620. package/dist/esm/validation/validation.service.js +6 -4
  621. package/dist/esm/validation/validation.service.js.map +1 -1
  622. package/dist/esm/versioning/route-with-version-data.model.js +3 -0
  623. package/dist/esm/versioning/route-with-version-data.model.js.map +1 -0
  624. package/dist/esm/versioning/supported-versions-options.model.js +3 -0
  625. package/dist/esm/versioning/supported-versions-options.model.js.map +1 -0
  626. package/dist/esm/{types/version.type.js → versioning/version.model.js} +1 -1
  627. package/dist/esm/versioning/version.model.js.map +1 -0
  628. package/dist/esm/versioning/versioning-service.interface.js +3 -0
  629. package/dist/esm/versioning/versioning-service.interface.js.map +1 -0
  630. package/dist/esm/versioning/versioning.service.js +366 -0
  631. package/dist/esm/versioning/versioning.service.js.map +1 -0
  632. package/dist/esm/websocket/decorators/websocket-controller.decorator.js +2 -2
  633. package/dist/esm/websocket/decorators/websocket-controller.decorator.js.map +1 -1
  634. package/dist/esm/websocket/decorators/websocket-route.decorator.js +3 -2
  635. package/dist/esm/websocket/decorators/websocket-route.decorator.js.map +1 -1
  636. package/dist/esm/websocket/models/connection/socket-io-websocket-connection.model.js +3 -1
  637. package/dist/esm/websocket/models/connection/socket-io-websocket-connection.model.js.map +1 -1
  638. package/dist/esm/websocket/models/websocket-message.model.js +1 -1
  639. package/dist/esm/websocket/models/websocket-message.model.js.map +1 -1
  640. package/dist/esm/websocket/models/websocket-request.model.js +1 -1
  641. package/dist/esm/websocket/models/websocket-request.model.js.map +1 -1
  642. package/dist/esm/websocket/services/websocket.service.js +122 -35
  643. package/dist/esm/websocket/services/websocket.service.js.map +1 -1
  644. package/package.json +21 -23
  645. package/src/__testing__/mocks/entities/child.entity.ts +4 -1
  646. package/src/__testing__/mocks/entities/company.entity.ts +5 -2
  647. package/src/__testing__/mocks/entities/profile.entity.ts +5 -2
  648. package/src/__testing__/mocks/entities/role.entity.ts +1 -1
  649. package/src/__testing__/mocks/entities/user.entity.ts +1 -1
  650. package/src/__testing__/test-server/create-test-data-source.function.ts +5 -5
  651. package/src/__testing__/test-server/providers.ts +25 -1
  652. package/src/__testing__/test-server/start-test-server.function.ts +82 -12
  653. package/src/__testing__/test-server/user-repository.ts +4 -3
  654. package/src/application-options.model.ts +2 -2
  655. package/src/application.ts +8 -3
  656. package/src/assets/asset.service.ts +3 -1
  657. package/src/auth/2fa/methods/otp/otp-credentials.model.ts +1 -1
  658. package/src/auth/2fa/methods/otp/otp.two-factor-method.ts +1 -1
  659. package/src/auth/2fa/two-factor.service.test.ts +151 -0
  660. package/src/auth/auth.service.test.ts +381 -0
  661. package/src/auth/encryption/encryption-key.model.ts +7 -2
  662. package/src/auth/strategies/cookie/cookie-auth.auth-strategy.ts +3 -2
  663. package/src/auth/strategies/cookie/cookie-auth.controller.ts +1 -1
  664. package/src/auth/strategies/jwt/jwt-auth.controller.ts +1 -1
  665. package/src/auth/strategies/jwt/jwt-credentials.model.ts +7 -1
  666. package/src/auth/strategies/jwt/jwt.auth-strategy.ts +6 -4
  667. package/src/backup/backup-resource-entity.model.ts +8 -3
  668. package/src/backup/backup-service.test.ts +3 -2
  669. package/src/backup/backup.service.ts +1 -1
  670. package/src/caching/cache/base-cache.model.ts +3 -3
  671. package/src/caching/cache/multi-tier.cache.ts +3 -3
  672. package/src/caching/cache/read-aside/read-aside.cache.ts +2 -2
  673. package/src/caching/cache/read-aside/write-around-read-aside.cache.ts +2 -2
  674. package/src/caching/cache/read-aside/write-behind-read-aside.cache.ts +2 -2
  675. package/src/caching/cache/read-aside/write-invalidate-read-aside-args-only.cache.ts +2 -2
  676. package/src/caching/cache/read-aside/write-invalidate-read-aside-with-result.cache.ts +2 -2
  677. package/src/caching/cache/read-aside/write-through-read-aside.cache.ts +2 -2
  678. package/src/caching/cache/read-through/read-through.cache.ts +2 -2
  679. package/src/caching/cache/read-through/write-around-read-through.cache.ts +2 -2
  680. package/src/caching/cache/read-through/write-behind-read-through.cache.ts +2 -2
  681. package/src/caching/cache/read-through/write-invalidate-read-through-args-only.cache.ts +2 -2
  682. package/src/caching/cache/read-through/write-invalidate-read-through-with-result.cache.ts +2 -2
  683. package/src/caching/cache/read-through/write-through-read-through.cache.ts +2 -2
  684. package/src/change-sets/change-set-repository.test.ts +317 -0
  685. package/src/change-sets/change-set-repository.ts +17 -17
  686. package/src/change-sets/models/change-set-entity.model.ts +6 -4
  687. package/src/change-sets/models/change-set.model.ts +2 -2
  688. package/src/change-sets/models/change.model.ts +9 -4
  689. package/src/change-sets/models/soft-delete-entity.model.ts +5 -3
  690. package/src/change-sets/soft-delete-repository.test.ts +326 -0
  691. package/src/change-sets/soft-delete-repository.ts +29 -10
  692. package/src/context/als.utilities.ts +5 -5
  693. package/src/context/cache/cache.context.ts +33 -0
  694. package/src/context/request/request-context-token.model.ts +1 -1
  695. package/src/cron/cron-job-entity.model.ts +2 -2
  696. package/src/cron/cron.test.ts +421 -0
  697. package/src/data-source/array-where-filter.test.ts +332 -0
  698. package/src/data-source/data-sources/data-source-initialization.error.ts +9 -0
  699. package/src/data-source/data-sources/data-source.interface.ts +14 -1
  700. package/src/data-source/data-sources/postgres-typeorm-data-source.model.ts +340 -0
  701. package/src/data-source/data-sources/sql-data-source.interface.ts +35 -0
  702. package/src/data-source/data-sources/typeorm-base-data-source.model.ts +543 -0
  703. package/src/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.ts +484 -0
  704. package/src/data-source/data-sources/where-converter/typeorm-where-filter.converter.ts +389 -0
  705. package/src/data-source/exclude-property.test.ts +4 -1
  706. package/src/data-source/hooks/hooks.test.ts +268 -0
  707. package/src/data-source/migration/migration-entity.model.ts +2 -2
  708. package/src/data-source/migration/migration.model.ts +2 -2
  709. package/src/data-source/migration/migration.test.ts +6 -5
  710. package/src/data-source/models/options/count-options.model.ts +2 -7
  711. package/src/data-source/models/options/delete-all-options.model.ts +2 -4
  712. package/src/data-source/models/options/find-all-options.model.ts +2 -2
  713. package/src/data-source/models/options/find-by-id-options.model.ts +1 -6
  714. package/src/data-source/models/options/find-one-options.model.ts +2 -11
  715. package/src/data-source/models/options/update-all-options.model.ts +2 -5
  716. package/src/data-source/models/options/update-by-id-options.model.ts +2 -5
  717. package/src/data-source/models/where/array-where-filter.model.ts +147 -5
  718. package/src/data-source/models/where/base-where-filter.model.ts +19 -1
  719. package/src/data-source/models/where/boolean-where-filter.model.ts +7 -2
  720. package/src/data-source/models/where/date-where-filter.model.ts +17 -16
  721. package/src/data-source/models/where/number-where-filter.model.ts +9 -16
  722. package/src/data-source/models/where/object-where-filter.model.ts +66 -7
  723. package/src/data-source/models/where/string-where-filter.model.ts +27 -17
  724. package/src/data-source/models/where/where-filter-keys.model.ts +91 -0
  725. package/src/data-source/models/where/where-filter-to-find-options-where-function.test.ts +35 -13
  726. package/src/data-source/models/where/where-filter.model.ts +7 -4
  727. package/src/data-source/nested-where-filter.test.ts +349 -0
  728. package/src/data-source/query-failed.error.ts +38 -1
  729. package/src/data-source/repository-relation-pitfalls.test.ts +232 -0
  730. package/src/data-source/repository.test.ts +274 -37
  731. package/src/data-source/repository.ts +50 -16
  732. package/src/data-source/transaction/transaction.test.ts +1 -1
  733. package/src/data-source/where-filter.test.ts +489 -0
  734. package/src/di/decorators/inject-repository.decorator.ts +3 -2
  735. package/src/di/default/zibri-di-providers.default.ts +4 -0
  736. package/src/di/default/zibri-di-tokens.default.ts +5 -2
  737. package/src/email/email.service.test.ts +382 -0
  738. package/src/email/email.service.ts +9 -10
  739. package/src/email/models/email.model.ts +5 -5
  740. package/src/entity/decorators/entity.decorator.ts +44 -5
  741. package/src/entity/decorators/property.decorator.ts +54 -36
  742. package/src/entity/entity-metadata-missing.error.ts +15 -0
  743. package/src/entity/generation/generate-entity-file.function.ts +1 -1
  744. package/src/entity/models/base-relation-metadata.model.ts +1 -1
  745. package/src/entity/models/belongs-to-one-property-metadata.model.ts +34 -0
  746. package/src/entity/models/has-one-property-metadata.model.ts +20 -0
  747. package/src/entity/models/many-to-many-property-metadata.model.ts +3 -3
  748. package/src/entity/models/many-to-one-property-metadata.model.ts +17 -3
  749. package/src/entity/models/relation.enum.ts +2 -1
  750. package/src/entity/partial-class.model.ts +1 -1
  751. package/src/event/event-cleanup.cron-job.ts +4 -6
  752. package/src/event/event-subscriber-run.model.ts +9 -10
  753. package/src/event/event.model.ts +1 -1
  754. package/src/event/event.service.ts +6 -3
  755. package/src/global/global-registry.ts +2 -2
  756. package/src/global/model-registry/default-descriptor.ts +2 -1
  757. package/src/global/model-registry/encryption-descriptor.ts +2 -1
  758. package/src/global/model-registry/exclude-descriptor.ts +2 -1
  759. package/src/global/model-registry/hash-descriptor.ts +2 -1
  760. package/src/http/http-request.model.ts +2 -2
  761. package/src/http/known-header.enum.ts +1 -0
  762. package/src/http-client/http-client.ts +0 -1
  763. package/src/index.ts +24 -6
  764. package/src/localization/formatting/format-price.function.ts +2 -3
  765. package/src/logging/log-context.model.ts +8 -39
  766. package/src/logging/logger.ts +1 -1
  767. package/src/multithreading/models/thread-job-entity.model.ts +5 -5
  768. package/src/multithreading/services/thread-job.ts +4 -4
  769. package/src/open-api/open-api-service.interface.ts +2 -1
  770. package/src/open-api/open-api.service.ts +295 -154
  771. package/src/parsing/form-data/form-data.body-parser.ts +2 -1
  772. package/src/parsing/functions/parse-boolean.function.ts +0 -1
  773. package/src/parsing/functions/parse-object.function.ts +2 -1
  774. package/src/parsing/html/csp-options.model.ts +3 -0
  775. package/src/parsing/parser.ts +5 -4
  776. package/src/plugin/invoicing/models/invoice-address.model.ts +2 -2
  777. package/src/plugin/invoicing/models/vat.model.ts +1 -1
  778. package/src/plugin/mailing-list/mailing-list.controller.ts +1 -1
  779. package/src/plugin/mailing-list/models/mailing-list-subscriber.model.ts +1 -1
  780. package/src/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.ts +1 -1
  781. package/src/plugin/payment/models/payment.model.ts +2 -2
  782. package/src/plugin/payment/providers/pay-pal/pay-pal-client.ts +17 -17
  783. package/src/plugin/payment/providers/pay-pal/pay-pal.payment-provider.test.ts +1 -1
  784. package/src/plugin/payment/providers/pay-pal/pay-pal.payment-provider.ts +1 -1
  785. package/src/preact/preact.utilities.ts +1 -1
  786. package/src/preact/validate-email-templates.function.ts +1 -1
  787. package/src/rate-limiting/rate-limiter.ts +23 -12
  788. package/src/routing/controller-route-configuration.model.ts +6 -1
  789. package/src/routing/decorators/body.decorator.ts +2 -1
  790. package/src/routing/decorators/controller.decorator.ts +8 -2
  791. package/src/routing/decorators/create-http-decorator.function.ts +3 -2
  792. package/src/routing/decorators/delete.decorator.ts +4 -2
  793. package/src/routing/decorators/get.decorator.ts +4 -2
  794. package/src/routing/decorators/http-decorator-option-input.model.ts +11 -0
  795. package/src/routing/decorators/patch.decorator.ts +4 -2
  796. package/src/routing/decorators/post.decorator.ts +4 -2
  797. package/src/routing/resolve-route-params.function.ts +2 -1
  798. package/src/routing/route-configuration.model.ts +13 -3
  799. package/src/routing/router.ts +266 -101
  800. package/src/utilities/fs.utilities.ts +1 -1
  801. package/src/utilities/metadata-injection-keys.enum.ts +1 -0
  802. package/src/utilities/sem-ver.utilities.ts +270 -0
  803. package/src/utilities/typeorm.utilities.ts +75 -0
  804. package/src/utilities/uuid.utilities.ts +2 -2
  805. package/src/validation/validation-problem.model.ts +7 -9
  806. package/src/validation/validation.service.ts +6 -4
  807. package/src/versioning/route-with-version-data.model.ts +15 -0
  808. package/src/versioning/supported-versions-options.model.ts +25 -0
  809. package/src/versioning/version.model.ts +30 -0
  810. package/src/versioning/versioning-service.interface.ts +39 -0
  811. package/src/versioning/versioning-websocket.test.ts +351 -0
  812. package/src/versioning/versioning.service.test.ts +582 -0
  813. package/src/versioning/versioning.service.ts +496 -0
  814. package/src/websocket/decorators/websocket-controller.decorator.ts +13 -3
  815. package/src/websocket/decorators/websocket-route.decorator.ts +15 -2
  816. package/src/websocket/models/connection/base-websocket-connection.model.ts +6 -0
  817. package/src/websocket/models/connection/socket-io-websocket-connection.model.ts +8 -1
  818. package/src/websocket/models/websocket-controller-route-configuration.model.ts +8 -1
  819. package/src/websocket/models/websocket-message.model.ts +3 -3
  820. package/src/websocket/models/websocket-request.model.ts +19 -10
  821. package/src/websocket/services/websocket.service.ts +144 -40
  822. package/dist/cjs/data-source/data-sources/postgres-data-source.model.d.ts +0 -129
  823. package/dist/cjs/data-source/data-sources/postgres-data-source.model.d.ts.map +0 -1
  824. package/dist/cjs/data-source/data-sources/postgres-data-source.model.js +0 -534
  825. package/dist/cjs/data-source/data-sources/postgres-data-source.model.js.map +0 -1
  826. package/dist/cjs/data-source/models/where/where-filter-to-find-options-where.function.d.ts +0 -11
  827. package/dist/cjs/data-source/models/where/where-filter-to-find-options-where.function.d.ts.map +0 -1
  828. package/dist/cjs/data-source/models/where/where-filter-to-find-options-where.function.js +0 -229
  829. package/dist/cjs/data-source/models/where/where-filter-to-find-options-where.function.js.map +0 -1
  830. package/dist/cjs/entity/models/one-to-one-property-metadata.model.d.ts +0 -30
  831. package/dist/cjs/entity/models/one-to-one-property-metadata.model.d.ts.map +0 -1
  832. package/dist/cjs/entity/models/one-to-one-property-metadata.model.js.map +0 -1
  833. package/dist/cjs/types/version.type.d.ts +0 -5
  834. package/dist/cjs/types/version.type.d.ts.map +0 -1
  835. package/dist/cjs/types/version.type.js.map +0 -1
  836. package/dist/cjs/utilities/compare-versions.function.d.ts +0 -9
  837. package/dist/cjs/utilities/compare-versions.function.d.ts.map +0 -1
  838. package/dist/cjs/utilities/compare-versions.function.js +0 -33
  839. package/dist/cjs/utilities/compare-versions.function.js.map +0 -1
  840. package/dist/cjs/utilities/is-version.function.d.ts +0 -7
  841. package/dist/cjs/utilities/is-version.function.d.ts.map +0 -1
  842. package/dist/cjs/utilities/is-version.function.js +0 -18
  843. package/dist/cjs/utilities/is-version.function.js.map +0 -1
  844. package/dist/esm/data-source/data-sources/postgres-data-source.model.js +0 -534
  845. package/dist/esm/data-source/data-sources/postgres-data-source.model.js.map +0 -1
  846. package/dist/esm/data-source/models/where/where-filter-to-find-options-where.function.js +0 -229
  847. package/dist/esm/data-source/models/where/where-filter-to-find-options-where.function.js.map +0 -1
  848. package/dist/esm/entity/models/one-to-one-property-metadata.model.js.map +0 -1
  849. package/dist/esm/types/version.type.js.map +0 -1
  850. package/dist/esm/utilities/compare-versions.function.js +0 -33
  851. package/dist/esm/utilities/compare-versions.function.js.map +0 -1
  852. package/dist/esm/utilities/is-version.function.js +0 -18
  853. package/dist/esm/utilities/is-version.function.js.map +0 -1
  854. package/src/data-source/data-sources/postgres-data-source.model.ts +0 -675
  855. package/src/data-source/models/where/where-filter-to-find-options-where.function.ts +0 -307
  856. package/src/entity/models/one-to-one-property-metadata.model.ts +0 -35
  857. package/src/types/version.type.ts +0 -4
  858. package/src/utilities/compare-versions.function.ts +0 -33
  859. package/src/utilities/is-version.function.ts +0 -16
@@ -1,675 +0,0 @@
1
- import { ChildProcessByStdio, spawn } from 'node:child_process';
2
- import { PassThrough, Readable, Writable } from 'node:stream';
3
-
4
- import { DataSource as TODataSource, Repository as TORepository, EntityMetadata as TOEntityMetadata, EntitySchema, EntitySchemaColumnOptions, QueryRunner, EntitySchemaRelationOptions, Table, TableColumnOptions, TableColumn, EntityTarget } from 'typeorm';
5
- import { PostgresConnectionOptions } from 'typeorm/driver/postgres/PostgresConnectionOptions.js';
6
- import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata.js';
7
- import { OnDeleteType } from 'typeorm/metadata/types/OnDeleteType.js';
8
- import { OnUpdateType } from 'typeorm/metadata/types/OnUpdateType.js';
9
-
10
- import { DataSourceInterface, IsolationLevel } from './data-source.interface';
11
- import { ChangeSetRepository } from '../../change-sets/change-set-repository';
12
- import { isChangeSetEntityNewable, ChangeSetEntity } from '../../change-sets/models/change-set-entity.model';
13
- import { isSoftDeleteEntityNewable, SoftDeleteEntity } from '../../change-sets/models/soft-delete-entity.model';
14
- import { SoftDeleteRepository } from '../../change-sets/soft-delete-repository';
15
- import { repositoryTokenFor } from '../../di/decorators/inject-repository.decorator';
16
- import { Inject } from '../../di/decorators/inject.decorator';
17
- import { ZIBRI_DI_TOKENS } from '../../di/default/zibri-di-tokens.default';
18
- import { inject } from '../../di/inject.function';
19
- import { register } from '../../di/register.function';
20
- import { BaseEntity } from '../../entity/base-entity.model';
21
- import { EntityMetadata } from '../../entity/decorators/entity.decorator';
22
- import { PropertyMetadata, PropertyMetadataInput, RelationMetadata } from '../../entity/decorators/property.decorator';
23
- import { FilePropertyMetadata } from '../../entity/models/file-property-metadata.model';
24
- import { Relation } from '../../entity/models/relation.enum';
25
- import { StringPropertyMetadata } from '../../entity/models/string-property-metadata.model';
26
- import { GlobalRegistry } from '../../global/global-registry';
27
- import { type LoggerInterface } from '../../logging/logger.interface';
28
- import { ExcludeStrict } from '../../types/exclude-strict.type';
29
- import { Newable } from '../../types/newable.type';
30
- import { OmitStrict } from '../../types/omit-strict.type';
31
- import { Version } from '../../types/version.type';
32
- import { compareVersion } from '../../utilities/compare-versions.function';
33
- import { MetadataUtilities } from '../../utilities/metadata.utilities';
34
- import { ObjectUtilities } from '../../utilities/object.utilities';
35
- import { getDefaultBeforeReturnHook, getDefaultBeforeSaveHook } from '../hooks/hooks.default';
36
- import { MigrationEntity } from '../migration/migration-entity.model';
37
- import { Migration } from '../migration/migration.model';
38
- import { ColumnType } from '../models/column-type.model';
39
- import { DataSourceOptions } from '../models/data-source-options.model';
40
- import { Repository } from '../repository';
41
- import { Transaction } from '../transaction/transaction.model';
42
- import { TypeOrmTransaction } from '../transaction/typeorm-transaction.model';
43
-
44
- // eslint-disable-next-line jsdoc/require-jsdoc
45
- type ToColumnMappableTypes = ExcludeStrict<PropertyMetadata, RelationMetadata<BaseEntity>>['type'];
46
-
47
- // eslint-disable-next-line jsdoc/require-jsdoc
48
- type MigrationWithName = { migration: Migration, name: string };
49
-
50
- /**
51
- * Postgres-specific connection options.
52
- */
53
- export type PostgresOptions = OmitStrict<PostgresConnectionOptions, 'entities' | 'type'>;
54
-
55
- /**
56
- * A base postgres data source definition.
57
- */
58
- export abstract class PostgresDataSource implements DataSourceInterface {
59
- /**
60
- * Mapping from a Zibri property type to a typeorm column type.
61
- */
62
- protected readonly columnTypeMappingOverride: Partial<Record<ToColumnMappableTypes, ColumnType>> = {};
63
-
64
- private get columnTypeMapping(): Record<ToColumnMappableTypes, ColumnType> {
65
- return {
66
- array: 'array',
67
- number: 'decimal',
68
- string: 'varchar',
69
- object: 'jsonb',
70
- date: 'timestamptz',
71
- boolean: 'boolean',
72
- unknown: 'jsonb',
73
- file: 'bytea',
74
- ...this.columnTypeMappingOverride
75
- };
76
- }
77
-
78
- abstract readonly options: PostgresOptions;
79
- abstract readonly entities: Newable<BaseEntity>[];
80
- /**
81
- * The optional root password.
82
- */
83
- readonly rootPw: string | undefined;
84
- /**
85
- * The optional root username.
86
- */
87
- readonly rootUsername: string | undefined;
88
-
89
- // eslint-disable-next-line jsdoc/require-jsdoc
90
- readonly migrations: Newable<Migration>[] = [];
91
-
92
- /**
93
- * The internal typeorm data source.
94
- */
95
- protected ds?: TODataSource;
96
-
97
- constructor(
98
- @Inject(ZIBRI_DI_TOKENS.LOGGER)
99
- private readonly logger: LoggerInterface
100
- ) { }
101
-
102
- // eslint-disable-next-line jsdoc/require-jsdoc
103
- createBackupData(): Readable {
104
- const dumpCommand: string = 'pg_dumpall';
105
- const { host, port } = this.options;
106
- if (!this.rootUsername || !host || !port) {
107
- throw new Error('Could not create a backup, missing this.rootUsername, this.options.host or this.options.port');
108
- }
109
- const args: string[] = ['-U', this.rootUsername, '-h', host, '-p', port.toString()];
110
-
111
- const child: ChildProcessByStdio<null, Readable, null> = spawn(dumpCommand, args, {
112
- stdio: ['ignore', 'pipe', 'inherit'],
113
- env: { ...process.env, PGPASSWORD: this.rootPw }
114
- });
115
-
116
- const out: PassThrough = new PassThrough();
117
- child.stdout.pipe(out);
118
- child.on('error', err => {
119
- out.destroy(err);
120
- });
121
- child.on('exit', code => {
122
- if (code !== 0) {
123
- out.destroy(new Error(`${dumpCommand} exited with code ${code}`));
124
- }
125
- else {
126
- out.end();
127
- }
128
- });
129
-
130
- return out;
131
- }
132
-
133
- // eslint-disable-next-line jsdoc/require-jsdoc
134
- async restoreBackup(backupData: Readable): Promise<void> {
135
- const { host, port, database } = this.options;
136
- if (!this.rootUsername || !host || !port || !database) {
137
- throw new Error('Missing rootUsername, host, port, or database for restore');
138
- }
139
-
140
- const args: string[] = ['-U', this.rootUsername, '-h', host, '-p', port.toString(), '-d', database];
141
- const child: ChildProcessByStdio<Writable, null, null> = spawn('psql', args, {
142
- stdio: ['pipe', 'inherit', 'inherit'],
143
- env: { ...process.env, PGPASSWORD: this.rootPw }
144
- });
145
-
146
- return new Promise((resolve, reject) => {
147
- backupData.pipe(child.stdin);
148
-
149
- child.on('error', reject);
150
- child.on('close', code => {
151
- if (code !== 0) {
152
- reject(new Error(`psql exited with code ${code}`));
153
- }
154
- else {
155
- resolve();
156
- }
157
- });
158
- });
159
- }
160
-
161
- // eslint-disable-next-line jsdoc/require-jsdoc
162
- async init(): Promise<void> {
163
- if (this.ds) {
164
- throw new Error('The postgres data source has already been initialized.');
165
- }
166
-
167
- if (this.options.username === 'postgres' && this.options.password === 'password') {
168
- await this.logger.warn(
169
- `The data source "${this.constructor.name}" uses the default credentials, you probably want to change that.`
170
- );
171
- }
172
-
173
- for (const entityClass of this.entities) {
174
- register({
175
- token: repositoryTokenFor(entityClass),
176
- useFactory: () => this.getRepository(entityClass)
177
- });
178
- }
179
-
180
- const schemas: EntitySchema[] = this.getEntitySchemas();
181
- this.ds = new TODataSource({
182
- entities: schemas,
183
- poolSize: 100,
184
- type: 'postgres',
185
- ...this.options,
186
- synchronize: false
187
- } as DataSourceOptions);
188
- await this.ds.initialize();
189
-
190
- await this.runMigrations();
191
-
192
- if (this.options.synchronize !== false) {
193
- await this.ds.synchronize();
194
- }
195
- }
196
-
197
- // eslint-disable-next-line jsdoc/require-jsdoc
198
- async shutDown(): Promise<void> {
199
- await this.ds?.destroy();
200
- }
201
-
202
- /**
203
- * Gets entity schemas for the entities of this data source.
204
- * @returns Typeorm entity schemas.
205
- */
206
- protected getEntitySchemas(): EntitySchema[] {
207
- const schemas: EntitySchema[] = this.entities.map(e => this.createSchemaForEntity(e));
208
- return schemas;
209
- }
210
-
211
- /**
212
- * Creates a typeorm entity schema for a single entity.
213
- * @param cls - The entity class to create the schema for.
214
- * @returns A typeorm entity schema.
215
- * @throws When the provided entity was configured incorrectly.
216
- */
217
- protected createSchemaForEntity(cls: Newable<BaseEntity>): EntitySchema {
218
- const entityMetadata: EntityMetadata | undefined = MetadataUtilities.getEntityMetadata(cls);
219
- if (!entityMetadata) {
220
- throw new Error(`Could not find metadata for entity "${cls.name}". Did you forget to decorate it with @Entity?`);
221
- }
222
- const props: Record<string, PropertyMetadata> = MetadataUtilities.getModelProperties(cls);
223
-
224
- const numberOfPrimaryKeys: number = ObjectUtilities
225
- .values(props)
226
- // eslint-disable-next-line typescript/no-explicit-any
227
- .filter(d => (d as StringPropertyMetadata<any, any, any, any, any>).primary)
228
- .length;
229
- if (numberOfPrimaryKeys === 0) {
230
- throw new Error(`no primary key specified for entity "${cls.name}".`);
231
- }
232
- if (numberOfPrimaryKeys > 1) {
233
- throw new Error(`more than 1 primary key specified for entity "${cls.name}".`);
234
- }
235
-
236
- const columns: Record<string, EntitySchemaColumnOptions> = {};
237
- const relations: Record<string, EntitySchemaRelationOptions> = {};
238
- for (const [key, m] of ObjectUtilities.entries(props)) {
239
- if (
240
- m.type === Relation.MANY_TO_ONE
241
- || m.type === Relation.ONE_TO_MANY
242
- || m.type === Relation.ONE_TO_ONE
243
- || m.type === Relation.MANY_TO_MANY
244
- ) {
245
- relations[key] = this.propertyToRelationOptions(m);
246
- continue;
247
- }
248
- columns[key] = this.propertyToColumnOptions(m);
249
- }
250
-
251
- return new EntitySchema({
252
- name: cls.name,
253
- target: cls,
254
- tableName: entityMetadata.tableName,
255
- columns,
256
- relations
257
- });
258
- }
259
-
260
- /**
261
- * Transforms the given relation metadata to typeorm relation options.
262
- * @param metadata - The relation metadata to transform.
263
- * @returns Typeorm relation options.
264
- */
265
- protected propertyToRelationOptions<T extends BaseEntity>(metadata: RelationMetadata<T>): EntitySchemaRelationOptions {
266
- const thisHasRemove: boolean = this.hasCascadeFlag(metadata.cascade, 'remove');
267
- const thisHasUpdate: boolean = this.hasCascadeFlag(metadata.cascade, 'update');
268
- const thisHasInsert: boolean = this.hasCascadeFlag(metadata.cascade, 'insert');
269
-
270
- // try to inspect inverse property's cascade (if inverseSide provided)
271
- const targetClass: Newable<T> = metadata.target();
272
- const targetProps: Record<string, PropertyMetadata> = MetadataUtilities.getModelProperties(targetClass);
273
- const inv: RelationMetadata<BaseEntity> = targetProps[metadata.inverseSide] as RelationMetadata<BaseEntity>;
274
- const inverseHasRemove: boolean = this.hasCascadeFlag(inv.cascade, 'remove');
275
- const inverseHasUpdate: boolean = this.hasCascadeFlag(inv.cascade, 'update');
276
- const inverseHasInsert: boolean = this.hasCascadeFlag(inv.cascade, 'insert');
277
-
278
- const onDelete: OnDeleteType | undefined = thisHasRemove || inverseHasRemove ? 'CASCADE' : undefined;
279
- const onUpdate: OnUpdateType | undefined = thisHasUpdate || inverseHasUpdate ? 'CASCADE' : undefined;
280
- const persistence: boolean = 'persistence' in metadata ? metadata.persistence : thisHasInsert || inverseHasInsert;
281
- const nullable: boolean = typeof metadata.required === 'boolean' ? !metadata.required : true;
282
-
283
- switch (metadata.type) {
284
- case Relation.ONE_TO_ONE:
285
- case Relation.ONE_TO_MANY:
286
- case Relation.MANY_TO_MANY: {
287
- return {
288
- nullable,
289
- ...metadata,
290
- inverseSide: metadata.inverseSide as string,
291
- onDelete,
292
- onUpdate,
293
- persistence
294
- };
295
- }
296
- case Relation.MANY_TO_ONE: {
297
- return {
298
- nullable,
299
- joinColumn: true,
300
- ...metadata,
301
- inverseSide: metadata.inverseSide as string,
302
- onDelete,
303
- onUpdate,
304
- persistence
305
- };
306
- }
307
- }
308
- }
309
-
310
- private hasCascadeFlag(c: RelationMetadata<BaseEntity>['cascade'], flag: 'remove' | 'update' | 'insert'): boolean {
311
- if (c === true) {
312
- return true;
313
- }
314
- if (Array.isArray(c)) {
315
- return c.includes(flag);
316
- }
317
- return false;
318
- }
319
-
320
- /**
321
- * Transforms the given property metadata to typeorm column options.
322
- * @param metadata - The property metadata to transform.
323
- * @returns Typeorm column options.
324
- * @throws When the metadata is incorrect.
325
- */
326
- protected propertyToColumnOptions(
327
- metadata: ExcludeStrict<PropertyMetadata, RelationMetadata<BaseEntity>>
328
- ): EntitySchemaColumnOptions {
329
- const nullable: boolean = typeof metadata.required === 'boolean' ? !metadata.required : true;
330
- switch (metadata.type) {
331
- case 'file':
332
- case 'boolean':
333
- case 'object':
334
- case 'unknown':
335
- case 'date': {
336
- return {
337
- nullable,
338
- ...metadata,
339
- type: this.columnTypeMapping[metadata.type],
340
- default: undefined
341
- };
342
- }
343
- case 'array': {
344
- if (metadata.items.type === 'object') {
345
- return {
346
- nullable,
347
- ...metadata,
348
- type: this.columnTypeMapping[metadata.items.type],
349
- default: undefined
350
- };
351
- }
352
- return {
353
- nullable,
354
- ...metadata,
355
- type: this.columnTypeMapping[metadata.items.type],
356
- array: true,
357
- default: undefined
358
- };
359
- }
360
- case 'number': {
361
- return {
362
- nullable,
363
- generated: metadata.primary ? 'increment' : undefined,
364
- ...metadata,
365
- type: metadata.format ?? this.columnTypeMapping[metadata.type],
366
- default: undefined,
367
- transformer: {
368
- // eslint-disable-next-line unicorn/no-null
369
- to: (v: number | bigint | null) => v != null ? String(v) : null,
370
- from: (v: string | null) => {
371
- if (v == undefined) {
372
- return v;
373
- }
374
- if (metadata.format === 'bigint') {
375
- return BigInt(v);
376
- }
377
- return Number(v);
378
- }
379
- }
380
- };
381
- }
382
- case 'string': {
383
- return {
384
- nullable,
385
- generated: metadata.primary ? 'uuid' : undefined,
386
- ...metadata,
387
- type: metadata.format === 'uuid' || metadata.primary ? 'uuid' : this.columnTypeMapping[metadata.type],
388
- length: metadata.maxLength,
389
- enum: metadata.enum ? ObjectUtilities.values(metadata.enum) : undefined,
390
- default: undefined
391
- };
392
- }
393
- }
394
- }
395
-
396
- // eslint-disable-next-line jsdoc/require-jsdoc
397
- getRepository<T extends BaseEntity>(cls: Newable<T>): Repository<T> {
398
- if (!this.ds) {
399
- // eslint-disable-next-line sonar/no-duplicate-string
400
- throw new Error('The postgres data source needs to be initialized before it can be used.');
401
- }
402
- if (!this.entities.find(e => e === cls)) {
403
- throw new Error(`The entity "${cls.name}" is not in this database. Did you forget to include it in the entities array?`);
404
- }
405
- const repo: TORepository<T> = this.ds.getRepository(cls);
406
-
407
- if (isSoftDeleteEntityNewable(cls)) {
408
- return new SoftDeleteRepository(
409
- cls,
410
- repo as unknown as TORepository<SoftDeleteEntity>,
411
- this.logger,
412
- this,
413
- getDefaultBeforeSaveHook(),
414
- getDefaultBeforeReturnHook()
415
- ) as unknown as Repository<T>;
416
- }
417
- if (isChangeSetEntityNewable(cls)) {
418
- return new ChangeSetRepository(
419
- cls,
420
- repo as unknown as TORepository<ChangeSetEntity>,
421
- this.logger,
422
- this,
423
- getDefaultBeforeSaveHook(),
424
- getDefaultBeforeReturnHook()
425
- ) as unknown as Repository<T>;
426
- }
427
- return new Repository<T>(
428
- cls,
429
- repo,
430
- this.logger,
431
- this,
432
- getDefaultBeforeSaveHook(),
433
- getDefaultBeforeReturnHook()
434
- );
435
- }
436
-
437
- // eslint-disable-next-line jsdoc/require-jsdoc
438
- async startTransaction(isolationLevel?: IsolationLevel): Promise<Transaction> {
439
- if (!this.ds) {
440
- throw new Error('The postgres data source needs to be initialized before it can be used.');
441
- }
442
-
443
- const runner: QueryRunner = this.createQueryRunner();
444
- try {
445
- await runner.connect();
446
- await runner.startTransaction(isolationLevel);
447
- return new TypeOrmTransaction(runner);
448
- }
449
- catch (error) {
450
- await runner.release();
451
- throw error;
452
- }
453
- }
454
-
455
- /**
456
- * Creates a query runner.
457
- * @returns A query runner.
458
- * @throws When the data source has not been initialized yet.
459
- */
460
- createQueryRunner(): QueryRunner {
461
- if (!this.ds) {
462
- throw new Error('The postgres data source needs to be initialized before it can be used.');
463
- }
464
- return this.ds.createQueryRunner();
465
- }
466
-
467
- // eslint-disable-next-line jsdoc/require-jsdoc
468
- async runMigrations(): Promise<void> {
469
- await this.createMigrationTableIfNotExists();
470
-
471
- // we need to dynamically inject here because the repositories aren't ready in the constructor.
472
- const migrationsRepository: Repository<MigrationEntity> = inject(repositoryTokenFor(MigrationEntity));
473
- const finishedMigrationVersions: string[] = (await migrationsRepository.findAll()).map(m => m.version);
474
- const allMigrations: MigrationWithName[] = this.migrations.map(m => ({ migration: inject(m), name: m.name }));
475
-
476
- const migrationsToRunUp: MigrationWithName[] = allMigrations.filter(m => {
477
- return !finishedMigrationVersions.includes(m.migration.version)
478
- && compareVersion(m.migration.version, GlobalRegistry.getAppData('version') as Version) !== 'bigger';
479
- });
480
-
481
- const migrationsToRunDown: MigrationWithName[] = allMigrations.filter(m => {
482
- return finishedMigrationVersions.includes(m.migration.version)
483
- && compareVersion(m.migration.version, GlobalRegistry.getAppData('version') as Version) === 'bigger';
484
- });
485
-
486
- for (const migration of migrationsToRunUp) {
487
- await this.logger.info(` > runs up migration ${migration.name}`);
488
- await migration.migration.runUp();
489
- }
490
-
491
- for (const migration of migrationsToRunDown) {
492
- await this.logger.info(` > runs down migration ${migration.name}`);
493
- await migration.migration.runDown();
494
- }
495
-
496
- const skipped: number = allMigrations.length - migrationsToRunDown.length - migrationsToRunUp.length;
497
- if (skipped) {
498
- await this.logger.info(` > skipped ${skipped} migrations that have already been applied`);
499
- }
500
- }
501
-
502
- // eslint-disable-next-line jsdoc/require-jsdoc
503
- async addPropertyToEntity<T extends BaseEntity>(
504
- entity: Newable<T>,
505
- key: keyof T,
506
- transaction: Transaction
507
- ): Promise<void> {
508
- const col: TableColumnOptions = this.propertyToTableColumnOptions(entity, key);
509
- await transaction.queryRunner.addColumn(
510
- this.getEntityMetadata(entity, transaction).tableName,
511
- new TableColumn({ ...col, isNullable: true })
512
- );
513
- }
514
-
515
- // eslint-disable-next-line jsdoc/require-jsdoc
516
- async changePropertyOfEntity<T extends BaseEntity>(
517
- entity: Newable<T>,
518
- oldColumn: keyof T | string & {},
519
- newColumn: PropertyMetadataInput & {
520
- /**
521
- * The name of the new column.
522
- */
523
- name?: keyof T,
524
- /**
525
- * The type of the new column.
526
- */
527
- type: ExcludeStrict<PropertyMetadata, RelationMetadata<BaseEntity> | FilePropertyMetadata>['type']
528
- },
529
- transaction: Transaction
530
- ): Promise<void> {
531
- const entityMetadata: TOEntityMetadata = this.getEntityMetadata(entity, transaction);
532
- const columnMetadata: ColumnMetadata = this.getColumnMetadata(entity, oldColumn, transaction);
533
-
534
- const col: TableColumnOptions = {
535
- ...columnMetadata,
536
- ...newColumn,
537
- enum: 'enum' in newColumn && newColumn.enum
538
- ? ObjectUtilities.values(newColumn.enum).map(v => String(v))
539
- : columnMetadata.enum
540
- ? columnMetadata.enum.map(v => String(v))
541
- : undefined,
542
- name: String(newColumn.name ?? oldColumn),
543
- type: this.normalizeColumnType({
544
- precision: undefined,
545
- scale: undefined,
546
- ...columnMetadata,
547
- ...newColumn,
548
- type: this.columnTypeMapping[newColumn.type]
549
- })
550
- };
551
-
552
- await transaction.queryRunner.changeColumn(entityMetadata.tableName, String(oldColumn), new TableColumn(col));
553
- }
554
-
555
- /**
556
- * Gets the typeorm metadata for a given entity.
557
- * @param target - The target entity.
558
- * @param transaction - The transaction to run this command with.
559
- * @returns The typeorm metadata.
560
- */
561
- protected getEntityMetadata<T extends BaseEntity>(target: EntityTarget<T>, transaction: Transaction): TOEntityMetadata {
562
- return transaction.queryRunner.connection.getMetadata(target);
563
- }
564
-
565
- /**
566
- * Gets the metadata for a typeorm column.
567
- * @param target - The entity.
568
- * @param propertyName - The name of the property to get the column metadata for.
569
- * @param transaction - The transaction to use to get the column metadata.
570
- * @returns The typeorm column metadata.
571
- * @throws When the provided propertyName could not be found as a column.
572
- */
573
- protected getColumnMetadata<T extends BaseEntity>(
574
- target: EntityTarget<T>,
575
- propertyName: keyof T | string & {},
576
- transaction: Transaction
577
- ): ColumnMetadata {
578
- const metadata: TOEntityMetadata = this.getEntityMetadata(target, transaction);
579
- const column: ColumnMetadata | undefined = metadata.columns.find(
580
- (col) => col.propertyName === propertyName
581
- );
582
-
583
- if (!column) {
584
- throw new Error(
585
- `Column ${propertyName.toString()} not found in model`
586
- );
587
- }
588
-
589
- return column;
590
- }
591
-
592
- /**
593
- * Creates a table for migrations if it does not exist already.
594
- */
595
- protected async createMigrationTableIfNotExists(): Promise<void> {
596
- if (!this.ds) {
597
- throw new Error('The postgres data source needs to be initialized before it can be used.');
598
- }
599
-
600
- const runner: QueryRunner = this.createQueryRunner();
601
- try {
602
- await runner.connect();
603
- const schema: EntitySchema = this.createSchemaForEntity(MigrationEntity);
604
- const metadata: TOEntityMetadata = this.ds.getMetadata(schema);
605
- const table: Table = new Table({
606
- name: metadata.tablePath,
607
- columns: metadata.columns.map(col => ({
608
- name: col.databaseName,
609
- ...col,
610
- enum: col.enum?.map(v => String(v)),
611
- // eslint-disable-next-line typescript/no-non-null-assertion
612
- type: this.ds!.driver.normalizeType(col)
613
- }))
614
- });
615
- await runner.createTable(table, true);
616
-
617
- }
618
- finally {
619
- await runner.release();
620
- }
621
- }
622
-
623
- /**
624
- * Transforms the property on the given entity class to typeorm column options.
625
- * @param entity - The entity class which property should be transformed.
626
- * @param property - The key of the actual property that should be transformed.
627
- * @returns Typeorm column options.
628
- * @throws When no data source has been provided or no column metadata could be found.
629
- */
630
- protected propertyToTableColumnOptions<T extends BaseEntity>(entity: Newable<T>, property: keyof T): TableColumnOptions {
631
- if (!this.ds) {
632
- throw new Error('The postgres data source needs to be initialized before it can be used.');
633
- }
634
- const schema: EntitySchema = this.createSchemaForEntity(entity);
635
- const metadata: TOEntityMetadata = this.ds.getMetadata(schema);
636
- const col: ColumnMetadata | undefined = metadata.columns.find(c => c.propertyName === property);
637
-
638
- if (!col) {
639
- throw new Error(`Could not determine column metadata for ${entity.name}.${String(property)}`);
640
- }
641
-
642
- return {
643
- name: col.databaseName,
644
- ...col,
645
- enum: col.enum ? col.enum?.map(v => String(v)) : undefined,
646
- type: this.normalizeColumnType({
647
- isArray: col.isArray,
648
- length: col.length,
649
- precision: col.precision,
650
- scale: col.scale,
651
- type: col.type
652
- })
653
- };
654
- }
655
-
656
- private normalizeColumnType(
657
- column: {
658
- // eslint-disable-next-line jsdoc/require-jsdoc
659
- type: ColumnType | string & {} | undefined,
660
- // eslint-disable-next-line jsdoc/require-jsdoc
661
- length: number | string | undefined,
662
- // eslint-disable-next-line jsdoc/require-jsdoc
663
- precision: number | null | undefined,
664
- // eslint-disable-next-line jsdoc/require-jsdoc
665
- scale: number | undefined,
666
- // eslint-disable-next-line jsdoc/require-jsdoc
667
- isArray: boolean | undefined
668
- }
669
- ): string {
670
- if (!this.ds) {
671
- throw new Error('The postgres data source needs to be initialized before it can be used.');
672
- }
673
- return this.ds.driver.normalizeType(column);
674
- }
675
- }