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.
- package/README-es.md +42 -0
- package/README-es.md.backup +44 -0
- package/README.md +41 -0
- package/README.md.backup +43 -0
- package/hooked/LICENSE +204 -0
- package/hooked/README.es.md +238 -0
- package/hooked/README.md +238 -0
- package/hooked/advanced-example.js +240 -0
- package/hooked/express-hooked.js +206 -0
- package/hooked/hooks.js +584 -0
- package/hooked/package.json +30 -0
- package/index.js +25 -0
- package/package.json +36 -0
- package/queued/LICENSE +201 -0
- package/queued/QueueSystem.js +451 -0
- package/queued/README.es.md +335 -0
- package/queued/README.md +335 -0
- package/queued/express-example.js +143 -0
- package/queued/express-integration.js +115 -0
- package/queued/package.json +33 -0
- package/router/ExpressRouter.js +247 -0
- package/router/ExpressRouterIntegration.js +129 -0
- package/router/LICENSE +201 -0
- package/router/README.es.md +142 -0
- package/router/README.md +142 -0
- package/router/RouteDirectoryLoader.js +299 -0
- package/router/RouteLoader.js +245 -0
- package/router/RouteMatcher.js +361 -0
- package/router/node_modules/.package-lock.json +876 -0
- package/router/node_modules/accepts/HISTORY.md +243 -0
- package/router/node_modules/accepts/LICENSE +23 -0
- package/router/node_modules/accepts/README.md +140 -0
- package/router/node_modules/accepts/index.js +238 -0
- package/router/node_modules/accepts/package.json +47 -0
- package/router/node_modules/array-flatten/LICENSE +21 -0
- package/router/node_modules/array-flatten/README.md +43 -0
- package/router/node_modules/array-flatten/array-flatten.js +64 -0
- package/router/node_modules/array-flatten/package.json +39 -0
- package/router/node_modules/body-parser/HISTORY.md +680 -0
- package/router/node_modules/body-parser/LICENSE +23 -0
- package/router/node_modules/body-parser/README.md +476 -0
- package/router/node_modules/body-parser/index.js +156 -0
- package/router/node_modules/body-parser/lib/read.js +205 -0
- package/router/node_modules/body-parser/lib/types/json.js +247 -0
- package/router/node_modules/body-parser/lib/types/raw.js +101 -0
- package/router/node_modules/body-parser/lib/types/text.js +121 -0
- package/router/node_modules/body-parser/lib/types/urlencoded.js +300 -0
- package/router/node_modules/body-parser/package.json +55 -0
- package/router/node_modules/bytes/History.md +97 -0
- package/router/node_modules/bytes/LICENSE +23 -0
- package/router/node_modules/bytes/Readme.md +152 -0
- package/router/node_modules/bytes/index.js +170 -0
- package/router/node_modules/bytes/package.json +42 -0
- package/router/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
- package/router/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
- package/router/node_modules/call-bind-apply-helpers/LICENSE +21 -0
- package/router/node_modules/call-bind-apply-helpers/README.md +62 -0
- package/router/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
- package/router/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/router/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
- package/router/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- package/router/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
- package/router/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/router/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
- package/router/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/router/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
- package/router/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/router/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/router/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
- package/router/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/router/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
- package/router/node_modules/call-bound/.github/FUNDING.yml +12 -0
- package/router/node_modules/call-bound/CHANGELOG.md +42 -0
- package/router/node_modules/call-bound/LICENSE +21 -0
- package/router/node_modules/call-bound/README.md +53 -0
- package/router/node_modules/call-bound/index.d.ts +94 -0
- package/router/node_modules/call-bound/index.js +19 -0
- package/router/node_modules/call-bound/package.json +99 -0
- package/router/node_modules/call-bound/tsconfig.json +10 -0
- package/router/node_modules/content-disposition/HISTORY.md +60 -0
- package/router/node_modules/content-disposition/LICENSE +22 -0
- package/router/node_modules/content-disposition/README.md +142 -0
- package/router/node_modules/content-disposition/index.js +458 -0
- package/router/node_modules/content-disposition/package.json +44 -0
- package/router/node_modules/content-type/HISTORY.md +29 -0
- package/router/node_modules/content-type/LICENSE +22 -0
- package/router/node_modules/content-type/README.md +94 -0
- package/router/node_modules/content-type/index.js +225 -0
- package/router/node_modules/content-type/package.json +42 -0
- package/router/node_modules/cookie/LICENSE +24 -0
- package/router/node_modules/cookie/README.md +317 -0
- package/router/node_modules/cookie/SECURITY.md +25 -0
- package/router/node_modules/cookie/index.js +335 -0
- package/router/node_modules/cookie/package.json +44 -0
- package/router/node_modules/cookie-signature/History.md +42 -0
- package/router/node_modules/cookie-signature/Readme.md +42 -0
- package/router/node_modules/cookie-signature/index.js +51 -0
- package/router/node_modules/cookie-signature/package.json +18 -0
- package/router/node_modules/debug/.coveralls.yml +1 -0
- package/router/node_modules/debug/CHANGELOG.md +362 -0
- package/router/node_modules/debug/LICENSE +19 -0
- package/router/node_modules/debug/Makefile +50 -0
- package/router/node_modules/debug/README.md +312 -0
- package/router/node_modules/debug/component.json +19 -0
- package/router/node_modules/debug/karma.conf.js +70 -0
- package/router/node_modules/debug/node.js +1 -0
- package/router/node_modules/debug/package.json +49 -0
- package/router/node_modules/debug/src/browser.js +185 -0
- package/router/node_modules/debug/src/debug.js +202 -0
- package/router/node_modules/debug/src/index.js +10 -0
- package/router/node_modules/debug/src/inspector-log.js +15 -0
- package/router/node_modules/debug/src/node.js +248 -0
- package/router/node_modules/depd/History.md +103 -0
- package/router/node_modules/depd/LICENSE +22 -0
- package/router/node_modules/depd/Readme.md +280 -0
- package/router/node_modules/depd/index.js +538 -0
- package/router/node_modules/depd/lib/browser/index.js +77 -0
- package/router/node_modules/depd/package.json +45 -0
- package/router/node_modules/destroy/LICENSE +23 -0
- package/router/node_modules/destroy/README.md +63 -0
- package/router/node_modules/destroy/index.js +209 -0
- package/router/node_modules/destroy/package.json +48 -0
- package/router/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
- package/router/node_modules/dunder-proto/CHANGELOG.md +24 -0
- package/router/node_modules/dunder-proto/LICENSE +21 -0
- package/router/node_modules/dunder-proto/README.md +54 -0
- package/router/node_modules/dunder-proto/get.d.ts +5 -0
- package/router/node_modules/dunder-proto/get.js +30 -0
- package/router/node_modules/dunder-proto/package.json +76 -0
- package/router/node_modules/dunder-proto/set.d.ts +5 -0
- package/router/node_modules/dunder-proto/set.js +35 -0
- package/router/node_modules/dunder-proto/tsconfig.json +9 -0
- package/router/node_modules/ee-first/LICENSE +22 -0
- package/router/node_modules/ee-first/README.md +80 -0
- package/router/node_modules/ee-first/index.js +95 -0
- package/router/node_modules/ee-first/package.json +29 -0
- package/router/node_modules/encodeurl/LICENSE +22 -0
- package/router/node_modules/encodeurl/README.md +109 -0
- package/router/node_modules/encodeurl/index.js +60 -0
- package/router/node_modules/encodeurl/package.json +40 -0
- package/router/node_modules/es-define-property/.github/FUNDING.yml +12 -0
- package/router/node_modules/es-define-property/CHANGELOG.md +29 -0
- package/router/node_modules/es-define-property/LICENSE +21 -0
- package/router/node_modules/es-define-property/README.md +49 -0
- package/router/node_modules/es-define-property/index.d.ts +3 -0
- package/router/node_modules/es-define-property/index.js +14 -0
- package/router/node_modules/es-define-property/package.json +81 -0
- package/router/node_modules/es-define-property/tsconfig.json +10 -0
- package/router/node_modules/es-errors/.github/FUNDING.yml +12 -0
- package/router/node_modules/es-errors/CHANGELOG.md +40 -0
- package/router/node_modules/es-errors/LICENSE +21 -0
- package/router/node_modules/es-errors/README.md +55 -0
- package/router/node_modules/es-errors/eval.d.ts +3 -0
- package/router/node_modules/es-errors/eval.js +4 -0
- package/router/node_modules/es-errors/index.d.ts +3 -0
- package/router/node_modules/es-errors/index.js +4 -0
- package/router/node_modules/es-errors/package.json +80 -0
- package/router/node_modules/es-errors/range.d.ts +3 -0
- package/router/node_modules/es-errors/range.js +4 -0
- package/router/node_modules/es-errors/ref.d.ts +3 -0
- package/router/node_modules/es-errors/ref.js +4 -0
- package/router/node_modules/es-errors/syntax.d.ts +3 -0
- package/router/node_modules/es-errors/syntax.js +4 -0
- package/router/node_modules/es-errors/tsconfig.json +49 -0
- package/router/node_modules/es-errors/type.d.ts +3 -0
- package/router/node_modules/es-errors/type.js +4 -0
- package/router/node_modules/es-errors/uri.d.ts +3 -0
- package/router/node_modules/es-errors/uri.js +4 -0
- package/router/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
- package/router/node_modules/es-object-atoms/CHANGELOG.md +37 -0
- package/router/node_modules/es-object-atoms/LICENSE +21 -0
- package/router/node_modules/es-object-atoms/README.md +63 -0
- package/router/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
- package/router/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
- package/router/node_modules/es-object-atoms/ToObject.d.ts +7 -0
- package/router/node_modules/es-object-atoms/ToObject.js +10 -0
- package/router/node_modules/es-object-atoms/index.d.ts +3 -0
- package/router/node_modules/es-object-atoms/index.js +4 -0
- package/router/node_modules/es-object-atoms/isObject.d.ts +3 -0
- package/router/node_modules/es-object-atoms/isObject.js +6 -0
- package/router/node_modules/es-object-atoms/package.json +80 -0
- package/router/node_modules/es-object-atoms/tsconfig.json +6 -0
- package/router/node_modules/escape-html/LICENSE +24 -0
- package/router/node_modules/escape-html/Readme.md +43 -0
- package/router/node_modules/escape-html/index.js +78 -0
- package/router/node_modules/escape-html/package.json +24 -0
- package/router/node_modules/etag/HISTORY.md +83 -0
- package/router/node_modules/etag/LICENSE +22 -0
- package/router/node_modules/etag/README.md +159 -0
- package/router/node_modules/etag/index.js +131 -0
- package/router/node_modules/etag/package.json +47 -0
- package/router/node_modules/express/History.md +3667 -0
- package/router/node_modules/express/LICENSE +24 -0
- package/router/node_modules/express/Readme.md +260 -0
- package/router/node_modules/express/index.js +11 -0
- package/router/node_modules/express/lib/application.js +661 -0
- package/router/node_modules/express/lib/express.js +116 -0
- package/router/node_modules/express/lib/middleware/init.js +43 -0
- package/router/node_modules/express/lib/middleware/query.js +47 -0
- package/router/node_modules/express/lib/request.js +525 -0
- package/router/node_modules/express/lib/response.js +1179 -0
- package/router/node_modules/express/lib/router/index.js +673 -0
- package/router/node_modules/express/lib/router/layer.js +181 -0
- package/router/node_modules/express/lib/router/route.js +230 -0
- package/router/node_modules/express/lib/utils.js +303 -0
- package/router/node_modules/express/lib/view.js +182 -0
- package/router/node_modules/express/package.json +102 -0
- package/router/node_modules/express-hooked/LICENSE +204 -0
- package/router/node_modules/express-hooked/README.es.md +123 -0
- package/router/node_modules/express-hooked/README.md +123 -0
- package/router/node_modules/express-hooked/express-hooked.js +206 -0
- package/router/node_modules/express-hooked/hooks.js +584 -0
- package/router/node_modules/express-hooked/package.json +30 -0
- package/router/node_modules/finalhandler/HISTORY.md +216 -0
- package/router/node_modules/finalhandler/LICENSE +22 -0
- package/router/node_modules/finalhandler/README.md +147 -0
- package/router/node_modules/finalhandler/SECURITY.md +25 -0
- package/router/node_modules/finalhandler/index.js +341 -0
- package/router/node_modules/finalhandler/package.json +47 -0
- package/router/node_modules/forwarded/HISTORY.md +21 -0
- package/router/node_modules/forwarded/LICENSE +22 -0
- package/router/node_modules/forwarded/README.md +57 -0
- package/router/node_modules/forwarded/index.js +90 -0
- package/router/node_modules/forwarded/package.json +45 -0
- package/router/node_modules/fresh/HISTORY.md +70 -0
- package/router/node_modules/fresh/LICENSE +23 -0
- package/router/node_modules/fresh/README.md +119 -0
- package/router/node_modules/fresh/index.js +137 -0
- package/router/node_modules/fresh/package.json +46 -0
- package/router/node_modules/function-bind/.github/FUNDING.yml +12 -0
- package/router/node_modules/function-bind/.github/SECURITY.md +3 -0
- package/router/node_modules/function-bind/CHANGELOG.md +136 -0
- package/router/node_modules/function-bind/LICENSE +20 -0
- package/router/node_modules/function-bind/README.md +46 -0
- package/router/node_modules/function-bind/implementation.js +84 -0
- package/router/node_modules/function-bind/index.js +5 -0
- package/router/node_modules/function-bind/package.json +87 -0
- package/router/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
- package/router/node_modules/get-intrinsic/CHANGELOG.md +186 -0
- package/router/node_modules/get-intrinsic/LICENSE +21 -0
- package/router/node_modules/get-intrinsic/README.md +71 -0
- package/router/node_modules/get-intrinsic/index.js +378 -0
- package/router/node_modules/get-intrinsic/package.json +97 -0
- package/router/node_modules/get-proto/.github/FUNDING.yml +12 -0
- package/router/node_modules/get-proto/CHANGELOG.md +21 -0
- package/router/node_modules/get-proto/LICENSE +21 -0
- package/router/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
- package/router/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/router/node_modules/get-proto/README.md +50 -0
- package/router/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
- package/router/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/router/node_modules/get-proto/index.d.ts +5 -0
- package/router/node_modules/get-proto/index.js +27 -0
- package/router/node_modules/get-proto/package.json +81 -0
- package/router/node_modules/get-proto/tsconfig.json +9 -0
- package/router/node_modules/gopd/.github/FUNDING.yml +12 -0
- package/router/node_modules/gopd/CHANGELOG.md +45 -0
- package/router/node_modules/gopd/LICENSE +21 -0
- package/router/node_modules/gopd/README.md +40 -0
- package/router/node_modules/gopd/gOPD.d.ts +1 -0
- package/router/node_modules/gopd/gOPD.js +4 -0
- package/router/node_modules/gopd/index.d.ts +5 -0
- package/router/node_modules/gopd/index.js +15 -0
- package/router/node_modules/gopd/package.json +77 -0
- package/router/node_modules/gopd/tsconfig.json +9 -0
- package/router/node_modules/has-symbols/.github/FUNDING.yml +12 -0
- package/router/node_modules/has-symbols/CHANGELOG.md +91 -0
- package/router/node_modules/has-symbols/LICENSE +21 -0
- package/router/node_modules/has-symbols/README.md +46 -0
- package/router/node_modules/has-symbols/index.d.ts +3 -0
- package/router/node_modules/has-symbols/index.js +14 -0
- package/router/node_modules/has-symbols/package.json +111 -0
- package/router/node_modules/has-symbols/shams.d.ts +3 -0
- package/router/node_modules/has-symbols/shams.js +45 -0
- package/router/node_modules/has-symbols/tsconfig.json +10 -0
- package/router/node_modules/hasown/.github/FUNDING.yml +12 -0
- package/router/node_modules/hasown/CHANGELOG.md +40 -0
- package/router/node_modules/hasown/LICENSE +21 -0
- package/router/node_modules/hasown/README.md +40 -0
- package/router/node_modules/hasown/index.d.ts +3 -0
- package/router/node_modules/hasown/index.js +8 -0
- package/router/node_modules/hasown/package.json +92 -0
- package/router/node_modules/hasown/tsconfig.json +6 -0
- package/router/node_modules/http-errors/HISTORY.md +186 -0
- package/router/node_modules/http-errors/LICENSE +23 -0
- package/router/node_modules/http-errors/README.md +169 -0
- package/router/node_modules/http-errors/index.js +290 -0
- package/router/node_modules/http-errors/package.json +54 -0
- package/router/node_modules/iconv-lite/Changelog.md +162 -0
- package/router/node_modules/iconv-lite/LICENSE +21 -0
- package/router/node_modules/iconv-lite/README.md +156 -0
- package/router/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
- package/router/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
- package/router/node_modules/iconv-lite/encodings/index.js +22 -0
- package/router/node_modules/iconv-lite/encodings/internal.js +188 -0
- package/router/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
- package/router/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
- package/router/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
- package/router/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
- package/router/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
- package/router/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
- package/router/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
- package/router/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
- package/router/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
- package/router/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
- package/router/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
- package/router/node_modules/iconv-lite/encodings/utf16.js +177 -0
- package/router/node_modules/iconv-lite/encodings/utf7.js +290 -0
- package/router/node_modules/iconv-lite/lib/bom-handling.js +52 -0
- package/router/node_modules/iconv-lite/lib/extend-node.js +217 -0
- package/router/node_modules/iconv-lite/lib/index.d.ts +24 -0
- package/router/node_modules/iconv-lite/lib/index.js +153 -0
- package/router/node_modules/iconv-lite/lib/streams.js +121 -0
- package/router/node_modules/iconv-lite/package.json +46 -0
- package/router/node_modules/inherits/LICENSE +16 -0
- package/router/node_modules/inherits/README.md +42 -0
- package/router/node_modules/inherits/inherits.js +9 -0
- package/router/node_modules/inherits/inherits_browser.js +27 -0
- package/router/node_modules/inherits/package.json +29 -0
- package/router/node_modules/ipaddr.js/LICENSE +19 -0
- package/router/node_modules/ipaddr.js/README.md +233 -0
- package/router/node_modules/ipaddr.js/ipaddr.min.js +1 -0
- package/router/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
- package/router/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
- package/router/node_modules/ipaddr.js/package.json +35 -0
- package/router/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
- package/router/node_modules/math-intrinsics/CHANGELOG.md +24 -0
- package/router/node_modules/math-intrinsics/LICENSE +21 -0
- package/router/node_modules/math-intrinsics/README.md +50 -0
- package/router/node_modules/math-intrinsics/abs.d.ts +1 -0
- package/router/node_modules/math-intrinsics/abs.js +4 -0
- package/router/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
- package/router/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
- package/router/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
- package/router/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
- package/router/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
- package/router/node_modules/math-intrinsics/constants/maxValue.js +5 -0
- package/router/node_modules/math-intrinsics/floor.d.ts +1 -0
- package/router/node_modules/math-intrinsics/floor.js +4 -0
- package/router/node_modules/math-intrinsics/isFinite.d.ts +3 -0
- package/router/node_modules/math-intrinsics/isFinite.js +12 -0
- package/router/node_modules/math-intrinsics/isInteger.d.ts +3 -0
- package/router/node_modules/math-intrinsics/isInteger.js +16 -0
- package/router/node_modules/math-intrinsics/isNaN.d.ts +1 -0
- package/router/node_modules/math-intrinsics/isNaN.js +6 -0
- package/router/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
- package/router/node_modules/math-intrinsics/isNegativeZero.js +6 -0
- package/router/node_modules/math-intrinsics/max.d.ts +1 -0
- package/router/node_modules/math-intrinsics/max.js +4 -0
- package/router/node_modules/math-intrinsics/min.d.ts +1 -0
- package/router/node_modules/math-intrinsics/min.js +4 -0
- package/router/node_modules/math-intrinsics/mod.d.ts +3 -0
- package/router/node_modules/math-intrinsics/mod.js +9 -0
- package/router/node_modules/math-intrinsics/package.json +86 -0
- package/router/node_modules/math-intrinsics/pow.d.ts +1 -0
- package/router/node_modules/math-intrinsics/pow.js +4 -0
- package/router/node_modules/math-intrinsics/round.d.ts +1 -0
- package/router/node_modules/math-intrinsics/round.js +4 -0
- package/router/node_modules/math-intrinsics/sign.d.ts +3 -0
- package/router/node_modules/math-intrinsics/sign.js +11 -0
- package/router/node_modules/math-intrinsics/tsconfig.json +3 -0
- package/router/node_modules/media-typer/HISTORY.md +22 -0
- package/router/node_modules/media-typer/LICENSE +22 -0
- package/router/node_modules/media-typer/README.md +81 -0
- package/router/node_modules/media-typer/index.js +270 -0
- package/router/node_modules/media-typer/package.json +26 -0
- package/router/node_modules/merge-descriptors/HISTORY.md +21 -0
- package/router/node_modules/merge-descriptors/LICENSE +23 -0
- package/router/node_modules/merge-descriptors/README.md +49 -0
- package/router/node_modules/merge-descriptors/index.js +60 -0
- package/router/node_modules/merge-descriptors/package.json +39 -0
- package/router/node_modules/methods/HISTORY.md +29 -0
- package/router/node_modules/methods/LICENSE +24 -0
- package/router/node_modules/methods/README.md +51 -0
- package/router/node_modules/methods/index.js +69 -0
- package/router/node_modules/methods/package.json +36 -0
- package/router/node_modules/mime/CHANGELOG.md +164 -0
- package/router/node_modules/mime/LICENSE +21 -0
- package/router/node_modules/mime/README.md +90 -0
- package/router/node_modules/mime/cli.js +8 -0
- package/router/node_modules/mime/mime.js +108 -0
- package/router/node_modules/mime/package.json +44 -0
- package/router/node_modules/mime/src/build.js +53 -0
- package/router/node_modules/mime/src/test.js +60 -0
- package/router/node_modules/mime/types.json +1 -0
- package/router/node_modules/mime-db/HISTORY.md +507 -0
- package/router/node_modules/mime-db/LICENSE +23 -0
- package/router/node_modules/mime-db/README.md +100 -0
- package/router/node_modules/mime-db/db.json +8519 -0
- package/router/node_modules/mime-db/index.js +12 -0
- package/router/node_modules/mime-db/package.json +60 -0
- package/router/node_modules/mime-types/HISTORY.md +397 -0
- package/router/node_modules/mime-types/LICENSE +23 -0
- package/router/node_modules/mime-types/README.md +113 -0
- package/router/node_modules/mime-types/index.js +188 -0
- package/router/node_modules/mime-types/package.json +44 -0
- package/router/node_modules/ms/index.js +152 -0
- package/router/node_modules/ms/license.md +21 -0
- package/router/node_modules/ms/package.json +37 -0
- package/router/node_modules/ms/readme.md +51 -0
- package/router/node_modules/negotiator/HISTORY.md +108 -0
- package/router/node_modules/negotiator/LICENSE +24 -0
- package/router/node_modules/negotiator/README.md +203 -0
- package/router/node_modules/negotiator/index.js +82 -0
- package/router/node_modules/negotiator/lib/charset.js +169 -0
- package/router/node_modules/negotiator/lib/encoding.js +184 -0
- package/router/node_modules/negotiator/lib/language.js +179 -0
- package/router/node_modules/negotiator/lib/mediaType.js +294 -0
- package/router/node_modules/negotiator/package.json +42 -0
- package/router/node_modules/object-inspect/.github/FUNDING.yml +12 -0
- package/router/node_modules/object-inspect/CHANGELOG.md +424 -0
- package/router/node_modules/object-inspect/LICENSE +21 -0
- package/router/node_modules/object-inspect/example/all.js +23 -0
- package/router/node_modules/object-inspect/example/circular.js +6 -0
- package/router/node_modules/object-inspect/example/fn.js +5 -0
- package/router/node_modules/object-inspect/example/inspect.js +10 -0
- package/router/node_modules/object-inspect/index.js +544 -0
- package/router/node_modules/object-inspect/package-support.json +20 -0
- package/router/node_modules/object-inspect/package.json +105 -0
- package/router/node_modules/object-inspect/readme.markdown +84 -0
- package/router/node_modules/object-inspect/test-core-js.js +26 -0
- package/router/node_modules/object-inspect/util.inspect.js +1 -0
- package/router/node_modules/on-finished/HISTORY.md +98 -0
- package/router/node_modules/on-finished/LICENSE +23 -0
- package/router/node_modules/on-finished/README.md +162 -0
- package/router/node_modules/on-finished/index.js +234 -0
- package/router/node_modules/on-finished/package.json +39 -0
- package/router/node_modules/parseurl/HISTORY.md +58 -0
- package/router/node_modules/parseurl/LICENSE +24 -0
- package/router/node_modules/parseurl/README.md +133 -0
- package/router/node_modules/parseurl/index.js +158 -0
- package/router/node_modules/parseurl/package.json +40 -0
- package/router/node_modules/path-to-regexp/LICENSE +21 -0
- package/router/node_modules/path-to-regexp/Readme.md +35 -0
- package/router/node_modules/path-to-regexp/index.js +156 -0
- package/router/node_modules/path-to-regexp/package.json +30 -0
- package/router/node_modules/proxy-addr/HISTORY.md +161 -0
- package/router/node_modules/proxy-addr/LICENSE +22 -0
- package/router/node_modules/proxy-addr/README.md +139 -0
- package/router/node_modules/proxy-addr/index.js +327 -0
- package/router/node_modules/proxy-addr/package.json +47 -0
- package/router/node_modules/qs/.github/FUNDING.yml +12 -0
- package/router/node_modules/qs/.github/SECURITY.md +11 -0
- package/router/node_modules/qs/.github/THREAT_MODEL.md +78 -0
- package/router/node_modules/qs/CHANGELOG.md +644 -0
- package/router/node_modules/qs/LICENSE.md +29 -0
- package/router/node_modules/qs/README.md +740 -0
- package/router/node_modules/qs/dist/qs.js +141 -0
- package/router/node_modules/qs/eslint.config.mjs +56 -0
- package/router/node_modules/qs/lib/formats.js +23 -0
- package/router/node_modules/qs/lib/index.js +11 -0
- package/router/node_modules/qs/lib/parse.js +371 -0
- package/router/node_modules/qs/lib/stringify.js +356 -0
- package/router/node_modules/qs/lib/utils.js +340 -0
- package/router/node_modules/qs/package.json +94 -0
- package/router/node_modules/range-parser/HISTORY.md +56 -0
- package/router/node_modules/range-parser/LICENSE +23 -0
- package/router/node_modules/range-parser/README.md +84 -0
- package/router/node_modules/range-parser/index.js +162 -0
- package/router/node_modules/range-parser/package.json +44 -0
- package/router/node_modules/raw-body/LICENSE +22 -0
- package/router/node_modules/raw-body/README.md +223 -0
- package/router/node_modules/raw-body/index.d.ts +87 -0
- package/router/node_modules/raw-body/index.js +336 -0
- package/router/node_modules/raw-body/package.json +47 -0
- package/router/node_modules/safe-buffer/LICENSE +21 -0
- package/router/node_modules/safe-buffer/README.md +584 -0
- package/router/node_modules/safe-buffer/index.d.ts +187 -0
- package/router/node_modules/safe-buffer/index.js +65 -0
- package/router/node_modules/safe-buffer/package.json +51 -0
- package/router/node_modules/safer-buffer/LICENSE +21 -0
- package/router/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- package/router/node_modules/safer-buffer/Readme.md +156 -0
- package/router/node_modules/safer-buffer/dangerous.js +58 -0
- package/router/node_modules/safer-buffer/package.json +34 -0
- package/router/node_modules/safer-buffer/safer.js +77 -0
- package/router/node_modules/safer-buffer/tests.js +406 -0
- package/router/node_modules/send/HISTORY.md +538 -0
- package/router/node_modules/send/LICENSE +23 -0
- package/router/node_modules/send/README.md +327 -0
- package/router/node_modules/send/SECURITY.md +24 -0
- package/router/node_modules/send/index.js +1142 -0
- package/router/node_modules/send/node_modules/ms/index.js +162 -0
- package/router/node_modules/send/node_modules/ms/license.md +21 -0
- package/router/node_modules/send/node_modules/ms/package.json +38 -0
- package/router/node_modules/send/node_modules/ms/readme.md +59 -0
- package/router/node_modules/send/package.json +62 -0
- package/router/node_modules/serve-static/HISTORY.md +493 -0
- package/router/node_modules/serve-static/LICENSE +25 -0
- package/router/node_modules/serve-static/README.md +257 -0
- package/router/node_modules/serve-static/index.js +209 -0
- package/router/node_modules/serve-static/package.json +42 -0
- package/router/node_modules/setprototypeof/LICENSE +13 -0
- package/router/node_modules/setprototypeof/README.md +31 -0
- package/router/node_modules/setprototypeof/index.d.ts +2 -0
- package/router/node_modules/setprototypeof/index.js +17 -0
- package/router/node_modules/setprototypeof/package.json +38 -0
- package/router/node_modules/side-channel/.github/FUNDING.yml +12 -0
- package/router/node_modules/side-channel/CHANGELOG.md +110 -0
- package/router/node_modules/side-channel/LICENSE +21 -0
- package/router/node_modules/side-channel/README.md +61 -0
- package/router/node_modules/side-channel/index.d.ts +14 -0
- package/router/node_modules/side-channel/index.js +43 -0
- package/router/node_modules/side-channel/package.json +85 -0
- package/router/node_modules/side-channel/tsconfig.json +9 -0
- package/router/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
- package/router/node_modules/side-channel-list/CHANGELOG.md +15 -0
- package/router/node_modules/side-channel-list/LICENSE +21 -0
- package/router/node_modules/side-channel-list/README.md +62 -0
- package/router/node_modules/side-channel-list/index.d.ts +13 -0
- package/router/node_modules/side-channel-list/index.js +113 -0
- package/router/node_modules/side-channel-list/list.d.ts +14 -0
- package/router/node_modules/side-channel-list/package.json +77 -0
- package/router/node_modules/side-channel-list/tsconfig.json +9 -0
- package/router/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
- package/router/node_modules/side-channel-map/CHANGELOG.md +22 -0
- package/router/node_modules/side-channel-map/LICENSE +21 -0
- package/router/node_modules/side-channel-map/README.md +62 -0
- package/router/node_modules/side-channel-map/index.d.ts +15 -0
- package/router/node_modules/side-channel-map/index.js +68 -0
- package/router/node_modules/side-channel-map/package.json +80 -0
- package/router/node_modules/side-channel-map/tsconfig.json +9 -0
- package/router/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
- package/router/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
- package/router/node_modules/side-channel-weakmap/LICENSE +21 -0
- package/router/node_modules/side-channel-weakmap/README.md +62 -0
- package/router/node_modules/side-channel-weakmap/index.d.ts +15 -0
- package/router/node_modules/side-channel-weakmap/index.js +84 -0
- package/router/node_modules/side-channel-weakmap/package.json +87 -0
- package/router/node_modules/side-channel-weakmap/tsconfig.json +9 -0
- package/router/node_modules/statuses/HISTORY.md +87 -0
- package/router/node_modules/statuses/LICENSE +23 -0
- package/router/node_modules/statuses/README.md +139 -0
- package/router/node_modules/statuses/codes.json +65 -0
- package/router/node_modules/statuses/index.js +146 -0
- package/router/node_modules/statuses/package.json +49 -0
- package/router/node_modules/toidentifier/HISTORY.md +9 -0
- package/router/node_modules/toidentifier/LICENSE +21 -0
- package/router/node_modules/toidentifier/README.md +61 -0
- package/router/node_modules/toidentifier/index.js +32 -0
- package/router/node_modules/toidentifier/package.json +38 -0
- package/router/node_modules/type-is/HISTORY.md +259 -0
- package/router/node_modules/type-is/LICENSE +23 -0
- package/router/node_modules/type-is/README.md +170 -0
- package/router/node_modules/type-is/index.js +266 -0
- package/router/node_modules/type-is/package.json +45 -0
- package/router/node_modules/unpipe/HISTORY.md +4 -0
- package/router/node_modules/unpipe/LICENSE +22 -0
- package/router/node_modules/unpipe/README.md +43 -0
- package/router/node_modules/unpipe/index.js +69 -0
- package/router/node_modules/unpipe/package.json +27 -0
- package/router/node_modules/utils-merge/LICENSE +20 -0
- package/router/node_modules/utils-merge/README.md +34 -0
- package/router/node_modules/utils-merge/index.js +23 -0
- package/router/node_modules/utils-merge/package.json +40 -0
- package/router/node_modules/vary/HISTORY.md +39 -0
- package/router/node_modules/vary/LICENSE +22 -0
- package/router/node_modules/vary/README.md +101 -0
- package/router/node_modules/vary/index.js +149 -0
- package/router/node_modules/vary/package.json +43 -0
- 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;
|