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
@@ -11,8 +11,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
14
17
  Object.defineProperty(exports, "__esModule", { value: true });
15
18
  exports.Router = void 0;
19
+ const node_assert_1 = __importDefault(require("node:assert"));
16
20
  const express_1 = require("express");
17
21
  const body_decorator_1 = require("./decorators/body.decorator");
18
22
  const missing_base_route_error_1 = require("./missing-base-route.error");
@@ -22,6 +26,7 @@ const inject_decorator_1 = require("../di/decorators/inject.decorator");
22
26
  const injectable_decorator_1 = require("../di/decorators/injectable.decorator");
23
27
  const zibri_di_tokens_default_1 = require("../di/default/zibri-di-tokens.default");
24
28
  const inject_function_1 = require("../di/inject.function");
29
+ const not_found_error_1 = require("../error-handling/errors/not-found.error");
25
30
  const global_registry_1 = require("../global/global-registry");
26
31
  const http_method_enum_1 = require("../http/http-method.enum");
27
32
  const known_header_enum_1 = require("../http/known-header.enum");
@@ -46,8 +51,13 @@ let Router = class Router {
46
51
  expressRouter = (0, express_1.Router)();
47
52
  allBaseRoutes = [];
48
53
  allFinalRoutes = [];
54
+ initComplete = false;
49
55
  // eslint-disable-next-line jsdoc/require-jsdoc
50
56
  manuallyRegisteredRoutes = [];
57
+ pendingRouteGroups = new Map();
58
+ get versioningService() {
59
+ return (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.VERSIONING_SERVICE);
60
+ }
51
61
  constructor(logger, parser, validationService, authService) {
52
62
  this.logger = logger;
53
63
  this.parser = parser;
@@ -63,6 +73,12 @@ let Router = class Router {
63
73
  await this.registerController(controller);
64
74
  }
65
75
  this.checkForOrphanedControllers(app.options.controllers);
76
+ for (const group of this.pendingRouteGroups.values()) {
77
+ const dispatchHandler = this.createDispatchHandler(group.entries);
78
+ await this.logger.debug(`- mounting ${group.httpMethod.toUpperCase()} ${group.finalRoute}`);
79
+ this.expressRouter[group.httpMethod](group.finalRoute, dispatchHandler);
80
+ }
81
+ this.initComplete = true;
66
82
  }
67
83
  // eslint-disable-next-line jsdoc/require-jsdoc
68
84
  onAppStart(app) {
@@ -83,10 +99,29 @@ let Router = class Router {
83
99
  }
84
100
  // eslint-disable-next-line jsdoc/require-jsdoc
85
101
  async registerRoute(input) {
86
- if (this.allFinalRoutes.includes(`${input.httpMethod.toUpperCase()} ${input.route}`)) {
87
- throw new Error(`The route "${input.httpMethod.toUpperCase()} ${input.route}" has been defined more than once.`);
102
+ const key = `${input.httpMethod.toUpperCase()} ${input.route}`;
103
+ const versions = input.versions ?? ['^latest'];
104
+ const currentLatest = global_registry_1.GlobalRegistry.getAppData('version');
105
+ (0, node_assert_1.default)(currentLatest);
106
+ const overlappingRoute = this.allFinalRoutes.find(r => r.key === key && this.versioningService.hasOverlappingVersions(r.versions, versions, currentLatest));
107
+ if (overlappingRoute) {
108
+ const overlappingVersions = this.versioningService.findOverlappingVersions(overlappingRoute.versions, versions, currentLatest);
109
+ if (overlappingVersions === 'all') {
110
+ throw new Error([
111
+ `The route "${key}"`,
112
+ // eslint-disable-next-line sonar/no-duplicate-string
113
+ 'has been defined more than once.',
114
+ // eslint-disable-next-line sonar/no-duplicate-string
115
+ '(versions: \'all\' has been used)'
116
+ ].join(' '));
117
+ }
118
+ throw new Error([
119
+ `The route "${key}"`,
120
+ `for the ${overlappingVersions.length > 1 ? 'versions' : 'version'} "${overlappingVersions.join(', ')}"`,
121
+ 'has been defined more than once.'
122
+ ].join(' '));
88
123
  }
89
- this.allFinalRoutes.push(`${input.httpMethod.toUpperCase()} ${input.route}`);
124
+ this.allFinalRoutes.push({ key, versions });
90
125
  const pathParams = {};
91
126
  for (const key in input.pathParams) {
92
127
  pathParams[key] = (0, param_metdata_helpers_1.createPathParamMetadata)(key, input.pathParams[key]);
@@ -101,6 +136,7 @@ let Router = class Router {
101
136
  }
102
137
  // eslint-disable-next-line typescript/no-explicit-any
103
138
  const route = {
139
+ versions: ['^latest'],
104
140
  ...input,
105
141
  openApi: this.createOpenApiRouteConfiguration(input.openApi, input.httpMethod),
106
142
  bodyMetadata: input.bodyMetadata
@@ -120,10 +156,63 @@ let Router = class Router {
120
156
  queryParams,
121
157
  headerParams
122
158
  };
123
- const handler = this.routeToRequestHandler(route);
124
- await this.logger.debug(`- mounting ${route.httpMethod.toUpperCase()} ${route.route}`);
159
+ await this.logger.debug(`- mounting ${key}`);
125
160
  this.manuallyRegisteredRoutes.push(route);
126
- this.expressRouter[route.httpMethod](route.route, handler);
161
+ const innerHandler = this.createManualRouteInnerHandler(route);
162
+ // eslint-disable-next-line typescript/typedef
163
+ const existing = this.pendingRouteGroups.get(key);
164
+ if (existing) {
165
+ existing.entries.push({ versions, innerHandler });
166
+ }
167
+ else {
168
+ this.pendingRouteGroups.set(key, {
169
+ httpMethod: input.httpMethod,
170
+ finalRoute: input.route,
171
+ entries: [{ versions, innerHandler }]
172
+ });
173
+ }
174
+ // If init has already completed, mount immediately since the deferred loop has already run
175
+ if (this.initComplete) {
176
+ // eslint-disable-next-line typescript/typedef, typescript/no-non-null-assertion
177
+ const group = this.pendingRouteGroups.get(key);
178
+ this.expressRouter[input.httpMethod](input.route, this.createDispatchHandler(group.entries));
179
+ }
180
+ }
181
+ createManualRouteInnerHandler(route) {
182
+ return async (context, next) => {
183
+ try {
184
+ for (const key of object_utilities_1.ObjectUtilities.keys(route.pathParams)) {
185
+ context.request.params[key] = this.parser.parsePathParam(context.request, route.pathParams[key]);
186
+ }
187
+ for (const key of object_utilities_1.ObjectUtilities.keys(route.queryParams)) {
188
+ context.request.query[key] = this.parser.parseQueryParam(context.request, route.queryParams[key]);
189
+ }
190
+ for (const key of object_utilities_1.ObjectUtilities.keys(route.headerParams)) {
191
+ context.request.headers[key] = this.parser.parseHeaderParam(context.request, route.headerParams[key]);
192
+ }
193
+ if (route.bodyMetadata) {
194
+ context.request.body = await this.parser.parseBody(context.request, route.bodyMetadata);
195
+ }
196
+ await Promise.all([
197
+ ...object_utilities_1.ObjectUtilities.keys(route.pathParams).map(async (key) => {
198
+ await this.validationService.validatePathParam(context.request.params[key], route.pathParams[key]);
199
+ }),
200
+ ...object_utilities_1.ObjectUtilities.keys(route.queryParams).map(async (key) => {
201
+ await this.validationService.validateQueryParam(context.request.query[key], route.queryParams[key]);
202
+ }),
203
+ ...object_utilities_1.ObjectUtilities.keys(route.headerParams).map(async (key) => {
204
+ await this.validationService.validateHeaderParam(context.request.headers[key], route.headerParams[key]);
205
+ }),
206
+ ...route.bodyMetadata ? [this.validationService.validateBody(context.request.body, route.bodyMetadata)] : []
207
+ ]);
208
+ // eslint-disable-next-line typescript/no-explicit-any
209
+ const result = await route.handler(context.request, context.response, next);
210
+ await this.returnResult(context.response, result, next, []);
211
+ }
212
+ catch (error) {
213
+ next(error);
214
+ }
215
+ };
127
216
  }
128
217
  createOpenApiRouteConfiguration(input, httpMethod) {
129
218
  if (input?.useInOpenApi === true) {
@@ -139,14 +228,14 @@ let Router = class Router {
139
228
  switch (httpMethod) {
140
229
  case http_method_enum_1.HttpMethod.HEAD:
141
230
  case http_method_enum_1.HttpMethod.OPTIONS:
142
- case http_method_enum_1.HttpMethod.TRACE:
143
- case http_method_enum_1.HttpMethod.GET: {
231
+ case http_method_enum_1.HttpMethod.TRACE: {
144
232
  return { useInOpenApi: false };
145
233
  }
146
234
  case http_method_enum_1.HttpMethod.POST:
147
235
  case http_method_enum_1.HttpMethod.PUT:
148
236
  case http_method_enum_1.HttpMethod.PATCH:
149
- case http_method_enum_1.HttpMethod.DELETE: {
237
+ case http_method_enum_1.HttpMethod.DELETE:
238
+ case http_method_enum_1.HttpMethod.GET: {
150
239
  return {
151
240
  responses: [],
152
241
  tags: [],
@@ -155,30 +244,71 @@ let Router = class Router {
155
244
  }
156
245
  }
157
246
  }
158
- // eslint-disable-next-line jsdoc/require-jsdoc
247
+ // eslint-disable-next-line jsdoc/require-jsdoc, sonar/cognitive-complexity
159
248
  async registerController(controllerClass) {
160
249
  const controllerData = metadata_utilities_1.MetadataUtilities.getControllerData(controllerClass);
161
250
  if (controllerData == undefined) {
162
251
  throw new missing_base_route_error_1.MissingBaseRouteError(controllerClass);
163
252
  }
164
- if (this.allBaseRoutes.includes(controllerData.baseRoute)) {
165
- throw new Error(`The base route "${controllerData.baseRoute}" has been defined on more than one controller.`);
253
+ const currentLatest = global_registry_1.GlobalRegistry.getAppData('version');
254
+ (0, node_assert_1.default)(currentLatest);
255
+ const overlappingBaseRoute = this.allBaseRoutes.find(r => r.key === controllerData.baseRoute && this.versioningService.hasOverlappingVersions(r.versions, controllerData.versions, currentLatest));
256
+ if (overlappingBaseRoute) {
257
+ const overlappingVersions = this.versioningService.findOverlappingVersions(overlappingBaseRoute.versions, controllerData.versions, currentLatest);
258
+ if (overlappingVersions === 'all') {
259
+ throw new Error([
260
+ `The base route "${controllerData.baseRoute}"`,
261
+ 'has been defined on more than one controller.',
262
+ '(versions: \'all\' has been used)'
263
+ ].join(' '));
264
+ }
265
+ throw new Error([
266
+ `The base route "${controllerData.baseRoute}"`,
267
+ `for the ${overlappingVersions.length > 1 ? 'versions' : 'version'} "${overlappingVersions.join(', ')}"`,
268
+ 'has been defined on more than one controller.'
269
+ ].join(' '));
166
270
  }
167
- this.allBaseRoutes.push(controllerData.baseRoute);
271
+ this.allBaseRoutes.push({ key: controllerData.baseRoute, versions: controllerData.versions });
168
272
  const routes = metadata_utilities_1.MetadataUtilities.getControllerRoutes(controllerClass);
169
273
  for (const route of routes) {
170
- const handler = await this.controllerRouteToRequestHandler(controllerClass, route);
171
274
  const finalRoute = controllerData.baseRoute === '/' ? route.route : `${controllerData.baseRoute}${route.route}`;
172
- if (this.allFinalRoutes.includes(`${route.httpMethod.toUpperCase()} ${finalRoute}`)) {
173
- throw new Error(`The route "${route.httpMethod.toUpperCase()} ${finalRoute}" has been defined more than once.`, { cause: controllerClass });
275
+ const key = `${route.httpMethod.toUpperCase()} ${finalRoute}`;
276
+ const versions = route.versions ?? controllerData.versions;
277
+ const overlappingRoute = this.allFinalRoutes.find(r => r.key === key && this.versioningService.hasOverlappingVersions(r.versions, versions, currentLatest));
278
+ if (overlappingRoute) {
279
+ const overlappingVersions = this.versioningService.findOverlappingVersions(overlappingRoute.versions, versions, currentLatest);
280
+ if (overlappingVersions === 'all') {
281
+ throw new Error([
282
+ `The route "${key}"`,
283
+ 'has been defined more than once.',
284
+ '(versions: \'all\' has been used)'
285
+ ].join(' '));
286
+ }
287
+ throw new Error([
288
+ `The route "${key}"`,
289
+ `for the ${overlappingVersions.length > 1 ? 'versions' : 'version'} "${overlappingVersions.join(', ')}"`,
290
+ 'has been defined more than once.'
291
+ ].join(' '));
174
292
  }
175
- this.allFinalRoutes.push(`${route.httpMethod.toUpperCase()} ${finalRoute}`);
176
- await this.logger.debug(`- mounting ${route.httpMethod.toUpperCase()} ${finalRoute}`);
177
- this.expressRouter[route.httpMethod](finalRoute, handler);
293
+ this.allFinalRoutes.push({ key, versions });
294
+ const innerHandler = await this.createControllerInnerHandler(controllerClass, route);
295
+ // eslint-disable-next-line typescript/typedef
296
+ const existing = this.pendingRouteGroups.get(key);
297
+ if (existing) {
298
+ existing.entries.push({ versions, innerHandler });
299
+ continue;
300
+ }
301
+ this.pendingRouteGroups.set(key, {
302
+ httpMethod: route.httpMethod,
303
+ finalRoute,
304
+ entries: [{ versions, innerHandler }]
305
+ });
178
306
  }
179
307
  }
180
- routeToRequestHandler(route) {
181
- const handler = (async (request, res, next) => {
308
+ createDispatchHandler(
309
+ // eslint-disable-next-line jsdoc/require-jsdoc
310
+ entries) {
311
+ return (async (request, res, next) => {
182
312
  Object.defineProperty(request, 'params', {
183
313
  value: { ...request.params },
184
314
  writable: true,
@@ -200,85 +330,40 @@ let Router = class Router {
200
330
  const context = new http_request_context_1.HttpRequestContext(request, res, undefined, undefined);
201
331
  await als_utilities_1.AlsUtilities.runWithHttpRequestContext(context, async () => {
202
332
  try {
203
- // parse
204
- for (const key of object_utilities_1.ObjectUtilities.keys(route.pathParams)) {
205
- context.request.params[key] = this.parser.parsePathParam(context.request, route.pathParams[key]);
206
- }
207
- for (const key of object_utilities_1.ObjectUtilities.keys(route.queryParams)) {
208
- context.request.query[key] = this.parser.parseQueryParam(context.request, route.queryParams[key]);
333
+ const version = await this.versioningService.resolveVersion(context);
334
+ // eslint-disable-next-line typescript/typedef
335
+ const match = entries.find(e => this.versioningService.matchesVersion(e.versions, version));
336
+ if (!match) {
337
+ throw new not_found_error_1.NotFoundError(`Could not find route "${request.url}" for version "${version.value}"`);
209
338
  }
210
- for (const key of object_utilities_1.ObjectUtilities.keys(route.headerParams)) {
211
- context.request.headers[key] = this.parser.parseHeaderParam(context.request, route.headerParams[key]);
212
- }
213
- if (route.bodyMetadata) {
214
- context.request.body = await this.parser.parseBody(context.request, route.bodyMetadata);
215
- }
216
- // validate
217
- await Promise.all([
218
- ...object_utilities_1.ObjectUtilities.keys(route.pathParams).map(async (key) => {
219
- await this.validationService.validatePathParam(context.request.params[key], route.pathParams[key]);
220
- }),
221
- ...object_utilities_1.ObjectUtilities.keys(route.queryParams).map(async (key) => {
222
- await this.validationService.validateQueryParam(context.request.query[key], route.queryParams[key]);
223
- }),
224
- ...object_utilities_1.ObjectUtilities.keys(route.headerParams).map(async (key) => {
225
- await this.validationService.validateHeaderParam(context.request.headers[key], route.headerParams[key]);
226
- }),
227
- ...route.bodyMetadata ? [this.validationService.validateBody(context.request.body, route.bodyMetadata)] : []
228
- ]);
229
- // eslint-disable-next-line typescript/no-explicit-any
230
- const result = await route.handler(context.request, context.response, next);
231
- await this.returnResult(context.response, result, next, []);
339
+ await match.innerHandler(context, next);
232
340
  }
233
341
  catch (error) {
234
342
  next(error);
235
343
  }
236
344
  });
237
345
  });
238
- return handler;
239
346
  }
240
- async controllerRouteToRequestHandler(controllerClass, route) {
347
+ async createControllerInnerHandler(controllerClass, route) {
241
348
  const responses = metadata_utilities_1.MetadataUtilities.getRouteResponses(controllerClass, route.controllerMethod);
242
349
  if (!responses.length) {
243
350
  await this.logger.warn(`No responses defined on route ${controllerClass.name}.${route.controllerMethod}`);
244
351
  }
245
- const handler = (async (request, res, next) => {
246
- Object.defineProperty(request, 'params', {
247
- value: { ...request.params },
248
- writable: true,
249
- configurable: true,
250
- enumerable: true
251
- });
252
- Object.defineProperty(request, 'query', {
253
- value: { ...request.query },
254
- writable: true,
255
- configurable: true,
256
- enumerable: true
257
- });
258
- Object.defineProperty(request, 'headers', {
259
- value: { ...request.headers },
260
- writable: true,
261
- configurable: true,
262
- enumerable: true
263
- });
264
- const context = new http_request_context_1.HttpRequestContext(request, res, controllerClass, route.controllerMethod);
265
- await als_utilities_1.AlsUtilities.runWithHttpRequestContext(context, async () => {
266
- try {
267
- await this.authService.checkAccess(controllerClass, route.controllerMethod, context);
268
- const controller = (0, inject_function_1.inject)(controllerClass);
269
- const params = await (0, resolve_route_params_function_1.resolveRouteParams)(controllerClass, route.controllerMethod,
270
- // eslint-disable-next-line typescript/no-unsafe-member-access, typescript/no-explicit-any
271
- controller[route.controllerMethod].length, context);
272
- // eslint-disable-next-line typescript/no-unsafe-call, typescript/no-explicit-any, typescript/no-unsafe-member-access
273
- const result = await controller[route.controllerMethod](...params);
274
- await this.returnResult(context.response, result, next, responses);
275
- }
276
- catch (error) {
277
- next(error);
278
- }
279
- });
280
- });
281
- return handler;
352
+ return async (context, next) => {
353
+ try {
354
+ await this.authService.checkAccess(controllerClass, route.controllerMethod, context);
355
+ const controller = (0, inject_function_1.inject)(controllerClass);
356
+ const params = await (0, resolve_route_params_function_1.resolveRouteParams)(controllerClass, route.controllerMethod,
357
+ // eslint-disable-next-line typescript/no-unsafe-member-access, typescript/no-explicit-any
358
+ controller[route.controllerMethod].length, context);
359
+ // eslint-disable-next-line typescript/no-unsafe-call, typescript/no-explicit-any, typescript/no-unsafe-member-access
360
+ const result = await controller[route.controllerMethod](...params);
361
+ await this.returnResult(context.response, result, next, responses);
362
+ }
363
+ catch (error) {
364
+ next(error);
365
+ }
366
+ };
282
367
  }
283
368
  async returnResult(res, result, next, responses) {
284
369
  if (res.headersSent) {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/routing/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/routing/router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,8DAAiC;AAGjC,qCAAgF;AAGhF,gEAAkG;AAElG,yEAAmE;AACnE,mEAAuH;AAGvH,mFAAqE;AAGrE,wEAA2D;AAC3D,gFAAmE;AACnE,mFAAwE;AACxE,2DAA+C;AAC/C,8EAAyE;AACzE,+DAA2D;AAG3D,+DAAsD;AAGtD,iEAAwD;AACxD,2DAAkD;AAGlD,kFAAwE;AACxE,yEAA2F;AAC3F,6EAAmE;AAGnE,wEAAoE;AACpE,wCAAqC;AAIrC,4DAAwD;AACxD,kFAA6E;AAC7E,gEAA4D;AAC5D,oEAAgE;AAWhE;;GAEG;AAEI,IAAM,MAAM,GAAZ,MAAM,MAAM;IA2BM;IAEA;IAEA;IAEA;IAhCJ,aAAa,GAAkB,IAAA,gBAAa,GAAE,CAAC;IAC/C,aAAa,GAA2B,EAAE,CAAC;IAC3C,cAAc,GAA2B,EAAE,CAAC;IACrD,YAAY,GAAY,KAAK,CAAC;IACtC,+CAA+C;IACtC,wBAAwB,GAK3B,EAAE,CAAC;IACQ,kBAAkB,GAO9B,IAAI,GAAG,EAAE,CAAC;IAEf,IAAY,iBAAiB;QACzB,OAAO,IAAA,wBAAM,EAAC,yCAAe,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,YAEqB,MAAuB,EAEvB,MAAuB,EAEvB,iBAA6C,EAE7C,WAAiC;QANjC,WAAM,GAAN,MAAM,CAAiB;QAEvB,WAAM,GAAN,MAAM,CAAiB;QAEvB,sBAAiB,GAAjB,iBAAiB,CAA4B;QAE7C,gBAAW,GAAX,WAAW,CAAsB;IACnD,CAAC;IAEJ,+CAA+C;IAC/C,KAAK,CAAC,SAAS,CAAC,GAAqB;QACjC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,eAAe,CAAC,CAAC;QACnF,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAmC,sCAAiB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACjG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;YAC3E,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE1D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,MAAM,eAAe,GAAmB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5F,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,+CAA+C;IAC/C,UAAU,CAAC,GAAqB;QAC5B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAEO,2BAA2B,CAAC,WAA+B;QAC/D,MAAM,mBAAmB,GAAuB,gCAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACxF,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sCAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,KAAK,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;QACH,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAa,CAAC,4BAA4B,EAAE,6BAA6B,CAAC,CAAC;YACxF,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,aAAa,CAOf,KAAqH;QAErH,MAAM,GAAG,GAAW,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACvE,MAAM,QAAQ,GAA6B,KAAK,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,aAAa,GAA8B,gCAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtF,IAAA,qBAAM,EAAC,aAAa,CAAC,CAAC;QAEtB,MAAM,gBAAgB,GAAqC,IAAI,CAAC,cAAc,CAAC,IAAI,CAC/E,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAC3G,CAAC;QACF,IAAI,gBAAgB,EAAE,CAAC;YACnB,MAAM,mBAAmB,GAA6B,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAChG,gBAAgB,CAAC,QAAQ,EACzB,QAAQ,EACR,aAAa,CAChB,CAAC;YACF,IAAI,mBAAmB,KAAK,KAAK,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC;oBACZ,cAAc,GAAG,GAAG;oBACpB,qDAAqD;oBACrD,kCAAkC;oBAClC,qDAAqD;oBACrD,mCAAmC;iBACtC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACjB,CAAC;YAED,MAAM,IAAI,KAAK,CAAC;gBACZ,cAAc,GAAG,GAAG;gBACpB,WAAW,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACxG,kCAAkC;aACrC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE5C,MAAM,UAAU,GAAsC,EAAE,CAAC;QACzD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACjC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAA,+CAAuB,EAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,WAAW,GAAuC,EAAE,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,WAAW,CAAC,GAAG,CAAC,GAAG,IAAA,gDAAwB,EAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,YAAY,GAAwC,EAAE,CAAC;QAC7D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACnC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAA,iDAAyB,EAAC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,sDAAsD;QACtD,MAAM,KAAK,GAA2C;YAClD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;YAC9E,YAAY,EAAE,KAAK,CAAC,YAAY;gBAC5B,CAAC,CAAC;oBACE,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,yBAAQ,CAAC,IAAI;oBACnB,cAAc,EAAE,OAAE,CAAC,GAAG;oBACtB,OAAO,EAAE,KAAK;oBACd,yBAAyB,EAAE,KAAK;oBAChC,OAAO,EAAE,IAAA,mCAAkB,EAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC;oBAC1F,GAAG,KAAK,CAAC,YAAY;iBACxB;gBACD,CAAC,CAAC,SAAS;YACf,UAAU;YACV,WAAW;YACX,YAAY;SACf,CAAC;QAEF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAC9B,KAKC,CACJ,CAAC;QAEF,MAAM,YAAY,GAA2B,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;QACvF,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;QACtD,CAAC;aACI,CAAC;YACF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC7B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,UAAU,EAAE,KAAK,CAAC,KAAK;gBACvB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;aACxC,CAAC,CAAC;QACP,CAAC;QAED,2FAA2F;QAC3F,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,gFAAgF;YAChF,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YAChD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACjG,CAAC;IACL,CAAC;IAEO,6BAA6B,CAKnC,KAA4F;QAC1F,OAAO,KAAK,EAAE,OAA2B,EAAE,IAAkB,EAAE,EAAE;YAC7D,IAAI,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,kCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,kCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;oBACvD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAa,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnH,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,kCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;oBACxD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvH,CAAC;gBACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACrB,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC5F,CAAC;gBACD,MAAM,OAAO,CAAC,GAAG,CAAC;oBACd,GAAG,kCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;wBACtD,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvG,CAAC,CAAC;oBACF,GAAG,kCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;wBACvD,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxG,CAAC,CAAC;oBACF,GAAG,kCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;wBACxD,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5G,CAAC,CAAC;oBACF,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;iBAC/G,CAAC,CAAC;gBACH,sDAAsD;gBACtD,MAAM,MAAM,GAAY,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAA0C,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACxH,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACL,CAAC,CAAC;IACN,CAAC;IAEO,+BAA+B,CACnC,KAAuG,EACvG,UAAsB;QAEtB,IAAI,KAAK,EAAE,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO;gBACH,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,EAAE;gBACR,GAAG,KAAK;aACX,CAAC;QACN,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,6BAAU,CAAC,IAAI,CAAC;YACrB,KAAK,6BAAU,CAAC,OAAO,CAAC;YACxB,KAAK,6BAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;YACnC,CAAC;YACD,KAAK,6BAAU,CAAC,IAAI,CAAC;YACrB,KAAK,6BAAU,CAAC,GAAG,CAAC;YACpB,KAAK,6BAAU,CAAC,KAAK,CAAC;YACtB,KAAK,6BAAU,CAAC,MAAM,CAAC;YACvB,KAAK,6BAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,OAAO;oBACH,SAAS,EAAE,EAAE;oBACb,IAAI,EAAE,EAAE;oBACR,YAAY,EAAE,IAAI;iBACrB,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,kBAAkB,CAAC,eAAiC;QACtD,MAAM,cAAc,GAA+B,sCAAiB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACxG,IAAI,cAAc,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,gDAAqB,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,aAAa,GAA8B,gCAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtF,IAAA,qBAAM,EAAC,aAAa,CAAC,CAAC;QAEtB,MAAM,oBAAoB,GAAqC,IAAI,CAAC,aAAa,CAAC,IAAI,CAClF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CACpF,CAAC,CAAC,QAAQ,EACV,cAAc,CAAC,QAAQ,EACvB,aAAa,CAChB,CACJ,CAAC;QACF,IAAI,oBAAoB,EAAE,CAAC;YACvB,MAAM,mBAAmB,GAA6B,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAChG,oBAAoB,CAAC,QAAQ,EAC7B,cAAc,CAAC,QAAQ,EACvB,aAAa,CAChB,CAAC;YACF,IAAI,mBAAmB,KAAK,KAAK,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC;oBACZ,mBAAmB,cAAc,CAAC,SAAS,GAAG;oBAC9C,+CAA+C;oBAC/C,mCAAmC;iBACtC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC;gBACZ,mBAAmB,cAAc,CAAC,SAAS,GAAG;gBAC9C,WAAW,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACxG,+CAA+C;aAClD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAmC,sCAAiB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAEtG,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,UAAU,GAAW,cAAc,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACxH,MAAM,GAAG,GAAW,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,UAAU,EAAE,CAAC;YACtE,MAAM,QAAQ,GAA6B,KAAK,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC;YAErF,MAAM,gBAAgB,GAAqC,IAAI,CAAC,cAAc,CAAC,IAAI,CAC/E,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAC3G,CAAC;YACF,IAAI,gBAAgB,EAAE,CAAC;gBACnB,MAAM,mBAAmB,GAA6B,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAChG,gBAAgB,CAAC,QAAQ,EACzB,QAAQ,EACR,aAAa,CAChB,CAAC;gBACF,IAAI,mBAAmB,KAAK,KAAK,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC;wBACZ,cAAc,GAAG,GAAG;wBACpB,kCAAkC;wBAClC,mCAAmC;qBACtC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjB,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC;oBACZ,cAAc,GAAG,GAAG;oBACpB,WAAW,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBACxG,kCAAkC;iBACrC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAE5C,MAAM,YAAY,GAA2B,MAAM,IAAI,CAAC,4BAA4B,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAC7G,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACX,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;gBAClD,SAAS;YACb,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC7B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,UAAU;gBACV,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;aACxC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,qBAAqB;IACzB,+CAA+C;IAC/C,OAAuF;QAEvF,OAAO,CAAC,KAAK,EAAE,OAAoB,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC9C,MAAM,CAAC,cAAc,CACjB,OAAO,EACP,QAAQ,EACR;gBACI,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE;gBAC5B,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;aACnB,CACJ,CAAC;YACF,MAAM,CAAC,cAAc,CACjB,OAAO,EACP,OAAO,EACP;gBACI,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;gBAC3B,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;aACnB,CACJ,CAAC;YACF,MAAM,CAAC,cAAc,CACjB,OAAO,EACP,SAAS,EACT;gBACI,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;gBAC7B,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;aACnB,CACJ,CAAC;YAEF,MAAM,OAAO,GAAuB,IAAI,yCAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC/F,MAAM,4BAAY,CAAC,yBAAyB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC7D,IAAI,CAAC;oBACD,MAAM,OAAO,GAAY,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBAC9E,8CAA8C;oBAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,MAAM,IAAI,+BAAa,CAAC,yBAAyB,OAAO,CAAC,GAAG,kBAAkB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;oBACpG,CAAC;oBACD,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAmB,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,4BAA4B,CACtC,eAAiC,EACjC,KAAmC;QAEnC,MAAM,SAAS,GAAsB,sCAAiB,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAClH,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,eAAe,CAAC,IAAI,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,KAAK,EAAE,OAA2B,EAAE,IAAkB,EAAE,EAAE;YAC7D,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;gBACrF,MAAM,UAAU,GAAY,IAAA,wBAAM,EAAC,eAAe,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAc,MAAM,IAAA,kDAAkB,EAC9C,eAAe,EACf,KAAK,CAAC,gBAAgB;gBACtB,0FAA0F;gBACxF,UAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAc,CAAC,MAAM,EAChE,OAAO,CACV,CAAC;gBACF,qHAAqH;gBACrH,MAAM,MAAM,GAAY,MAAQ,UAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAc,CAAC,GAAG,MAAM,CAAC,CAAC;gBACnG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACL,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAiB,EAAE,MAAe,EAAE,IAAkB,EAAE,SAA4B;QAC3G,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO;QACX,CAAC;QACD,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE3C,IAAI,MAAM,YAAY,kCAAY,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO;QACX,CAAC;QAED,IAAI,MAAM,YAAY,kCAAY,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO;QACX,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,8BAAa,CAAC,KAAK,CAAC,8BAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAAiB,EAAE,MAAoB,EAAE,IAAkB;QACtF,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,YAAY,EAAE,MAAM,CAAC,QAAoB,CAAC,CAAC;QACrE,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,mBAAmB,EAAE,yBAAyB,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChH,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;YAC3B,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACvB,IAAI,MAAM,CAAC,QAAQ,KAAK,yBAAQ,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YAC1F,CAAC;YACD,MAAM,GAAG,GAAe,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,wBAAM,EAAC,yCAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACvG,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,uBAAuB,EAAE,IAAA,mCAAe,EAAC,GAAG,CAAC,CAAC,CAAC;YACzE,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAc,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC1B,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBACvD,CAAC;qBACI,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC/B,+CAA+C;oBAC/C,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,sBAAsB;QACtB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAE,MAAM,CAAC,IAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YAC1B,GAAG,CAAC,YAAY,CAAC,+BAAW,CAAC,YAAY,CAAC,CAAC;YAC3C,GAAG,CAAC,YAAY,CAAC,+BAAW,CAAC,cAAc,CAAC,CAAC;YAC7C,GAAG,CAAC,YAAY,CAAC,+BAAW,CAAC,mBAAmB,CAAC,CAAC;YAClD,GAAG,CAAC,YAAY,CAAC,+BAAW,CAAC,uBAAuB,CAAC,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,GAAiB,EAAE,MAAoB,EAAE,IAAkB;QAChF,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,YAAY,EAAE,yBAAQ,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,GAAe,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,wBAAM,EAAC,yCAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACvG,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,uBAAuB,EAAE,IAAA,mCAAe,EAAC,GAAG,CAAC,CAAC,CAAC;YACzE,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAc,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC1B,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBACvD,CAAC;qBACI,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC/B,+CAA+C;oBAC/C,GAAG,CAAC,SAAS,CAAC,+BAAW,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC;QACL,CAAC;QACD,sBAAsB;QACtB,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO;QACX,CAAC;QACD,sBAAsB;QACtB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAE,MAAM,CAAC,IAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YAC1B,GAAG,CAAC,YAAY,CAAC,+BAAW,CAAC,YAAY,CAAC,CAAC;YAC3C,GAAG,CAAC,YAAY,CAAC,+BAAW,CAAC,uBAAuB,CAAC,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAEO,kBAAkB,CAAC,SAA4B,EAAE,MAAU;QAC/D,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,6CAA6C;eACjF,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM;eACpG,CAAC,CAAC,MAAM,YAAY,kCAAY,CAAC,IAAI,CAAC,MAAM,YAAY,kCAAY,CAAC,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,6CAA6C;eACjF,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM;eACpG,CAAC,CAAC,MAAM,YAAY,kCAAY,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,6CAA6C;eACjF,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM;eACpG,CAAC,CAAC,MAAM,YAAY,kCAAY,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;CACJ,CAAA;AA/hBY,wBAAM;iBAAN,MAAM;IADlB,IAAA,iCAAU,EAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IA2BzB,WAAA,IAAA,yBAAM,EAAC,yCAAe,CAAC,MAAM,CAAC,CAAA;IAE9B,WAAA,IAAA,yBAAM,EAAC,yCAAe,CAAC,MAAM,CAAC,CAAA;IAE9B,WAAA,IAAA,yBAAM,EAAC,yCAAe,CAAC,kBAAkB,CAAC,CAAA;IAE1C,WAAA,IAAA,yBAAM,EAAC,yCAAe,CAAC,YAAY,CAAC,CAAA;;GAhChC,MAAM,CA+hBlB"}
@@ -141,7 +141,7 @@ class FsUtilities {
141
141
  * Creates a file at the given path.
142
142
  * @param p - The path of the new file to create.
143
143
  * @param data - The data to write into the file. Can be a raw data string or an array of lines, which are joined by \n.
144
- * @param recursive - Whether or not to recursively create the file.
144
+ * @param recursive - Whether or not to recursively create the file. Defaults to true.
145
145
  */
146
146
  static async createFile(p, data, recursive = true) {
147
147
  if (await this.exists(p)) {
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SemVerUtilities = void 0;
4
+ const is_numeric_function_1 = require("./is-numeric.function");
5
+ /**
6
+ * Encapsulates functionalities around handling semver versions.
7
+ */
8
+ class SemVerUtilities {
9
+ /**
10
+ * Checks whether the given value is a valid SemVer version.
11
+ * @param value - The value to check.
12
+ * @returns True if the value is in the format "number.number.number", false otherwise.
13
+ */
14
+ static isSemVerVersion(value) {
15
+ const parts = value.split('.');
16
+ if (parts.length !== 3) {
17
+ return false;
18
+ }
19
+ return parts.every(is_numeric_function_1.isNumeric);
20
+ }
21
+ /**
22
+ * Compares the given versions and checks if the first one is bigger, equal or smaller than the second one.
23
+ * @param v1 - The first version.
24
+ * @param v2 - The second version to compare against.
25
+ * @returns 'bigger', 'equal' or 'smaller'.
26
+ */
27
+ static compare(v1, v2) {
28
+ const result = this.compareTuple(this.parseStrict(v1), this.parseStrict(v2));
29
+ if (result > 0) {
30
+ return 'bigger';
31
+ }
32
+ if (result < 0) {
33
+ return 'smaller';
34
+ }
35
+ return 'equal';
36
+ }
37
+ /**
38
+ * Checks if the given semver matcher overlaps with one of the provided matchers.
39
+ * @param version - The version/matcher to check.
40
+ * @param matchers - The matchers to check against.
41
+ * @returns True if the version/matcher overlaps with at least one matcher, false otherwise.
42
+ */
43
+ static matches(version, matchers) {
44
+ const versionRange = this.toRange(version);
45
+ return matchers.some((matcher) => this.intersects(versionRange, this.toRange(matcher)));
46
+ }
47
+ static toRange(matcher) {
48
+ const parts = matcher.trim().split(/\s+/)
49
+ .filter(Boolean);
50
+ return parts.reduce((acc, part) => this.intersect(acc, this.atomicRange(part)), this.fullRange());
51
+ }
52
+ static atomicRange(matcher) {
53
+ if (matcher.startsWith('^')) {
54
+ return this.caretRange(matcher.slice(1));
55
+ }
56
+ if (matcher.startsWith('~')) {
57
+ return this.tildeRange(matcher.slice(1));
58
+ }
59
+ if (matcher.startsWith('>=')) {
60
+ return {
61
+ min: this.parseStrict(matcher.slice(2)),
62
+ max: this.infinity()
63
+ };
64
+ }
65
+ if (matcher.startsWith('>')) {
66
+ return {
67
+ min: this.increment(this.parseStrict(matcher.slice(1))),
68
+ max: this.infinity()
69
+ };
70
+ }
71
+ if (matcher.startsWith('<=')) {
72
+ return {
73
+ min: this.zero(),
74
+ max: this.increment(this.parseStrict(matcher.slice(2)))
75
+ };
76
+ }
77
+ if (matcher.startsWith('<')) {
78
+ return {
79
+ min: this.zero(),
80
+ max: this.parseStrict(matcher.slice(1))
81
+ };
82
+ }
83
+ const exact = this.parseStrict(matcher);
84
+ return {
85
+ min: exact,
86
+ max: this.increment(exact)
87
+ };
88
+ }
89
+ static caretRange(raw) {
90
+ const [major, minor, patch] = this.parseLoose(raw);
91
+ const min = [major, minor, patch];
92
+ if (major > 0) {
93
+ return {
94
+ min,
95
+ max: [major + 1, 0, 0]
96
+ };
97
+ }
98
+ if (minor > 0) {
99
+ return {
100
+ min,
101
+ max: [0, minor + 1, 0]
102
+ };
103
+ }
104
+ return {
105
+ min,
106
+ max: [0, 0, patch + 1]
107
+ };
108
+ }
109
+ static tildeRange(raw) {
110
+ const parts = raw.split('.');
111
+ if (parts.length < 1 || parts.length > 3) {
112
+ throw new Error(`Invalid semver matcher: ~${raw}`);
113
+ }
114
+ const [major, minor, patch] = this.parseLoose(raw);
115
+ const min = [major, minor, patch];
116
+ if (parts.length >= 2) {
117
+ return {
118
+ min,
119
+ max: [major, minor + 1, 0]
120
+ };
121
+ }
122
+ return {
123
+ min,
124
+ max: [major + 1, 0, 0]
125
+ };
126
+ }
127
+ static parseStrict(version) {
128
+ if (!this.isSemVerVersion(version)) {
129
+ throw new Error(`Invalid semver version: ${version}`);
130
+ }
131
+ const [major, minor, patch] = version.split('.').map(Number);
132
+ return [major, minor, patch];
133
+ }
134
+ static parseLoose(version) {
135
+ const parts = version.split('.');
136
+ if (parts.length < 1 || parts.length > 3) {
137
+ throw new Error(`Invalid semver matcher: ${version}`);
138
+ }
139
+ const [majorRaw, minorRaw, patchRaw] = parts;
140
+ if (!(0, is_numeric_function_1.isNumeric)(majorRaw)
141
+ || (minorRaw !== undefined && !(0, is_numeric_function_1.isNumeric)(minorRaw))
142
+ || (patchRaw !== undefined && !(0, is_numeric_function_1.isNumeric)(patchRaw))) {
143
+ throw new Error(`Invalid semver matcher: ${version}`);
144
+ }
145
+ return [
146
+ Number(majorRaw),
147
+ Number(minorRaw ?? 0),
148
+ Number(patchRaw ?? 0)
149
+ ];
150
+ }
151
+ static compareTuple(a, b) {
152
+ if (a[0] > b[0]) {
153
+ return 1;
154
+ }
155
+ if (a[0] < b[0]) {
156
+ return -1;
157
+ }
158
+ if (a[1] > b[1]) {
159
+ return 1;
160
+ }
161
+ if (a[1] < b[1]) {
162
+ return -1;
163
+ }
164
+ if (a[2] > b[2]) {
165
+ return 1;
166
+ }
167
+ if (a[2] < b[2]) {
168
+ return -1;
169
+ }
170
+ return 0;
171
+ }
172
+ static intersect(a, b) {
173
+ return {
174
+ min: this.maxTuple(a.min, b.min),
175
+ max: this.minTuple(a.max, b.max)
176
+ };
177
+ }
178
+ static intersects(a, b) {
179
+ return this.compareTuple(this.maxTuple(a.min, b.min), this.minTuple(a.max, b.max)) < 0;
180
+ }
181
+ static minTuple(a, b) {
182
+ return this.compareTuple(a, b) <= 0 ? a : b;
183
+ }
184
+ static maxTuple(a, b) {
185
+ return this.compareTuple(a, b) >= 0 ? a : b;
186
+ }
187
+ static increment([major, minor, patch]) {
188
+ return [major, minor, patch + 1];
189
+ }
190
+ static zero() {
191
+ return [0, 0, 0];
192
+ }
193
+ static infinity() {
194
+ return [Number.POSITIVE_INFINITY, 0, 0];
195
+ }
196
+ static fullRange() {
197
+ return {
198
+ min: this.zero(),
199
+ max: this.infinity()
200
+ };
201
+ }
202
+ }
203
+ exports.SemVerUtilities = SemVerUtilities;
204
+ //# sourceMappingURL=sem-ver.utilities.js.map