zibri 2.4.1 → 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 (496) 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 +0 -1
  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/strategies/cookie/cookie-auth.controller.js +1 -1
  15. package/dist/cjs/auth/strategies/cookie/cookie-auth.controller.js.map +1 -1
  16. package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.js +1 -1
  17. package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.js.map +1 -1
  18. package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js +1 -1
  19. package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
  20. package/dist/cjs/backup/backup-resource-entity.model.d.ts +1 -1
  21. package/dist/cjs/backup/backup-resource-entity.model.d.ts.map +1 -1
  22. package/dist/cjs/backup/backup-resource-entity.model.js.map +1 -1
  23. package/dist/cjs/change-sets/models/change-set.model.d.ts +1 -1
  24. package/dist/cjs/change-sets/models/change-set.model.d.ts.map +1 -1
  25. package/dist/cjs/change-sets/models/change-set.model.js +1 -1
  26. package/dist/cjs/change-sets/models/change-set.model.js.map +1 -1
  27. package/dist/cjs/change-sets/models/change.model.d.ts +2 -2
  28. package/dist/cjs/change-sets/models/change.model.d.ts.map +1 -1
  29. package/dist/cjs/change-sets/models/change.model.js.map +1 -1
  30. package/dist/cjs/context/cache/cache.context.d.ts +2 -2
  31. package/dist/cjs/context/cache/cache.context.d.ts.map +1 -1
  32. package/dist/cjs/context/cache/cache.context.js +2 -2
  33. package/dist/cjs/context/cache/cache.context.js.map +1 -1
  34. package/dist/cjs/context/request/request-context-token.model.js +1 -1
  35. package/dist/cjs/context/request/request-context-token.model.js.map +1 -1
  36. package/dist/cjs/cron/cron-job-entity.model.d.ts +2 -2
  37. package/dist/cjs/cron/cron-job-entity.model.d.ts.map +1 -1
  38. package/dist/cjs/cron/cron-job-entity.model.js.map +1 -1
  39. package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.d.ts +1 -0
  40. package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.d.ts.map +1 -1
  41. package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.js +9 -0
  42. package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.js.map +1 -1
  43. package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.d.ts.map +1 -1
  44. package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.js +3 -3
  45. package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.js.map +1 -1
  46. package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.d.ts +2 -1
  47. package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.d.ts.map +1 -1
  48. package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js +20 -0
  49. package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js.map +1 -1
  50. package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.d.ts +4 -0
  51. package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.d.ts.map +1 -1
  52. package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.js +3 -1
  53. package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.js.map +1 -1
  54. package/dist/cjs/data-source/migration/migration-entity.model.d.ts +2 -2
  55. package/dist/cjs/data-source/migration/migration-entity.model.d.ts.map +1 -1
  56. package/dist/cjs/data-source/migration/migration-entity.model.js.map +1 -1
  57. package/dist/cjs/data-source/migration/migration.model.d.ts +2 -2
  58. package/dist/cjs/data-source/migration/migration.model.d.ts.map +1 -1
  59. package/dist/cjs/data-source/models/where/date-where-filter.model.d.ts +10 -2
  60. package/dist/cjs/data-source/models/where/date-where-filter.model.d.ts.map +1 -1
  61. package/dist/cjs/data-source/models/where/string-where-filter.model.d.ts +17 -0
  62. package/dist/cjs/data-source/models/where/string-where-filter.model.d.ts.map +1 -1
  63. package/dist/cjs/data-source/models/where/where-filter-keys.model.d.ts.map +1 -1
  64. package/dist/cjs/data-source/models/where/where-filter-keys.model.js +3 -0
  65. package/dist/cjs/data-source/models/where/where-filter-keys.model.js.map +1 -1
  66. package/dist/cjs/di/default/zibri-di-providers.default.d.ts.map +1 -1
  67. package/dist/cjs/di/default/zibri-di-providers.default.js +4 -0
  68. package/dist/cjs/di/default/zibri-di-providers.default.js.map +1 -1
  69. package/dist/cjs/di/default/zibri-di-tokens.default.d.ts +3 -0
  70. package/dist/cjs/di/default/zibri-di-tokens.default.d.ts.map +1 -1
  71. package/dist/cjs/di/default/zibri-di-tokens.default.js +2 -0
  72. package/dist/cjs/di/default/zibri-di-tokens.default.js.map +1 -1
  73. package/dist/cjs/email/email.service.d.ts +1 -1
  74. package/dist/cjs/email/email.service.d.ts.map +1 -1
  75. package/dist/cjs/email/email.service.js +4 -4
  76. package/dist/cjs/email/email.service.js.map +1 -1
  77. package/dist/cjs/email/models/email.model.d.ts +4 -4
  78. package/dist/cjs/email/models/email.model.d.ts.map +1 -1
  79. package/dist/cjs/email/models/email.model.js +4 -4
  80. package/dist/cjs/email/models/email.model.js.map +1 -1
  81. package/dist/cjs/entity/generation/generate-entity-file.function.js +1 -1
  82. package/dist/cjs/entity/generation/generate-entity-file.function.js.map +1 -1
  83. package/dist/cjs/event/event-subscriber-run.model.d.ts +1 -1
  84. package/dist/cjs/event/event-subscriber-run.model.d.ts.map +1 -1
  85. package/dist/cjs/event/event-subscriber-run.model.js +1 -1
  86. package/dist/cjs/event/event-subscriber-run.model.js.map +1 -1
  87. package/dist/cjs/global/global-registry.d.ts +2 -2
  88. package/dist/cjs/global/global-registry.d.ts.map +1 -1
  89. package/dist/cjs/http/http-request.model.d.ts +2 -2
  90. package/dist/cjs/http/http-request.model.d.ts.map +1 -1
  91. package/dist/cjs/http/known-header.enum.d.ts +1 -0
  92. package/dist/cjs/http/known-header.enum.d.ts.map +1 -1
  93. package/dist/cjs/http/known-header.enum.js +1 -0
  94. package/dist/cjs/http/known-header.enum.js.map +1 -1
  95. package/dist/cjs/http-client/http-client.d.ts.map +1 -1
  96. package/dist/cjs/http-client/http-client.js.map +1 -1
  97. package/dist/cjs/index.d.ts +7 -3
  98. package/dist/cjs/index.d.ts.map +1 -1
  99. package/dist/cjs/index.js +8 -3
  100. package/dist/cjs/index.js.map +1 -1
  101. package/dist/cjs/localization/formatting/format-price.function.d.ts.map +1 -1
  102. package/dist/cjs/localization/formatting/format-price.function.js.map +1 -1
  103. package/dist/cjs/logging/log-context.model.d.ts +6 -6
  104. package/dist/cjs/logging/log-context.model.d.ts.map +1 -1
  105. package/dist/cjs/logging/log-context.model.js +6 -6
  106. package/dist/cjs/logging/log-context.model.js.map +1 -1
  107. package/dist/cjs/logging/logger.js +1 -1
  108. package/dist/cjs/logging/logger.js.map +1 -1
  109. package/dist/cjs/multithreading/models/thread-job-entity.model.d.ts +5 -5
  110. package/dist/cjs/multithreading/models/thread-job-entity.model.d.ts.map +1 -1
  111. package/dist/cjs/multithreading/models/thread-job-entity.model.js +4 -4
  112. package/dist/cjs/multithreading/models/thread-job-entity.model.js.map +1 -1
  113. package/dist/cjs/multithreading/services/thread-job.d.ts +4 -4
  114. package/dist/cjs/multithreading/services/thread-job.d.ts.map +1 -1
  115. package/dist/cjs/multithreading/services/thread-job.js.map +1 -1
  116. package/dist/cjs/open-api/open-api-service.interface.d.ts +2 -1
  117. package/dist/cjs/open-api/open-api-service.interface.d.ts.map +1 -1
  118. package/dist/cjs/open-api/open-api.service.d.ts +5 -2
  119. package/dist/cjs/open-api/open-api.service.d.ts.map +1 -1
  120. package/dist/cjs/open-api/open-api.service.js +256 -139
  121. package/dist/cjs/open-api/open-api.service.js.map +1 -1
  122. package/dist/cjs/parsing/html/csp-options.model.d.ts +1 -1
  123. package/dist/cjs/parsing/html/csp-options.model.d.ts.map +1 -1
  124. package/dist/cjs/parsing/html/csp-options.model.js.map +1 -1
  125. package/dist/cjs/parsing/parser.js +3 -3
  126. package/dist/cjs/parsing/parser.js.map +1 -1
  127. package/dist/cjs/plugin/invoicing/models/invoice-address.model.d.ts +2 -2
  128. package/dist/cjs/plugin/invoicing/models/invoice-address.model.d.ts.map +1 -1
  129. package/dist/cjs/plugin/invoicing/models/invoice-address.model.js +2 -2
  130. package/dist/cjs/plugin/invoicing/models/invoice-address.model.js.map +1 -1
  131. package/dist/cjs/plugin/invoicing/models/vat.model.d.ts +1 -1
  132. package/dist/cjs/plugin/invoicing/models/vat.model.d.ts.map +1 -1
  133. package/dist/cjs/plugin/invoicing/models/vat.model.js +1 -1
  134. package/dist/cjs/plugin/invoicing/models/vat.model.js.map +1 -1
  135. package/dist/cjs/plugin/mailing-list/mailing-list.controller.js +1 -1
  136. package/dist/cjs/plugin/mailing-list/mailing-list.controller.js.map +1 -1
  137. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.d.ts +1 -1
  138. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.d.ts.map +1 -1
  139. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.js +1 -1
  140. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.js.map +1 -1
  141. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts +1 -1
  142. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts.map +1 -1
  143. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js +1 -1
  144. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +1 -1
  145. package/dist/cjs/plugin/payment/models/payment.model.d.ts +2 -2
  146. package/dist/cjs/plugin/payment/models/payment.model.d.ts.map +1 -1
  147. package/dist/cjs/plugin/payment/models/payment.model.js +1 -1
  148. package/dist/cjs/plugin/payment/models/payment.model.js.map +1 -1
  149. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.d.ts +17 -17
  150. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.d.ts.map +1 -1
  151. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.js +17 -17
  152. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.js.map +1 -1
  153. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js +1 -1
  154. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js.map +1 -1
  155. package/dist/cjs/preact/preact.utilities.js +1 -1
  156. package/dist/cjs/preact/preact.utilities.js.map +1 -1
  157. package/dist/cjs/preact/validate-email-templates.function.js +1 -1
  158. package/dist/cjs/preact/validate-email-templates.function.js.map +1 -1
  159. package/dist/cjs/rate-limiting/rate-limiter.d.ts +10 -5
  160. package/dist/cjs/rate-limiting/rate-limiter.d.ts.map +1 -1
  161. package/dist/cjs/rate-limiting/rate-limiter.js +22 -12
  162. package/dist/cjs/rate-limiting/rate-limiter.js.map +1 -1
  163. package/dist/cjs/routing/controller-route-configuration.model.d.ts +5 -0
  164. package/dist/cjs/routing/controller-route-configuration.model.d.ts.map +1 -1
  165. package/dist/cjs/routing/decorators/controller.decorator.d.ts +5 -0
  166. package/dist/cjs/routing/decorators/controller.decorator.d.ts.map +1 -1
  167. package/dist/cjs/routing/decorators/controller.decorator.js +3 -2
  168. package/dist/cjs/routing/decorators/controller.decorator.js.map +1 -1
  169. package/dist/cjs/routing/decorators/create-http-decorator.function.d.ts +2 -1
  170. package/dist/cjs/routing/decorators/create-http-decorator.function.d.ts.map +1 -1
  171. package/dist/cjs/routing/decorators/create-http-decorator.function.js +2 -2
  172. package/dist/cjs/routing/decorators/create-http-decorator.function.js.map +1 -1
  173. package/dist/cjs/routing/decorators/delete.decorator.d.ts +3 -1
  174. package/dist/cjs/routing/decorators/delete.decorator.d.ts.map +1 -1
  175. package/dist/cjs/routing/decorators/delete.decorator.js +3 -2
  176. package/dist/cjs/routing/decorators/delete.decorator.js.map +1 -1
  177. package/dist/cjs/routing/decorators/get.decorator.d.ts +3 -1
  178. package/dist/cjs/routing/decorators/get.decorator.d.ts.map +1 -1
  179. package/dist/cjs/routing/decorators/get.decorator.js +3 -2
  180. package/dist/cjs/routing/decorators/get.decorator.js.map +1 -1
  181. package/dist/cjs/routing/decorators/http-decorator-option-input.model.d.ts +11 -0
  182. package/dist/cjs/routing/decorators/http-decorator-option-input.model.d.ts.map +1 -0
  183. package/dist/cjs/routing/decorators/http-decorator-option-input.model.js +3 -0
  184. package/dist/cjs/routing/decorators/http-decorator-option-input.model.js.map +1 -0
  185. package/dist/cjs/routing/decorators/patch.decorator.d.ts +3 -1
  186. package/dist/cjs/routing/decorators/patch.decorator.d.ts.map +1 -1
  187. package/dist/cjs/routing/decorators/patch.decorator.js +3 -2
  188. package/dist/cjs/routing/decorators/patch.decorator.js.map +1 -1
  189. package/dist/cjs/routing/decorators/post.decorator.d.ts +3 -1
  190. package/dist/cjs/routing/decorators/post.decorator.d.ts.map +1 -1
  191. package/dist/cjs/routing/decorators/post.decorator.js +3 -2
  192. package/dist/cjs/routing/decorators/post.decorator.js.map +1 -1
  193. package/dist/cjs/routing/resolve-route-params.function.js +1 -0
  194. package/dist/cjs/routing/resolve-route-params.function.js.map +1 -1
  195. package/dist/cjs/routing/route-configuration.model.d.ts +11 -1
  196. package/dist/cjs/routing/route-configuration.model.d.ts.map +1 -1
  197. package/dist/cjs/routing/router.d.ts +6 -2
  198. package/dist/cjs/routing/router.d.ts.map +1 -1
  199. package/dist/cjs/routing/router.js +173 -88
  200. package/dist/cjs/routing/router.js.map +1 -1
  201. package/dist/cjs/utilities/fs.utilities.d.ts +1 -1
  202. package/dist/cjs/utilities/fs.utilities.js +1 -1
  203. package/dist/cjs/utilities/sem-ver.utilities.d.ts +46 -0
  204. package/dist/cjs/utilities/sem-ver.utilities.d.ts.map +1 -0
  205. package/dist/cjs/utilities/sem-ver.utilities.js +204 -0
  206. package/dist/cjs/utilities/sem-ver.utilities.js.map +1 -0
  207. package/dist/cjs/utilities/uuid.utilities.js +2 -2
  208. package/dist/cjs/utilities/uuid.utilities.js.map +1 -1
  209. package/dist/cjs/versioning/route-with-version-data.model.d.ts +15 -0
  210. package/dist/cjs/versioning/route-with-version-data.model.d.ts.map +1 -0
  211. package/dist/cjs/versioning/route-with-version-data.model.js +3 -0
  212. package/dist/cjs/versioning/route-with-version-data.model.js.map +1 -0
  213. package/dist/cjs/versioning/supported-versions-options.model.d.ts +17 -0
  214. package/dist/cjs/versioning/supported-versions-options.model.d.ts.map +1 -0
  215. package/dist/cjs/versioning/supported-versions-options.model.js +3 -0
  216. package/dist/cjs/versioning/supported-versions-options.model.js.map +1 -0
  217. package/dist/cjs/versioning/version.model.d.ts +29 -0
  218. package/dist/cjs/versioning/version.model.d.ts.map +1 -0
  219. package/dist/{esm/types/version.type.js → cjs/versioning/version.model.js} +1 -1
  220. package/dist/cjs/versioning/version.model.js.map +1 -0
  221. package/dist/cjs/versioning/versioning-service.interface.d.ts +31 -0
  222. package/dist/cjs/versioning/versioning-service.interface.d.ts.map +1 -0
  223. package/dist/cjs/versioning/versioning-service.interface.js +3 -0
  224. package/dist/cjs/versioning/versioning-service.interface.js.map +1 -0
  225. package/dist/cjs/versioning/versioning.service.d.ts +41 -0
  226. package/dist/cjs/versioning/versioning.service.d.ts.map +1 -0
  227. package/dist/cjs/versioning/versioning.service.js +366 -0
  228. package/dist/cjs/versioning/versioning.service.js.map +1 -0
  229. package/dist/cjs/websocket/decorators/websocket-controller.decorator.d.ts +10 -0
  230. package/dist/cjs/websocket/decorators/websocket-controller.decorator.d.ts.map +1 -1
  231. package/dist/cjs/websocket/decorators/websocket-controller.decorator.js +2 -2
  232. package/dist/cjs/websocket/decorators/websocket-controller.decorator.js.map +1 -1
  233. package/dist/cjs/websocket/decorators/websocket-route.decorator.d.ts +13 -1
  234. package/dist/cjs/websocket/decorators/websocket-route.decorator.d.ts.map +1 -1
  235. package/dist/cjs/websocket/decorators/websocket-route.decorator.js +3 -2
  236. package/dist/cjs/websocket/decorators/websocket-route.decorator.js.map +1 -1
  237. package/dist/cjs/websocket/models/connection/base-websocket-connection.model.d.ts +5 -0
  238. package/dist/cjs/websocket/models/connection/base-websocket-connection.model.d.ts.map +1 -1
  239. package/dist/cjs/websocket/models/connection/socket-io-websocket-connection.model.d.ts +3 -1
  240. package/dist/cjs/websocket/models/connection/socket-io-websocket-connection.model.d.ts.map +1 -1
  241. package/dist/cjs/websocket/models/connection/socket-io-websocket-connection.model.js +3 -1
  242. package/dist/cjs/websocket/models/connection/socket-io-websocket-connection.model.js.map +1 -1
  243. package/dist/cjs/websocket/models/websocket-controller-route-configuration.model.d.ts +6 -0
  244. package/dist/cjs/websocket/models/websocket-controller-route-configuration.model.d.ts.map +1 -1
  245. package/dist/cjs/websocket/models/websocket-message.model.d.ts +2 -2
  246. package/dist/cjs/websocket/models/websocket-message.model.d.ts.map +1 -1
  247. package/dist/cjs/websocket/models/websocket-message.model.js.map +1 -1
  248. package/dist/cjs/websocket/models/websocket-request.model.d.ts +3 -3
  249. package/dist/cjs/websocket/models/websocket-request.model.d.ts.map +1 -1
  250. package/dist/cjs/websocket/models/websocket-request.model.js +1 -1
  251. package/dist/cjs/websocket/models/websocket-request.model.js.map +1 -1
  252. package/dist/cjs/websocket/services/websocket.service.d.ts +6 -4
  253. package/dist/cjs/websocket/services/websocket.service.d.ts.map +1 -1
  254. package/dist/cjs/websocket/services/websocket.service.js +121 -33
  255. package/dist/cjs/websocket/services/websocket.service.js.map +1 -1
  256. package/dist/esm/application.js +0 -1
  257. package/dist/esm/application.js.map +1 -1
  258. package/dist/esm/assets/asset.service.js +3 -1
  259. package/dist/esm/assets/asset.service.js.map +1 -1
  260. package/dist/esm/auth/2fa/methods/otp/otp-credentials.model.js.map +1 -1
  261. package/dist/esm/auth/2fa/methods/otp/otp.two-factor-method.js +1 -1
  262. package/dist/esm/auth/2fa/methods/otp/otp.two-factor-method.js.map +1 -1
  263. package/dist/esm/auth/strategies/cookie/cookie-auth.controller.js +1 -1
  264. package/dist/esm/auth/strategies/cookie/cookie-auth.controller.js.map +1 -1
  265. package/dist/esm/auth/strategies/jwt/jwt-auth.controller.js +1 -1
  266. package/dist/esm/auth/strategies/jwt/jwt-auth.controller.js.map +1 -1
  267. package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js +1 -1
  268. package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
  269. package/dist/esm/backup/backup-resource-entity.model.js.map +1 -1
  270. package/dist/esm/change-sets/models/change-set.model.js +1 -1
  271. package/dist/esm/change-sets/models/change-set.model.js.map +1 -1
  272. package/dist/esm/change-sets/models/change.model.js.map +1 -1
  273. package/dist/esm/context/cache/cache.context.js +2 -2
  274. package/dist/esm/context/cache/cache.context.js.map +1 -1
  275. package/dist/esm/context/request/request-context-token.model.js +1 -1
  276. package/dist/esm/context/request/request-context-token.model.js.map +1 -1
  277. package/dist/esm/cron/cron-job-entity.model.js.map +1 -1
  278. package/dist/esm/data-source/data-sources/postgres-typeorm-data-source.model.js +9 -0
  279. package/dist/esm/data-source/data-sources/postgres-typeorm-data-source.model.js.map +1 -1
  280. package/dist/esm/data-source/data-sources/typeorm-base-data-source.model.js +3 -3
  281. package/dist/esm/data-source/data-sources/typeorm-base-data-source.model.js.map +1 -1
  282. package/dist/esm/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js +20 -0
  283. package/dist/esm/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js.map +1 -1
  284. package/dist/esm/data-source/data-sources/where-converter/typeorm-where-filter.converter.js +3 -1
  285. package/dist/esm/data-source/data-sources/where-converter/typeorm-where-filter.converter.js.map +1 -1
  286. package/dist/esm/data-source/migration/migration-entity.model.js.map +1 -1
  287. package/dist/esm/data-source/models/where/where-filter-keys.model.js +3 -0
  288. package/dist/esm/data-source/models/where/where-filter-keys.model.js.map +1 -1
  289. package/dist/esm/di/default/zibri-di-providers.default.js +4 -0
  290. package/dist/esm/di/default/zibri-di-providers.default.js.map +1 -1
  291. package/dist/esm/di/default/zibri-di-tokens.default.js +2 -0
  292. package/dist/esm/di/default/zibri-di-tokens.default.js.map +1 -1
  293. package/dist/esm/email/email.service.js +4 -4
  294. package/dist/esm/email/email.service.js.map +1 -1
  295. package/dist/esm/email/models/email.model.js +4 -4
  296. package/dist/esm/email/models/email.model.js.map +1 -1
  297. package/dist/esm/entity/generation/generate-entity-file.function.js +1 -1
  298. package/dist/esm/entity/generation/generate-entity-file.function.js.map +1 -1
  299. package/dist/esm/event/event-subscriber-run.model.js +1 -1
  300. package/dist/esm/event/event-subscriber-run.model.js.map +1 -1
  301. package/dist/esm/http/known-header.enum.js +1 -0
  302. package/dist/esm/http/known-header.enum.js.map +1 -1
  303. package/dist/esm/http-client/http-client.js.map +1 -1
  304. package/dist/esm/index.js +8 -3
  305. package/dist/esm/index.js.map +1 -1
  306. package/dist/esm/localization/formatting/format-price.function.js.map +1 -1
  307. package/dist/esm/logging/log-context.model.js +6 -6
  308. package/dist/esm/logging/log-context.model.js.map +1 -1
  309. package/dist/esm/logging/logger.js +1 -1
  310. package/dist/esm/logging/logger.js.map +1 -1
  311. package/dist/esm/multithreading/models/thread-job-entity.model.js +4 -4
  312. package/dist/esm/multithreading/models/thread-job-entity.model.js.map +1 -1
  313. package/dist/esm/multithreading/services/thread-job.js.map +1 -1
  314. package/dist/esm/open-api/open-api.service.js +256 -139
  315. package/dist/esm/open-api/open-api.service.js.map +1 -1
  316. package/dist/esm/parsing/html/csp-options.model.js.map +1 -1
  317. package/dist/esm/parsing/parser.js +3 -3
  318. package/dist/esm/parsing/parser.js.map +1 -1
  319. package/dist/esm/plugin/invoicing/models/invoice-address.model.js +2 -2
  320. package/dist/esm/plugin/invoicing/models/invoice-address.model.js.map +1 -1
  321. package/dist/esm/plugin/invoicing/models/vat.model.js +1 -1
  322. package/dist/esm/plugin/invoicing/models/vat.model.js.map +1 -1
  323. package/dist/esm/plugin/mailing-list/mailing-list.controller.js +1 -1
  324. package/dist/esm/plugin/mailing-list/mailing-list.controller.js.map +1 -1
  325. package/dist/esm/plugin/mailing-list/models/mailing-list-subscriber.model.js +1 -1
  326. package/dist/esm/plugin/mailing-list/models/mailing-list-subscriber.model.js.map +1 -1
  327. package/dist/esm/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js +1 -1
  328. package/dist/esm/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +1 -1
  329. package/dist/esm/plugin/payment/models/payment.model.js +1 -1
  330. package/dist/esm/plugin/payment/models/payment.model.js.map +1 -1
  331. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal-client.js +17 -17
  332. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal-client.js.map +1 -1
  333. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js +1 -1
  334. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js.map +1 -1
  335. package/dist/esm/preact/preact.utilities.js +1 -1
  336. package/dist/esm/preact/preact.utilities.js.map +1 -1
  337. package/dist/esm/preact/validate-email-templates.function.js +1 -1
  338. package/dist/esm/preact/validate-email-templates.function.js.map +1 -1
  339. package/dist/esm/rate-limiting/rate-limiter.js +22 -12
  340. package/dist/esm/rate-limiting/rate-limiter.js.map +1 -1
  341. package/dist/esm/routing/decorators/controller.decorator.js +3 -2
  342. package/dist/esm/routing/decorators/controller.decorator.js.map +1 -1
  343. package/dist/esm/routing/decorators/create-http-decorator.function.js +2 -2
  344. package/dist/esm/routing/decorators/create-http-decorator.function.js.map +1 -1
  345. package/dist/esm/routing/decorators/delete.decorator.js +3 -2
  346. package/dist/esm/routing/decorators/delete.decorator.js.map +1 -1
  347. package/dist/esm/routing/decorators/get.decorator.js +3 -2
  348. package/dist/esm/routing/decorators/get.decorator.js.map +1 -1
  349. package/dist/esm/routing/decorators/http-decorator-option-input.model.js +3 -0
  350. package/dist/esm/routing/decorators/http-decorator-option-input.model.js.map +1 -0
  351. package/dist/esm/routing/decorators/patch.decorator.js +3 -2
  352. package/dist/esm/routing/decorators/patch.decorator.js.map +1 -1
  353. package/dist/esm/routing/decorators/post.decorator.js +3 -2
  354. package/dist/esm/routing/decorators/post.decorator.js.map +1 -1
  355. package/dist/esm/routing/resolve-route-params.function.js +1 -0
  356. package/dist/esm/routing/resolve-route-params.function.js.map +1 -1
  357. package/dist/esm/routing/router.js +173 -88
  358. package/dist/esm/routing/router.js.map +1 -1
  359. package/dist/esm/utilities/fs.utilities.js +1 -1
  360. package/dist/esm/utilities/sem-ver.utilities.js +204 -0
  361. package/dist/esm/utilities/sem-ver.utilities.js.map +1 -0
  362. package/dist/esm/utilities/uuid.utilities.js +2 -2
  363. package/dist/esm/utilities/uuid.utilities.js.map +1 -1
  364. package/dist/esm/versioning/route-with-version-data.model.js +3 -0
  365. package/dist/esm/versioning/route-with-version-data.model.js.map +1 -0
  366. package/dist/esm/versioning/supported-versions-options.model.js +3 -0
  367. package/dist/esm/versioning/supported-versions-options.model.js.map +1 -0
  368. package/dist/{cjs/types/version.type.js → esm/versioning/version.model.js} +1 -1
  369. package/dist/esm/versioning/version.model.js.map +1 -0
  370. package/dist/esm/versioning/versioning-service.interface.js +3 -0
  371. package/dist/esm/versioning/versioning-service.interface.js.map +1 -0
  372. package/dist/esm/versioning/versioning.service.js +366 -0
  373. package/dist/esm/versioning/versioning.service.js.map +1 -0
  374. package/dist/esm/websocket/decorators/websocket-controller.decorator.js +2 -2
  375. package/dist/esm/websocket/decorators/websocket-controller.decorator.js.map +1 -1
  376. package/dist/esm/websocket/decorators/websocket-route.decorator.js +3 -2
  377. package/dist/esm/websocket/decorators/websocket-route.decorator.js.map +1 -1
  378. package/dist/esm/websocket/models/connection/socket-io-websocket-connection.model.js +3 -1
  379. package/dist/esm/websocket/models/connection/socket-io-websocket-connection.model.js.map +1 -1
  380. package/dist/esm/websocket/models/websocket-message.model.js.map +1 -1
  381. package/dist/esm/websocket/models/websocket-request.model.js +1 -1
  382. package/dist/esm/websocket/models/websocket-request.model.js.map +1 -1
  383. package/dist/esm/websocket/services/websocket.service.js +121 -33
  384. package/dist/esm/websocket/services/websocket.service.js.map +1 -1
  385. package/package.json +17 -19
  386. package/src/__testing__/test-server/providers.ts +25 -1
  387. package/src/__testing__/test-server/start-test-server.function.ts +76 -8
  388. package/src/application-options.model.ts +2 -2
  389. package/src/application.ts +0 -1
  390. package/src/assets/asset.service.ts +3 -1
  391. package/src/auth/2fa/methods/otp/otp-credentials.model.ts +1 -1
  392. package/src/auth/2fa/methods/otp/otp.two-factor-method.ts +1 -1
  393. package/src/auth/strategies/cookie/cookie-auth.controller.ts +1 -1
  394. package/src/auth/strategies/jwt/jwt-auth.controller.ts +1 -1
  395. package/src/auth/strategies/jwt/jwt.auth-strategy.ts +1 -1
  396. package/src/backup/backup-resource-entity.model.ts +1 -1
  397. package/src/backup/backup-service.test.ts +2 -1
  398. package/src/change-sets/models/change-set.model.ts +1 -1
  399. package/src/change-sets/models/change.model.ts +2 -2
  400. package/src/context/cache/cache.context.ts +2 -2
  401. package/src/context/request/request-context-token.model.ts +1 -1
  402. package/src/cron/cron-job-entity.model.ts +2 -2
  403. package/src/data-source/data-sources/postgres-typeorm-data-source.model.ts +10 -0
  404. package/src/data-source/data-sources/typeorm-base-data-source.model.ts +4 -5
  405. package/src/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.ts +35 -2
  406. package/src/data-source/data-sources/where-converter/typeorm-where-filter.converter.ts +14 -1
  407. package/src/data-source/hooks/hooks.test.ts +1 -1
  408. package/src/data-source/migration/migration-entity.model.ts +2 -2
  409. package/src/data-source/migration/migration.model.ts +2 -2
  410. package/src/data-source/migration/migration.test.ts +2 -2
  411. package/src/data-source/models/where/date-where-filter.model.ts +11 -3
  412. package/src/data-source/models/where/string-where-filter.model.ts +18 -1
  413. package/src/data-source/models/where/where-filter-keys.model.ts +3 -0
  414. package/src/data-source/nested-where-filter.test.ts +8 -3
  415. package/src/data-source/repository.test.ts +2 -2
  416. package/src/data-source/where-filter.test.ts +17 -7
  417. package/src/di/default/zibri-di-providers.default.ts +4 -0
  418. package/src/di/default/zibri-di-tokens.default.ts +3 -0
  419. package/src/email/email.service.ts +5 -5
  420. package/src/email/models/email.model.ts +4 -4
  421. package/src/entity/generation/generate-entity-file.function.ts +1 -1
  422. package/src/event/event-subscriber-run.model.ts +1 -1
  423. package/src/global/global-registry.ts +2 -2
  424. package/src/http/http-request.model.ts +2 -2
  425. package/src/http/known-header.enum.ts +1 -0
  426. package/src/http-client/http-client.ts +0 -1
  427. package/src/index.ts +9 -3
  428. package/src/localization/formatting/format-price.function.ts +2 -3
  429. package/src/logging/log-context.model.ts +6 -6
  430. package/src/logging/logger.ts +1 -1
  431. package/src/multithreading/models/thread-job-entity.model.ts +5 -5
  432. package/src/multithreading/services/thread-job.ts +4 -4
  433. package/src/open-api/open-api-service.interface.ts +2 -1
  434. package/src/open-api/open-api.service.ts +263 -141
  435. package/src/parsing/html/csp-options.model.ts +3 -0
  436. package/src/parsing/parser.ts +3 -3
  437. package/src/plugin/invoicing/models/invoice-address.model.ts +2 -2
  438. package/src/plugin/invoicing/models/vat.model.ts +1 -1
  439. package/src/plugin/mailing-list/mailing-list.controller.ts +1 -1
  440. package/src/plugin/mailing-list/models/mailing-list-subscriber.model.ts +1 -1
  441. package/src/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.ts +1 -1
  442. package/src/plugin/payment/models/payment.model.ts +2 -2
  443. package/src/plugin/payment/providers/pay-pal/pay-pal-client.ts +17 -17
  444. package/src/plugin/payment/providers/pay-pal/pay-pal.payment-provider.test.ts +1 -1
  445. package/src/plugin/payment/providers/pay-pal/pay-pal.payment-provider.ts +1 -1
  446. package/src/preact/preact.utilities.ts +1 -1
  447. package/src/preact/validate-email-templates.function.ts +1 -1
  448. package/src/rate-limiting/rate-limiter.ts +23 -12
  449. package/src/routing/controller-route-configuration.model.ts +6 -1
  450. package/src/routing/decorators/controller.decorator.ts +8 -2
  451. package/src/routing/decorators/create-http-decorator.function.ts +3 -2
  452. package/src/routing/decorators/delete.decorator.ts +4 -2
  453. package/src/routing/decorators/get.decorator.ts +4 -2
  454. package/src/routing/decorators/http-decorator-option-input.model.ts +11 -0
  455. package/src/routing/decorators/patch.decorator.ts +4 -2
  456. package/src/routing/decorators/post.decorator.ts +4 -2
  457. package/src/routing/resolve-route-params.function.ts +1 -0
  458. package/src/routing/route-configuration.model.ts +13 -3
  459. package/src/routing/router.ts +265 -134
  460. package/src/utilities/fs.utilities.ts +1 -1
  461. package/src/utilities/sem-ver.utilities.ts +270 -0
  462. package/src/utilities/uuid.utilities.ts +2 -2
  463. package/src/versioning/route-with-version-data.model.ts +15 -0
  464. package/src/versioning/supported-versions-options.model.ts +25 -0
  465. package/src/versioning/version.model.ts +30 -0
  466. package/src/versioning/versioning-service.interface.ts +39 -0
  467. package/src/versioning/versioning-websocket.test.ts +351 -0
  468. package/src/versioning/versioning.service.test.ts +582 -0
  469. package/src/versioning/versioning.service.ts +496 -0
  470. package/src/websocket/decorators/websocket-controller.decorator.ts +13 -3
  471. package/src/websocket/decorators/websocket-route.decorator.ts +15 -2
  472. package/src/websocket/models/connection/base-websocket-connection.model.ts +6 -0
  473. package/src/websocket/models/connection/socket-io-websocket-connection.model.ts +8 -1
  474. package/src/websocket/models/websocket-controller-route-configuration.model.ts +8 -1
  475. package/src/websocket/models/websocket-message.model.ts +2 -2
  476. package/src/websocket/models/websocket-request.model.ts +4 -3
  477. package/src/websocket/services/websocket.service.ts +143 -38
  478. package/dist/cjs/types/version.type.d.ts +0 -5
  479. package/dist/cjs/types/version.type.d.ts.map +0 -1
  480. package/dist/cjs/types/version.type.js.map +0 -1
  481. package/dist/cjs/utilities/compare-versions.function.d.ts +0 -9
  482. package/dist/cjs/utilities/compare-versions.function.d.ts.map +0 -1
  483. package/dist/cjs/utilities/compare-versions.function.js +0 -33
  484. package/dist/cjs/utilities/compare-versions.function.js.map +0 -1
  485. package/dist/cjs/utilities/is-version.function.d.ts +0 -7
  486. package/dist/cjs/utilities/is-version.function.d.ts.map +0 -1
  487. package/dist/cjs/utilities/is-version.function.js +0 -18
  488. package/dist/cjs/utilities/is-version.function.js.map +0 -1
  489. package/dist/esm/types/version.type.js.map +0 -1
  490. package/dist/esm/utilities/compare-versions.function.js +0 -33
  491. package/dist/esm/utilities/compare-versions.function.js.map +0 -1
  492. package/dist/esm/utilities/is-version.function.js +0 -18
  493. package/dist/esm/utilities/is-version.function.js.map +0 -1
  494. package/src/types/version.type.ts +0 -4
  495. package/src/utilities/compare-versions.function.ts +0 -33
  496. package/src/utilities/is-version.function.ts +0 -16
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"socket-io-websocket-connection.model.js","sourceRoot":"","sources":["../../../../../src/websocket/models/connection/socket-io-websocket-connection.model.ts"],"names":[],"mappings":";;;AAGA,kEAA8E;AAG9E;;GAEG;AACH,MAAa,2BAA2B;IAmBP;IAAuB;IAlBpD,+CAA+C;IACtC,EAAE,CAAS;IACpB;;;OAGG;IACM,SAAS,CAAU;IAC5B,+CAA+C;IAC/C,IAAI,MAAM;QACN,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED,YAA6B,MAAc,EAAS,MAA0B;QAAjD,WAAM,GAAN,MAAM,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAoB;QAC1E,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,KAAc;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAA0B,EAAE,IAAsB;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAI,KAA0B,EAAE,IAAsB,EAAE,OAAe;QACpF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAM,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,QAA2B;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,QAA2B;QACnC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClC,OAAO;QACX,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAAoC;QAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,qCAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAkE;QACpE,0DAA0D;QAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CACJ;AAzFD,kEAyFC"}
1
+ {"version":3,"file":"socket-io-websocket-connection.model.js","sourceRoot":"","sources":["../../../../../src/websocket/models/connection/socket-io-websocket-connection.model.ts"],"names":[],"mappings":";;;AAIA,kEAA8E;AAG9E;;GAEG;AACH,MAAa,2BAA2B;IAqBf;IACV;IACE;IAtBb,+CAA+C;IACtC,EAAE,CAAS;IACpB;;;OAGG;IACM,SAAS,CAAU;IAE5B,+CAA+C;IAC/C,IAAI,MAAM;QACN,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED,YACqB,MAAc,EACxB,MAA0B,EACxB,eAAwB;QAFhB,WAAM,GAAN,MAAM,CAAQ;QACxB,WAAM,GAAN,MAAM,CAAoB;QACxB,oBAAe,GAAf,eAAe,CAAS;QAGjC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,KAAc;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAA0B,EAAE,IAAsB;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAI,KAA0B,EAAE,IAAsB,EAAE,OAAe;QACpF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAM,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,QAA2B;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,QAA2B;QACnC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClC,OAAO;QACX,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAAoC;QAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,qCAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAkE;QACpE,0DAA0D;QAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CACJ;AA/FD,kEA+FC"}
@@ -1,3 +1,4 @@
1
+ import { SupportedVersionsOptions } from '../../versioning/supported-versions-options.model';
1
2
  /**
2
3
  * The configuration for a websocket controller route.
3
4
  */
