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
@@ -0,0 +1,41 @@
1
+ import { Version, VersionFile } from './version.model';
2
+ import { VersioningServiceInterface } from './versioning-service.interface';
3
+ import { ZibriApplication } from '../application';
4
+ import { SupportedVersionsOptions } from './supported-versions-options.model';
5
+ import { HttpRequestContext } from '../context/request/http-request.context';
6
+ import { WebsocketRequestContext } from '../context/request/websocket-request.context';
7
+ import { AfterAppInit } from '../global/after-app-init.interface';
8
+ import { type Header } from '../http/header.type';
9
+ import { type RouterInterface } from '../routing/router.interface';
10
+ import { SemVerVersion } from '../utilities/sem-ver.utilities';
11
+ /**
12
+ * Default implementation of the versioning service.
13
+ */
14
+ export declare class VersioningService implements VersioningServiceInterface, AfterAppInit {
15
+ private readonly versionHeader;
16
+ private readonly router;
17
+ private readonly versionsPath;
18
+ private versionFiles;
19
+ constructor(versionHeader: Header, router: RouterInterface);
20
+ afterAppInit(app: ZibriApplication): Promise<void>;
21
+ private validateNoDowngrade;
22
+ private resolveCurrentLatest;
23
+ private loadAllVersionFiles;
24
+ private createVersionFile;
25
+ private updateVersionFile;
26
+ private validateRouteVersionSnapshot;
27
+ private getRemovedVersions;
28
+ private resolveConcreteVersions;
29
+ private validateRouteVersionsExist;
30
+ private validateLatestRoutes;
31
+ resolveVersion(context: HttpRequestContext | WebsocketRequestContext): Version;
32
+ findOverlappingVersions(a: SupportedVersionsOptions, b: SupportedVersionsOptions, currentLatest: SemVerVersion): SupportedVersionsOptions;
33
+ private versionMatcherToSemVerMatcher;
34
+ hasOverlappingVersions(a: SupportedVersionsOptions, b: SupportedVersionsOptions, currentLatest: SemVerVersion): boolean;
35
+ matchesVersion(versions: SupportedVersionsOptions, resolvedVersion: Version): boolean;
36
+ getVersions(): VersionFile[];
37
+ private resolveVersionForDate;
38
+ private routeSupportsVersion;
39
+ private getAllRoutes;
40
+ }
41
+ //# sourceMappingURL=versioning.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versioning.service.d.ts","sourceRoot":"","sources":["../../../src/versioning/versioning.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAiB,wBAAwB,EAAkB,MAAM,oCAAoC,CAAC;AAC7G,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAKvF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAMnE,OAAO,EAAmB,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAMhF;;GAEG;AACH,qBACa,iBAAkB,YAAW,0BAA0B,EAAE,YAAY;IAO1E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4D;IACzF,OAAO,CAAC,YAAY,CAAqB;gBAIpB,aAAa,EAAE,MAAM,EAErB,MAAM,EAAE,eAAe;IAItC,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiExD,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,oBAAoB;YAkBd,mBAAmB;YAYnB,iBAAiB;YAOjB,iBAAiB;IAS/B,OAAO,CAAC,4BAA4B;IA8CpC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,0BAA0B;IA6ClC,OAAO,CAAC,oBAAoB;IAuD5B,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,uBAAuB,GAAG,OAAO;IA+B9E,uBAAuB,CACnB,CAAC,EAAE,wBAAwB,EAC3B,CAAC,EAAE,wBAAwB,EAC3B,aAAa,EAAE,aAAa,GAC7B,wBAAwB;IAW3B,OAAO,CAAC,6BAA6B;IAerC,sBAAsB,CAClB,CAAC,EAAE,wBAAwB,EAC3B,CAAC,EAAE,wBAAwB,EAC3B,aAAa,EAAE,aAAa,GAC7B,OAAO;IAMV,cAAc,CAAC,QAAQ,EAAE,wBAAwB,EAAE,eAAe,EAAE,OAAO,GAAG,OAAO;IAiBrF,WAAW,IAAI,WAAW,EAAE;IAI5B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,YAAY;CA8BvB"}
@@ -0,0 +1,366 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.VersioningService = void 0;
16
+ const websocket_request_context_1 = require("../context/request/websocket-request.context");
17
+ const inject_decorator_1 = require("../di/decorators/inject.decorator");
18
+ const injectable_decorator_1 = require("../di/decorators/injectable.decorator");
19
+ const zibri_di_tokens_default_1 = require("../di/default/zibri-di-tokens.default");
20
+ const bad_request_error_1 = require("../error-handling/errors/bad-request.error");
21
+ const fs_utilities_1 = require("../utilities/fs.utilities");
22
+ const is_date_function_1 = require("../utilities/is-date.function");
23
+ const json_utilities_1 = require("../utilities/json.utilities");
24
+ const metadata_utilities_1 = require("../utilities/metadata.utilities");
25
+ const sem_ver_utilities_1 = require("../utilities/sem-ver.utilities");
26
+ const ROUTE_VERSION_MISMATCH_ERROR_MESSAGE = 'Route version mismatch detected:';
27
+ /**
28
+ * Default implementation of the versioning service.
29
+ */
30
+ let VersioningService = class VersioningService {
31
+ versionHeader;
32
+ router;
33
+ versionsPath = fs_utilities_1.FsUtilities.getPath(__dirname, '..', 'versions');
34
+ versionFiles = [];
35
+ constructor(versionHeader, router) {
36
+ this.versionHeader = versionHeader;
37
+ this.router = router;
38
+ }
39
+ // eslint-disable-next-line jsdoc/require-jsdoc
40
+ async afterAppInit(app) {
41
+ await fs_utilities_1.FsUtilities.mkdir(this.versionsPath);
42
+ this.versionFiles = await this.loadAllVersionFiles();
43
+ const currentLatestVersions = this.versionFiles.filter(v => v.endsAt == undefined);
44
+ if (currentLatestVersions.length === 1 && currentLatestVersions.at(0)?.value === app.options.version) {
45
+ // is already at the latest version, doesn't need to do anything.
46
+ return;
47
+ }
48
+ if (!this.versionFiles.length) {
49
+ await this.createVersionFile({
50
+ startsAt: new Date(),
51
+ value: app.options.version,
52
+ routes: this.getAllRoutes(app)
53
+ });
54
+ this.versionFiles = await this.loadAllVersionFiles();
55
+ return;
56
+ }
57
+ const currentLatest = this.resolveCurrentLatest(currentLatestVersions, app);
58
+ const inCodeRoutes = this.getAllRoutes(app);
59
+ const storedRoutes = currentLatest ? currentLatest.routes : [];
60
+ this.validateNoDowngrade(app);
61
+ this.validateRouteVersionSnapshot(inCodeRoutes, storedRoutes, this.versionFiles, currentLatest?.value, app.options.version);
62
+ this.validateRouteVersionsExist(inCodeRoutes, this.versionFiles, app.options.version);
63
+ this.validateLatestRoutes(inCodeRoutes, app.options.version, this.versionFiles);
64
+ // Create new version file (deprecate the old one)
65
+ const transitionTime = new Date();
66
+ const newVersion = this.versionFiles.find(v => v.value === app.options.version);
67
+ if (newVersion != undefined) {
68
+ // Sort old active versions (excluding the new one) by startsAt
69
+ const oldActives = currentLatestVersions
70
+ .filter(v => v.value !== app.options.version)
71
+ .sort((a, b) => new Date(a.startsAt).getTime() - new Date(b.startsAt).getTime());
72
+ // Chain the end dates: each old version ends when the next one starts
73
+ for (let i = 0; i < oldActives.length; i++) {
74
+ const nextStart = i < oldActives.length - 1
75
+ ? new Date(oldActives[i + 1].startsAt)
76
+ : new Date(newVersion.startsAt);
77
+ await this.updateVersionFile(oldActives[i], { endsAt: nextStart });
78
+ }
79
+ // Ensure the new file’s routes are up to date
80
+ await this.updateVersionFile(newVersion, { routes: inCodeRoutes });
81
+ this.versionFiles = await this.loadAllVersionFiles();
82
+ return;
83
+ }
84
+ await this.createVersionFile({
85
+ value: app.options.version,
86
+ startsAt: transitionTime,
87
+ routes: inCodeRoutes
88
+ });
89
+ for (const active of currentLatestVersions) {
90
+ await this.updateVersionFile(active, { endsAt: transitionTime });
91
+ }
92
+ this.versionFiles = await this.loadAllVersionFiles();
93
+ }
94
+ validateNoDowngrade(app) {
95
+ const latestVersion = this.versionFiles.reduce((max, v) => sem_ver_utilities_1.SemVerUtilities.compare(v.value, max.value) === 'bigger' ? v : max);
96
+ if (sem_ver_utilities_1.SemVerUtilities.compare(latestVersion.value, app.options.version) === 'bigger') {
97
+ throw new Error([
98
+ `Version "${app.options.version}" was previously active but has been superseded by "${latestVersion.value}".`,
99
+ 'Downgrading is not supported automatically. To resolve this, either:',
100
+ '- Revert your code and version files together via git',
101
+ `- Manually delete and update version files so that "${app.options.version}" is treated as a fresh version`
102
+ ].join('\n'));
103
+ }
104
+ }
105
+ resolveCurrentLatest(currentLatestVersions, app) {
106
+ if (currentLatestVersions.length === 1) {
107
+ return currentLatestVersions.at(0);
108
+ }
109
+ if (currentLatestVersions.length < 1) {
110
+ return this.versionFiles.reduce((max, v) => sem_ver_utilities_1.SemVerUtilities.compare(v.value, max.value) === 'bigger' ? v : max);
111
+ }
112
+ const currentLatest = currentLatestVersions.find(v => v.value !== app.options.version);
113
+ if (!currentLatest) {
114
+ throw new Error('Inconsistent version state: multiple active versions exist, but they all represent the global version.'
115
+ + ' Check for duplicate version files.');
116
+ }
117
+ return currentLatest;
118
+ }
119
+ async loadAllVersionFiles() {
120
+ const entries = await fs_utilities_1.FsUtilities.readdir(fs_utilities_1.FsUtilities.getPath(this.versionsPath));
121
+ const res = await Promise.all(entries.map(async (e) => {
122
+ if (!e.isFile() || !e.name.endsWith('.json')) {
123
+ return undefined;
124
+ }
125
+ const raw = await fs_utilities_1.FsUtilities.readFile(fs_utilities_1.FsUtilities.getPath(e.parentPath, e.name));
126
+ return json_utilities_1.JsonUtilities.parse(raw);
127
+ }));
128
+ return res.filter(Boolean);
129
+ }
130
+ async createVersionFile(data) {
131
+ await fs_utilities_1.FsUtilities.createFile(fs_utilities_1.FsUtilities.getPath(this.versionsPath, `${data.value}.json`), json_utilities_1.JsonUtilities.stringify(data));
132
+ }
133
+ async updateVersionFile(versionFile, data) {
134
+ const updated = { ...versionFile, ...data };
135
+ await fs_utilities_1.FsUtilities.updateFile(fs_utilities_1.FsUtilities.getPath(this.versionsPath, `${versionFile.value}.json`), json_utilities_1.JsonUtilities.stringify(updated), 'replace');
136
+ }
137
+ validateRouteVersionSnapshot(inCodeRoutes, storedRoutes, versionFiles, currentLatest, newVersion) {
138
+ if (!currentLatest) {
139
+ return;
140
+ }
141
+ const knownVersions = new Set(versionFiles.map(e => e.value));
142
+ const errors = [];
143
+ for (const storedRoute of storedRoutes) {
144
+ const routes = inCodeRoutes.filter(r => r.key === storedRoute.key);
145
+ if (!routes.length) {
146
+ errors.push(`Route "${storedRoute.key}" no longer exists in code.`);
147
+ continue;
148
+ }
149
+ const removedVersions = this.getRemovedVersions(storedRoute.versions, routes.some(r => r.versions === 'all')
150
+ ? 'all'
151
+ : routes.flatMap(r => r.versions === 'all' ? [] : r.versions), [...knownVersions], currentLatest, newVersion);
152
+ if (!removedVersions.length) {
153
+ continue;
154
+ }
155
+ const versionLabel = removedVersions.length > 1 ? 'versions' : 'version';
156
+ errors.push(`Route "${storedRoute.key}" removed ${versionLabel}: ${removedVersions.join(', ')}`);
157
+ }
158
+ if (errors.length) {
159
+ throw new Error([ROUTE_VERSION_MISMATCH_ERROR_MESSAGE, ...errors.map(error => `- ${error}`)].join('\n'));
160
+ }
161
+ }
162
+ getRemovedVersions(previous, current, knownVersions, currentLatest, newVersion) {
163
+ const previousResolved = this.resolveConcreteVersions(previous, knownVersions, currentLatest);
164
+ const currentResolved = this.resolveConcreteVersions(current, knownVersions, newVersion);
165
+ return previousResolved.filter(v => !currentResolved.includes(v));
166
+ }
167
+ resolveConcreteVersions(versions, knownVersions, currentLatest) {
168
+ if (versions === 'all') {
169
+ return [...knownVersions];
170
+ }
171
+ const resolvedMatchers = versions.map(v => this.versionMatcherToSemVerMatcher(v, currentLatest));
172
+ return knownVersions.filter(version => sem_ver_utilities_1.SemVerUtilities.matches(version, resolvedMatchers));
173
+ }
174
+ validateRouteVersionsExist(inCodeRoutes, versionFiles, newVersion) {
175
+ const knownVersions = versionFiles.map(v => v.value);
176
+ const candidateVersions = [...knownVersions, newVersion];
177
+ const errors = [];
178
+ // eslint-disable-next-line typescript/typedef
179
+ const validateRoute = (route, latest, location) => {
180
+ if (route.versions === 'all') {
181
+ return;
182
+ }
183
+ for (const matcher of route.versions) {
184
+ const resolvedMatcher = this.versionMatcherToSemVerMatcher(matcher, latest);
185
+ const matchesAny = candidateVersions.some(version => sem_ver_utilities_1.SemVerUtilities.matches(version, [resolvedMatcher]));
186
+ if (!matchesAny) {
187
+ errors.push(`Unknown version "${matcher}" ${location}`);
188
+ }
189
+ }
190
+ };
191
+ for (const file of versionFiles) {
192
+ for (const route of file.routes) {
193
+ validateRoute(route, file.value, `in version file "${file.value}.json" on route "${route.key}"`);
194
+ }
195
+ }
196
+ if (errors.length) {
197
+ throw new Error([ROUTE_VERSION_MISMATCH_ERROR_MESSAGE, ...errors.map(error => `- ${error}`)].join('\n'));
198
+ }
199
+ for (const route of inCodeRoutes) {
200
+ validateRoute(route, newVersion, `on route "${route.key}"`);
201
+ }
202
+ if (errors.length) {
203
+ throw new Error([ROUTE_VERSION_MISMATCH_ERROR_MESSAGE, ...errors.map(error => `- ${error}`)].join('\n'));
204
+ }
205
+ }
206
+ validateLatestRoutes(inCodeRoutes, currentVersion, allVersionFiles) {
207
+ const previousCandidates = allVersionFiles.filter(v => v.endsAt == undefined && v.value !== currentVersion);
208
+ if (previousCandidates.length === 0) {
209
+ return;
210
+ }
211
+ const previousLatest = previousCandidates.reduce((max, v) => new Date(v.startsAt) > new Date(max.startsAt) ? v : max);
212
+ const previousRoutesByKey = new Map(previousLatest.routes.map(route => [route.key, route]));
213
+ const routesThatNeedUpdate = inCodeRoutes.filter(r => {
214
+ if (r.versions === 'all') {
215
+ return false;
216
+ }
217
+ const usesLatestAlias = r.versions.some(v => v === 'latest' || v === '^latest' || v === '~latest');
218
+ if (!usesLatestAlias) {
219
+ return false;
220
+ }
221
+ const previousRoute = previousRoutesByKey.get(r.key);
222
+ if (!previousRoute || previousRoute.versions === 'all') {
223
+ return true;
224
+ }
225
+ return !this.routeSupportsVersion(previousRoute, previousLatest.value, previousLatest.value);
226
+ });
227
+ if (routesThatNeedUpdate.length) {
228
+ throw new Error([
229
+ `There are routes that have been used under the previous version "${previousLatest.value}"`,
230
+ 'To continue, you either need to:',
231
+ '- Define that the route supports the previous version as well as \'latest\'',
232
+ '- Define that it only supports the previous version and optionally create a separate endpoint for the new version',
233
+ 'This can be done on the @Get/@Post etc. decorators or on the @Controller/@WebsocketController decorators',
234
+ '',
235
+ 'Affected routes/websocket events:',
236
+ ...routesThatNeedUpdate.map(r => `- ${r.key}`)
237
+ ].join('\n'));
238
+ }
239
+ }
240
+ // eslint-disable-next-line jsdoc/require-jsdoc
241
+ resolveVersion(context) {
242
+ const versionValue = context instanceof websocket_request_context_1.WebsocketRequestContext
243
+ ? context.connection?.resolvedVersion.value ?? context.request.headers?.[this.versionHeader]
244
+ : context.request.headers?.[this.versionHeader];
245
+ try {
246
+ if (versionValue == undefined) {
247
+ const latest = this.versionFiles.find(v => v.endsAt == undefined);
248
+ if (!latest) {
249
+ throw new bad_request_error_1.BadRequestError('No active version found');
250
+ }
251
+ return latest;
252
+ }
253
+ if ((0, is_date_function_1.isDate)(versionValue)) {
254
+ return this.resolveVersionForDate(new Date(versionValue), this.versionFiles);
255
+ }
256
+ const res = this.versionFiles.find(v => v.value === versionValue);
257
+ if (!res) {
258
+ throw new bad_request_error_1.BadRequestError(`Version "${versionValue}" not found`);
259
+ }
260
+ return res;
261
+ }
262
+ catch (error) {
263
+ if (error instanceof bad_request_error_1.BadRequestError) {
264
+ throw error;
265
+ }
266
+ throw new bad_request_error_1.BadRequestError('Could not resolve version');
267
+ }
268
+ }
269
+ // eslint-disable-next-line jsdoc/require-jsdoc
270
+ findOverlappingVersions(a, b, currentLatest) {
271
+ if (a === 'all' || b === 'all') {
272
+ return 'all';
273
+ }
274
+ const resolvedA = a.map(v => this.versionMatcherToSemVerMatcher(v, currentLatest));
275
+ const resolvedB = b.map(v => this.versionMatcherToSemVerMatcher(v, currentLatest));
276
+ return resolvedA.filter(v => sem_ver_utilities_1.SemVerUtilities.matches(v, resolvedB));
277
+ }
278
+ versionMatcherToSemVerMatcher(version, currentLatest) {
279
+ if (version === 'latest') {
280
+ return currentLatest;
281
+ }
282
+ if (version === '^latest') {
283
+ return `^${currentLatest}`;
284
+ }
285
+ if (version === '~latest') {
286
+ return `~${currentLatest}`;
287
+ }
288
+ return version;
289
+ }
290
+ // eslint-disable-next-line jsdoc/require-jsdoc
291
+ hasOverlappingVersions(a, b, currentLatest) {
292
+ const result = this.findOverlappingVersions(a, b, currentLatest);
293
+ return result === 'all' || !!result.length;
294
+ }
295
+ // eslint-disable-next-line jsdoc/require-jsdoc
296
+ matchesVersion(versions, resolvedVersion) {
297
+ if (versions === 'all') {
298
+ return true;
299
+ }
300
+ const latest = this.versionFiles.find(v => v.endsAt == undefined);
301
+ if (!latest) {
302
+ throw new bad_request_error_1.BadRequestError('No active version found');
303
+ }
304
+ const resolvedMatchers = versions.map(v => this.versionMatcherToSemVerMatcher(v, latest.value));
305
+ return sem_ver_utilities_1.SemVerUtilities.matches(resolvedVersion.value, resolvedMatchers);
306
+ }
307
+ // eslint-disable-next-line jsdoc/require-jsdoc
308
+ getVersions() {
309
+ return this.versionFiles;
310
+ }
311
+ resolveVersionForDate(date, allVersions) {
312
+ const res = allVersions.find(v => {
313
+ return (new Date(v.startsAt).getTime() <= date.getTime())
314
+ && (v.endsAt == undefined || new Date(v.endsAt).getTime() > date.getTime());
315
+ });
316
+ if (!res) {
317
+ throw new bad_request_error_1.BadRequestError('No version active at that date');
318
+ }
319
+ return res;
320
+ }
321
+ routeSupportsVersion(route, version, latestContext) {
322
+ if (route.versions === 'all') {
323
+ return true;
324
+ }
325
+ const resolved = route.versions.map(v => this.versionMatcherToSemVerMatcher(v, latestContext));
326
+ return sem_ver_utilities_1.SemVerUtilities.matches(version, resolved);
327
+ }
328
+ getAllRoutes(app) {
329
+ const allRoutes = [
330
+ ...this.router.manuallyRegisteredRoutes.map(r => ({ key: `${r.httpMethod.toUpperCase()} ${r.route}`, versions: r.versions })),
331
+ ...app.options.controllers.flatMap(c => {
332
+ const controllerData = metadata_utilities_1.MetadataUtilities.getControllerData(c);
333
+ if (!controllerData) {
334
+ throw new Error('Could not resolve controller data');
335
+ }
336
+ const routes = metadata_utilities_1.MetadataUtilities.getControllerRoutes(c);
337
+ return routes.map(r => ({
338
+ versions: r.versions ?? controllerData.versions,
339
+ key: controllerData.baseRoute === '/'
340
+ ? `${r.httpMethod.toUpperCase()} ${r.route}`
341
+ : `${r.httpMethod.toUpperCase()} ${controllerData.baseRoute}${r.route}`
342
+ }));
343
+ }),
344
+ ...app.options.websocketControllers.flatMap(c => {
345
+ const controllerData = metadata_utilities_1.MetadataUtilities.getWebsocketControllerData(c);
346
+ if (!controllerData) {
347
+ throw new Error('Could not resolve controller data');
348
+ }
349
+ const routes = metadata_utilities_1.MetadataUtilities.getWebsocketControllerRoutes(c);
350
+ return routes.map(r => ({
351
+ versions: r.versions ?? controllerData.versions,
352
+ key: `${controllerData.eventPrefix}${r.event}`
353
+ }));
354
+ })
355
+ ];
356
+ return allRoutes;
357
+ }
358
+ };
359
+ exports.VersioningService = VersioningService;
360
+ exports.VersioningService = VersioningService = __decorate([
361
+ (0, injectable_decorator_1.Injectable)({ register: 'onUse' }),
362
+ __param(0, (0, inject_decorator_1.Inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.VERSION_HEADER)),
363
+ __param(1, (0, inject_decorator_1.Inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.ROUTER)),
364
+ __metadata("design:paramtypes", [String, Object])
365
+ ], VersioningService);
366
+ //# sourceMappingURL=versioning.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versioning.service.js","sourceRoot":"","sources":["../../../src/versioning/versioning.service.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,21 @@
1
+ import { SupportedVersionsOptions } from '../../versioning/supported-versions-options.model';
1
2
  /**
2
3
  * Data of a websocket controller.
3
4
  */
