@ismael1361/router 1.2.91 → 2.0.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 (290) hide show
  1. package/README.md +956 -505
  2. package/dist/1.0/Doc/index.d.ts.map +1 -0
  3. package/dist/1.0/Doc/type.d.ts.map +1 -0
  4. package/dist/1.0/HandleError.d.ts.map +1 -0
  5. package/dist/1.0/Layer.d.ts.map +1 -0
  6. package/dist/1.0/Middlewares.d.ts.map +1 -0
  7. package/dist/1.0/handler.d.ts.map +1 -0
  8. package/dist/1.0/index.d.ts +150 -0
  9. package/dist/1.0/index.d.ts.map +1 -0
  10. package/dist/1.0/middleware.d.ts.map +1 -0
  11. package/dist/1.0/redocUi/index.d.ts.map +1 -0
  12. package/dist/1.0/router.d.ts.map +1 -0
  13. package/dist/1.0/swagger-markdown/index.d.ts.map +1 -0
  14. package/dist/1.0/swagger-markdown/lib/anchor.d.ts.map +1 -0
  15. package/dist/1.0/swagger-markdown/lib/inArray.d.ts.map +1 -0
  16. package/dist/1.0/swagger-markdown/models/schema.d.ts.map +1 -0
  17. package/dist/1.0/swagger-markdown/transformers/contact.d.ts.map +1 -0
  18. package/dist/1.0/swagger-markdown/transformers/dataTypes.d.ts.map +1 -0
  19. package/dist/1.0/swagger-markdown/transformers/definitions.d.ts.map +1 -0
  20. package/dist/1.0/swagger-markdown/transformers/externalDocs.d.ts.map +1 -0
  21. package/dist/1.0/swagger-markdown/transformers/info.d.ts.map +1 -0
  22. package/dist/1.0/swagger-markdown/transformers/license.d.ts.map +1 -0
  23. package/dist/1.0/swagger-markdown/transformers/path.d.ts.map +1 -0
  24. package/dist/1.0/swagger-markdown/transformers/pathParameters.d.ts.map +1 -0
  25. package/dist/1.0/swagger-markdown/transformers/pathResponses.d.ts.map +1 -0
  26. package/dist/1.0/swagger-markdown/transformers/security.d.ts.map +1 -0
  27. package/dist/1.0/swagger-markdown/transformers/securityDefinitions.d.ts.map +1 -0
  28. package/dist/{type.d.ts → 1.0/type.d.ts} +1 -1
  29. package/dist/1.0/type.d.ts.map +1 -0
  30. package/dist/1.0/utils.d.ts.map +1 -0
  31. package/dist/2.0/HandleError.d.ts +127 -0
  32. package/dist/2.0/HandleError.d.ts.map +1 -0
  33. package/dist/2.0/HandleError.esm.js.map +1 -0
  34. package/dist/2.0/HandleError.js.map +1 -0
  35. package/dist/2.0/Middlewares.d.ts +178 -0
  36. package/dist/2.0/Middlewares.d.ts.map +1 -0
  37. package/dist/{Middlewares.esm.js → 2.0/Middlewares.esm.js} +5 -5
  38. package/dist/2.0/Middlewares.esm.js.map +1 -0
  39. package/dist/{Middlewares.js → 2.0/Middlewares.js} +5 -5
  40. package/dist/2.0/Middlewares.js.map +1 -0
  41. package/dist/2.0/analyzeSwagger.d.ts +7 -0
  42. package/dist/2.0/analyzeSwagger.d.ts.map +1 -0
  43. package/dist/2.0/analyzeSwagger.esm.js +432 -0
  44. package/dist/2.0/analyzeSwagger.esm.js.map +1 -0
  45. package/dist/2.0/analyzeSwagger.js +435 -0
  46. package/dist/2.0/analyzeSwagger.js.map +1 -0
  47. package/dist/2.0/create.d.ts +75 -0
  48. package/dist/2.0/create.d.ts.map +1 -0
  49. package/dist/2.0/create.esm.js +321 -0
  50. package/dist/2.0/create.esm.js.map +1 -0
  51. package/dist/2.0/create.js +323 -0
  52. package/dist/2.0/create.js.map +1 -0
  53. package/dist/2.0/handler.d.ts +149 -0
  54. package/dist/2.0/handler.d.ts.map +1 -0
  55. package/dist/2.0/handler.esm.js +188 -0
  56. package/dist/2.0/handler.esm.js.map +1 -0
  57. package/dist/2.0/handler.js +191 -0
  58. package/dist/2.0/handler.js.map +1 -0
  59. package/dist/2.0/index.d.ts +7 -0
  60. package/dist/2.0/index.d.ts.map +1 -0
  61. package/dist/2.0/redocUi/index.d.ts +4 -0
  62. package/dist/2.0/redocUi/index.d.ts.map +1 -0
  63. package/dist/{redocUi → 2.0/redocUi}/index.esm.js +1 -1
  64. package/dist/2.0/redocUi/index.esm.js.map +1 -0
  65. package/dist/{redocUi → 2.0/redocUi}/index.js +1 -1
  66. package/dist/2.0/redocUi/index.js.map +1 -0
  67. package/dist/2.0/renderChainDocs.d.ts +3 -0
  68. package/dist/2.0/renderChainDocs.d.ts.map +1 -0
  69. package/dist/2.0/renderChainDocs.esm.js +118 -0
  70. package/dist/2.0/renderChainDocs.esm.js.map +1 -0
  71. package/dist/2.0/renderChainDocs.js +120 -0
  72. package/dist/2.0/renderChainDocs.js.map +1 -0
  73. package/dist/2.0/router.d.ts +73 -0
  74. package/dist/2.0/router.d.ts.map +1 -0
  75. package/dist/2.0/router.esm.js +302 -0
  76. package/dist/2.0/router.esm.js.map +1 -0
  77. package/dist/2.0/router.js +304 -0
  78. package/dist/2.0/router.js.map +1 -0
  79. package/dist/2.0/swagger-markdown/index.d.ts +10 -0
  80. package/dist/2.0/swagger-markdown/index.d.ts.map +1 -0
  81. package/dist/{swagger-markdown → 2.0/swagger-markdown}/index.esm.js +1 -1
  82. package/dist/2.0/swagger-markdown/index.esm.js.map +1 -0
  83. package/dist/{swagger-markdown → 2.0/swagger-markdown}/index.js +1 -1
  84. package/dist/2.0/swagger-markdown/index.js.map +1 -0
  85. package/dist/2.0/swagger-markdown/lib/anchor.d.ts +6 -0
  86. package/dist/2.0/swagger-markdown/lib/anchor.d.ts.map +1 -0
  87. package/dist/2.0/swagger-markdown/lib/anchor.esm.js.map +1 -0
  88. package/dist/2.0/swagger-markdown/lib/anchor.js.map +1 -0
  89. package/dist/2.0/swagger-markdown/lib/inArray.d.ts +9 -0
  90. package/dist/2.0/swagger-markdown/lib/inArray.d.ts.map +1 -0
  91. package/dist/2.0/swagger-markdown/lib/inArray.esm.js.map +1 -0
  92. package/dist/2.0/swagger-markdown/lib/inArray.js.map +1 -0
  93. package/dist/2.0/swagger-markdown/models/schema.d.ts +28 -0
  94. package/dist/2.0/swagger-markdown/models/schema.d.ts.map +1 -0
  95. package/dist/2.0/swagger-markdown/models/schema.esm.js.map +1 -0
  96. package/dist/2.0/swagger-markdown/models/schema.js.map +1 -0
  97. package/dist/2.0/swagger-markdown/transformers/contact.d.ts +8 -0
  98. package/dist/2.0/swagger-markdown/transformers/contact.d.ts.map +1 -0
  99. package/dist/2.0/swagger-markdown/transformers/contact.esm.js.map +1 -0
  100. package/dist/2.0/swagger-markdown/transformers/contact.js.map +1 -0
  101. package/dist/2.0/swagger-markdown/transformers/dataTypes.d.ts +9 -0
  102. package/dist/2.0/swagger-markdown/transformers/dataTypes.d.ts.map +1 -0
  103. package/dist/2.0/swagger-markdown/transformers/dataTypes.esm.js.map +1 -0
  104. package/dist/2.0/swagger-markdown/transformers/dataTypes.js.map +1 -0
  105. package/dist/2.0/swagger-markdown/transformers/definitions.d.ts +14 -0
  106. package/dist/2.0/swagger-markdown/transformers/definitions.d.ts.map +1 -0
  107. package/dist/2.0/swagger-markdown/transformers/definitions.esm.js.map +1 -0
  108. package/dist/2.0/swagger-markdown/transformers/definitions.js.map +1 -0
  109. package/dist/2.0/swagger-markdown/transformers/externalDocs.d.ts +4 -0
  110. package/dist/2.0/swagger-markdown/transformers/externalDocs.d.ts.map +1 -0
  111. package/dist/2.0/swagger-markdown/transformers/externalDocs.esm.js.map +1 -0
  112. package/dist/2.0/swagger-markdown/transformers/externalDocs.js.map +1 -0
  113. package/dist/2.0/swagger-markdown/transformers/info.d.ts +11 -0
  114. package/dist/2.0/swagger-markdown/transformers/info.d.ts.map +1 -0
  115. package/dist/2.0/swagger-markdown/transformers/info.esm.js.map +1 -0
  116. package/dist/2.0/swagger-markdown/transformers/info.js.map +1 -0
  117. package/dist/2.0/swagger-markdown/transformers/license.d.ts +8 -0
  118. package/dist/2.0/swagger-markdown/transformers/license.d.ts.map +1 -0
  119. package/dist/2.0/swagger-markdown/transformers/license.esm.js.map +1 -0
  120. package/dist/2.0/swagger-markdown/transformers/license.js.map +1 -0
  121. package/dist/2.0/swagger-markdown/transformers/path.d.ts +9 -0
  122. package/dist/2.0/swagger-markdown/transformers/path.d.ts.map +1 -0
  123. package/dist/2.0/swagger-markdown/transformers/path.esm.js.map +1 -0
  124. package/dist/2.0/swagger-markdown/transformers/path.js.map +1 -0
  125. package/dist/2.0/swagger-markdown/transformers/pathParameters.d.ts +4 -0
  126. package/dist/2.0/swagger-markdown/transformers/pathParameters.d.ts.map +1 -0
  127. package/dist/2.0/swagger-markdown/transformers/pathParameters.esm.js.map +1 -0
  128. package/dist/2.0/swagger-markdown/transformers/pathParameters.js.map +1 -0
  129. package/dist/2.0/swagger-markdown/transformers/pathResponses.d.ts +9 -0
  130. package/dist/2.0/swagger-markdown/transformers/pathResponses.d.ts.map +1 -0
  131. package/dist/2.0/swagger-markdown/transformers/pathResponses.esm.js.map +1 -0
  132. package/dist/2.0/swagger-markdown/transformers/pathResponses.js.map +1 -0
  133. package/dist/2.0/swagger-markdown/transformers/security.d.ts +4 -0
  134. package/dist/2.0/swagger-markdown/transformers/security.d.ts.map +1 -0
  135. package/dist/2.0/swagger-markdown/transformers/security.esm.js.map +1 -0
  136. package/dist/2.0/swagger-markdown/transformers/security.js.map +1 -0
  137. package/dist/2.0/swagger-markdown/transformers/securityDefinitions.d.ts +6 -0
  138. package/dist/2.0/swagger-markdown/transformers/securityDefinitions.d.ts.map +1 -0
  139. package/dist/2.0/swagger-markdown/transformers/securityDefinitions.esm.js.map +1 -0
  140. package/dist/2.0/swagger-markdown/transformers/securityDefinitions.js.map +1 -0
  141. package/dist/2.0/type.d.ts +654 -0
  142. package/dist/2.0/type.d.ts.map +1 -0
  143. package/dist/2.0/utils.d.ts +79 -0
  144. package/dist/2.0/utils.d.ts.map +1 -0
  145. package/dist/{utils.esm.js → 2.0/utils.esm.js} +61 -89
  146. package/dist/2.0/utils.esm.js.map +1 -0
  147. package/dist/{utils.js → 2.0/utils.js} +65 -94
  148. package/dist/2.0/utils.js.map +1 -0
  149. package/dist/index.d.ts +1 -149
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.esm.js +5 -163
  152. package/dist/index.esm.js.map +1 -1
  153. package/dist/index.js +9 -169
  154. package/dist/index.js.map +1 -1
  155. package/package.json +5 -3
  156. package/dist/Doc/index.d.ts.map +0 -1
  157. package/dist/Doc/type.d.ts.map +0 -1
  158. package/dist/HandleError.d.ts.map +0 -1
  159. package/dist/HandleError.esm.js.map +0 -1
  160. package/dist/HandleError.js.map +0 -1
  161. package/dist/Layer.d.ts.map +0 -1
  162. package/dist/Layer.esm.js +0 -274
  163. package/dist/Layer.esm.js.map +0 -1
  164. package/dist/Layer.js +0 -276
  165. package/dist/Layer.js.map +0 -1
  166. package/dist/Middlewares.d.ts.map +0 -1
  167. package/dist/Middlewares.esm.js.map +0 -1
  168. package/dist/Middlewares.js.map +0 -1
  169. package/dist/handler.d.ts.map +0 -1
  170. package/dist/handler.esm.js +0 -171
  171. package/dist/handler.esm.js.map +0 -1
  172. package/dist/handler.js +0 -174
  173. package/dist/handler.js.map +0 -1
  174. package/dist/middleware.d.ts.map +0 -1
  175. package/dist/middleware.esm.js +0 -152
  176. package/dist/middleware.esm.js.map +0 -1
  177. package/dist/middleware.js +0 -155
  178. package/dist/middleware.js.map +0 -1
  179. package/dist/redocUi/index.d.ts.map +0 -1
  180. package/dist/redocUi/index.esm.js.map +0 -1
  181. package/dist/redocUi/index.js.map +0 -1
  182. package/dist/router.d.ts.map +0 -1
  183. package/dist/router.esm.js +0 -719
  184. package/dist/router.esm.js.map +0 -1
  185. package/dist/router.js +0 -740
  186. package/dist/router.js.map +0 -1
  187. package/dist/swagger-markdown/index.d.ts.map +0 -1
  188. package/dist/swagger-markdown/index.esm.js.map +0 -1
  189. package/dist/swagger-markdown/index.js.map +0 -1
  190. package/dist/swagger-markdown/lib/anchor.d.ts.map +0 -1
  191. package/dist/swagger-markdown/lib/anchor.esm.js.map +0 -1
  192. package/dist/swagger-markdown/lib/anchor.js.map +0 -1
  193. package/dist/swagger-markdown/lib/inArray.d.ts.map +0 -1
  194. package/dist/swagger-markdown/lib/inArray.esm.js.map +0 -1
  195. package/dist/swagger-markdown/lib/inArray.js.map +0 -1
  196. package/dist/swagger-markdown/models/schema.d.ts.map +0 -1
  197. package/dist/swagger-markdown/models/schema.esm.js.map +0 -1
  198. package/dist/swagger-markdown/models/schema.js.map +0 -1
  199. package/dist/swagger-markdown/transformers/contact.d.ts.map +0 -1
  200. package/dist/swagger-markdown/transformers/contact.esm.js.map +0 -1
  201. package/dist/swagger-markdown/transformers/contact.js.map +0 -1
  202. package/dist/swagger-markdown/transformers/dataTypes.d.ts.map +0 -1
  203. package/dist/swagger-markdown/transformers/dataTypes.esm.js.map +0 -1
  204. package/dist/swagger-markdown/transformers/dataTypes.js.map +0 -1
  205. package/dist/swagger-markdown/transformers/definitions.d.ts.map +0 -1
  206. package/dist/swagger-markdown/transformers/definitions.esm.js.map +0 -1
  207. package/dist/swagger-markdown/transformers/definitions.js.map +0 -1
  208. package/dist/swagger-markdown/transformers/externalDocs.d.ts.map +0 -1
  209. package/dist/swagger-markdown/transformers/externalDocs.esm.js.map +0 -1
  210. package/dist/swagger-markdown/transformers/externalDocs.js.map +0 -1
  211. package/dist/swagger-markdown/transformers/info.d.ts.map +0 -1
  212. package/dist/swagger-markdown/transformers/info.esm.js.map +0 -1
  213. package/dist/swagger-markdown/transformers/info.js.map +0 -1
  214. package/dist/swagger-markdown/transformers/license.d.ts.map +0 -1
  215. package/dist/swagger-markdown/transformers/license.esm.js.map +0 -1
  216. package/dist/swagger-markdown/transformers/license.js.map +0 -1
  217. package/dist/swagger-markdown/transformers/path.d.ts.map +0 -1
  218. package/dist/swagger-markdown/transformers/path.esm.js.map +0 -1
  219. package/dist/swagger-markdown/transformers/path.js.map +0 -1
  220. package/dist/swagger-markdown/transformers/pathParameters.d.ts.map +0 -1
  221. package/dist/swagger-markdown/transformers/pathParameters.esm.js.map +0 -1
  222. package/dist/swagger-markdown/transformers/pathParameters.js.map +0 -1
  223. package/dist/swagger-markdown/transformers/pathResponses.d.ts.map +0 -1
  224. package/dist/swagger-markdown/transformers/pathResponses.esm.js.map +0 -1
  225. package/dist/swagger-markdown/transformers/pathResponses.js.map +0 -1
  226. package/dist/swagger-markdown/transformers/security.d.ts.map +0 -1
  227. package/dist/swagger-markdown/transformers/security.esm.js.map +0 -1
  228. package/dist/swagger-markdown/transformers/security.js.map +0 -1
  229. package/dist/swagger-markdown/transformers/securityDefinitions.d.ts.map +0 -1
  230. package/dist/swagger-markdown/transformers/securityDefinitions.esm.js.map +0 -1
  231. package/dist/swagger-markdown/transformers/securityDefinitions.js.map +0 -1
  232. package/dist/type.d.ts.map +0 -1
  233. package/dist/utils.d.ts.map +0 -1
  234. package/dist/utils.esm.js.map +0 -1
  235. package/dist/utils.js.map +0 -1
  236. /package/dist/{Doc → 1.0/Doc}/index.d.ts +0 -0
  237. /package/dist/{Doc → 1.0/Doc}/type.d.ts +0 -0
  238. /package/dist/{HandleError.d.ts → 1.0/HandleError.d.ts} +0 -0
  239. /package/dist/{Layer.d.ts → 1.0/Layer.d.ts} +0 -0
  240. /package/dist/{Middlewares.d.ts → 1.0/Middlewares.d.ts} +0 -0
  241. /package/dist/{handler.d.ts → 1.0/handler.d.ts} +0 -0
  242. /package/dist/{middleware.d.ts → 1.0/middleware.d.ts} +0 -0
  243. /package/dist/{redocUi → 1.0/redocUi}/index.d.ts +0 -0
  244. /package/dist/{router.d.ts → 1.0/router.d.ts} +0 -0
  245. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/index.d.ts +0 -0
  246. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/lib/anchor.d.ts +0 -0
  247. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/lib/inArray.d.ts +0 -0
  248. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/models/schema.d.ts +0 -0
  249. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/contact.d.ts +0 -0
  250. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/dataTypes.d.ts +0 -0
  251. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/definitions.d.ts +0 -0
  252. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/externalDocs.d.ts +0 -0
  253. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/info.d.ts +0 -0
  254. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/license.d.ts +0 -0
  255. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/path.d.ts +0 -0
  256. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/pathParameters.d.ts +0 -0
  257. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/pathResponses.d.ts +0 -0
  258. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/security.d.ts +0 -0
  259. /package/dist/{swagger-markdown → 1.0/swagger-markdown}/transformers/securityDefinitions.d.ts +0 -0
  260. /package/dist/{utils.d.ts → 1.0/utils.d.ts} +0 -0
  261. /package/dist/{HandleError.esm.js → 2.0/HandleError.esm.js} +0 -0
  262. /package/dist/{HandleError.js → 2.0/HandleError.js} +0 -0
  263. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/lib/anchor.esm.js +0 -0
  264. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/lib/anchor.js +0 -0
  265. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/lib/inArray.esm.js +0 -0
  266. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/lib/inArray.js +0 -0
  267. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/models/schema.esm.js +0 -0
  268. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/models/schema.js +0 -0
  269. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/contact.esm.js +0 -0
  270. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/contact.js +0 -0
  271. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/dataTypes.esm.js +0 -0
  272. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/dataTypes.js +0 -0
  273. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/definitions.esm.js +0 -0
  274. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/definitions.js +0 -0
  275. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/externalDocs.esm.js +0 -0
  276. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/externalDocs.js +0 -0
  277. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/info.esm.js +0 -0
  278. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/info.js +0 -0
  279. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/license.esm.js +0 -0
  280. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/license.js +0 -0
  281. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/path.esm.js +0 -0
  282. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/path.js +0 -0
  283. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/pathParameters.esm.js +0 -0
  284. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/pathParameters.js +0 -0
  285. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/pathResponses.esm.js +0 -0
  286. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/pathResponses.js +0 -0
  287. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/security.esm.js +0 -0
  288. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/security.js +0 -0
  289. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/securityDefinitions.esm.js +0 -0
  290. /package/dist/{swagger-markdown → 2.0/swagger-markdown}/transformers/securityDefinitions.js +0 -0