@@ -10,5 +11,10 @@ export type WebsocketControllerRouteConfiguration = {
10
11
  * The name of the method on the controller that is responsible for handling messages to the websocket event.
11
12
  */
12
13
  controllerMethod: string;
14
+ /**
15
+ * The supported versions of this route.
16
+ * Defaults to '^latest'.
17
+ */
18
+ versions: SupportedVersionsOptions | undefined;
13
19
  };
14
20
  //# sourceMappingURL=websocket-controller-route-configuration.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-controller-route-configuration.model.d.ts","sourceRoot":"","sources":["../../../../src/websocket/models/websocket-controller-route-configuration.model.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,qCAAqC,GAAG;IAChD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;CAC3B,CAAC"}
1
+ {"version":3,"file":"websocket-controller-route-configuration.model.d.ts","sourceRoot":"","sources":["../../../../src/websocket/models/websocket-controller-route-configuration.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAE7F;;GAEG;AACH,MAAM,MAAM,qCAAqC,GAAG;IAChD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,EAAE,wBAAwB,GAAG,SAAS,CAAA;CACjD,CAAC"}
@@ -37,11 +37,11 @@ export declare class WebsocketMessage extends BaseEntity {
37
37
  /**
38
38
  * The id of the user that has sent the message.
39
39
  */
40
- senderUserId: string | undefined;
40
+ senderUserId: string | undefined | null;
41
41
  /**
42
42
  * The of the connection that has sent the message.
43
43
  */
44
- senderConnectionId: string | undefined;
44
+ senderConnectionId: string | undefined | null;
45
45
  /**
46
46
  * The actual data of the message.
47
47
  */