expressed-core 1.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 (561) hide show
  1. package/README-es.md +42 -0
  2. package/README-es.md.backup +44 -0
  3. package/README.md +41 -0
  4. package/README.md.backup +43 -0
  5. package/hooked/LICENSE +204 -0
  6. package/hooked/README.es.md +238 -0
  7. package/hooked/README.md +238 -0
  8. package/hooked/advanced-example.js +240 -0
  9. package/hooked/express-hooked.js +206 -0
  10. package/hooked/hooks.js +584 -0
  11. package/hooked/package.json +30 -0
  12. package/index.js +25 -0
  13. package/package.json +36 -0
  14. package/queued/LICENSE +201 -0
  15. package/queued/QueueSystem.js +451 -0
  16. package/queued/README.es.md +335 -0
  17. package/queued/README.md +335 -0
  18. package/queued/express-example.js +143 -0
  19. package/queued/express-integration.js +115 -0
  20. package/queued/package.json +33 -0
  21. package/router/ExpressRouter.js +247 -0
  22. package/router/ExpressRouterIntegration.js +129 -0
  23. package/router/LICENSE +201 -0
  24. package/router/README.es.md +142 -0
  25. package/router/README.md +142 -0
  26. package/router/RouteDirectoryLoader.js +299 -0
  27. package/router/RouteLoader.js +245 -0
  28. package/router/RouteMatcher.js +361 -0
  29. package/router/node_modules/.package-lock.json +876 -0
  30. package/router/node_modules/accepts/HISTORY.md +243 -0
  31. package/router/node_modules/accepts/LICENSE +23 -0
  32. package/router/node_modules/accepts/README.md +140 -0
  33. package/router/node_modules/accepts/index.js +238 -0
  34. package/router/node_modules/accepts/package.json +47 -0
  35. package/router/node_modules/array-flatten/LICENSE +21 -0
  36. package/router/node_modules/array-flatten/README.md +43 -0
  37. package/router/node_modules/array-flatten/array-flatten.js +64 -0
  38. package/router/node_modules/array-flatten/package.json +39 -0
  39. package/router/node_modules/body-parser/HISTORY.md +680 -0
  40. package/router/node_modules/body-parser/LICENSE +23 -0
  41. package/router/node_modules/body-parser/README.md +476 -0
  42. package/router/node_modules/body-parser/index.js +156 -0
  43. package/router/node_modules/body-parser/lib/read.js +205 -0
  44. package/router/node_modules/body-parser/lib/types/json.js +247 -0
  45. package/router/node_modules/body-parser/lib/types/raw.js +101 -0
  46. package/router/node_modules/body-parser/lib/types/text.js +121 -0
  47. package/router/node_modules/body-parser/lib/types/urlencoded.js +300 -0
  48. package/router/node_modules/body-parser/package.json +55 -0
  49. package/router/node_modules/bytes/History.md +97 -0
  50. package/router/node_modules/bytes/LICENSE +23 -0
  51. package/router/node_modules/bytes/Readme.md +152 -0
  52. package/router/node_modules/bytes/index.js +170 -0
  53. package/router/node_modules/bytes/package.json +42 -0
  54. package/router/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  55. package/router/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  56. package/router/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  57. package/router/node_modules/call-bind-apply-helpers/README.md +62 -0
  58. package/router/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  59. package/router/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  60. package/router/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  61. package/router/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  62. package/router/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  63. package/router/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  64. package/router/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  65. package/router/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  66. package/router/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  67. package/router/node_modules/call-bind-apply-helpers/index.js +15 -0
  68. package/router/node_modules/call-bind-apply-helpers/package.json +85 -0
  69. package/router/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  70. package/router/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  71. package/router/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  72. package/router/node_modules/call-bound/.github/FUNDING.yml +12 -0
  73. package/router/node_modules/call-bound/CHANGELOG.md +42 -0
  74. package/router/node_modules/call-bound/LICENSE +21 -0
  75. package/router/node_modules/call-bound/README.md +53 -0
  76. package/router/node_modules/call-bound/index.d.ts +94 -0
  77. package/router/node_modules/call-bound/index.js +19 -0
  78. package/router/node_modules/call-bound/package.json +99 -0
  79. package/router/node_modules/call-bound/tsconfig.json +10 -0
  80. package/router/node_modules/content-disposition/HISTORY.md +60 -0
  81. package/router/node_modules/content-disposition/LICENSE +22 -0
  82. package/router/node_modules/content-disposition/README.md +142 -0
  83. package/router/node_modules/content-disposition/index.js +458 -0
  84. package/router/node_modules/content-disposition/package.json +44 -0
  85. package/router/node_modules/content-type/HISTORY.md +29 -0
  86. package/router/node_modules/content-type/LICENSE +22 -0
  87. package/router/node_modules/content-type/README.md +94 -0
  88. package/router/node_modules/content-type/index.js +225 -0
  89. package/router/node_modules/content-type/package.json +42 -0
  90. package/router/node_modules/cookie/LICENSE +24 -0
  91. package/router/node_modules/cookie/README.md +317 -0
  92. package/router/node_modules/cookie/SECURITY.md +25 -0
  93. package/router/node_modules/cookie/index.js +335 -0
  94. package/router/node_modules/cookie/package.json +44 -0
  95. package/router/node_modules/cookie-signature/History.md +42 -0
  96. package/router/node_modules/cookie-signature/Readme.md +42 -0
  97. package/router/node_modules/cookie-signature/index.js +51 -0
  98. package/router/node_modules/cookie-signature/package.json +18 -0
  99. package/router/node_modules/debug/.coveralls.yml +1 -0
  100. package/router/node_modules/debug/CHANGELOG.md +362 -0
  101. package/router/node_modules/debug/LICENSE +19 -0
  102. package/router/node_modules/debug/Makefile +50 -0
  103. package/router/node_modules/debug/README.md +312 -0
  104. package/router/node_modules/debug/component.json +19 -0
  105. package/router/node_modules/debug/karma.conf.js +70 -0
  106. package/router/node_modules/debug/node.js +1 -0
  107. package/router/node_modules/debug/package.json +49 -0
  108. package/router/node_modules/debug/src/browser.js +185 -0
  109. package/router/node_modules/debug/src/debug.js +202 -0
  110. package/router/node_modules/debug/src/index.js +10 -0
  111. package/router/node_modules/debug/src/inspector-log.js +15 -0
  112. package/router/node_modules/debug/src/node.js +248 -0
  113. package/router/node_modules/depd/History.md +103 -0
  114. package/router/node_modules/depd/LICENSE +22 -0
  115. package/router/node_modules/depd/Readme.md +280 -0
  116. package/router/node_modules/depd/index.js +538 -0
  117. package/router/node_modules/depd/lib/browser/index.js +77 -0
  118. package/router/node_modules/depd/package.json +45 -0
  119. package/router/node_modules/destroy/LICENSE +23 -0
  120. package/router/node_modules/destroy/README.md +63 -0
  121. package/router/node_modules/destroy/index.js +209 -0
  122. package/router/node_modules/destroy/package.json +48 -0
  123. package/router/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  124. package/router/node_modules/dunder-proto/CHANGELOG.md +24 -0
  125. package/router/node_modules/dunder-proto/LICENSE +21 -0
  126. package/router/node_modules/dunder-proto/README.md +54 -0
  127. package/router/node_modules/dunder-proto/get.d.ts +5 -0
  128. package/router/node_modules/dunder-proto/get.js +30 -0
  129. package/router/node_modules/dunder-proto/package.json +76 -0
  130. package/router/node_modules/dunder-proto/set.d.ts +5 -0
  131. package/router/node_modules/dunder-proto/set.js +35 -0
  132. package/router/node_modules/dunder-proto/tsconfig.json +9 -0
  133. package/router/node_modules/ee-first/LICENSE +22 -0
  134. package/router/node_modules/ee-first/README.md +80 -0
  135. package/router/node_modules/ee-first/index.js +95 -0
  136. package/router/node_modules/ee-first/package.json +29 -0
  137. package/router/node_modules/encodeurl/LICENSE +22 -0
  138. package/router/node_modules/encodeurl/README.md +109 -0
  139. package/router/node_modules/encodeurl/index.js +60 -0
  140. package/router/node_modules/encodeurl/package.json +40 -0
  141. package/router/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  142. package/router/node_modules/es-define-property/CHANGELOG.md +29 -0
  143. package/router/node_modules/es-define-property/LICENSE +21 -0
  144. package/router/node_modules/es-define-property/README.md +49 -0
  145. package/router/node_modules/es-define-property/index.d.ts +3 -0
  146. package/router/node_modules/es-define-property/index.js +14 -0
  147. package/router/node_modules/es-define-property/package.json +81 -0
  148. package/router/node_modules/es-define-property/tsconfig.json +10 -0
  149. package/router/node_modules/es-errors/.github/FUNDING.yml +12 -0
  150. package/router/node_modules/es-errors/CHANGELOG.md +40 -0
  151. package/router/node_modules/es-errors/LICENSE +21 -0
  152. package/router/node_modules/es-errors/README.md +55 -0
  153. package/router/node_modules/es-errors/eval.d.ts +3 -0
  154. package/router/node_modules/es-errors/eval.js +4 -0
  155. package/router/node_modules/es-errors/index.d.ts +3 -0
  156. package/router/node_modules/es-errors/index.js +4 -0
  157. package/router/node_modules/es-errors/package.json +80 -0
  158. package/router/node_modules/es-errors/range.d.ts +3 -0
  159. package/router/node_modules/es-errors/range.js +4 -0
  160. package/router/node_modules/es-errors/ref.d.ts +3 -0
  161. package/router/node_modules/es-errors/ref.js +4 -0
  162. package/router/node_modules/es-errors/syntax.d.ts +3 -0
  163. package/router/node_modules/es-errors/syntax.js +4 -0
  164. package/router/node_modules/es-errors/tsconfig.json +49 -0
  165. package/router/node_modules/es-errors/type.d.ts +3 -0
  166. package/router/node_modules/es-errors/type.js +4 -0
  167. package/router/node_modules/es-errors/uri.d.ts +3 -0
  168. package/router/node_modules/es-errors/uri.js +4 -0
  169. package/router/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  170. package/router/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  171. package/router/node_modules/es-object-atoms/LICENSE +21 -0
  172. package/router/node_modules/es-object-atoms/README.md +63 -0
  173. package/router/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  174. package/router/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  175. package/router/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  176. package/router/node_modules/es-object-atoms/ToObject.js +10 -0
  177. package/router/node_modules/es-object-atoms/index.d.ts +3 -0
  178. package/router/node_modules/es-object-atoms/index.js +4 -0
  179. package/router/node_modules/es-object-atoms/isObject.d.ts +3 -0
  180. package/router/node_modules/es-object-atoms/isObject.js +6 -0
  181. package/router/node_modules/es-object-atoms/package.json +80 -0
  182. package/router/node_modules/es-object-atoms/tsconfig.json +6 -0
  183. package/router/node_modules/escape-html/LICENSE +24 -0
  184. package/router/node_modules/escape-html/Readme.md +43 -0
  185. package/router/node_modules/escape-html/index.js +78 -0
  186. package/router/node_modules/escape-html/package.json +24 -0
  187. package/router/node_modules/etag/HISTORY.md +83 -0
  188. package/router/node_modules/etag/LICENSE +22 -0
  189. package/router/node_modules/etag/README.md +159 -0
  190. package/router/node_modules/etag/index.js +131 -0
  191. package/router/node_modules/etag/package.json +47 -0
  192. package/router/node_modules/express/History.md +3667 -0
  193. package/router/node_modules/express/LICENSE +24 -0
  194. package/router/node_modules/express/Readme.md +260 -0
  195. package/router/node_modules/express/index.js +11 -0
  196. package/router/node_modules/express/lib/application.js +661 -0
  197. package/router/node_modules/express/lib/express.js +116 -0
  198. package/router/node_modules/express/lib/middleware/init.js +43 -0
  199. package/router/node_modules/express/lib/middleware/query.js +47 -0
  200. package/router/node_modules/express/lib/request.js +525 -0
  201. package/router/node_modules/express/lib/response.js +1179 -0
  202. package/router/node_modules/express/lib/router/index.js +673 -0
  203. package/router/node_modules/express/lib/router/layer.js +181 -0
  204. package/router/node_modules/express/lib/router/route.js +230 -0
  205. package/router/node_modules/express/lib/utils.js +303 -0
  206. package/router/node_modules/express/lib/view.js +182 -0
  207. package/router/node_modules/express/package.json +102 -0
  208. package/router/node_modules/express-hooked/LICENSE +204 -0
  209. package/router/node_modules/express-hooked/README.es.md +123 -0
  210. package/router/node_modules/express-hooked/README.md +123 -0
  211. package/router/node_modules/express-hooked/express-hooked.js +206 -0
  212. package/router/node_modules/express-hooked/hooks.js +584 -0
  213. package/router/node_modules/express-hooked/package.json +30 -0
  214. package/router/node_modules/finalhandler/HISTORY.md +216 -0
  215. package/router/node_modules/finalhandler/LICENSE +22 -0
  216. package/router/node_modules/finalhandler/README.md +147 -0
  217. package/router/node_modules/finalhandler/SECURITY.md +25 -0
  218. package/router/node_modules/finalhandler/index.js +341 -0
  219. package/router/node_modules/finalhandler/package.json +47 -0
  220. package/router/node_modules/forwarded/HISTORY.md +21 -0
  221. package/router/node_modules/forwarded/LICENSE +22 -0
  222. package/router/node_modules/forwarded/README.md +57 -0
  223. package/router/node_modules/forwarded/index.js +90 -0
  224. package/router/node_modules/forwarded/package.json +45 -0
  225. package/router/node_modules/fresh/HISTORY.md +70 -0
  226. package/router/node_modules/fresh/LICENSE +23 -0
  227. package/router/node_modules/fresh/README.md +119 -0
  228. package/router/node_modules/fresh/index.js +137 -0
  229. package/router/node_modules/fresh/package.json +46 -0
  230. package/router/node_modules/function-bind/.github/FUNDING.yml +12 -0
  231. package/router/node_modules/function-bind/.github/SECURITY.md +3 -0
  232. package/router/node_modules/function-bind/CHANGELOG.md +136 -0
  233. package/router/node_modules/function-bind/LICENSE +20 -0
  234. package/router/node_modules/function-bind/README.md +46 -0
  235. package/router/node_modules/function-bind/implementation.js +84 -0
  236. package/router/node_modules/function-bind/index.js +5 -0
  237. package/router/node_modules/function-bind/package.json +87 -0
  238. package/router/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  239. package/router/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  240. package/router/node_modules/get-intrinsic/LICENSE +21 -0
  241. package/router/node_modules/get-intrinsic/README.md +71 -0
  242. package/router/node_modules/get-intrinsic/index.js +378 -0
  243. package/router/node_modules/get-intrinsic/package.json +97 -0
  244. package/router/node_modules/get-proto/.github/FUNDING.yml +12 -0
  245. package/router/node_modules/get-proto/CHANGELOG.md +21 -0
  246. package/router/node_modules/get-proto/LICENSE +21 -0
  247. package/router/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  248. package/router/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  249. package/router/node_modules/get-proto/README.md +50 -0
  250. package/router/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  251. package/router/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  252. package/router/node_modules/get-proto/index.d.ts +5 -0
  253. package/router/node_modules/get-proto/index.js +27 -0
  254. package/router/node_modules/get-proto/package.json +81 -0
  255. package/router/node_modules/get-proto/tsconfig.json +9 -0
  256. package/router/node_modules/gopd/.github/FUNDING.yml +12 -0
  257. package/router/node_modules/gopd/CHANGELOG.md +45 -0
  258. package/router/node_modules/gopd/LICENSE +21 -0
  259. package/router/node_modules/gopd/README.md +40 -0
  260. package/router/node_modules/gopd/gOPD.d.ts +1 -0
  261. package/router/node_modules/gopd/gOPD.js +4 -0
  262. package/router/node_modules/gopd/index.d.ts +5 -0
  263. package/router/node_modules/gopd/index.js +15 -0
  264. package/router/node_modules/gopd/package.json +77 -0
  265. package/router/node_modules/gopd/tsconfig.json +9 -0
  266. package/router/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  267. package/router/node_modules/has-symbols/CHANGELOG.md +91 -0
  268. package/router/node_modules/has-symbols/LICENSE +21 -0
  269. package/router/node_modules/has-symbols/README.md +46 -0
  270. package/router/node_modules/has-symbols/index.d.ts +3 -0
  271. package/router/node_modules/has-symbols/index.js +14 -0
  272. package/router/node_modules/has-symbols/package.json +111 -0
  273. package/router/node_modules/has-symbols/shams.d.ts +3 -0
  274. package/router/node_modules/has-symbols/shams.js +45 -0
  275. package/router/node_modules/has-symbols/tsconfig.json +10 -0
  276. package/router/node_modules/hasown/.github/FUNDING.yml +12 -0
  277. package/router/node_modules/hasown/CHANGELOG.md +40 -0
  278. package/router/node_modules/hasown/LICENSE +21 -0
  279. package/router/node_modules/hasown/README.md +40 -0
  280. package/router/node_modules/hasown/index.d.ts +3 -0
  281. package/router/node_modules/hasown/index.js +8 -0
  282. package/router/node_modules/hasown/package.json +92 -0
  283. package/router/node_modules/hasown/tsconfig.json +6 -0
  284. package/router/node_modules/http-errors/HISTORY.md +186 -0
  285. package/router/node_modules/http-errors/LICENSE +23 -0
  286. package/router/node_modules/http-errors/README.md +169 -0
  287. package/router/node_modules/http-errors/index.js +290 -0
  288. package/router/node_modules/http-errors/package.json +54 -0
  289. package/router/node_modules/iconv-lite/Changelog.md +162 -0
  290. package/router/node_modules/iconv-lite/LICENSE +21 -0
  291. package/router/node_modules/iconv-lite/README.md +156 -0
  292. package/router/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  293. package/router/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  294. package/router/node_modules/iconv-lite/encodings/index.js +22 -0
  295. package/router/node_modules/iconv-lite/encodings/internal.js +188 -0
  296. package/router/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  297. package/router/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  298. package/router/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
  299. package/router/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  300. package/router/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  301. package/router/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  302. package/router/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  303. package/router/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  304. package/router/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  305. package/router/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  306. package/router/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  307. package/router/node_modules/iconv-lite/encodings/utf16.js +177 -0
  308. package/router/node_modules/iconv-lite/encodings/utf7.js +290 -0
  309. package/router/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  310. package/router/node_modules/iconv-lite/lib/extend-node.js +217 -0
  311. package/router/node_modules/iconv-lite/lib/index.d.ts +24 -0
  312. package/router/node_modules/iconv-lite/lib/index.js +153 -0
  313. package/router/node_modules/iconv-lite/lib/streams.js +121 -0
  314. package/router/node_modules/iconv-lite/package.json +46 -0
  315. package/router/node_modules/inherits/LICENSE +16 -0
  316. package/router/node_modules/inherits/README.md +42 -0
  317. package/router/node_modules/inherits/inherits.js +9 -0
  318. package/router/node_modules/inherits/inherits_browser.js +27 -0
  319. package/router/node_modules/inherits/package.json +29 -0
  320. package/router/node_modules/ipaddr.js/LICENSE +19 -0
  321. package/router/node_modules/ipaddr.js/README.md +233 -0
  322. package/router/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  323. package/router/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  324. package/router/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  325. package/router/node_modules/ipaddr.js/package.json +35 -0
  326. package/router/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  327. package/router/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  328. package/router/node_modules/math-intrinsics/LICENSE +21 -0
  329. package/router/node_modules/math-intrinsics/README.md +50 -0
  330. package/router/node_modules/math-intrinsics/abs.d.ts +1 -0
  331. package/router/node_modules/math-intrinsics/abs.js +4 -0
  332. package/router/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  333. package/router/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  334. package/router/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  335. package/router/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  336. package/router/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  337. package/router/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  338. package/router/node_modules/math-intrinsics/floor.d.ts +1 -0
  339. package/router/node_modules/math-intrinsics/floor.js +4 -0
  340. package/router/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  341. package/router/node_modules/math-intrinsics/isFinite.js +12 -0
  342. package/router/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  343. package/router/node_modules/math-intrinsics/isInteger.js +16 -0
  344. package/router/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  345. package/router/node_modules/math-intrinsics/isNaN.js +6 -0
  346. package/router/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  347. package/router/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  348. package/router/node_modules/math-intrinsics/max.d.ts +1 -0
  349. package/router/node_modules/math-intrinsics/max.js +4 -0
  350. package/router/node_modules/math-intrinsics/min.d.ts +1 -0
  351. package/router/node_modules/math-intrinsics/min.js +4 -0
  352. package/router/node_modules/math-intrinsics/mod.d.ts +3 -0
  353. package/router/node_modules/math-intrinsics/mod.js +9 -0
  354. package/router/node_modules/math-intrinsics/package.json +86 -0
  355. package/router/node_modules/math-intrinsics/pow.d.ts +1 -0
  356. package/router/node_modules/math-intrinsics/pow.js +4 -0
  357. package/router/node_modules/math-intrinsics/round.d.ts +1 -0
  358. package/router/node_modules/math-intrinsics/round.js +4 -0
  359. package/router/node_modules/math-intrinsics/sign.d.ts +3 -0
  360. package/router/node_modules/math-intrinsics/sign.js +11 -0
  361. package/router/node_modules/math-intrinsics/tsconfig.json +3 -0
  362. package/router/node_modules/media-typer/HISTORY.md +22 -0
  363. package/router/node_modules/media-typer/LICENSE +22 -0
  364. package/router/node_modules/media-typer/README.md +81 -0
  365. package/router/node_modules/media-typer/index.js +270 -0
  366. package/router/node_modules/media-typer/package.json +26 -0
  367. package/router/node_modules/merge-descriptors/HISTORY.md +21 -0
  368. package/router/node_modules/merge-descriptors/LICENSE +23 -0
  369. package/router/node_modules/merge-descriptors/README.md +49 -0
  370. package/router/node_modules/merge-descriptors/index.js +60 -0
  371. package/router/node_modules/merge-descriptors/package.json +39 -0
  372. package/router/node_modules/methods/HISTORY.md +29 -0
  373. package/router/node_modules/methods/LICENSE +24 -0
  374. package/router/node_modules/methods/README.md +51 -0
  375. package/router/node_modules/methods/index.js +69 -0
  376. package/router/node_modules/methods/package.json +36 -0
  377. package/router/node_modules/mime/CHANGELOG.md +164 -0
  378. package/router/node_modules/mime/LICENSE +21 -0
  379. package/router/node_modules/mime/README.md +90 -0
  380. package/router/node_modules/mime/cli.js +8 -0
  381. package/router/node_modules/mime/mime.js +108 -0
  382. package/router/node_modules/mime/package.json +44 -0
  383. package/router/node_modules/mime/src/build.js +53 -0
  384. package/router/node_modules/mime/src/test.js +60 -0
  385. package/router/node_modules/mime/types.json +1 -0
  386. package/router/node_modules/mime-db/HISTORY.md +507 -0
  387. package/router/node_modules/mime-db/LICENSE +23 -0
  388. package/router/node_modules/mime-db/README.md +100 -0
  389. package/router/node_modules/mime-db/db.json +8519 -0
  390. package/router/node_modules/mime-db/index.js +12 -0
  391. package/router/node_modules/mime-db/package.json +60 -0
  392. package/router/node_modules/mime-types/HISTORY.md +397 -0
  393. package/router/node_modules/mime-types/LICENSE +23 -0
  394. package/router/node_modules/mime-types/README.md +113 -0
  395. package/router/node_modules/mime-types/index.js +188 -0
  396. package/router/node_modules/mime-types/package.json +44 -0
  397. package/router/node_modules/ms/index.js +152 -0
  398. package/router/node_modules/ms/license.md +21 -0
  399. package/router/node_modules/ms/package.json +37 -0
  400. package/router/node_modules/ms/readme.md +51 -0
  401. package/router/node_modules/negotiator/HISTORY.md +108 -0
  402. package/router/node_modules/negotiator/LICENSE +24 -0
  403. package/router/node_modules/negotiator/README.md +203 -0
  404. package/router/node_modules/negotiator/index.js +82 -0
  405. package/router/node_modules/negotiator/lib/charset.js +169 -0
  406. package/router/node_modules/negotiator/lib/encoding.js +184 -0
  407. package/router/node_modules/negotiator/lib/language.js +179 -0
  408. package/router/node_modules/negotiator/lib/mediaType.js +294 -0
  409. package/router/node_modules/negotiator/package.json +42 -0
  410. package/router/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  411. package/router/node_modules/object-inspect/CHANGELOG.md +424 -0
  412. package/router/node_modules/object-inspect/LICENSE +21 -0
  413. package/router/node_modules/object-inspect/example/all.js +23 -0
  414. package/router/node_modules/object-inspect/example/circular.js +6 -0
  415. package/router/node_modules/object-inspect/example/fn.js +5 -0
  416. package/router/node_modules/object-inspect/example/inspect.js +10 -0
  417. package/router/node_modules/object-inspect/index.js +544 -0
  418. package/router/node_modules/object-inspect/package-support.json +20 -0
  419. package/router/node_modules/object-inspect/package.json +105 -0
  420. package/router/node_modules/object-inspect/readme.markdown +84 -0
  421. package/router/node_modules/object-inspect/test-core-js.js +26 -0
  422. package/router/node_modules/object-inspect/util.inspect.js +1 -0
  423. package/router/node_modules/on-finished/HISTORY.md +98 -0
  424. package/router/node_modules/on-finished/LICENSE +23 -0
  425. package/router/node_modules/on-finished/README.md +162 -0
  426. package/router/node_modules/on-finished/index.js +234 -0
  427. package/router/node_modules/on-finished/package.json +39 -0
  428. package/router/node_modules/parseurl/HISTORY.md +58 -0
  429. package/router/node_modules/parseurl/LICENSE +24 -0
  430. package/router/node_modules/parseurl/README.md +133 -0
  431. package/router/node_modules/parseurl/index.js +158 -0
  432. package/router/node_modules/parseurl/package.json +40 -0
  433. package/router/node_modules/path-to-regexp/LICENSE +21 -0
  434. package/router/node_modules/path-to-regexp/Readme.md +35 -0
  435. package/router/node_modules/path-to-regexp/index.js +156 -0
  436. package/router/node_modules/path-to-regexp/package.json +30 -0
  437. package/router/node_modules/proxy-addr/HISTORY.md +161 -0
  438. package/router/node_modules/proxy-addr/LICENSE +22 -0
  439. package/router/node_modules/proxy-addr/README.md +139 -0
  440. package/router/node_modules/proxy-addr/index.js +327 -0
  441. package/router/node_modules/proxy-addr/package.json +47 -0
  442. package/router/node_modules/qs/.github/FUNDING.yml +12 -0
  443. package/router/node_modules/qs/.github/SECURITY.md +11 -0
  444. package/router/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  445. package/router/node_modules/qs/CHANGELOG.md +644 -0
  446. package/router/node_modules/qs/LICENSE.md +29 -0
  447. package/router/node_modules/qs/README.md +740 -0
  448. package/router/node_modules/qs/dist/qs.js +141 -0
  449. package/router/node_modules/qs/eslint.config.mjs +56 -0
  450. package/router/node_modules/qs/lib/formats.js +23 -0
  451. package/router/node_modules/qs/lib/index.js +11 -0
  452. package/router/node_modules/qs/lib/parse.js +371 -0
  453. package/router/node_modules/qs/lib/stringify.js +356 -0
  454. package/router/node_modules/qs/lib/utils.js +340 -0
  455. package/router/node_modules/qs/package.json +94 -0
  456. package/router/node_modules/range-parser/HISTORY.md +56 -0
  457. package/router/node_modules/range-parser/LICENSE +23 -0
  458. package/router/node_modules/range-parser/README.md +84 -0
  459. package/router/node_modules/range-parser/index.js +162 -0
  460. package/router/node_modules/range-parser/package.json +44 -0
  461. package/router/node_modules/raw-body/LICENSE +22 -0
  462. package/router/node_modules/raw-body/README.md +223 -0
  463. package/router/node_modules/raw-body/index.d.ts +87 -0
  464. package/router/node_modules/raw-body/index.js +336 -0
  465. package/router/node_modules/raw-body/package.json +47 -0
  466. package/router/node_modules/safe-buffer/LICENSE +21 -0
  467. package/router/node_modules/safe-buffer/README.md +584 -0
  468. package/router/node_modules/safe-buffer/index.d.ts +187 -0
  469. package/router/node_modules/safe-buffer/index.js +65 -0
  470. package/router/node_modules/safe-buffer/package.json +51 -0
  471. package/router/node_modules/safer-buffer/LICENSE +21 -0
  472. package/router/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  473. package/router/node_modules/safer-buffer/Readme.md +156 -0
  474. package/router/node_modules/safer-buffer/dangerous.js +58 -0
  475. package/router/node_modules/safer-buffer/package.json +34 -0
  476. package/router/node_modules/safer-buffer/safer.js +77 -0
  477. package/router/node_modules/safer-buffer/tests.js +406 -0
  478. package/router/node_modules/send/HISTORY.md +538 -0
  479. package/router/node_modules/send/LICENSE +23 -0
  480. package/router/node_modules/send/README.md +327 -0
  481. package/router/node_modules/send/SECURITY.md +24 -0
  482. package/router/node_modules/send/index.js +1142 -0
  483. package/router/node_modules/send/node_modules/ms/index.js +162 -0
  484. package/router/node_modules/send/node_modules/ms/license.md +21 -0
  485. package/router/node_modules/send/node_modules/ms/package.json +38 -0
  486. package/router/node_modules/send/node_modules/ms/readme.md +59 -0
  487. package/router/node_modules/send/package.json +62 -0
  488. package/router/node_modules/serve-static/HISTORY.md +493 -0
  489. package/router/node_modules/serve-static/LICENSE +25 -0
  490. package/router/node_modules/serve-static/README.md +257 -0
  491. package/router/node_modules/serve-static/index.js +209 -0
  492. package/router/node_modules/serve-static/package.json +42 -0
  493. package/router/node_modules/setprototypeof/LICENSE +13 -0
  494. package/router/node_modules/setprototypeof/README.md +31 -0
  495. package/router/node_modules/setprototypeof/index.d.ts +2 -0
  496. package/router/node_modules/setprototypeof/index.js +17 -0
  497. package/router/node_modules/setprototypeof/package.json +38 -0
  498. package/router/node_modules/side-channel/.github/FUNDING.yml +12 -0
  499. package/router/node_modules/side-channel/CHANGELOG.md +110 -0
  500. package/router/node_modules/side-channel/LICENSE +21 -0
  501. package/router/node_modules/side-channel/README.md +61 -0
  502. package/router/node_modules/side-channel/index.d.ts +14 -0
  503. package/router/node_modules/side-channel/index.js +43 -0
  504. package/router/node_modules/side-channel/package.json +85 -0
  505. package/router/node_modules/side-channel/tsconfig.json +9 -0
  506. package/router/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  507. package/router/node_modules/side-channel-list/CHANGELOG.md +15 -0
  508. package/router/node_modules/side-channel-list/LICENSE +21 -0
  509. package/router/node_modules/side-channel-list/README.md +62 -0
  510. package/router/node_modules/side-channel-list/index.d.ts +13 -0
  511. package/router/node_modules/side-channel-list/index.js +113 -0
  512. package/router/node_modules/side-channel-list/list.d.ts +14 -0
  513. package/router/node_modules/side-channel-list/package.json +77 -0
  514. package/router/node_modules/side-channel-list/tsconfig.json +9 -0
  515. package/router/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  516. package/router/node_modules/side-channel-map/CHANGELOG.md +22 -0
  517. package/router/node_modules/side-channel-map/LICENSE +21 -0
  518. package/router/node_modules/side-channel-map/README.md +62 -0
  519. package/router/node_modules/side-channel-map/index.d.ts +15 -0
  520. package/router/node_modules/side-channel-map/index.js +68 -0
  521. package/router/node_modules/side-channel-map/package.json +80 -0
  522. package/router/node_modules/side-channel-map/tsconfig.json +9 -0
  523. package/router/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  524. package/router/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  525. package/router/node_modules/side-channel-weakmap/LICENSE +21 -0
  526. package/router/node_modules/side-channel-weakmap/README.md +62 -0
  527. package/router/node_modules/side-channel-weakmap/index.d.ts +15 -0
  528. package/router/node_modules/side-channel-weakmap/index.js +84 -0
  529. package/router/node_modules/side-channel-weakmap/package.json +87 -0
  530. package/router/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  531. package/router/node_modules/statuses/HISTORY.md +87 -0
  532. package/router/node_modules/statuses/LICENSE +23 -0
  533. package/router/node_modules/statuses/README.md +139 -0
  534. package/router/node_modules/statuses/codes.json +65 -0
  535. package/router/node_modules/statuses/index.js +146 -0
  536. package/router/node_modules/statuses/package.json +49 -0
  537. package/router/node_modules/toidentifier/HISTORY.md +9 -0
  538. package/router/node_modules/toidentifier/LICENSE +21 -0
  539. package/router/node_modules/toidentifier/README.md +61 -0
  540. package/router/node_modules/toidentifier/index.js +32 -0
  541. package/router/node_modules/toidentifier/package.json +38 -0
  542. package/router/node_modules/type-is/HISTORY.md +259 -0
  543. package/router/node_modules/type-is/LICENSE +23 -0
  544. package/router/node_modules/type-is/README.md +170 -0
  545. package/router/node_modules/type-is/index.js +266 -0
  546. package/router/node_modules/type-is/package.json +45 -0
  547. package/router/node_modules/unpipe/HISTORY.md +4 -0
  548. package/router/node_modules/unpipe/LICENSE +22 -0
  549. package/router/node_modules/unpipe/README.md +43 -0
  550. package/router/node_modules/unpipe/index.js +69 -0
  551. package/router/node_modules/unpipe/package.json +27 -0
  552. package/router/node_modules/utils-merge/LICENSE +20 -0
  553. package/router/node_modules/utils-merge/README.md +34 -0
  554. package/router/node_modules/utils-merge/index.js +23 -0
  555. package/router/node_modules/utils-merge/package.json +40 -0
  556. package/router/node_modules/vary/HISTORY.md +39 -0
  557. package/router/node_modules/vary/LICENSE +22 -0
  558. package/router/node_modules/vary/README.md +101 -0
  559. package/router/node_modules/vary/index.js +149 -0
  560. package/router/node_modules/vary/package.json +43 -0
  561. package/router/package.json +36 -0
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Ejemplo de uso del sistema de colas con Express
3
+ * Archivo de ejemplo: express-example.js
4
+ */
5
+
6
+ const express = require('express');
7
+ const ExpressQueueIntegration = require('./express-integration');
8
+
9
+ // Crear una aplicación Express
10
+ const app = express();
11
+ const port = 3032;
12
+
13
+ // Middleware para parsear JSON en el body
14
+ app.use(express.json());
15
+
16
+ // Crear instancia de la integración de colas para Express
17
+ const expressQueue = new ExpressQueueIntegration();
18
+
19
+ // Configurar una cola para procesamiento de imágenes
20
+ expressQueue.createQueue('imagenes', {
21
+ concurrency: 3,
22
+ retryAttempts: 2,
23
+ retryDelay: 1000
24
+ });
25
+
26
+ // Configurar una cola para envío de correos
27
+ expressQueue.createQueue('correos', {
28
+ concurrency: 2,
29
+ retryAttempts: 3,
30
+ retryDelay: 2000
31
+ });
32
+
33
+ // Ejemplo de tarea para procesamiento de imágenes
34
+ function procesarImagen(datos, taskObj) {
35
+ return new Promise(async (resolve, reject) => {
36
+ console.log(`[IMAGEN] Procesando imagen: ${datos.nombreArchivo}`);
37
+
38
+ try {
39
+ // Importar fs para escribir archivos
40
+ const fs = require('fs');
41
+ const path = require('path');
42
+
43
+ // Crear un contenido simple para la imagen (texto)
44
+ const imagePath = path.join(__dirname, datos.nombreArchivo);
45
+ const content = `Archivo de imagen: ${datos.nombreArchivo}\nTamaño: ${datos.tamano}\nFecha de procesamiento: ${new Date().toISOString()}\n\nEste archivo fue generado por el sistema de colas de Express.`;
46
+
47
+ // Escribir el contenido en el archivo
48
+ fs.writeFileSync(imagePath, content);
49
+
50
+ console.log(`[IMAGEN] Imagen procesada exitosamente: ${datos.nombreArchivo} (${datos.tamano})`);
51
+ resolve(`Imagen ${datos.nombreArchivo} procesada con éxito y guardada en ${imagePath}`);
52
+ } catch (error) {
53
+ console.error(`[IMAGEN] Falló el procesamiento de: ${datos.nombreArchivo}`, error);
54
+ reject(new Error(`Error procesando imagen: ${datos.nombreArchivo} - ${error.message}`));
55
+ }
56
+ });
57
+ }
58
+
59
+ // Ejemplo de tarea para envío de correos
60
+ function enviarCorreo(datos, taskObj) {
61
+ return new Promise((resolve, reject) => {
62
+ console.log(`[CORREO] Enviando correo a: ${datos.destinatario}`);
63
+
64
+ // Simular un proceso de envío de correo
65
+ setTimeout(() => {
66
+ if (Math.random() < 0.15) { // 15% de probabilidad de fallo
67
+ console.error(`[CORREO] Falló el envío a: ${datos.destinatario}`);
68
+ reject(new Error(`Error enviando correo a: ${datos.destinatario}`));
69
+ } else {
70
+ console.log(`[CORREO] Correo enviado exitosamente a: ${datos.destinatario}`);
71
+ resolve(`Correo enviado a ${datos.destinatario} con éxito`);
72
+ }
73
+ }, 1500);
74
+ });
75
+ }
76
+
77
+ // Middleware para inyectar el sistema de colas en las solicitudes
78
+ app.use(expressQueue.queueMiddleware());
79
+
80
+ // Ruta para agregar una tarea de procesamiento de imagen
81
+ app.post('/procesar-imagen', (req, res) => {
82
+ const { nombreArchivo, tamano } = req.body;
83
+
84
+ const taskId = req.addTask('imagenes', procesarImagen, {
85
+ nombreArchivo,
86
+ tamano
87
+ });
88
+
89
+ res.json({
90
+ message: 'Tarea de procesamiento de imagen agregada a la cola',
91
+ taskId
92
+ });
93
+ });
94
+
95
+ // Ruta para agregar una tarea de envío de correo
96
+ app.post('/enviar-correo', (req, res) => {
97
+ const { destinatario, asunto, contenido } = req.body;
98
+
99
+ const taskId = req.addTask('correos', enviarCorreo, {
100
+ destinatario,
101
+ asunto,
102
+ contenido
103
+ });
104
+
105
+ res.json({
106
+ message: 'Tarea de envío de correo agregada a la cola',
107
+ taskId
108
+ });
109
+ });
110
+
111
+ // Ruta para obtener el estado del sistema de colas
112
+ app.get('/estado-colas', (req, res) => {
113
+ const status = req.getQueueStatus();
114
+ res.json(status);
115
+ });
116
+
117
+ // Ruta para iniciar el sistema de colas
118
+ app.get('/iniciar-colas', (req, res) => {
119
+ req.queueSystem.start();
120
+ res.json({ message: 'Sistema de colas iniciado' });
121
+ });
122
+
123
+ // Ruta para detener el sistema de colas
124
+ app.get('/detener-colas', (req, res) => {
125
+ req.queueSystem.stop();
126
+ res.json({ message: 'Sistema de colas detenido' });
127
+ });
128
+
129
+ // Iniciar el servidor
130
+ app.listen(port, () => {
131
+ console.log(`Servidor Express escuchando en http://localhost:${port}`);
132
+ console.log('Sistema de colas para Express inicializado');
133
+ console.log('Endpoints disponibles:');
134
+ console.log('- POST /procesar-imagen');
135
+ console.log('- POST /enviar-correo');
136
+ console.log('- GET /estado-colas');
137
+ console.log('- GET /iniciar-colas');
138
+ console.log('- GET /detener-colas');
139
+ });
140
+
141
+ // Iniciar el sistema de colas
142
+ expressQueue.start();
143
+ console.log('Sistema de colas iniciado');
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Integración del Sistema de Colas para Express
3
+ * Archivo de integración para usar el sistema de colas con Express
4
+ */
5
+
6
+ const QueueSystem = require('./QueueSystem');
7
+ const HookSystem = require('../hooked/hooks'); // Usar el sistema de hooks de @expressed/hooked/
8
+
9
+ class ExpressQueueIntegration {
10
+ /**
11
+ * Constructor de la integración
12
+ * @param {Object} options - Opciones de configuración
13
+ */
14
+ constructor(options = {}) {
15
+ // Crear instancia del sistema de hooks
16
+ this.hooks = new HookSystem();
17
+
18
+ // Crear instancia del sistema de colas con los hooks
19
+ this.queueSystem = new QueueSystem({...options, hooks: this.hooks});
20
+ }
21
+
22
+ /**
23
+ * Obtiene el sistema de colas
24
+ * @returns {QueueSystem} - Instancia del sistema de colas
25
+ */
26
+ getQueueSystem() {
27
+ return this.queueSystem;
28
+ }
29
+
30
+ /**
31
+ * Obtiene el sistema de hooks
32
+ * @returns {HookSystem} - Instancia del sistema de hooks
33
+ */
34
+ getHooks() {
35
+ return this.hooks;
36
+ }
37
+
38
+ /**
39
+ * Crea una cola específica con hooks personalizados
40
+ * @param {string} queueName - Nombre de la cola
41
+ * @param {Object} options - Opciones específicas para la cola
42
+ * @param {Object} hooks - Sistema de hooks específico para esta cola (opcional)
43
+ * @returns {Object} - Cola creada
44
+ */
45
+ createQueue(queueName, options = {}, hooks = null) {
46
+ // Si se proporcionan hooks específicos para esta cola, usarlos
47
+ if (hooks) {
48
+ options.hooks = hooks;
49
+ }
50
+
51
+ // Crear la cola con las opciones
52
+ return this.queueSystem.getOrCreateQueue(queueName, options);
53
+ }
54
+
55
+ /**
56
+ * Agrega una tarea a una cola
57
+ * @param {string} queueName - Nombre de la cola
58
+ * @param {Function} task - Función que representa la tarea
59
+ * @param {Object} data - Datos para la tarea
60
+ * @param {number} priority - Prioridad de la tarea
61
+ * @returns {string} - ID único de la tarea
62
+ */
63
+ addTask(queueName, task, data = {}, priority = 0) {
64
+ return this.queueSystem.addTask(queueName, task, data, priority);
65
+ }
66
+
67
+ /**
68
+ * Inicia la ejecución de tareas en todas las colas
69
+ */
70
+ start() {
71
+ this.queueSystem.start();
72
+ }
73
+
74
+ /**
75
+ * Detiene la ejecución de tareas en todas las colas
76
+ */
77
+ stop() {
78
+ this.queueSystem.stop();
79
+ }
80
+
81
+ /**
82
+ * Obtiene el estado actual del sistema de colas
83
+ * @returns {Object} - Estado del sistema de colas
84
+ */
85
+ getStatus() {
86
+ return this.queueSystem.getStatus();
87
+ }
88
+
89
+ /**
90
+ * Reintenta todas las tareas fallidas en una cola específica
91
+ * @param {string} queueName - Nombre de la cola
92
+ */
93
+ retryFailedTasks(queueName) {
94
+ this.queueSystem.retryFailedTasks(queueName);
95
+ }
96
+
97
+ /**
98
+ * Middleware para inyectar el sistema de colas en las solicitudes de Express
99
+ * @returns {Function} - Middleware de Express
100
+ */
101
+ queueMiddleware() {
102
+ return (req, res, next) => {
103
+ // Inyectar el sistema de colas y hooks en el objeto de solicitud
104
+ req.queueSystem = this.queueSystem;
105
+ req.queueHooks = this.hooks;
106
+ req.createQueue = this.createQueue.bind(this);
107
+ req.addTask = this.addTask.bind(this);
108
+ req.getQueueStatus = this.getStatus.bind(this);
109
+
110
+ next();
111
+ };
112
+ }
113
+ }
114
+
115
+ module.exports = ExpressQueueIntegration;
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "express-queued",
3
+ "version": "1.0.0",
4
+ "description": "Independent queue system for Express with support for hooks",
5
+ "main": "express-integration.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "keywords": [
10
+ "express",
11
+ "queues",
12
+ "tasks",
13
+ "jobs",
14
+ "background-jobs",
15
+ "hooks"
16
+ ],
17
+ "author": "Benjamin Sanchez Cardenas",
18
+ "license": "Apache-2.0",
19
+ "dependencies": {
20
+ "express-hooked": "^1.0.0"
21
+ },
22
+ "peerDependencies": {
23
+ "express": "^4.18.0"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://gitlab.com/bytedogssyndicate1/express-queued.git"
28
+ },
29
+ "bugs": {
30
+ "url": "https://gitlab.com/bytedogssyndicate1/express-queued/issues"
31
+ },
32
+ "homepage": "https://gitlab.com/bytedogssyndicate1/express-queued#readme"
33
+ }
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Sistema de enrutamiento para Express basado en la arquitectura de insitu-js
3
+ * Express-Router v1.0.0 - Sistema de enrutamiento optimizado para Express
4
+ */
5
+
6
+ const RouteMatcher = require('./RouteMatcher');
7
+ const HookSystem = require('express-hooked/hooks'); // Importar el sistema de hooks base
8
+
9
+ class ExpressRouter {
10
+ /**
11
+ * Constructor del router de Express
12
+ * @param {Object} options - Opciones de configuración
13
+ */
14
+ constructor(options = {}) {
15
+ this.routes = [];
16
+ this.hooks = new HookSystem(); // Crear instancia de HookSystem
17
+ this.routeMatcher = new RouteMatcher();
18
+
19
+ // Establecer la referencia de hooks en el RouteMatcher
20
+ this.routeMatcher.hooks = this.hooks;
21
+
22
+ // Opciones de configuración
23
+ this.options = {
24
+ caseSensitive: options.caseSensitive || false,
25
+ strict: options.strict || false,
26
+ mergeParams: options.mergeParams || false
27
+ };
28
+ }
29
+
30
+ /**
31
+ * Método para agregar una ruta GET
32
+ * @param {string} path - Ruta del endpoint
33
+ * @param {Function} handler - Función manejadora de la ruta
34
+ * @returns {ExpressRouter} - Instancia del router para encadenamiento
35
+ */
36
+ get(path, handler) {
37
+ this.addRoute('GET', path, handler);
38
+ return this;
39
+ }
40
+
41
+ /**
42
+ * Método para agregar una ruta POST
43
+ * @param {string} path - Ruta del endpoint
44
+ * @param {Function} handler - Función manejadora de la ruta
45
+ * @returns {ExpressRouter} - Instancia del router para encadenamiento
46
+ */
47
+ post(path, handler) {
48
+ this.addRoute('POST', path, handler);
49
+ return this;
50
+ }
51
+
52
+ /**
53
+ * Método para agregar una ruta PUT
54
+ * @param {string} path - Ruta del endpoint
55
+ * @param {Function} handler - Función manejadora de la ruta
56
+ * @returns {ExpressRouter} - Instancia del router para encadenamiento
57
+ */
58
+ put(path, handler) {
59
+ this.addRoute('PUT', path, handler);
60
+ return this;
61
+ }
62
+
63
+ /**
64
+ * Método para agregar una ruta DELETE
65
+ * @param {string} path - Ruta del endpoint
66
+ * @param {Function} handler - Función manejadora de la ruta
67
+ * @returns {ExpressRouter} - Instancia del router para encadenamiento
68
+ */
69
+ delete(path, handler) {
70
+ this.addRoute('DELETE', path, handler);
71
+ return this;
72
+ }
73
+
74
+ /**
75
+ * Método para agregar una ruta PATCH
76
+ * @param {string} path - Ruta del endpoint
77
+ * @param {Function} handler - Función manejadora de la ruta
78
+ * @returns {ExpressRouter} - Instancia del router para encadenamiento
79
+ */
80
+ patch(path, handler) {
81
+ this.addRoute('PATCH', path, handler);
82
+ return this;
83
+ }
84
+
85
+ /**
86
+ * Método para agregar una ruta genérica
87
+ * @param {string} method - Método HTTP
88
+ * @param {string} path - Ruta del endpoint
89
+ * @param {Function} handler - Función manejadora de la ruta
90
+ * @returns {ExpressRouter} - Instancia del router para encadenamiento
91
+ */
92
+ addRoute(method, path, handler) {
93
+ // Disparar hook antes de agregar la ruta
94
+ this.hooks.doAction('before_add_route', { method, path, handler });
95
+
96
+ // Verificar si ya existe una ruta con el mismo método y path
97
+ const existingRouteIndex = this.routes.findIndex(
98
+ route => route.method === method.toUpperCase() && route.path === path
99
+ );
100
+
101
+ if (existingRouteIndex !== -1) {
102
+ // Si ya existe, reemplazarla
103
+ this.routes[existingRouteIndex] = {
104
+ method: method.toUpperCase(),
105
+ path,
106
+ handler,
107
+ isStatic: !path.includes(':') // Determinar si es ruta estática
108
+ };
109
+ } else {
110
+ // Si no existe, agregarla
111
+ this.routes.push({
112
+ method: method.toUpperCase(),
113
+ path,
114
+ handler,
115
+ isStatic: !path.includes(':') // Determinar si es ruta estática
116
+ });
117
+ }
118
+
119
+ // Disparar hook después de agregar la ruta
120
+ this.hooks.doAction('route_added', {
121
+ method: method.toUpperCase(),
122
+ path,
123
+ handler
124
+ });
125
+
126
+ return this;
127
+ }
128
+
129
+ /**
130
+ * Método para agregar múltiples rutas de una sola vez
131
+ * @param {Array} routes - Array de rutas con formato {method, path, handler}
132
+ * @returns {ExpressRouter} - Instancia del router para encadenamiento
133
+ */
134
+ addRoutes(routes) {
135
+ for (const route of routes) {
136
+ this.addRoute(route.method, route.path, route.handler);
137
+ }
138
+ return this;
139
+ }
140
+
141
+ /**
142
+ * Método para obtener todas las rutas
143
+ * @returns {Array} - Array con todas las rutas registradas
144
+ */
145
+ getRoutes() {
146
+ return this.routes;
147
+ }
148
+
149
+ /**
150
+ * Middleware principal del router
151
+ * @returns {Function} - Middleware de Express
152
+ */
153
+ middleware() {
154
+ return (req, res, next) => {
155
+ // Disparar hook antes de procesar la ruta
156
+ this.hooks.doAction('before_route_processing', req, res);
157
+
158
+ // Encontrar la ruta coincidente
159
+ const matchedRoute = this.routeMatcher.findRoute(
160
+ this.routes,
161
+ req.method,
162
+ req.url.split('?')[0] // Quitar query string para la coincidencia
163
+ );
164
+
165
+ if (matchedRoute) {
166
+ // Disparar hook cuando se encuentra una ruta coincidente
167
+ this.hooks.doAction('route_matched', matchedRoute, req, res);
168
+
169
+ // Agregar parámetros a la solicitud
170
+ if (matchedRoute.params) {
171
+ req.params = { ...req.params, ...matchedRoute.params };
172
+ }
173
+
174
+ // Ejecutar el handler de la ruta
175
+ try {
176
+ // Disparar hook antes de ejecutar el handler
177
+ this.hooks.doAction('before_route_handler', req, res, next);
178
+
179
+ // Ejecutar el handler con los parámetros adecuados
180
+ matchedRoute.route.handler(req, res, next);
181
+
182
+ // Disparar hook después de ejecutar el handler
183
+ this.hooks.doAction('after_route_handler', req, res);
184
+ } catch (error) {
185
+ // Disparar hook si ocurre un error en el handler
186
+ this.hooks.doAction('route_handler_error', error, req, res, next);
187
+
188
+ // Pasar el error al siguiente middleware
189
+ next(error);
190
+ }
191
+ } else {
192
+ // Si no se encuentra una ruta coincidente, pasar al siguiente middleware
193
+ next();
194
+ }
195
+ };
196
+ }
197
+
198
+ /**
199
+ * Método para aplicar el router a una aplicación Express
200
+ * @param {Object} app - Aplicación Express
201
+ */
202
+ applyToApp(app) {
203
+ app.use(this.middleware());
204
+ }
205
+
206
+ /**
207
+ * Método para obtener el sistema de hooks
208
+ * @returns {HookSystem} - Instancia del sistema de hooks
209
+ */
210
+ getHooks() {
211
+ return this.hooks;
212
+ }
213
+
214
+ /**
215
+ * Método para registrar un hook personalizado
216
+ * @param {string} hookName - Nombre del hook
217
+ * @param {Function} callback - Función de callback
218
+ * @param {number} priority - Prioridad del callback
219
+ * @param {number} acceptedArgs - Número de argumentos aceptados
220
+ * @param {string} identifier - Identificador opcional
221
+ */
222
+ addHook(hookName, callback, priority = 10, acceptedArgs = 1, identifier = null) {
223
+ this.hooks.addAction(hookName, callback, priority, acceptedArgs, identifier);
224
+ }
225
+
226
+ /**
227
+ * Método para disparar un hook
228
+ * @param {string} hookName - Nombre del hook
229
+ * @param {...any} args - Argumentos para el hook
230
+ */
231
+ doHook(hookName, ...args) {
232
+ this.hooks.doAction(hookName, ...args);
233
+ }
234
+
235
+ /**
236
+ * Método para aplicar un filtro
237
+ * @param {string} hookName - Nombre del filtro
238
+ * @param {any} value - Valor a filtrar
239
+ * @param {...any} additionalArgs - Argumentos adicionales
240
+ * @returns {any} - Valor filtrado
241
+ */
242
+ applyFilter(hookName, value, ...additionalArgs) {
243
+ return this.hooks.applyFilters(hookName, value, ...additionalArgs);
244
+ }
245
+ }
246
+
247
+ module.exports = ExpressRouter;
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Integración del sistema de enrutamiento para Express
3
+ * Express-Router v1.0.0 - Integración con Express
4
+ */
5
+
6
+ const ExpressRouter = require('./ExpressRouter');
7
+
8
+ class ExpressRouterIntegration {
9
+ /**
10
+ * Constructor de la integración
11
+ * @param {Object} options - Opciones de configuración
12
+ */
13
+ constructor(options = {}) {
14
+ this.router = new ExpressRouter(options);
15
+ }
16
+
17
+ /**
18
+ * Método para obtener el router
19
+ * @returns {ExpressRouter} - Instancia del router
20
+ */
21
+ getRouter() {
22
+ return this.router;
23
+ }
24
+
25
+ /**
26
+ * Método para agregar una ruta GET
27
+ * @param {string} path - Ruta del endpoint
28
+ * @param {Function} handler - Función manejadora de la ruta
29
+ * @returns {ExpressRouterIntegration} - Instancia de la integración para encadenamiento
30
+ */
31
+ get(path, handler) {
32
+ this.router.get(path, handler);
33
+ return this;
34
+ }
35
+
36
+ /**
37
+ * Método para agregar una ruta POST
38
+ * @param {string} path - Ruta del endpoint
39
+ * @param {Function} handler - Función manejadora de la ruta
40
+ * @returns {ExpressRouterIntegration} - Instancia de la integración para encadenamiento
41
+ */
42
+ post(path, handler) {
43
+ this.router.post(path, handler);
44
+ return this;
45
+ }
46
+
47
+ /**
48
+ * Método para agregar una ruta PUT
49
+ * @param {string} path - Ruta del endpoint
50
+ * @param {Function} handler - Función manejadora de la ruta
51
+ * @returns {ExpressRouterIntegration} - Instancia de la integración para encadenamiento
52
+ */
53
+ put(path, handler) {
54
+ this.router.put(path, handler);
55
+ return this;
56
+ }
57
+
58
+ /**
59
+ * Método para agregar una ruta DELETE
60
+ * @param {string} path - Ruta del endpoint
61
+ * @param {Function} handler - Función manejadora de la ruta
62
+ * @returns {ExpressRouterIntegration} - Instancia de la integración para encadenamiento
63
+ */
64
+ delete(path, handler) {
65
+ this.router.delete(path, handler);
66
+ return this;
67
+ }
68
+
69
+ /**
70
+ * Método para agregar una ruta PATCH
71
+ * @param {string} path - Ruta del endpoint
72
+ * @param {Function} handler - Función manejadora de la ruta
73
+ * @returns {ExpressRouterIntegration} - Instancia de la integración para encadenamiento
74
+ */
75
+ patch(path, handler) {
76
+ this.router.patch(path, handler);
77
+ return this;
78
+ }
79
+
80
+ /**
81
+ * Método para agregar una ruta genérica
82
+ * @param {string} method - Método HTTP
83
+ * @param {string} path - Ruta del endpoint
84
+ * @param {Function} handler - Función manejadora de la ruta
85
+ * @returns {ExpressRouterIntegration} - Instancia de la integración para encadenamiento
86
+ */
87
+ addRoute(method, path, handler) {
88
+ this.router.addRoute(method, path, handler);
89
+ return this;
90
+ }
91
+
92
+ /**
93
+ * Método para aplicar el router a una aplicación Express
94
+ * @param {Object} app - Aplicación Express
95
+ */
96
+ applyToApp(app) {
97
+ this.router.applyToApp(app);
98
+ }
99
+
100
+ /**
101
+ * Middleware para usar con Express
102
+ * @returns {Function} - Middleware de Express
103
+ */
104
+ middleware() {
105
+ return this.router.middleware();
106
+ }
107
+
108
+ /**
109
+ * Método para obtener el sistema de hooks
110
+ * @returns {HookSystem} - Instancia del sistema de hooks
111
+ */
112
+ getHooks() {
113
+ return this.router.getHooks();
114
+ }
115
+
116
+ /**
117
+ * Método para registrar un hook personalizado
118
+ * @param {string} hookName - Nombre del hook
119
+ * @param {Function} callback - Función de callback
120
+ * @param {number} priority - Prioridad del callback
121
+ * @param {number} acceptedArgs - Número de argumentos aceptados
122
+ * @param {string} identifier - Identificador opcional
123
+ */
124
+ addHook(hookName, callback, priority = 10, acceptedArgs = 1, identifier = null) {
125
+ this.router.addHook(hookName, callback, priority, acceptedArgs, identifier);
126
+ }
127
+ }
128
+
129
+ module.exports = ExpressRouterIntegration;