4
5
  export type WebsocketControllerData = {
6
+ /**
7
+ * A prefix that all events of the controller should have.
8
+ * @default ''
9
+ */
10
+ eventPrefix: string;
5
11
  /**
6
12
  * Whether or not this websocket controller is allowed to exist without being registered in the application.
7
13
  */
8
14
  allowOrphan: boolean;
15
+ /**
16
+ * The versions that should be supported by this websocket controller's events. Can be overridden per event.
17
+ */
18
+ versions: SupportedVersionsOptions;
9
19
  };
10
20
  /**
11
21
  * Marks a websocket controller class to be registered.
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-controller.decorator.d.ts","sourceRoot":"","sources":["../../../../src/websocket/decorators/websocket-controller.decorator.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;CACvB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAAG,cAAc,CAalG"}
1
+ {"version":3,"file":"websocket-controller.decorator.d.ts","sourceRoot":"","sources":["../../../../src/websocket/decorators/websocket-controller.decorator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAE7F;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,QAAQ,EAAE,wBAAwB,CAAA;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAAG,cAAc,CAalG"}
@@ -8,12 +8,12 @@ const metadata_utilities_1 = require("../../utilities/metadata.utilities");
8
8
  * @param options - Options for the websocket controller.
9
9
  */
10
10
  function WebsocketController(options = {}) {
11
- const { allowOrphan = false } = options;
11
+ const { allowOrphan = false, versions = ['^latest'], eventPrefix = '' } = options;
12
12
  return target => {
13
13
  // eslint-disable-next-line unicorn/error-message
14
14
  const stack = new Error().stack ?? '';
15
15
  metadata_utilities_1.MetadataUtilities.setFilePath(target, stack);
16
- metadata_utilities_1.MetadataUtilities.setWebsocketControllerData(target, { allowOrphan });
16
+ metadata_utilities_1.MetadataUtilities.setWebsocketControllerData(target, { allowOrphan, versions, eventPrefix });
17
17
  global_registry_1.GlobalRegistry.injectables.push({
18
18
  token: target,
19
19
  useClass: target
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-controller.decorator.js","sourceRoot":"","sources":["../../../../src/websocket/decorators/websocket-controller.decorator.ts"],"names":[],"mappings":";;AAkBA,kDAaC;AA/BD,kEAA8D;AAE9D,2EAAuE;AAYvE;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,UAA4C,EAAE;IAC9E,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACxC,OAAO,MAAM,CAAC,EAAE;QACZ,iDAAiD;QACjD,MAAM,KAAK,GAAW,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,sCAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,sCAAiB,CAAC,0BAA0B,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACtE,gCAAc,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5B,KAAK,EAAE,MAAqC;YAC5C,QAAQ,EAAE,MAAqC;SAClD,CAAC,CAAC;QACH,gCAAc,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAqC,CAAC,CAAC;IAC1F,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"websocket-controller.decorator.js","sourceRoot":"","sources":["../../../../src/websocket/decorators/websocket-controller.decorator.ts"],"names":[],"mappings":";;AA4BA,kDAaC;AAzCD,kEAA8D;AAE9D,2EAAuE;AAsBvE;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,UAA4C,EAAE;IAC9E,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE,QAAQ,GAAG,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAClF,OAAO,MAAM,CAAC,EAAE;QACZ,iDAAiD;QACjD,MAAM,KAAK,GAAW,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,sCAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,sCAAiB,CAAC,0BAA0B,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7F,gCAAc,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5B,KAAK,EAAE,MAAqC;YAC5C,QAAQ,EAAE,MAAqC;SAClD,CAAC,CAAC;QACH,gCAAc,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAqC,CAAC,CAAC;IAC1F,CAAC,CAAC;AACN,CAAC"}
@@ -1,6 +1,18 @@
1
+ import { SupportedVersionsOptions } from '../../versioning/supported-versions-options.model';
2
+ /**
3
+ * Options for a websocket route.
4
+ */
5
+ export type WebsocketRouteOptions = {
6
+ /**
7
+ * The supported versions of this route.
8
+ * Defaults to '^latest'.
9
+ */
10
+ versions?: SupportedVersionsOptions;
11
+ };
1
12
  /**
2
13
  * Defines a route to receive websocket messages.
3
14
  * @param event - The event to listen on.
15
+ * @param options - The options of the route, like eg. The supported versions.
4
16
  */
5
- export declare function WebsocketRoute(event: string): MethodDecorator;
17
+ export declare function WebsocketRoute(event: string, options?: WebsocketRouteOptions): MethodDecorator;
6
18
  //# sourceMappingURL=websocket-route.decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-route.decorator.d.ts","sourceRoot":"","sources":["../../../../src/websocket/decorators/websocket-route.decorator.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAU7D"}
1
+ {"version":3,"file":"websocket-route.decorator.d.ts","sourceRoot":"","sources":["../../../../src/websocket/decorators/websocket-route.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAG7F;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,wBAAwB,CAAA;CACtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,eAAe,CAUlG"}
@@ -5,15 +5,16 @@ const metadata_utilities_1 = require("../../utilities/metadata.utilities");
5
5
  /**
6
6
  * Defines a route to receive websocket messages.
7
7
  * @param event - The event to listen on.
8
+ * @param options - The options of the route, like eg. The supported versions.
8
9
  */
9
- function WebsocketRoute(event) {
10
+ function WebsocketRoute(event, options = {}) {
10
11
  return (target, propertyKey) => {
11
12
  const ctor = target.constructor;
12
13
  // eslint-disable-next-line unicorn/error-message
13
14
  const stack = new Error().stack ?? '';
14
15
  metadata_utilities_1.MetadataUtilities.setFilePath(ctor, stack);
15
16
  const routes = metadata_utilities_1.MetadataUtilities.getWebsocketControllerRoutes(ctor);
16
- routes.push({ event, controllerMethod: propertyKey.toString() });
17
+ routes.push({ event, controllerMethod: propertyKey.toString(), versions: options.versions });
17
18
  metadata_utilities_1.MetadataUtilities.setWebsocketControllerRoutes(ctor, routes);
18
19
  };
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-route.decorator.js","sourceRoot":"","sources":["../../../../src/websocket/decorators/websocket-route.decorator.ts"],"names":[],"mappings":";;AAOA,wCAUC;AAjBD,2EAAuE;AAGvE;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAa;IACxC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAa,MAAM,CAAC,WAAW,CAAC;QAC1C,iDAAiD;QACjD,MAAM,KAAK,GAAW,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,sCAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,GAA4C,sCAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAC7G,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjE,sCAAiB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"websocket-route.decorator.js","sourceRoot":"","sources":["../../../../src/websocket/decorators/websocket-route.decorator.ts"],"names":[],"mappings":";;AAoBA,wCAUC;AA9BD,2EAAuE;AAevE;;;;GAIG;AACH,SAAgB,cAAc,CAAC,KAAa,EAAE,UAAiC,EAAE;IAC7E,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAa,MAAM,CAAC,WAAW,CAAC;QAC1C,iDAAiD;QACjD,MAAM,KAAK,GAAW,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,sCAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,GAA4C,sCAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAC7G,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7F,sCAAiB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC;AACN,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { Version } from '../../../versioning/version.model';
1
2
  /**
2
3
  * Basic definition of a websocket connection.
3
4
  * Your implementation probably needs to extend this.
@@ -11,6 +12,10 @@ export type BaseWebsocketConnection = {
11
12
  * The id of the user that this connection belongs to.
12
13
  */
13
14
  readonly userId: string | undefined;
15
+ /**
16
+ * The resolved version of the connection.
17
+ */
18
+ readonly resolvedVersion: Version;
14
19
  /**
15
20
  * The current offset of the connection.
16
21
  * Is used to sync the state of the server with the client after a reconnect.
@@ -1 +1 @@
1
- {"version":3,"file":"base-websocket-connection.model.d.ts","sourceRoot":"","sources":["../../../../../src/websocket/models/connection/base-websocket-connection.model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAA;CACjB,CAAC"}
1
+ {"version":3,"file":"base-websocket-connection.model.d.ts","sourceRoot":"","sources":["../../../../../src/websocket/models/connection/base-websocket-connection.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAA;CACjB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Socket } from 'socket.io';
2
2
  import { BaseWebsocketConnection } from './base-websocket-connection.model';
3
+ import { Version } from '../../../versioning/version.model';
3
4
  import { LooseWebsocketEvent } from '../websocket-event.enum';
4
5
  import { WebsocketMessage } from '../websocket-message.model';
5
6
  /**
@@ -8,6 +9,7 @@ import { WebsocketMessage } from '../websocket-message.model';
8
9
  export declare class SocketIOWebsocketConnection implements BaseWebsocketConnection {
9
10
  private readonly socket;
10
11
  userId: string | undefined;
12
+ readonly resolvedVersion: Version;
11
13
  readonly id: string;
12
14
  /**
13
15
  * Whether the connection state was recovered after a temporary disconnection.
@@ -16,7 +18,7 @@ export declare class SocketIOWebsocketConnection implements BaseWebsocketConnect
16
18
  readonly recovered: boolean;
17
19
  get offset(): number;
18
20
  set offset(value: number);
19
- constructor(socket: Socket, userId: string | undefined);
21
+ constructor(socket: Socket, userId: string | undefined, resolvedVersion: Version);
20
22
  /**
21
23
  * Disconnects the socket.
22
24
  * @param close - Whether or not to close the underlying connection.
@@ -1 +1 @@
1
- {"version":3,"file":"socket-io-websocket-connection.model.d.ts","sourceRoot":"","sources":["../../../../../src/websocket/models/connection/socket-io-websocket-connection.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAkB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;GAEG;AACH,qBAAa,2BAA4B,YAAW,uBAAuB;IAmB3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAiB,MAAM,EAAE,MAAM,GAAG,SAAS;IAjB9E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B,IAAI,MAAM,IAAI,MAAM,CAKnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAEvB;gBAE4B,MAAM,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,GAAG,SAAS;IAK9E;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIhC;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAI9D;;;;;;OAMG;IACG,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIrG;;;OAGG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;;OAGG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIxD;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAIlF"}
1
+ {"version":3,"file":"socket-io-websocket-connection.model.d.ts","sourceRoot":"","sources":["../../../../../src/websocket/models/connection/socket-io-websocket-connection.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAkB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;GAEG;AACH,qBAAa,2BAA4B,YAAW,uBAAuB;IAqBnE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO;IArBrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAG5B,IAAI,MAAM,IAAI,MAAM,CAKnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAEvB;gBAGoB,MAAM,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,GAAG,SAAS,EACxB,eAAe,EAAE,OAAO;IAOrC;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIhC;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAI9D;;;;;;OAMG;IACG,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIrG;;;OAGG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;;OAGG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIxD;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAIlF"}
@@ -8,6 +8,7 @@ const websocket_event_enum_1 = require("../websocket-event.enum");
8
8
  class SocketIOWebsocketConnection {
9
9
  socket;
10
10
  userId;
11
+ resolvedVersion;
11
12
  // eslint-disable-next-line jsdoc/require-jsdoc
12
13
  id;
13
14
  /**
@@ -25,9 +26,10 @@ class SocketIOWebsocketConnection {
25
26
  set offset(value) {
26
27
  this.socket.handshake.auth.offset = value;
27
28
  }
28
- constructor(socket, userId) {
29
+ constructor(socket, userId, resolvedVersion) {
29
30
  this.socket = socket;
30
31
  this.userId = userId;
32
+ this.resolvedVersion = resolvedVersion;
31
33
  this.id = this.socket.id;
32
34
  this.recovered = this.socket.recovered;
33
35
  }