@@ -1,171 +0,0 @@
1
- import { __rest } from './node_modules/tslib/tslib.es6.esm.js';
2
- import { joinDocs, createDynamicMiddleware, joinObject } from './utils.esm.js';
3
- import { RequestMiddleware } from './middleware.esm.js';
4
- import { Router } from './router.esm.js';
5
- import { uuidv4 } from '@ismael1361/utils';
6
-
7
- /**
8
- * Representa um construtor de rotas encadeável.
9
- *
10
- * Esta classe não deve ser instanciada diretamente. Em vez disso, uma instância é retornada
11
- * quando você chama um método de rota como `.get()`, `.post()`, etc., em uma instância de `Router`.
12
- *
13
- * Ela permite encadear middlewares específicos para a rota e, finalmente, definir o manipulador
14
- * da rota e sua documentação.
15
- *
16
- * @example
17
- * const router = create();
18
- *
19
- * // A chamada a `router.post()` retorna uma instância de RequestHandler.
20
- * router.post('/users')
21
- * // .middleware() aplica um middleware apenas a esta rota.
22
- * .middleware(validationMiddleware)
23
- * // .handler() define o controlador final da rota.
24
- * .handler((req, res) => {
25
- * res.status(201).json({ id: 1, ...req.body });
26
- * })
27
- * // .doc() anexa a documentação OpenAPI ao endpoint finalizado.
28
- * .doc({
29
- * summary: 'Cria um novo usuário',
30
- * tags: ['Users'],
31
- * body: { description: 'Dados do usuário' }
32
- * });
33
- */
34
- class RequestHandler extends RequestMiddleware {
35
- /** @internal */
36
- constructor(router, type, path, doc) {
37
- super(undefined, router);
38
- this.router = router;
39
- this.type = type;
40
- this.path = path;
41
- this.doc = doc;
42
- this.middlewares = [];
43
- }
44
- /**
45
- * Anexa um middleware que será executado especificamente para esta rota.
46
- * Múltiplos middlewares podem ser encadeados.
47
- *
48
- * @template Req - Tipo de Request estendido pelo middleware.
49
- * @template Res - Tipo de Response estendido pelo middleware.
50
- * @param {MiddlewareCallback<Rq & Req, Rs & Res>} callback - A função de middleware a ser aplicada.
51
- * @param {MiddlewareFCDoc} [doc] - Documentação OpenAPI opcional para este middleware.
52
- * @returns {RequestHandler<Rq & Req, Rs & Res>} A mesma instância de `RequestHandler` para permitir encadeamento.
53
- */
54
- middleware(callback, doc) {
55
- if (callback instanceof RequestMiddleware) {
56
- callback.router.layers
57
- .filter(({ type, handle }) => type === "middleware" && !!handle)
58
- .map(({ handle }) => handle)
59
- .forEach((handle) => this.middlewares.push(...handle));
60
- }
61
- else {
62
- this.middlewares.push(createDynamicMiddleware(callback));
63
- }
64
- if (doc) {
65
- this.doc = joinDocs(this.doc || {}, doc);
66
- }
67
- return this;
68
- }
69
- /**
70
- * Define a função de manipulador (controller) final para a rota.
71
- * Esta chamada finaliza a cadeia de middlewares e registra a rota no roteador.
72
- *
73
- * @template Req - Tipo de Request estendido pelo manipulador.
74
- * @template Res - Tipo de Response estendido pelo manipulador.
75
- * @param {HandlerCallback<Rq & Req, Rs & Res>} callback - A função que processará a requisição.
76
- * @param {MiddlewareFCDoc} [doc] - Documentação OpenAPI opcional para este manipulador.
77
- * @returns {RouterProps} Um objeto que contém as propriedades da rota e um método `.doc()` para adicionar a documentação final.
78
- */
79
- handler(callback, doc) {
80
- if (callback instanceof Handler) {
81
- callback.router.layers
82
- .filter(({ type, handle }) => type === "middleware" && !!handle)
83
- .map(({ handle }) => handle)
84
- .forEach((handle) => this.middlewares.push(...handle));
85
- }
86
- else {
87
- this.middlewares.push(createDynamicMiddleware(callback));
88
- }
89
- const route = this.router.layers[this.type](this.path, this.middlewares, joinDocs(this.doc || {}, doc || {}));
90
- return {
91
- type: this.type,
92
- path: this.path,
93
- middlewares: this.middlewares,
94
- handler: this.middlewares.length > 0 ? this.middlewares[this.middlewares.length - 1] : undefined,
95
- doc(operation, components = {}) {
96
- const { components: comp = {} } = operation, op = __rest(operation, ["components"]);
97
- route.doc = joinDocs(route.doc, Object.assign(Object.assign({}, op), { components: joinObject(comp, components) }));
98
- return this;
99
- },
100
- };
101
- }
102
- }
103
- /**
104
- * Cria um componente de manipulador (handler) reutilizável.
105
- *
106
- * Esta classe encapsula uma função de manipulador, permitindo que ela seja combinada
107
- * com outros middlewares e reutilizada em diferentes rotas.
108
- *
109
- * @example
110
- * // handler.ts
111
- * export const getUserProfile = handler<{ user: { id: string } }>((req, res) => {
112
- * res.json({ user: req.user });
113
- * });
114
- *
115
- * // routes.ts
116
- * router.get('/profile')
117
- * .middleware(authMiddleware) // Adiciona `req.user`
118
- * .handler(getUserProfile); // Reutiliza o handler
119
- */
120
- class Handler {
121
- /** @internal */
122
- constructor(callback, router = new Router(), doc) {
123
- this.router = router;
124
- this.doc = doc;
125
- if (callback) {
126
- if (callback instanceof Handler) {
127
- callback.router.layers.forEach((l) => {
128
- this.router.layers.push(l);
129
- });
130
- }
131
- else {
132
- callback.id = callback.id || uuidv4("-");
133
- callback.doc = joinDocs((callback === null || callback === void 0 ? void 0 : callback.doc) || {}, doc || {});
134
- this.router.middleware(createDynamicMiddleware(callback));
135
- }
136
- }
137
- }
138
- /**
139
- * Executa a cadeia de middlewares e o manipulador final encapsulados por esta instância de `Handler`.
140
- * Este método é útil para testes unitários ou para invocar programaticamente a lógica do handler
141
- * fora do ciclo de requisição/resposta padrão do Express.
142
- *
143
- * @param {Rq} request - O objeto de requisição (ou um mock dele).
144
- * @param {Rs} response - O objeto de resposta (ou um mock dele).
145
- * @param {NextFunction} next - A função `next` a ser chamada ao final da cadeia.
146
- * @returns {Promise<void>} Uma promessa que resolve quando a execução da cadeia é concluída.
147
- *
148
- * @example
149
- * import { handler, Request, Response, NextFunction } from '@ismael1361/router';
150
- *
151
- * // 1. Crie um handler reutilizável
152
- * const myHandler = handler<{ user: { id: string } }>((req, res) => {
153
- * res.json({ userId: req.user.id });
154
- * });
155
- *
156
- * // 2. Crie mocks para os objetos de requisição e resposta (ex: com Jest)
157
- * const mockRequest = { user: { id: '123' } } as Request & { user: { id: string } };
158
- * const mockResponse = { json: (data) => console.log(data) } as Response;
159
- * const mockNext = () => {};
160
- *
161
- * // 3. Execute o handler programaticamente
162
- * await myHandler.execute(mockRequest, mockResponse, mockNext);
163
- * // Output: { userId: '123' }
164
- */
165
- execute(request, response, next) {
166
- return this.router.executeMiddlewares(request, response, next);
167
- }
168
- }
169
-
170
- export { Handler, RequestHandler };
171
- //# sourceMappingURL=handler.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.esm.js","sources":["../src/handler.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/dist/handler.js DELETED
@@ -1,174 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib_es6 = require('./node_modules/tslib/tslib.es6.js');
4
- var utils$1 = require('./utils.js');
5
- var middleware = require('./middleware.js');
6
- var router = require('./router.js');
7
- var utils = require('@ismael1361/utils');
8
-
9
- /**
10
- * Representa um construtor de rotas encadeável.
11
- *
12
- * Esta classe não deve ser instanciada diretamente. Em vez disso, uma instância é retornada
13
- * quando você chama um método de rota como `.get()`, `.post()`, etc., em uma instância de `Router`.
14
- *
15
- * Ela permite encadear middlewares específicos para a rota e, finalmente, definir o manipulador
16
- * da rota e sua documentação.
17
- *
18
- * @example
19
- * const router = create();
20
- *
21
- * // A chamada a `router.post()` retorna uma instância de RequestHandler.
22
- * router.post('/users')
23
- * // .middleware() aplica um middleware apenas a esta rota.
24
- * .middleware(validationMiddleware)
25
- * // .handler() define o controlador final da rota.
26
- * .handler((req, res) => {
27
- * res.status(201).json({ id: 1, ...req.body });
28
- * })
29
- * // .doc() anexa a documentação OpenAPI ao endpoint finalizado.
30
- * .doc({
31
- * summary: 'Cria um novo usuário',
32
- * tags: ['Users'],
33
- * body: { description: 'Dados do usuário' }
34
- * });
35
- */
36
- class RequestHandler extends middleware.RequestMiddleware {
37
- /** @internal */
38
- constructor(router, type, path, doc) {
39
- super(undefined, router);
40
- this.router = router;
41
- this.type = type;
42
- this.path = path;
43
- this.doc = doc;
44
- this.middlewares = [];
45
- }
46
- /**
47
- * Anexa um middleware que será executado especificamente para esta rota.
48
- * Múltiplos middlewares podem ser encadeados.
49
- *
50
- * @template Req - Tipo de Request estendido pelo middleware.
51
- * @template Res - Tipo de Response estendido pelo middleware.
52
- * @param {MiddlewareCallback<Rq & Req, Rs & Res>} callback - A função de middleware a ser aplicada.
53
- * @param {MiddlewareFCDoc} [doc] - Documentação OpenAPI opcional para este middleware.
54
- * @returns {RequestHandler<Rq & Req, Rs & Res>} A mesma instância de `RequestHandler` para permitir encadeamento.
55
- */
56
- middleware(callback, doc) {
57
- if (callback instanceof middleware.RequestMiddleware) {
58
- callback.router.layers
59
- .filter(({ type, handle }) => type === "middleware" && !!handle)
60
- .map(({ handle }) => handle)
61
- .forEach((handle) => this.middlewares.push(...handle));
62
- }
63
- else {
64
- this.middlewares.push(utils$1.createDynamicMiddleware(callback));
65
- }
66
- if (doc) {
67
- this.doc = utils$1.joinDocs(this.doc || {}, doc);
68
- }
69
- return this;
70
- }
71
- /**
72
- * Define a função de manipulador (controller) final para a rota.
73
- * Esta chamada finaliza a cadeia de middlewares e registra a rota no roteador.
74
- *
75
- * @template Req - Tipo de Request estendido pelo manipulador.
76
- * @template Res - Tipo de Response estendido pelo manipulador.
77
- * @param {HandlerCallback<Rq & Req, Rs & Res>} callback - A função que processará a requisição.
78
- * @param {MiddlewareFCDoc} [doc] - Documentação OpenAPI opcional para este manipulador.
79
- * @returns {RouterProps} Um objeto que contém as propriedades da rota e um método `.doc()` para adicionar a documentação final.
80
- */
81
- handler(callback, doc) {
82
- if (callback instanceof Handler) {
83
- callback.router.layers
84
- .filter(({ type, handle }) => type === "middleware" && !!handle)
85
- .map(({ handle }) => handle)
86
- .forEach((handle) => this.middlewares.push(...handle));
87
- }
88
- else {
89
- this.middlewares.push(utils$1.createDynamicMiddleware(callback));
90
- }
91
- const route = this.router.layers[this.type](this.path, this.middlewares, utils$1.joinDocs(this.doc || {}, doc || {}));
92
- return {
93
- type: this.type,
94
- path: this.path,
95
- middlewares: this.middlewares,
96
- handler: this.middlewares.length > 0 ? this.middlewares[this.middlewares.length - 1] : undefined,
97
- doc(operation, components = {}) {
98
- const { components: comp = {} } = operation, op = tslib_es6.__rest(operation, ["components"]);
99
- route.doc = utils$1.joinDocs(route.doc, Object.assign(Object.assign({}, op), { components: utils$1.joinObject(comp, components) }));
100
- return this;
101
- },
102
- };
103
- }
104
- }
105
- /**
106
- * Cria um componente de manipulador (handler) reutilizável.
107
- *
108
- * Esta classe encapsula uma função de manipulador, permitindo que ela seja combinada
109
- * com outros middlewares e reutilizada em diferentes rotas.
110
- *
111
- * @example
112
- * // handler.ts
113
- * export const getUserProfile = handler<{ user: { id: string } }>((req, res) => {
114
- * res.json({ user: req.user });
115
- * });
116
- *
117
- * // routes.ts
118
- * router.get('/profile')
119
- * .middleware(authMiddleware) // Adiciona `req.user`
120
- * .handler(getUserProfile); // Reutiliza o handler
121
- */
122
- class Handler {
123
- /** @internal */
124
- constructor(callback, router$1 = new router.Router(), doc) {
125
- this.router = router$1;
126
- this.doc = doc;
127
- if (callback) {
128
- if (callback instanceof Handler) {
129
- callback.router.layers.forEach((l) => {
130
- this.router.layers.push(l);
131
- });
132
- }
133
- else {
134
- callback.id = callback.id || utils.uuidv4("-");
135
- callback.doc = utils$1.joinDocs((callback === null || callback === void 0 ? void 0 : callback.doc) || {}, doc || {});
136
- this.router.middleware(utils$1.createDynamicMiddleware(callback));
137
- }
138
- }
139
- }
140
- /**
141
- * Executa a cadeia de middlewares e o manipulador final encapsulados por esta instância de `Handler`.
142
- * Este método é útil para testes unitários ou para invocar programaticamente a lógica do handler
143
- * fora do ciclo de requisição/resposta padrão do Express.
144
- *
145
- * @param {Rq} request - O objeto de requisição (ou um mock dele).
146
- * @param {Rs} response - O objeto de resposta (ou um mock dele).
147
- * @param {NextFunction} next - A função `next` a ser chamada ao final da cadeia.
148
- * @returns {Promise<void>} Uma promessa que resolve quando a execução da cadeia é concluída.
149
- *
150
- * @example
151
- * import { handler, Request, Response, NextFunction } from '@ismael1361/router';
152
- *
153
- * // 1. Crie um handler reutilizável
154
- * const myHandler = handler<{ user: { id: string } }>((req, res) => {
155
- * res.json({ userId: req.user.id });
156
- * });
157
- *
158
- * // 2. Crie mocks para os objetos de requisição e resposta (ex: com Jest)
159
- * const mockRequest = { user: { id: '123' } } as Request & { user: { id: string } };
160
- * const mockResponse = { json: (data) => console.log(data) } as Response;
161
- * const mockNext = () => {};
162
- *
163
- * // 3. Execute o handler programaticamente
164
- * await myHandler.execute(mockRequest, mockResponse, mockNext);
165
- * // Output: { userId: '123' }
166
- */
167
- execute(request, response, next) {
168
- return this.router.executeMiddlewares(request, response, next);
169
- }
170
- }
171
-
172
- exports.Handler = Handler;
173
- exports.RequestHandler = RequestHandler;
174
- //# sourceMappingURL=handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.js","sources":["../src/handler.ts"],"sourcesContent":[null],"names":["RequestMiddleware","createDynamicMiddleware","joinDocs","__rest","joinObject","router","Router","uuidv4"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
@@ -1,152 +0,0 @@
1
- import { Router } from './router.esm.js';
2
- import { joinDocs, createDynamicMiddleware } from './utils.esm.js';
3
- import { uuidv4 } from '@ismael1361/utils';
4
- import { Handler } from './handler.esm.js';
5
-
6
- /**
7
- * @internal
8
- * Uma classe base para a construção de componentes de middleware encadeáveis.
9
- * Esta classe não deve ser instanciada diretamente pelo usuário final.
10
- */
11
- class RequestMiddleware {
12
- /** @internal */
13
- constructor(callback, router = new Router(), doc) {
14
- this.router = router;
15
- this.doc = doc;
16
- if (callback) {
17
- if (callback instanceof RequestMiddleware) {
18
- callback.router.layers.forEach((l) => {
19
- this.router.layers.push(l);
20
- });
21
- }
22
- else {
23
- callback.id = callback.id || uuidv4("-");
24
- this.doc = callback.doc = joinDocs((callback === null || callback === void 0 ? void 0 : callback.doc) || {}, doc || {});
25
- this.router.middleware(createDynamicMiddleware(callback));
26
- }
27
- }
28
- }
29
- /**
30
- * Anexa um middleware adicional à cadeia.
31
- *
32
- * @template Req - Tipo de Request estendido pelo novo middleware.
33
- * @template Res - Tipo de Response estendido pelo novo middleware.
34
- * @param {MiddlewareCallback<Rq & Req, Rs & Res>} callback - A função de middleware a ser adicionada.
35
- * @param {MiddlewareFCDoc} [doc] - Documentação OpenAPI opcional para o middleware.
36
- * @returns {RequestMiddleware<Rq & Req, Rs & Res>} Uma nova instância de `RequestMiddleware` com o middleware adicionado.
37
- */
38
- middleware(callback, doc) {
39
- return new RequestMiddleware(callback, this.router, doc);
40
- }
41
- /**
42
- * Executa a cadeia de middlewares encapsulados por esta instância.
43
- * Este método é projetado principalmente para testes, permitindo que você execute a lógica do middleware
44
- * de forma isolada, sem a necessidade de um servidor HTTP real.
45
- *
46
- * @param {Rq} request - O objeto de requisição (ou um mock para testes).
47
- * @param {Rs} response - O objeto de resposta (ou um mock para testes).
48
- * @param {NextFunction} next - A função `next` a ser chamada ao final da cadeia de middlewares.
49
- * @returns {Promise<void>} Uma promessa que resolve quando a execução da cadeia é concluída.
50
- *
51
- * @example
52
- * import { middleware, Request, Response, NextFunction } from '@ismael1361/router';
53
- *
54
- * // 1. Crie um componente de middleware reutilizável
55
- * const myMiddleware = middleware<{ user: { id: string } }>((req, res, next) => {
56
- * req.user = { id: 'test-user' };
57
- * next();
58
- * });
59
- *
60
- * // 2. Crie mocks para os objetos de requisição, resposta e next (ex: com Jest)
61
- * const mockRequest = {} as Request & { user: { id: string } };
62
- * const mockResponse = {} as Response;
63
- * const mockNext = () => {}; // ou jest.fn()
64
- *
65
- * // 3. Execute o middleware programaticamente e verifique o resultado
66
- * await myMiddleware.execute(mockRequest, mockResponse, mockNext);
67
- * console.log(mockRequest.user); // Output: { id: 'test-user' }
68
- */
69
- execute(request, response, next) {
70
- return this.router.executeMiddlewares(request, response, next);
71
- }
72
- }
73
- /**
74
- * Representa um componente de middleware encadeável que pode ser finalizado com um manipulador (handler).
75
- * Uma instância desta classe é retornada pela função `middleware()`. Permite criar componentes
76
- * de lógica reutilizáveis que podem ser aplicados a múltiplas rotas.
77
- *
78
- * @example
79
- * // middlewares/auth.ts
80
- * import { middleware, Request } from '@ismael1361/router';
81
- *
82
- * // Define um tipo para a requisição após a autenticação
83
- * interface AuthRequest extends Request {
84
- * user: { id: string; roles: string[] };
85
- * }
86
- *
87
- * // Cria um componente de middleware reutilizável
88
- * export const authMiddleware = middleware<AuthRequest>((req, res, next) => {
89
- * // Lógica de autenticação...
90
- * req.user = { id: 'user-123', roles: ['admin'] };
91
- * next();
92
- * }, {
93
- * security: [{ bearerAuth: [] }], // Documentação OpenAPI
94
- * responses: { '401': { description: 'Não autorizado' } }
95
- * });
96
- *
97
- * // routes/users.ts
98
- * // router.get('/profile')
99
- * // .middleware(authMiddleware) // Aplica o middleware
100
- * // .handler((req, res) => {
101
- * // // req.user está disponível e tipado aqui
102
- * // res.json(req.user);
103
- * // });
104
- */
105
- class Middleware extends RequestMiddleware {
106
- /**
107
- * Anexa um middleware adicional à cadeia.
108
- *
109
- * @returns {Middleware<Rq & Req, Rs & Res>} Uma nova instância de `Middleware` para continuar o encadeamento.
110
- */
111
- middleware(callback, doc) {
112
- return new Middleware(callback, this.router, doc);
113
- }
114
- /**
115
- * Finaliza a cadeia de middlewares e define um manipulador (handler) final.
116
- * Isso transforma o componente de middleware em um componente de manipulador completo e reutilizável.
117
- *
118
- * @returns {Handler<Rq & Req, Rs & Res>} Uma instância de `Handler` que encapsula toda a cadeia.
119
- */
120
- handler(callback, doc) {
121
- return new Handler(callback, this.router, doc);
122
- }
123
- /**
124
- * Executa a cadeia de middlewares encapsulados por esta instância de `Middleware`.
125
- * Este método é herdado e serve principalmente para fins de teste, permitindo invocar
126
- * a lógica do middleware de forma isolada.
127
- *
128
- * @param {Rq} request - O objeto de requisição (ou um mock para testes).
129
- * @param {Rs} response - O objeto de resposta (ou um mock para testes).
130
- * @param {NextFunction} next - A função `next` a ser chamada ao final da cadeia.
131
- * @returns {Promise<void>} Uma promessa que resolve quando a execução é concluída.
132
- *
133
- * @example
134
- * import { middleware, Request, Response, NextFunction } from '@ismael1361/router';
135
- *
136
- * const addDataMiddleware = middleware<{ customData: string }>((req, res, next) => {
137
- * req.customData = 'Hello from middleware!';
138
- * next();
139
- * });
140
- *
141
- * const mockRequest = {} as Request & { customData: string };
142
- *
143
- * await addDataMiddleware.execute(mockRequest, {} as Response, () => {});
144
- * console.log(mockRequest.customData); // Output: 'Hello from middleware!'
145
- */
146
- execute(request, response, next) {
147
- return super.execute(request, response, next);
148
- }
149
- }
150
-
151
- export { Middleware, RequestMiddleware };
152
- //# sourceMappingURL=middleware.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.esm.js","sources":["../src/middleware.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAMA;;;;AAIG;MACU,iBAAiB,CAAA;;AAE7B,IAAA,WAAA,CAAY,QAAgD,EAAW,MAAA,GAAiB,IAAI,MAAM,EAAE,EAAS,GAAqB,EAAA;QAA3D,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;QAAS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;QACjI,IAAI,QAAQ,EAAE;AACb,YAAA,IAAI,QAAQ,YAAY,iBAAiB,EAAE;gBAC1C,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;oBACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,iBAAC,CAAC,CAAC;aACH;iBAAM;gBACN,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,GAAG,KAAI,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC1D;SACD;KACD;AAED;;;;;;;;AAQG;IACH,UAAU,CAAiE,QAAgD,EAAE,GAAqB,EAAA;QACjJ,OAAO,IAAI,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACH,IAAA,OAAO,CAAC,OAAW,EAAE,QAAY,EAAE,IAAkB,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;KAC/D;AACD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACG,MAAO,UAAyE,SAAQ,iBAAyB,CAAA;AACtH;;;;AAIG;IACH,UAAU,CAAiE,QAAgD,EAAE,GAAqB,EAAA;QACjJ,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClD;AAED;;;;;AAKG;IACH,OAAO,CAAiE,QAA6C,EAAE,GAAqB,EAAA;QAC3I,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACH,IAAA,OAAO,CAAC,OAAW,EAAE,QAAY,EAAE,IAAkB,EAAA;QACpD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;KAC9C;AACD;;;;"}